Project 15

spring boot 사이드 프로젝트[5] : service, repository 초기 작성

데이터베이스를 entity를 이용해 다루는 레이어 repository, 그리고 이 repository를 이용해 비즈니스 로직을 구현하는 service레이어의 초기 작성을 한다. user의 repository, service를 작성하기 위해 user도메인 안에 repository, service 패키를 만들어 그 밑에 클래스 파일을 생성한다. Repository 작성 repository는 이렇게 jpaRepository를 상속받은 인터페이스로 생성한다. 이렇게 인터페이스로 만들어도 service에서 의존성 주입을 통해 사용이 가능한 건 spring data jpa가 이 인터페이스를 기반한 구현체를 실행 시 생성해서 프록시 객체로 주입해주는 것 때문이다. 구현체에는 jpaRepository 에 정의되어있는 ..

Project/9uin 2023.05.23

spring boot 사이드 프로젝트[4] : 도메인 엔티티, DTO 설계 및 특별한 패키지 구조

데이터베이스를 설계하기 위해 E-R다이어그램을 기반한 도메인 설계를 시작했다. 보통 스프링 부트 프로젝트들을 보면 service , controller, repository 이렇게 패키지를 나눠서 진행하는 경우가 많은데, 우리는 조금 다른 방식으로 진행했다. domain에 속하는 user, comment, post, profile을 먼저 만들고, 그 안에 controller, service , repository등을 만드는 것이다. 이 패턴의 장점은 각 엔티티와 연관된 레이어를 찾는 것이 굉장히 쉽다는 점이다. 단점은 필요 이상으로 패키지 개수가 늘어날 수 있다는 점인데, 나는 이 패턴을 통해 파일을 찾는 것이 더 유용하다 판단해서 이 방법을 선택했다. 도메인은 크게 User, profile, post,..

Project/9uin 2023.05.22

spring boot 사이드 프로젝트[3] : 개발 환경 설정

다른 팀원과 협업을 위해 개발 환경을 통일할 필요가 있었다. 깃허브에 커밋메시지에 버전 정보를 명시해 헷갈리지 않도록 했다. spring boot 환경 build tool : gradle java : 17 spring boot : 3.0.6 packaging : jar 스프링 부트 프로젝트 생성 시 설정한 것은 이렇다. 사용할 DB는 마리아DB를 사용하기로 했다. 추후 테스트를 위해 h2를 고려할 수 도 있을 것 같다. 사용할 IDE는 인텔리제이를 선택했다. spring boot 개발에 유용한 다양한 도구들을 제공한다. gradle을 빌드 관리 툴로 골랐다면 build.gradle파일을 통해 의존성이나 설정들을 관리하게 된다. 기본적으로 마리아DB를 선택했기에 이것부터 먼저 연동했다. dependenci..

Project/9uin 2023.05.22

spring boot 사이드 프로젝트[2] - E-R 다이어그램

E-R 다이어그램을 작성했다. 툴은 draw.io를 이용했다. 모든 entity에 createAt, updateAt필드가 추가된다. 이는 생성, 수정 일자를 기록하기 위한 필드들이다. 사용자, 작성글, 댓글 , 프로필로 크게 나눌 수 있다. 관계는 까마귀 발 형식으로 작성했다. 여기서, 연관관계에 대해서 더 깊게 고민하게 되었다. 이 프로젝트에서 주요 관계는 다음과 같다. 다대다 연관관계를 위한 중간 엔티티 생성 1. 게시글을 작성할 때, 어떤 기술 스택의 개발자를 구인할 지 명시한다. 게시글과 기술 스택 태그 간 다대다 관계. 게시글에는 여러 태그가 달릴 수 있고, 태그는 여러 게시글에 사용될 수 있다. 2. 게시글을 작성할 때, 구하고자 하는 직군을 명시한다. ex) 백엔드 개발자 2명 게시글과 직군..

Project/9uin 2023.05.22