지우쓰 개발일기
본 포스팅은 자바 ORM 표준 JPA 프로그래밍 (김영한 저)을 읽고 정리한 내용입니다. 자바 ORM 표준 JPA 프로그래밍 에이콘 오픈 소스 프로그래밍 시리즈. 이 책은 JPA 기초 이론과 핵심 원리, 그리고 실무에 필요한 성능 최적화 방법까지 JPA에 대한 모든 것을 다룬다. www.aladin.co.kr 1. JPA JPA(Java Persistence API)는 자바 진영의 ORM 기술 표준이다. JPA가 제공하는 API를 사용하면 객체를 DB에 저장하고 관리할 때, 개발자가 직접 SQL을 작성하지 않아도 된다. JPA가 개발자 대신 적절한 SQL을 생성해서 DB에 전달하고, 객체를 자동으로 Mapping 해준다. JPA는 내부적으로 JDBC API를 활용하는데, 개발자가 직접 JDBC API를 ..
6장| 객체와 자료 구조 💻 자료 추상화 "변수를 private으로 선언하더라도 각 값마다 getter, setter 함수를 제공한다면 구현을 외부로 노출하는 셈이다. 추상 인터페이스를 제공해 사용자가 구현을 모른 채 자료의 핵심을 조작할 수 있어야 진정한 의미의 클래스다." (p.119) 구체적인 Point 클래스 @Getter @Setter public class Point { private double x; private double y; } 추상적인 Point 클래스 public interface Point { double getX(); double getY(); void setCatesian(double x, double y); double getR(); double getTheta(); voi..
5장 | 형식 맞추기 💻 형식을 맞추는 목적 "코드 형식은 의사소통의 일환이다." (p.96) 💻 적절한 행 길이를 유지하라 신문 기사처럼 작성하라 "신문이 사실, 날짜, 이름 등을 무작위로 뒤섞은 긴 기사 하나만 싣는다면 아무도 읽지 않으리라." (p.98) 개념은 빈 행으로 분리하라 : 패키지 선언부, import 문, 각 함수 등 개념 사이의 줄바꿈은 가독성을 높인다. 세로 밀집도 & 수직 거리 : 연관성이 높은 코드 행은 세로로 가까이 배치 변수: 사용하는 위치에 최대한 가까이 선언 인스턴스 변수: 잘 알려진 위치에 모아서 선언 종속 함수: 호출하는 함수 다음 호출되는 함수 정의 개념적 유사성: 직접적 종속성 외 명명법, 기본 기능이 유사하면 가까이 배치 세로 순서 고차원 → 저차원 중요한 개념 ..
3장 | 함수 💻 작게 만들어라 "함수를 만드는 첫째 규칙은 '작게!'다. 함수를 만드는 둘째 규칙은 '더 작게!'다." (p.42) 조건문에 들어가는 블록은 한 줄이어야 한다. 💻 한 가지만 해라 "함수는 한 가지를 해야 한다. 그 한 가지를 잘 해야 한다. 그 한 가지만을 해야 한다." (p.44) 저장된 함수 이름 아래에서 추상화 수준이 하나인 단계만 수행해야 한다. 의미 있는 다른 이름으로 다른 함수를 추출할 수 있다면 그 함수는 여러 작업을 하고 있는 것이다. 💻 함수 당 추상화 수준은 하나로 추상화 수준을 섞으면 표현이 근본 개념인지 세부사항인지 구분하기 어려워 헷갈리게 된다. 내려가기 규칙 위에서 아래로 이야기처럼 읽혀야 좋다. 함수 추상화 수준이 한 번에 한 단계씩 낮아진다. 💻 Switc..
2장 | 의미 있는 이름 💻 의도를 분명히 밝혀라 맥락이 코드 자체에 명시적으로 드러나도록 이름에 정보를 함축하라. 나쁜 예 int d; // 경과 시간(단위: 날짜) 좋은 예 int elapsedTimeInDays; int daysSinceCreation; int daysSinceModification; int fileAgeInDays; 💻 그릇된 정보를 피하라 코드의 의미를 흐리지 않도록 하라. 널리 쓰이는 의미가 있는 단어를 사용하지 마라 ex) hp, aix, sco 그룹 변수 이름에 List를 사용하지 마라 ex) accountList → accountGroup, accounts 서로 유사한 이름을 사용하지 마라 ex) XYZController, ForEfficientHandling, XYZCo..