전체 글
1. git amend 이슈 - 왜 반영 안되는거 같지? 2. BaseTime, BaseEntity, @CreatedBy 문제 3. Member와 Patient 1 : 1관계에서 연관관계의 주인을 누구로?- 4. member쪽에 patient or caregiver 엔티티 연관관계 갖게할지? - 주인은 patient에 두는데, member 엔티티에도 patient를 둬야하나? 5. Patient 엔티티에 환자 특이사항 / 간병 요구사항 같은 컬럼들은 입력값이 매우 길어질 수 있다. - @Column(Text) vs @Lob 둘의 차이 학습 후 무엇을 적용? 장단점이 뭔지. -> 만약 TEXT를 쓴다면 성능 개선을 어떻게 할지 - https://velog.io/@yullivan/VARCHAR-vs-TE..
정규화ERD 내에서 중복 요소를 찾아 제거해 나가는 과정 (중복된 데이터는 많은 문제를 일으킨다.)3차 정규화 정도만 알면 설계하는데 무리가 없다.중복을 최소화 -> 완전히 없애는 것이 아니라 어느 정도는 인정하겠다.시간을 줄이기 위해(성능 최적화)정규화 절차 - 함수 종속성을 이용해 릴레이션을 연관성 있는 속성들로만 구성되도록 분해함. 제 1 정규화같은 성격과 내용의 컬럼이 연속적으로 나타나는 컬럼이 존재할 때, 해당 컬럼을 제거하고 기본테이블의 PK를 추가해 새로운 테이블을 생성하고, 기존의 테이블과 1:N 관계를 형성하는 것.제 2 정규화PK가 여러 키로 구성된 복합키로 구성된 경우복합키 전체에 의존하지 않고 복합키의 일부분에만 종속되는 속성들이 존재할 경우(즉, 부분적 함수 종속 관계) 이를 분리..
DI (Dependency Injection)외부에서 두 객체 간의 관계를 결정해주는 디자인 패턴인터페이스를 사이에 둬서 클래스 레벨에서는 의존관계가 고정되지 않도록 하고 런타임 시에 관계를 동적으로 주입하여 유연성을 확보하고 결합도를 낮춘다.스프링은 특정 위치부터 클래스를 탐색하고, 객체를 만들며 객체들의 관계까지 설정해준다. = 제어의 역전(IoC)어떠한 객체를 사용할지에 대한 책임은 프레임워크에게 넘어갔고, 자신은 수동적으로 주입받는 객체를 사용.한 객체가 어떤 객체에 의존할 것인지는 별도의 관심사이다.스프링은 의존성 주입을 도와주는 DI 컨테이너로써, 강하게 결합된 클래스들을 분리하고, 애플리케이션 실행 시점에 객체 간의 관계를 결정해줌으로써 결합도를 낮추고 유연성을 확보해준다. = 상속보다 훨씬..
Shell : 명령어와 프로그램을 사용할 때 쓰는 인터페이스.. 커널과 사용자 간의 다리 역할, 사용자로부터 명령을 받아 그것을 해석하고 실행하는 역할. 명령 프롬프트 SSHSecure Shell Protocol, 네트워크 프로토콜 중 하나로 커퓨터와 컴퓨터가 인터넷과 같은 public networt를 통해 서로 통신을 할 때 보안적으로 안전하게 통신을 하기 위해 사용하는 프로토콜.보안된 네트워크 상에서 두 컴퓨터 간에 암호화된 데이터 통신을 가능하게 해준다.주로 원격으로 서버에 안전하게 접속하기 위해 사용되며, 사용자 인증, 명령 실행, 파일 전송 등 다양한 기능을 제공작동 방식암호화 : 공개 키 암호화를 사용하여 데이터를 암호화한다.인증 : 사용자가 서버에 접속하려 할 때, SSH는 사용자의 신원을 ..
레드-블랙 트리자가 균형 이진 트리.모든 노드는 빨간색 또는 검은색이다.루트 노트든 검은색이다.모든 리프노드들은 검은색이다.(NIL : Null Leaf, 자료를 갖지 않고 트리의 끝을 나타내는 노드)빨간색 노드의 자식은 검은색이다. = 빨간색 노드가 연속으로 나올 수 없다.모든 리프노드에서 Black Depth는 같다. = 리프노드에서 루트노드까지 가는 경로에서 만나는 검은색 노드의 개수가 같다.Java의 HashMap 사이즈가 64가 넘을 때에 레드 블랙트리를 사용하고 TreeMap 또한 레드 블랙트리를 사용레드-블랙 트리 삽입 과정새로운 노드는 항상 빨간색으로 삽입한다. = 빨간색 노드가 연속으로 2번 나타날 수 있다.삼촌 노드가 검은색이라면 -> RestructuringN, P, G를 오름차순으로..
도커 : 컨테이너 기반의 오픈소스 가상화 플랫폼 도커를 사용하면 OS 환경 설정, 언어, 라이브러리, 시스템 도구 등이 설치된 환경을 그대로 이미지로 빌드할 수 있다.개발 환경에서 만들어진 이미지를 프로덕션 서버에 전달하고, 이미지를 기반으로 컨테이너를 생성하고 실행하면 된다. 표준성 : 다양한 언어와 프레임워크를 사용한 서비스들은 제각기 다른 배포 방법을 가지고 있다. 하지만 이를 도커를 통해 패키징하여 컨테이너를 만든다면, 어떤 언어, 프레임워크, 런타임을 사용하던 관계없이 모두 동일한 배포 프로세스를 갖게 된다. 확장성, 이식성 : 도커가 설치된 환경이라면 어디서든 컨테이너를 실행 가능하다. 이를 통해 프로덕션 서버는 물론 개발 및 테스트 서버 구축과 운영도 매우 쉬워진다. 컨테이너의 설정은 보통 ..
B-Tree(Balanced Tree)자식 2개 만을 갖는 이진 트리를 확장하여 N개의 자식을 가질 수 있도록 고안된 것.좌우 자식 간의 균형이 맞지 않을 경우에는 매우 비효율적이라, 항상 균형을 맞춘다는 점에서 균형 트리라고 불린다.최상위에는 단 하나의 노드 존재 = 루트 노드, 중간 노드를 브랜치 노드, 최하위 노드를 리프 노드라고 한다. Page디스크와 메모리(버퍼풀)에 데이터를 읽고 쓰는 최소 작업 단위.일반적인 인덱스를 포함해 PK와 테이블 등은 모두 페이지 단위로 관리된다.따라서 만약 쿼리를 통해 1개의 레코드를 읽고 싶더라도 결국은 하나의 블록을 읽어야 하는 것이다.그래서 페이지에 저장되는 개별 데이터의 크기를 최대한 작게 하여, 1개의 페이지에 많은 데이터들을 저장할 수 있도록 하는 것이 ..
Static vs DynamicStatic Pages : 데베에서 정보를 가져오거나 등 별도의 서버에서의 처리가 없어도, 사용자들에게 보여줄 수 있는 페이지어떠한 사용자가 오던간에 동일한 페이지를 보여준다.ex) image, html, css, javascript 파일과 같이 컴퓨터에 저장되어 있는 파일들Dynamic Pages서버에서 데베에서 정보를 가져와서 처리하는 것처럼, 어떠한 요청에 의하여 서버가 일을 수행하고 해당 결과가 포함된 파일을 보여주는 페이지사용자들마다 다른 페이지가 보여질 수 있다. Web Server vs WAS(Web Application Server)Web Server웹 서버는 클라이언트가 요청한 정적인 콘텐츠를 HTTP 프로토..