이전까지는 Python 기반으로 웹 작업을 했었는데 드디어 Spring으로 넘어가게 되었다. 근데 간단하지가 않다. 이클립스를 기반으로 시작하려고 했더니 여기도 문제 저기도 문제... 여기에는 있고 저기에는 없고... 그래서 선택한 방법이 IntelliJ에서 깨끗하게 다시 시작하는 방법이었다.
IntelliJ에서 Ultimate 버전과 Community Edition을 선택할 수 있는데 유료로 다양한 기능을 쓰는 방법과 무료로 직접 기능들을 찾아 써야하는 번거로움을 선택해야 한다. 유료를 쓰는 방법도 있겠지만 나는 무료를 선택했다. 아무래도 기능이 있다가 없어지는 것보다 없는 기능이 생기는게 더 좋을것 같았다.

Spring initializr에서는 프로젝트를 파일 형태로 받을 수 있다. Dependencies를 추가하고 프로젝트를 설정하면 깔끔하다. 우측 상단의 Add를 눌러 Dependencies를 쉽게 추가할 수 있다.


GENERATE를 누르면 프로젝트 이름을 사용하는 압축 파일이 나오는데 프로젝트 경로에 풀면 된다.
사실 아직 많은 부분은 무슨 역할인지 잘 모른다. 그래도 대략적으로 설명을 하자면 다음과 같다.
src에서는 test가 있는데 main에 있는 다양한 파일과 폴더에서 Spring Framework가 작동한다. java 폴더가 MVC의 Controller 부분이다. 입력받은 내용을 처리하고 View와의 연결을 관리한다. resources에서는 static에서 정적인 자원을 관리, templates에서는 html을 관리하게 된다.
build.gradle이 다양한 기능을 추가할 수 있는 공간이라고 이해한다. 아직 테스트는 손도 못댔다.

프로젝트 이름을 딴 ~Application.java는 기본적으로 생성된다. 여기가 프로젝트의 첫 시작지점이라고 이해하면 된다.
보통 Controller에서 다음과 @GetMapping("/")과 같은 방식으로 페이지 url을 매핑한다. 신기한 점은 return으로 html의 이름"만" 보내면 템플릿을 부른다는 점이다!

JPA를 활용하게 되면 Entity를 DTO로 쓸 수 있는데 이를 활용하기 위한 기능들은 Service와 Repository를 쓰게 된다. 이러한 기능들은 Controller에서 잘 받아서 데이터에 대한 CRUD를 할 수 있게된다.

이후에 이러한 내용을 기반으로 로그인, 회원가입과 같은 기능들, 게시판 제작과 같은 기능들을 구현해보고자 한다.