밍경송의 E.B

SPRING 1- 프로젝트 환경 설정 및 라이브러리 탐색 본문

lang./SPRING

SPRING 1- 프로젝트 환경 설정 및 라이브러리 탐색

m_gyxxmi 2023. 3. 13. 00:37

**이 글은 인프런의 <스프링 입문-코드로 배우는 스프링부트, 웹 MVC, DB접근 기술>의 내용을 바탕으로 작성하였습니다.

 

드디어 미루고 미루던 공부 기록하기..를 시작했답니다!

개강부터 시작한 스프링 입문 공부를 이제 조금씩 기록해보려고 합니다. 열심히 하겠윱니다 아쟈쟈..

 

 

먼저 스프링 프로젝트를 아주 쉽게 생성해줄 사이트에 접속합니다.

스프링 프로젝트 생성 ->  https://start.spring.io/ 

spring boot 버전과 java 버전 확인 필수

 

IntelliJ 사용해서 프로젝트 열기  --> 압축된 파일을 압축 해제하고 경로를 따라 열어주면 됩니다.

 

*gradle -> 버전 설정, 라이브러리를 가져오는 역할을 함.

 

HelloSpringApplication의 main을 실행했는데, invalid source release 에러가 발생해서 한 일주일은 애를 먹은 것 같아요.

내 컴퓨터에 설정된 자바 버전이랑 프로젝트의 자바 버전이 상이한 거라고 해서 이것저것 해봤는데 해결불가..

..진짜 이것땜에 프로젝트를 몇 번 생성했는지.. 습.. 역시 머리가 나쁘면 몸이 고생.. ssang..

 

그래서 그동안 깔아놓은 jdk의 모든 버전을 지우고 jdk 11을 새로 설치했더니 드디어 성공!ㅠㅠ

 

보고싶었어 spring 글씨야..

 

저와 같은 어려움을 겪으신 분이 계시다면 프로젝트 생성하실 때 자바 버전을 제대로 확인하시고,

프로젝트의 setting에서 사용하려는 jdk 버전이 제대로 설정되어있는지 꼭 확인해보시길.. 

보니까 springboot 버전이 3.0이상일 때는 여러가지 변동사항이 있다고 해서 그 부분도 잘 확인해보시면 좋을 것 같아요..peace

이렇게 localhost:8080 서버로 접속했을 때 이런 화면이 뜬다면 드디어 프로젝트 환경 설정에 성공한 것입니다...! 

 

Tomcat이라는 Web-server와 Servlet-Container가 합쳐진 미들웨어가 내장돼있는데

이것이 자체적으로 실행되어서 여기에 스프링의 DispatchServlet이 배포되어 실행된다고 보면 된다고 합니다.

말이 너무 어렵긴 하지만 어쨌든 스프링부트가 자동으로 톰캣을 실행시킨다는 것정도만  알고있으면 좋을듯!

소스라이브러리에 이미 웹서버가 내장되어있다는 게 신기하지 않나요?

이 외에도 이전에 스프링프로젝트를 생성할 때 넣었던 Spring web과 Thymeleaf의 자체 라이브러리들과, 

그것들과 또  의존적인 라이브러리들(embed core ,, +a)까지 전부 다 이미 프로젝트 안에 들어가있다는 것이 특징입니다.

 

결론적으로 Gradle은 의존관계가 있는 라이브러리들을 알아서 같이 다운로드 한다는 걸 기억하면 좋겠습니다.

Tomcat 외에도 logging 라이브러리가 들어오면서 그에 의존적인 logback과 slf4j, 두 라이브러리도 자동으로 내장된다는 점도 확인해봤습니다.. 근데 다들 뭐하는 친구들인지 아직은 잘 모르겠어요..

나중에 배우면서 천천히 알아가는 걸로 ㅎㅎ

 

 

<주요 라이브러리 간단 정리>

*스프링 부트 라이브러리

 spring-boot-starter-web

   -spring-boot-starter-tomcat: 톰캣 (웹서버)

   -spring-webmvc: 스프링 웹 MVC

   -spring-boot-starter-thymeleaf: 타임리프 템플릿 엔진(View)

   -spring-boot-starter(공통): 스프링 부트 + 스프링 코어 + 로깅

      -spring-boot

           -spring-core

     -spring-boot-starter-logging

           -logback, slf4j 

 

*테스트 라이브러리

spring-boot-starter-test

   -junit: 테스트 프레임워크

   -mockito: 목 라이브러리

   -assertj: 테스트 코드를 좀 더 편하게 작성하게 도와주는 라이브러리

   -spring-test: 스프링 통합 테스트 지원

 

 

그럼 다음시간에는 스프링부트로 웰컴페이지를 한 번 만들어보겠습니다 :-)) 안농