전체 글193 Primary Key, Foreign Key 슈퍼키 해당 객체를 고유하게 식별할 수 있는 속성들의 집합 쉽게 말하면 중복되지 않는(유일성을 만족하는) 모든 요소들을 말한다. ex) 주민등록번호, 학번, 아이디+비밀번호 ... 후보키 슈퍼키 중 최소한의 갯수로 객체를 식별할 수 있는 키 ex) 주민등록번호, 학번 기본키(Primary Key) 후보키 중 유일성과 최소성을 만족하는 하나의 키 여러개가 가능하다면 그 중 하나만 기본키가 될 수 있다. 유일성을 만족해야 하므로 중복되선 안되고, 식별을 위한 키이기 때문에 null일 수 없다. 대체키 후보키 중 기본키를 제외한 나머지 키 외래키(Foreign Key) 다른 테이블의 기본키를 참조하여 조회할 수 있도록 연관관계를 만들기 위한 키이다. 외래키의 주인을 부모테이블, 외래키를 가지고 있는 테이블을 .. 2023. 8. 20. RDBMS의 정규화 정규화의 목표 데이터의 중복성을 허락하지 않음으로서 무결성을 유지하며, DB의 용량을 줄일 수 있다. 정규화 단계 제 1 정규화 테이블의 컬럼이 하나의 값만을 가지도록 테이블을 분해하는 것 제 2 정규화 제 1 정규화를 거친 테이블에서 완전 함수 종속을 만족하도록 테이블을 분해하는 것 완전 함수 종속이란 각 컬럼이 모두가 기본키 전부를 알아야만 식별할 수 있도록, 즉 기본키의 집합에 종속되어야 한다. 아래 그림1에서 성적은 기본키 학생번호와 강좌이름에 동시에 종속되어 있기에 완전함수 종속을 만족하지만, 강의실은 강좌이름만으로 식별될 수 있기에 2번 그림과 같이 테이블이 분리되어야 한다. 제 3 정규화 제 2 정규화를 거친 테이블에 대해서 이행적 종속을 없애도록 테이블을 분해하는 것 이행적 종속이란 A -.. 2023. 8. 18. 23.08.17 이번 프로젝트에서는 3개 이상의 필드를 가지고 있는 dto는 builder 패턴을 사용해보기로 했다. 그 이유는 2개 이하일 때는 builder의 장점을 살리기도 힘들고, 오히려 builder를 적용하는데 드는 비용이 더 크다고 생각했기 때문이다. 또한 entity에서도 필드가 너무 많으면 @Setter 보단 dto를 사용하기로 한다. @Setter는 후에 추적하기 힘들기 때문. 덱을 삭제할 때 archived된 덱만 삭제가 가능하도록 만들기로 했기 때문에 서비스에서 해당 기능을 구현할 때 deck.getIsDeleted를 사용하려 했으나 get으로 가져오지 못하는 상황이 발생했다. 다른 필드들은 정상적으로 get으로 가져올 수 있었기에 무엇이 문제인가 했더니, @Getter는 boolean 타입의 필드.. 2023. 8. 17. mvc 패턴 MVC란 Model-View-Controller의 약자로, 사용자 인터페이스 데이터 논리 및 제어를 구현하는데 널리 사용되는 소프트웨어 디자인 패턴이다. 비즈니스 로직과 화면을 구분하는데 중점을 두는데, 이러한 분리는 더 나은 관심사 분리와 관리를 제공한다. 그 외에 MVVM(모델,뷰,뷰모델), MVP (모델-뷰-프리젠터), MVW (모델-뷰-왓에버)가 있다. MVC는 위에서 말한 것과 같이 아래와 같이 정리할 수 있다. 모델: 데이터와 비즈니스 로직을 관리합니다. 뷰: 레이아웃과 화면을 처리합니다. 컨트롤러: 명령을 모델과 뷰 부분으로 라우팅합니다. 모델은 일반적으론 뷰에게, 또는 업데이트 된 뷰를 제거하기 위해 가끔 컨트롤러에게 데이터가 어떻게 변경됐는지, 어떤 데이터를 보여줄지 지정하는 역할을 한다.. 2023. 8. 17. 이전 1 ··· 10 11 12 13 14 15 16 ··· 49 다음