본문 바로가기
개발

파일럿 프로젝트 시작하기 - 프로젝트 세팅

by 공덕뉸나 2023. 8. 16.

블로그를 오랜만에 쓰는 것 같다.

그동안 코딩테스트도 준비하고 강의 듣느라 프로젝트 시작하면 다시 정리 시작해야지 싶어서 이제야 쓰게 된다..

여러 가지를 동시에 공부하고 싶은데 하나에 집중하면 그거만 파게 돼서 잘 안된다.. ㅎㅎ

이직준비를 하면서 실무에서 쓰던 코드들 감을 잃으면 안될 것 같기도 하고 SpringBoot2 버전으로 개발 했었는데 3버전으로도 개발 해보려고 혼자 프로젝트를 진행하려고 마음 먹었다.

 

그래서 아마 앞으로 프로젝트를 진행하면서 알게된 것들이나 기록해야할 것 같은 것들 위주로 글을 적을 것 같다.

익숙한거 써야지 하고 DB를 mariadb 쓰려고 했는데 얼마전에 전에 다니던 회사분들 만났는데 그 때 팀장님이 mysql을 쓰라고...

간단하게 mariadb로 프로젝트 하나 만들고 mysql 써서 또 해봐야하나 고민중이다.

 

아무튼~ 나는 개발 툴로 IntelliJ ultimate 버전을 사용하고 깃은 github를 사용할 예정이다.

예전에 이클립스로 개발했었는데 매학기마다 새로운 버전 깔아서 바탕화면에 이클립스만 4-5개 있었던 기억이..ㅎ 그 땐 교수님 수업에 맞춰서 새롭게 다 깔아야하는줄..~~

근데 인텔리제이는 자동완성도 지원되고 이클립스 보다 빠른 것 같다.. 이거 사용하고 광명찾기..!! 

 

우선 나는 프로젝트 초기 세팅은 모두가 알고 있는 spring initializr를 사용했다.

혹시나 모르는 사람들을 위해,,

https://start.spring.io/

 

 

나는 Gradle을 사용하고 SpringBoot3 버전과 Java17을 사용했다.

 

그리고 dependencies는 간단하게 몇 가지만 넣고 추후 개발하면서 더 추가하려고 한다.

백엔드만 개발할지 프론트까지 개발할지도 고민이고.. 프론트를 한다면 서버사이드 렌더링으로 할지 클라이언트사이드 렌더링으로 할지도 아직 고민이다.

일단 thymeleaf로 제대로 코드를 짜본적은 없어서 넣어놔봤다..ㅎㅎ

 

여기까지 해서 import하면 프로젝트가 기본적으로 만들어진다. 

그리고 나는 application.yml을 사용하기 때문에 application.properties는 지우고 새로 만들어줬다.

프로젝트 별로 port가 겹치면 충돌나니까 안겹치게 설정해주고 이전 글에서 만들었던 DB 정보를 입력해준다.

 

show-sql은 말 그대로 sql을 볼 수 있는 옵션이다.

format_sql은 보여지는 쿼리를 보기 좋게 해준다.

use_sql_comments는 추가적인 주석을 표시해준다.

 

hibernate ddl-auto 옵션은 엔티티를 참고해서 애플리케이션 실행 시점에 하이버네이트에서 자동으로 DDL을 만들어주는 옵션이다.

update 옵션은 주어진 엔티티 구조에 따라서 데이터베이스를 변경한다는 것이다.

처음에는 테이블 스키마가 없기 때문에 시작은 create나 update로 해야 한다.

 

open-in-view가 false일 경우 트랜잭션을 종료할 때 영속성 컨텍스트가 닫히게 된다.

이는 DB Connection이 해제되지 않는 문제는 해결될 것이지만 트랜잭션 외부에서 lazy loading을 사용하면 예외가 발생함을 참고하자.

 

여기까지 하면 개발할 수 있는 세팅은 끝이 났다.

제대로 돌아가는지 확인하기 위해 간단하게 엔터티를 생성해서 테이블이 잘 삽입되는지 확인해봤다.

이렇게 만들고 실행하면

설정한대로 잘 생성되는 것을 볼 수 있다.

 

다음에는 ERDCloud를 사용해서 도메인 설계를 하고 다른 엔터티들을 추가로 만들어봐야겠다. 

오랜만(?)에 제대로된 프로젝트를 시작하려니까 뭔가 즐겁기도 하고 항상 팀원들이 있었는데 혼자 만들어보려니까 조금은.. 긴장되기도 하지만 만들다 보면 되겠지~! 그럼 이만. 망망!

 

'개발' 카테고리의 다른 글

엔티티 생성  (0) 2023.08.18
도메인 설계  (0) 2023.08.17
mariadb - DB 생성 및 IntelliJ 연동  (0) 2023.07.20
Docker로 mariadb 사용하기  (0) 2023.07.19
Swagger 적용하기 - SpringBoot3 버전  (0) 2023.07.18