SOLID 원칙 SRP (단일 책임 원칙) : 한 클래스는 하나의 책임만 가져야 한다. OCP (개방-폐쇄 원칙) : 소프트웨어 요소는 확장에는 열려 있으나 변경에는 닫혀 있어야 한다. LSP (리스코프 치환 원칙) : 서브 타입은 언제나 기반 타입으로 교체할 수 있어야 한다. ISP (인터페이스 분리 원칙) : 자신이 사용하지 않는 인터페이스는 구현하지 말아야 한다. DIP (의존성 역전 원칙) : 상위 모델은 하위 모델에 의존하면 안된다. 둘 다 추상화에 의존해야 한다. 추상화는 세부 사항에 의존해서는 안된다. 세부 사항은 추상화에 따라 달라진다. 1) SRP (단일 책임 원칙) : 한 클래스는 하나의 책임만 가져야 한다. (1) 함수를 구현할 때 예제 [클린코드] 3. 함수 2) OCP (개방-폐쇄..
1. 함수를 작게 만들어라 한 가지만을 하도록 만들기(함수 내 추상화 수준을 동일하게) : SRP 변경에 닫게 만들기 : OCP 예제 1) public static String renderPageWithSetupsAndTeardowns( PageData pageData, boolean isSuite ) throws Exception { boolean isTestPage = pageData.hasAttribute("Test"); //-- ① if (isTestPage) { // --② WikiPage testPage = pageData.getWikiPage(); StringBuffer newPageContent = new StringBuffer(); includeSetupPages(testPage, new..
목차 1. 상속관계 매핑 2. Mapped Superclass 매핑 정보 상속 1. 상속관계 매핑 관계형 데이터베이스는 상속 관계가 없지만 슈퍼타입 서브타입 관계라는 모델링 기법이 객체 상속과 유사 상속관계 매핑 : 객체의 상속 구조와 DB의 슈퍼타입 서브타입 관계를 매핑 @Entity @NoArgsConstructor @Getter @Setter public class Album extends Item { private String artist; } @Entity @NoArgsConstructor @Getter @Setter public class Book extends Item { private String author; } @Entity @NoArgsConstructor @Getter @Setter..
1. 의도를 분명히 밝혀라 변수나 함수 스리고 클래스 이름은 다음과 같은 질문에 모두 답해야 한다. 존재 이유는? 수행 기능은? 사용 방법은? 따로 주석이 필요하다면 의도를 분명히 드러내지 못했다는 말이다. int d; // 경과 시간(단위: 날짜) //-- X int daysSinceCreation; //-- O public List getThem() { //-- X if (cell[STATUS_VALUE] == FLAGGED) //-- X } public List getFlaggedCells() { //-- O if (cell.isFlagged()) //-- O } Member member = memberRepository.findById(); //-- X Member findMember = memb..
- Total
- Today
- Yesterday
- named query
- mockito
- 폴링 발행기 패턴
- 도메인 모델링
- Stream
- MySQL
- TDD
- 학습 테스트
- 이벤트 스토밍
- spring rest docs
- clean code
- Git
- 계층형 아키텍처
- 스프링 예외 추상화
- ATDD
- H2
- Ubiquitous Language
- JPA
- 육각형 아키텍처
- 스프링 카프카 컨슈머
- HTTP 헤더
- 마이크로서비스 패턴
- Spring
- Spring Boot
- Spring Data JPA
- java8
- 클린코드
- 트랜잭셔널 아웃박스 패턴
- kafka
- http
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |