목차
개요
Django나 Flask를 사용하다 보면 레이어드 아키텍처를 적용해서 개발을 진행한다. Django의 MVT라는 패턴으로 사용하고 Flask는 구성하기 나름이다. 그런데 레이어드 아키텍처를 사용하다 보면 하나씩 부족한데 라는 생각이 들기 시작한다.
계층 간 데이터 교환이나 특정 로직이 어디에 위치해야 하는지 그리고 레이어 수준을 어느 정도로 가져갈지에 대한 고민들이다. 이에 관련돼 무엇을 공부하면 될까라는 고민을 가지고 있었는데 문득 이름만 들어본 Spring이 생각났다.
Spring/SpringBoot를 공부하면 백엔드 아키텍처를 구축하는데 조금 더 넓은 시야를 볼 수 있지 않을까 싶다.
Spring Boot 생성하기
최대한 공부하는데 비용을 아끼기 위해 Intelli j Community 버전으로 시작해보자. Spring Boot를 사용하려고 검색하고 보니 Intelli-j Community버전은 Spring Boot Project를 편하게 생성할 수 있는 기능인 Spring Initializer를 지원하지 않는다고 한다.
따라서 Intelli-j에서 Spring Boot 프로젝트를 생성할 때는 아래 사이트에서 Spring Boot Project를 Export 해서 사용하자.
Eclipse vs Intelli-j
java 기반 개발이라고 하면 아주 유명한 IDE인 이클립스가 존재하는데 Intelli j를 선택한 것은 JetBrains에서 나온 IDE의 인터페이스에 익숙했기 때문이다.
두 IDE의 차이점을 비교해보면 좋을 것 같은데 Spring Boot 공부가 주목적이니 나중에 한 번 정리해보기로 하자.
Spring Boot Project 필요 라이브러리
https://start.spring.io/ 에서 SpringBoot Project를 만들기 전에 dependency 부분에 다음 3가지를 추가해주자.
- Lombook
- Spring Web
- Spring Configure Processor
Intelli J에서 일어난 문제
M1 Mac Mini, Monterey 12.5.1에서 OpenJDK 1.8 버전을 설치하고 나서 Intelli J를 사용할 때 일어날 수 있는 상황에 대한 정리와 해결방법이다. 문제가 일어난 상황의 원인은 그때그때 다를 수 있다.
Project 버전과 Intelli j에서 설정된 버전이 맞지 않는 경우
SpringBoot 셋업을 https://start.spring.io/ 에서 다운로드하여 사용한다. 이 상황은 책의 예제를 따라 하다가 일어난 상황인데 책에서는 SpringBoot 2.5.6과 Java 11을 선택해서 SpringBoot를 생성하라고 했으나 필자는 SpringBoot 2.7.6과 Java는 OpenJDK 1.8을 설치한 뒤 SpringBoot를 Intelli j에서 실행한 경우 맞닥뜨렸다.
위 상황은 Intelli J에서 다음과 같은 순으로 해결할 수 있었다.
Preference > Build, Execution, Deployment > Compiler > Java Compiler
위 경로에 접근하면 다음과 같은 인터페이스 보인다
위 이미지에서는 Target bytecode version이 11로 되어있었으나 18로 고치자 해결되었다.
Intelli j 코드상에서 작성자 나오는 부분 off 해두기
Intelli j(22.12.04)를 처음 설치하고 나서 특정 코드를 작성하면 해당 코드를 작성한 정보를 알려주는 표시가 뜬다.
익숙한 방식은 아니라 어노테이션 위에 존재하는 정보를 지우고 싶을 때 다음과 같이 설정한다.
Preferences > Editor > Inlay Hints
위 경로로 들어가면 다음과 같이 code vision에 옵션이 전부 체크되어있는데
각 항목에서 보기 싫은 것은 체크 해제해주면 된다.
'Frame Work > Spring Boot' 카테고리의 다른 글
[Study] Interceptor와 Servletfilter (0) | 2021.12.08 |
---|---|
[JWT] SpringBoot에서 JWT 발급과 검증처리 (0) | 2021.12.08 |
[JPA] JpaRepository를 통해 Pagination 처리하기 (0) | 2021.12.07 |
[Spring Boot] Getter, Setter (0) | 2021.06.20 |