Spring Boot vs Spring
스프링 프레임워크는 기능이 많은만큼 환경설정이 복잡한 편입니다. 이에 어려움을 느끼는 사용자들을 위해 나온 것이 바로 스프링 부트입니다. 스프링 부트는 스프링 프레임워크를 사용하기 위한 설정의 많은 부분을 자동화하여 사용자가 정말 편하게 스프링을 활용할 수 있도록 돕습니다.
보통 현업에서 스프링을 쓴다고 하면 스프링 부트를 주로 쓰는 것입니다.
스프링 프레임워크는 자바 백엔드 프레임워크고, 스프링부트는 거기에서 추가적인 라이브러리를 추가하는 것이므로, 스프링 부트 프로젝트도 다 스프링을 기반으로 부트 라이브러리를 추가한 프로젝트입니다.
그래서 스프링 공부를 시작할때 스프링 부트부터 시작하는 것을 추천하는 편이고 깊게 공부할때 부트없는 스프링을 공부해도 좋다고 생각합니다.
VSCode, gitpod.io(웹 IDE)에서 스프링 돌리기
원래 스프링은 인텔리제이(intelliJ)에서 보통 개발합니다! 이클립스 쓰는 사람도 있을것이구...
근데 상황이 녹록치 않아(예를 들면 군입대ㅋㅋ, 어디서나 코딩하고 싶음, 아이패드로 코딩(?))
웹IDE를 쓰지만 인터넷이나 책 강의들이 다 인텔리제이,이클립스에 맞춰져서 시작하기 어려울 것입니다.
그래서 웹IDE인 gitpod에서 vscode를 띄우고 프로젝트를 시작하는 것을 포스트 하겠습니다.
스프링부트 프로젝트는 원래 스프링 공식 홈페이지에 있는 start.spring.io에 접속해서 아래와 같이 설정하고 다운 받으면,
압축파일이 다운받아지는데 그것을 압축해제하고 프로젝트를 시작합니다.
그러나 웹IDE에서는 이 과정이 힘드므로 다른 방법으로 할 것 입니다!
Dependencies는 부트 라이브러리인데, Web 프로젝트를 할것이므로 spring web과 html 템플릿엔진인 Thymeleaf를 다운 받을 것입니다!
프로젝트 생성 과정
1. gitpod / VScode로 들어가서 extension을 설치
spring boot팩에서 initiailzr가 위에 start.spring.io와 같은 역할을 할 것 입니다.
extension pack for java는 자바파일을 열면 그것을 실행할수 있도록 해줍니다.
2. vscode 명령 팔레트를 키고 스프링 프로젝트를 생성합니다.
- 명령 팔레트 열기 (윈도우) : Ctrl + shift + P
- 명령 팔레트 열기 (맥OS) : cmd + shift + P
Spring Initializr : Create a Gradle Project 해주시고, 언어는 java , 알맞은 버전 선택해주시고 spring web과 Thymeleaf 추가해주시면 새프로젝트가 생성됩니다.
터미널에 javac -version 입력해보면 jdk11로 나오므로 자바 버전 11로 해줍시다!
3. 프로젝트/src/main/java/ 경로로 가면 메인실행 파일이 있는데, 이 두버튼 중 하나를 누르면 바로 실행이 되고, 포트 8080으로 웹서버가 띄워집니다
그리고 밑에 PORT 옆에 주소를 클릭하면 바로 브라우저가 띄워집니다.
실행된 모습 (터미널)
브라우저 (아직 루트패스에 대해서 아무것도 설정 안했으므로)
터미널로 빌드, 실행하기
빌드하기
사실 java extension Pack 없이, 오로지 터미널로만 빌드 할수 있습니다.
우선 프로젝트 파일에 들어가서(gradlew 파일이 있는 폴더)
./gradlew build 명령어를 쳐줍니다
그럼 필드가 완료 됩니다.
실행하기
프로젝트폴더 -> build -> libs 로 가면 jar 파일이 있습니다.
java -jar <jar파일이름>.jar 명령어를 입력해주면 아래와 같이 자바 스프링이 실행되는 것을 볼 수 있습니다.
'Back-End > 🌱 Spring Boot (java)' 카테고리의 다른 글
[Spring 입문] 스프링부트와 MySQL연결하기 - JDBC Template (AWS이용) (0) | 2023.01.21 |
---|---|
[Spring 입문] 스프링 빈(Bean)과 의존관계 설정(Dependency Injection) (0) | 2023.01.20 |
[Spring 입문] 자바 JUnit 프레임워크를 이용해서 테스트 케이스 작성 (3) | 2023.01.15 |
[Spring 입문] 계층 구조와 클래스 의존관계/주입 (Dependency Injection) 실습 (2) | 2023.01.15 |
[Spring Boot 입문] MVC패턴과 템플릿엔진의 동작과 구현 (1) | 2023.01.14 |
댓글