일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 아이템 22
- Github Actions Cache
- 아이템29
- 도메인 주도 개발 시작하기
- java
- 아이템 24
- 아이템 27
- criteriaquery
- ddd
- cicd
- 자바 ORM 표준 JPA 프로그래밍
- jdbc
- 아이템 28
- 최범균
- 아이템 26
- 객체지향 쿼리 언어
- Immutable Object
- 아이템 23
- JPQL
- 이펙티브자바
- JPA
- 아이템 25
- Domain Driven Design
- Docker Layer
- GitHub Actions
- 일ㅊ
- 아이템30
- Spring Batch
- 아이템31
- Docker cache
- Today
- Total
목록2024/06 (13)
코딩은 마라톤
아이템 22. 인터페이스는 타입을 정의하는 용도로만 사용하라인터페이스는 자신을 구현할 클래스의 인스턴스를 참조할 수 있는 "타입" 역할을 한다.클래스가 어떤 인터페이스를 구현한다는 것은 자신의 인스턴스로 무엇을 할 수 있는지를 클라이언트에게 알려주는 것! 위 용도로 인터페이스를 사용해야 한다. 안티 패턴 - 상수 인터페이스static final 필드로만 가득 찬, 메서드는 없는 인터페이스public interface NumberConstants { static final double ONE_NUMBER = 1.111111; static final double TWO_NUMBER = 2.222222; static final double THREE_NUMBER = 3.333333;} 클래스..
아이템 19. 상속을 고려해 설계하고 문서화하라. 그러지 않았다면 상속을 금지하라문서화해놓지 않은 '외부' 클래스를 상속하는 것은 위험하다.프로그래머의 통제권 밖에 있고, 언제 어떻게 변경되는지 알 수 없다. 상속용 클래스는 재정의할 수 있는 메서드들을 내부적으로 어떻게 이용하는지(자기사용) 문서로 남겨야 한다.재정의할 수 있는 메서드public과 protected 메서드 중 final이 아닌 모든 메서드즉, 재정의 가능 메서드를 호출할 수 있는 모든 상황을 문서로 남겨야 한다. 예시@implSpec 태그를 붙여 자바독 도구가 절을 생성해준다.위 설명에서는 iterator 메서드를 재정의하면 remove 메서드의 동작에 영향을 줄 수 있음을 명시한다.iterator 메서드는 재정의할 수 있는 메서드다. ..
아이템 16. public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라class Point { public double x; public double y;} 위와 같은 클래스는 데이터 필드에 직접 접근할 수 있으니 캡슐화의 이점을 제공하지 못한다.또한 API 수정 없이 내부 표현을 바꿀 수 없으며, 불변식 보장 못하고, 외부에서 필드에 접근할 때 부수 작업을 수행할 수도 없다. 따라서 필드들을 private으로 바꾸고 public 접근자 (getter)를 추가한다.class Point { private double x; private double y; public double getX() { return x; } public double getY() { re..
아이템 13. clone 재정의는 주의해서 진행하라Cloneable : 복제해도 되는 클래스임을 명시하는 용도의 인터페이스-> 의도한 목적을 제대로 이루지 못함. 가장 큰 문제 : clone 메서드가 선언된 곳이 Cloneable이 아닌 Object이고, protected 접근제어자그래서 Cloneable을 구현하는 것만으로는 외부 객체에서 clone 메서드를 호출할 수 없다. Cloneable이 하는 일Cloneable 인터페이스를 구현하지 않고 Object's clone 메서드 사용시 'CloneNotSupportedException' 발생Object의 protected 메서드인 clone의 동작 방식을 결정Cloneable을 구현한 클래스의 인스턴스에서 clone을 호출하면 그 객체의 필드들을 하..
5월 31일 금요일....어제 너무 피곤해서 퇴근하자마자 뻗었네요.....작심3일이 돼버렸지만 다시 파이팅해서 읽어보겠습니다ㅜㅜ! 아이템 10. equals는 일반 규약을 지켜 재정의하라equals() 메서드는 뭘까?equals 메서드는 객체끼리 내용을 비교할 수 있는 메서드이고, Object 클래스에 정의되어있다. equals 메서드를 재정의하지 않는 것이 좋을 경우각 인스턴스가 본질적으로 고유할 경우값을 표현하는 게 아닌 동작하는 객체를 표현하는 클래스일 경우 (ex.Thread)인스턴스의 논리적 동치성(logical equality)를 검사할 일이 없을 경우java.util.regex.Pattern은 equals를 재정의해서 두 Pattern의 인스턴스가 같은 정규표현식을 나타내는지 검사하는 방법(..