[Spring] 0.프로젝트 시작

이승현·2024년 6월 29일

Spring

목록 보기
1/3

이전까지는 Python 기반으로 웹 작업을 했었는데 드디어 Spring으로 넘어가게 되었다. 근데 간단하지가 않다. 이클립스를 기반으로 시작하려고 했더니 여기도 문제 저기도 문제... 여기에는 있고 저기에는 없고... 그래서 선택한 방법이 IntelliJ에서 깨끗하게 다시 시작하는 방법이었다.

프로젝트 설치

IntelliJ에서 Ultimate 버전과 Community Edition을 선택할 수 있는데 유료로 다양한 기능을 쓰는 방법과 무료로 직접 기능들을 찾아 써야하는 번거로움을 선택해야 한다. 유료를 쓰는 방법도 있겠지만 나는 무료를 선택했다. 아무래도 기능이 있다가 없어지는 것보다 없는 기능이 생기는게 더 좋을것 같았다.

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

  • Gradle - Groovy : Gradle에서 쉽게 프로젝트 설정을 건드릴 수 있다.
  • Java : 언어는 Java
  • Dependencies
    • Lombok : Getter, Setter 등의 항목을 쉽게 추가할 수 있음
    • Spring Web : 웹 개발에 필요한 사항
    • Spring Dev Tools : 웹 개발에 필요한 사항
    • Thymeleaf : 템플릿에서 값 전달 받거나 처리할 때 사용
    • Spring Security : Getter, Setter 등의 항목을 쉽게 추가할 수 있음


GENERATE를 누르면 프로젝트 이름을 사용하는 압축 파일이 나오는데 프로젝트 경로에 풀면 된다.

프로젝트 구조

사실 아직 많은 부분은 무슨 역할인지 잘 모른다. 그래도 대략적으로 설명을 하자면 다음과 같다.

src에서는 test가 있는데 main에 있는 다양한 파일과 폴더에서 Spring Framework가 작동한다. java 폴더가 MVCController 부분이다. 입력받은 내용을 처리하고 View와의 연결을 관리한다. resources에서는 static에서 정적인 자원을 관리, templates에서는 html을 관리하게 된다.
build.gradle이 다양한 기능을 추가할 수 있는 공간이라고 이해한다. 아직 테스트는 손도 못댔다.

프로젝트 이름을 딴 ~Application.java는 기본적으로 생성된다. 여기가 프로젝트의 첫 시작지점이라고 이해하면 된다.

프로젝트 흐름

보통 Controller에서 다음과 @GetMapping("/")과 같은 방식으로 페이지 url을 매핑한다. 신기한 점은 return으로 html의 이름"만" 보내면 템플릿을 부른다는 점이다!

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

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

0개의 댓글