(Sparta_WIL_01) 1주차 익숙하지 않은 JPA
(Sparta_WIL_01) 1주차 익숙하지 않은 JPA
1. Log
1. 공부와 생각해야 할 새로운 Key
- Flyway => DDL 관련 로그를 남겨서 공통된 테이블을 바라보는 방법
- Docker => 굳이 DB를 설치하지말고 Docker를 띄워서 진행하면 편함.
- JPA => 엔티티 / 외래키 / N+1 패턴
2. 문제의 기록
1. 설계의 고민
- 프로젝트에 투입되고 신규 시스템을 보거나 개발을 진행해야할 때, 밑바닥부터 테이블의 연관관계를 고민하거나 고려하지 않았음.
- 보통 선임이 있거나 어느정도 구축되어 있는 상태에서 진행을 하기 때문에 엔티티를 구성하는 경험이 부족함.
- 그렇다면
- 지금 운영하는 시스템도 누군가 의도를 가지고 만들었을텐데 의도가 뭘까?
- 추가로 이 설계에 관한 패러다임을 가질 방법찾기
2. 깃을 다루는 방법
- 깃을 다루는 것 자체가 익숙하지 않음.
- 평소에 하던 것만 진행하기 때문에 pull, push 정도..
- 이건 내용이 많은건 아닌것 같고 간단히 명령어나 사용방법, 구조 등등은 공부해서 조금 더 찾아봐야할듯함.
3. 1주차 과제 관련
1. 작업내용
- 프로젝트 생성
- Build Tool : Gradle (Java 21)
- Database : PostgreSQL (localhost:5433/sparta)
- Flyway migration location : classpath:db/migration
- Swagger configuration
- BaseEntity 생성
- Product, Entity 생성
- 상품 상태 관련하여 ProductStatus Enum 생성
- Category Entity 생성
- Production Entity 생성
- 옵션 종류 관련하여 ProductOptionType Enum 생성
2. 고민이 되었던 부분과 어떻게 대응하셨는지 남겨주세요
- Product Option에 option_type, option_value두고 이것에 대한 재고 stock를 둔 상황입니다.
- 이때 상품이 상품 옵션을 1개만 선택할 수 있다면 재고가 문제가 없지만,
- 상품이 두가지 이상의 옵션(빨강+L사이즈)을 동시에 가져야하는 상황이라면,
- 한가지 옵셥으로 stock을 정의 내릴 수 없는 상황이 발생하였습니다.
- 이때 두가지 방법이 있을 것 같습니다.
- 사용가능한 옵션의 수를 컬럼으로 정해서, 사용자에게 최대 옵션의 수를 제공하는 방법
- Product id를 FK로 둔 옵션들을 모아둔 엔티티를 만드는 방법
- 그럼 큰 시스템이라면 회사내부 인프라 환경이나, 자바 등등 무엇을 고려해서 어떤 근거로 판단을 해야할까요..?
This post is licensed under CC BY 4.0 by the author.