Notice
Recent Posts
Recent Comments
Link
«   2026/01   »
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
Tags more
Archives
Today
Total
관리 메뉴

나만의 개발 로그 | 고민 로그

23.02.01 TIL 본문

TIL&WIL

23.02.01 TIL

ultramancode 2023. 2. 2. 02:40

☑️ 엔티티 이름 vs 테이블 이름

도메인 모델의 이름은 코드 안에서, 테이블 이름은 DB·SQL 매퍼에서 사용

 
@Entity 
@Table(name = "orders") // 실제 RDB 테이블명 
public class Order { … } // JPQL · Querydsl 에서 쓰일 도메인 이름

 

구분 어디서 쓰나 왜 분리하나
클래스명 (Order) JPQL, Querydsl, 단위 테스트 도메인 용어를 그대로 표현 → 가독성 ↑
테이블명 (orders) JDBC, SQL 매퍼(MyBatis 등) 예약어·네이밍 규칙(복수형) 충돌 방지

@Table 한 줄로 DB 네이밍 규칙을 따르면서도, 코드 쪽 도메인 용어 일관성을 유지할 수 있음!


☑️  @NoArgsConstructor(access = PROTECTED) 를 쓰는 이유

@NoArgsConstructor(access = AccessLevel.PROTECTED) 
@Entity 
public class User { … }

 

이점 설명
JPA 프록시가 사용 JPA가 리플렉션으로 객체를 만들 때 기본 생성자가 필요
외부 생성 차단 protected 로 막아 두면 생성자 의도를 모르는 곳에서 new 할 수 없음
 

☑️  IntelliJ Live Template – “psvm”도 직접 만든다

  1. Settings → Live Template → Java
  2. + 클릭 → Abbreviation에다가 원하는 단축키 명 쓰고 내용 작성

 

반복 구문(try-with-resources, Builder 패턴 등) 을 템플릿으로 등록해 두면 코딩 속도가 체감될 만큼 빨라진다!


☑️   Docker로 PostgreSQL 1분 세팅

컨테이너 실행

docker run -d
-p 5432:5432 
-e POSTGRES_USER=devuser 
-e POSTGRES_PASSWORD=devpass 
-e POSTGRES_DB=messenger 
--name pg_local 
postgres:16

 

옵션 의미
-p 5432:5432 호스트 5432 ↔ 컨테이너 5432 포트 매핑
-e POSTGRES_* 초기 계정·DB 생성
-d 백그라운드(detached) 모드
postgres:16 공식 이미지 태그
 

컨테이너 셸 접속

docker exec -it pg_local bash # 컨테이너 내부로 
su - postgres # postgres 사용자 전환 
psql -U devuser -d messenger # psql 클라이언트 접속
  • \l : 데이터베이스 목록
  • \dt : 테이블 목록
  • \q : 종료

참고

  • Docker Desktop에서 볼륨을 지정해 두면 데이터가 컨테이너 재시작에도 유지된다!

'TIL&WIL' 카테고리의 다른 글

23.02.06 TIL  (0) 2023.02.07
23.02.03 TIL  (0) 2023.02.04
23.01.31 TIL  (0) 2023.02.01
23.01.30 TIL  (2) 2023.01.31
23.01.26 TIL  (0) 2023.01.26
Comments