[TDD] Chapter1 #3. 모두를 위한 평등
·
Reference/Test-Driven Development
📌 VO 패턴(Value Obejct pattern) 객체를 값처럼 쓸 수 있다. 객체의 인스턴스 변수가 생성자를 통해서 설정된 후에는 결코 변하지 않음을 보장한다. (불변객체) 별칭 문제에 대해 걱정할 필요가 없다. 별칭 문제 : 인스턴스 참조를 공유하는 복사본을 수정했을 때 원본이 같이 수정되는 현상 더보기 ✒️ VO 패턴 가볍게 읽고 넘기려다가 재밌는 내용을 봐서 정리해보았다. 사람의 나이를 나타내기 위해서는 어떤 변수 타입을 나타내야 할까? Integer Boolean String 정답은 '없다'. 왜냐하면, Integer나 String은 age가 가지지 않는 속성과 연산들을 가지고 있기 때문이다. 두 나이를 더하거나 빼고, 곱하거나 나누고, 부정적 연령을 허용한다는 얼토당토 않는 연산이 가능해진..
[Effective-Java] Chapter9 #66. 네이티브 메서드는 신중히 사용하라
·
Reference/Effective-Java
💡 네이티브 메서드를 사용하려거든 한번 더 생각해보라. 사용하더라도 최소한만 사용하고 철저히 테스트하라. JAVA Native Method (JNI) 보통 서로 다른 장, 단점을 갖고 있는 JAVA와 C++, 이 두 언어를 결합할 수만 있으면 큰 시너지를 발휘할 수 있다고 생각한다. 뭐, 어느 정도의 범위에서는 그렇긴 하지만...그러나 왠만하면, 정말 roughexistence.tistory.com JNI를 어떻게 사용하는지 궁금해서 찾아봤는데...어...잘 봤습니다. 📌 JNI(Java Native Interface) Java 프로그램이 Native method를 호출하는 기술 C나 C++같은 native programming language로 작성한 method Native method의 쓰임 레지스..
[JPA] Value Type
·
Backend/Spring Boot & JPA
이 포스트는 김영한님의 "자바 ORM 표준 JPA 프로그래밍"을 참조하였음을 알립니다. 📕 목차 1. 기본 값 타입 (Basic value type) 2. 임베디드 타입 (Embedded type, 복합 값 타입) 3. 값 타입과 불변 객체 4. 값 타입 비교 5. 값 타입 컬렉션 (Collection value type) ✒️ 값 타입의 종류 Entity 타입은 식별자를 통해 지속해서 추적할 수 있지만, 값 타입은 추적할 수 없는 단순 수치 정보다. 모든 값 타입은 Entity의 Life cycle에 의존하므로 컴포지션(composition) 관계가 된다. • 기본값 타입 ∘ 자바 기본 타입 ∘ 래퍼 클래스 ∘ String • 임베디드 타입 • 컬렉션 값 타입 1. 기본 값 타입 (Basic value..
[Clean Code] 9. 단위 테스트
·
Reference/CleanCode
📕 목차 1. TDD 법칙 세 가지 2. 깨끗한 테스트 코드 유지하기 3. 깨끗한 테스트 코드 4. 테스트 당 assert 하나 5. F.I.R.S.T 1. TDD 법칙 세 가지 실패하는 단위 테스트를 작성할 때까지 실제 코드를 작성하지 않는다. 컴파일은 실패하지 않으면서 실행이 실패하는 정도로만 단위 테스트를 작성한다. 현재 실패하는 테스트를 통과할 정도로만 실제 코드를 작성한다. 공감이 안 간다면 TDD 개발론에 대해 공부해보면 된다. 정말 재밌고 흥미로운 프로그래밍 관점을 터득할 수 있게 된다. :) 다만 이렇게 하면 실제 코드를 사실상 전부 테스트하는 테스트 케이스가 나온다. 방대한 양의 테스트 코드는 심각한 관리 문제를 유발하기도 한다. 2. 깨끗한 테스트 코드 유지하기 💡 테스트 코드는 실제 ..