목차 1. 클래스 체계 2. 단일 책임 원칙 3. 낮은 결합도와 높은 응집도 4. 클래스는 변경하기 쉬워야 한다. 1. 클래스 체계 클래스를 정의하는 표준 자바 관례에 따르면 다음과 같은 순서이다. static public 상수 > private 변수 공개 함수 > private 함수 비공개 함수는 자신을 호출하는 공개 함수 직수에 넣는다. 추상화 단계가 순차적으로 내려가 가독성이 높아진다. 캡슐화 클래스를 개발할 때 기본적으로 구현을 감추고 외부 객체와 상호작용 하는 부분만 노출한다. 필드를 private으로 제한, 외부의 잘못된 사용을 방지한다. 2. 단일 책임 원칙 (SRP) 클래스는 함수와 마찬가지로 작아야 한다. 작은 클래스는 각자 맡은 책임이 하나며, 변경할 이유가 하나며, 다른 클래스와 협력..
목차 1. 경계란 2. 외부 코드 사용하기 3. 학습 테스트 1. 경계란 프로젝트에서 오픈소스, 라이브러리 같은 외부 코드를 자주 사용한다. 우리 코드는 외부 코드의 인터페이스를 제공받아 사용하는데 제공자와 사용자 사이의 시스템 경계에서는 문제가 생길 소지가 많기 때문에 외부 코드를 우리 코드에 깔끔하게 통합 할 수 있도록 경계를 잘 지어야 한다. 2. 외부 코드 사용하기 캡슐화 외부 코드를 사용하는 부분을 캡슐화해 데이터를 보호하고 외부 인터페이스가 변할 경우 우리 코드에 미치는 영향을 최소화 한다. java.util.Map 인터페이스를 예로 든다. Map sensors = new HashMap(); ... Sensor s = sensors.get(sensorId ); Map 인터페이스가 제공하는 cl..
목차 1. 자료구조 vs 객체 2. 객체 - 디미터 법칙 3. DTO 4. Active Record vs Data Mapper 1. 자료 구조 vs 객체 자료 구조(Data Structure) 객체(Object) 데이터 그 자체 비즈니스 로직과 관련 자료를 공개한다. 자료를 숨기고 추상화한다. 자료를 다루는 함수만 공개한다. 변수 사이에 조회 함수와 설정 함수로 변수를 다룬다고 객체가 되지 않는다. (getter, setter) 추상 인터페이스를 제공해 사용자가 구현을 모른 채 자료의 핵심을 조작할 수 있다. 예시 (1) Vehicle - 자료 구조 조회 함수와 설정 함수로 자료를 공개한다. public interface Vehicle { double getFuelTankCapacityInGallons(..
목차 1. 주석을 최대한 쓰지 말자. 2. 좋은 주석 3. 나쁜 주석 4. 주석보다 annotation 5. JavaDoc 1. 주석을 최대한 쓰지 말자. 프로그래밍 언어를 치밀하게 사용해 의도를 표현할 능력이 있다면, 주석은 거의 필요하지 않다. 대부분 주석 없이는 자신을 표현할 방법을 찾지 못해 할 수 없이 주석을 사용한다. 따라서 코드를 깔끔하게 정리하고 표현력을 강화하는 방향으로 에너지를 쏟아야 한다. 코드는 변화하고 진화한다. 주석은 언제나 코드를 따라가지는 않는다. 코드만이 자기가 하는 일을 진실되게 말한다. 따라서 주석을 가능한 줄이도록 꾸준히 노력해야 한다. 1) 주석은 나쁜 코드를 보완하지 못한다. 표현력이 풍부하고 깔끔하면 주석이 거의 없는 코드가 복잡하고 어수선하며 주석이 많이 달린 ..
- Total
- Today
- Yesterday
- 클린코드
- 계층형 아키텍처
- Ubiquitous Language
- 트랜잭셔널 아웃박스 패턴
- 폴링 발행기 패턴
- Spring Data JPA
- HTTP 헤더
- Stream
- Git
- named query
- 마이크로서비스 패턴
- H2
- MySQL
- 이벤트 스토밍
- Spring Boot
- http
- 스프링 예외 추상화
- mockito
- 육각형 아키텍처
- kafka
- clean code
- 도메인 모델링
- java8
- Spring
- 학습 테스트
- JPA
- 스프링 카프카 컨슈머
- ATDD
- TDD
- spring rest docs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |