인프런 김영한의 스프링 입문을 듣고 작성한 글입니다
프로젝트 생성
프로젝트를 생성하기 위해서 웹사이트(https://start.spring.io/) 하나를 이용한다
환경 설정은 위와 같이 구성 했고 인텔리제이에서 build.gradle을 프로젝트로 생성하면 위와 같은 구조를 볼 수 있다
또, gradle을 인텔리제이로 바꿔 자바 실행이 더 빠르게 구성했다
라이브러리 살펴보기
처음엔 우리는 Spring web, thymeleaf만 라이브러리를 가져왔다
하지만 gradle을 통해서 다운했기에 의존성이 있는 라이브러리들도 가져온다고 한다
아 참 gradle이 뭔지도 모르고 그냥 받아드렸기 때문에 gradle에 대해서 약소하게나마 알아봤다
gradle은 빌드 도구로, 쉽게 말해 프로젝트를 빌드(컴파일, 테스트, 패키징 등) 관리하는 것을 도와주는 도구라고 생각하면 된다
이 gradle이 spring 프로젝트를 개발하는데 왜 사용 될까?
첫번째, 빌드를 관리하고 도와주는 것을 자동화 해준다
두번째, 위에서 언급했듯이 의존성있는 외부 라이브러리를 손쉽게 다운로드하고 관리할 수 있게 해준다
세번째, 빌드, 테스트 와 같은 개발 프로세스의 반복 작업을 자동화 해준다
요약해보자면, Gradle은 프로젝트를 빌드하고 의존성을 관리하는 도구이다.
Spring 프로젝트에서 필요한 라이브러리를 자동으로 가져오고, 프로젝트를 컴파일하거나 실행 파일로 패키징하는 작업을 쉽게 할 수 있으며, Spring Boot와 Gradle을 함께 쓰면 설정과 개발 과정이 훨씬 간단해지기 때문에 사용하는 것 같다
이와 같이 우리는 spring web 라이브러리를 다운했지만 관련된 다른 라이브러리도 의존성으로 같이 다운로드 되어 있다
참고로 tomcat은 웹서버이고, webmvc는 스프링 웹 MVC라고 한다
내 생각에는 하나의 라이브러리로 모든 것을 할 수 없고, 이 라이브러리에서도 다른 라이브러리들을 사용하기 때문인 것 같다
로그와 관련된 라이브러리도 있는데 실무에서는 System.out.println()을 사용하지 않고 로그로 다 기록을 남겨 오류에 대비한다고 한다
지금 단계에서는 라이브러리 하나하나 다 알아보는 것 보단 이런 라이브러리들이 있고, 대략 어떻게 사용되구나 이해하려고 한다
View 환경설정
이전에 localhost:8080을 실행했을 때 에러 페이지만 나왔기 때문에 실제로 잘 작동되는 지 보기 위해 page 하나를 만들어 보겠다
resources/static에 index.html을 만들었고, 스프링부트에서는 해당 경로에 파일을 올려두면 Welcome page 기능을 제공한다
서버를 실행하게되면 Welcome page가 만들어진 것을 볼 수 있다
우리는 thymeleaf 라이브러리를 다운했기 때문에 thymeleaf 템플릿 엔진을 사용하려고 한다
controller 폴더를 만들어 Hello에 대한 컨트롤러를 만들었고, 템플릿 폴더에 hello.html을 만들어 데이터를 받아 출력하게 만들었다
성공적으로 결과를 볼 수 있다!
하지만 이해가 잘 가지 않기 때문에 그림 통해 흐름을 따라가 이해했다
빌드하고 실행하기
./gradlew build
cd build/libs
java -jar hello-spring-0.0.1-SNAPSHOT.jar
위 빌드 과정을 통해 jar 파일을 생성했고, java -jar을 통해 실행시키면 웹에서도 잘 동작하는 것을 볼 수 있었다
여기서 중요한 것은 jar 파일을 배포할 때 서버에 넣어주고 실행시켜주게 되면 서버에서 스프링이 동작하게 된다는 것을 알았다
아직 환경 설정만 했지만 배워야 될 것과 설정들이 많고 개발자가 되려면 개발말고 오류와 효율을 위해 설정 또한 중요한 것 같다고 느꼈다
다음 강의로 빠른 시일내에 돌아와보겠다
'Backend > Spring' 카테고리의 다른 글
[Spring] 6. 스프링 DB 접근 기술 (1) | 2025.03.06 |
---|---|
[Spring] 5.회원 관리 예제 - 웹 MVC 개발 (0) | 2025.03.02 |
[Spring] 4. 스프링 빈과 의존관계 (0) | 2025.03.02 |
[Spring] 3. 회원 관리 예제 - 백앤드 개발 (0) | 2025.02.22 |
[Spring] 2. 스프링 웹 개발 기초 (0) | 2025.02.18 |