WIL 4주차(지수) - Spring 으로 db 연동하기
web진행사항
- Entity 생성
- Repository 생성
소스코드는 깃 허브 에서 보실 수 있습니다.
Entity 생성
- BoardEntity
- CategoryEntity
- CommentEntity
- LikedEntity
- MessageEntity
- UserEntity
Repository 생성
- BoardRepository
- CategoryRepository
- CommentRepository
- LikedRepository
- MessageRepository
- UserRepository
느낀 점
고민했던 부분
- mysql VS h2
- 이번에 mysql을 바로 사용해 프로젝트를 진행한다고 해서 h2를 사용하지 않을까 고민했다.
- 하지만 mysql을 바로 사용하면 @Transactional 코드를 사용해 test 코드에 변동을 줘야하는데 product 코드와 달라 h2 쓰는게 좋지 않을까????? 라는 생각으로 일단 h2 사용하기로 했다.
- 아직 잘 모르겠다…
- package 구조
- 기존에는 controller, service, repository, domain 과 같이 계층 단위로 패키지를 나눴었다.
- 최근 공부를 하면서 class에 public 생성을 하지 않으면 package private을 적용 받기 때문에 하나의 도메인은 하나의 패키지에 모아 응집도를 높이고, 결합도를 낮추기 위해 패키지 구조를 context 단위로 변경 하였다.
- 의존성 방향을 고려하여 domain, infra, usecase로 context를 세분화 하여 패키지 구조를 잡았다.
- TDD 방법
- 최근 TDD를 공부하며 프로젝트를 진행하고 있어 이번 클론코딩에서도 TDD로 개발해보려 하였지만 시간 부족으로 일단은 기존에 방식대로 logic 위주로 짤 생각이다.
해결못한 부분
- Spring Application을 runner 패키지로 옮기고 난 후에 build는 문제 없었지만, SpringBootTest에서는 spring Context를 불러오지 못하는 것 같다.
- 아마 component scan에 실패하는 에러 코드인 것 같은데, SpringBootTest에서
@SpringBootTest(clkasses = SpringBootRunner.class) class Test() {...}
를 사용해봤지만 여전히 해결 못한 상태이다.
- 아마 component scan에 실패하는 에러 코드인 것 같은데, SpringBootTest에서
부족한 부분
- JPA는 우선순위에서 밀어두고 안하고 있었더니 연관관계 너무 머리 아파요 ㅜㅜ
후기
- 연관관계 머리 아픈데 리더님이 스키마 다 짜주셔서 넘나 행복했습니다.
- 시험 끝났는데 SPRING 팀 ㅎㅇㅌ!