1. 개요
군대에서 개발을 본격적으로 시작했고 사지방 컴퓨터에서 intellij를 맨날 깔아서 사용할 수 없기 때문에 git과 연동되어있는 codespaces와 gitpod을 사용해서 프로그래밍 공부를 하고있다. 이 두개 컨테이너는 VSCode를 지원해주기 때문에 VScode에서 스프링 개발하는 방법을 주로 다룰 것이다. 하지만 스프링을 공부 할 때에는 intellij를 사용하는 것을 추천한다. 다만 군대와 같은 곳에서는 상황에 맞춰 최대한 열심히 하는수밖에 없으니까~!
스프링을 시작할 때에는 프로젝트에 내가 다 작성할 수도 있지만 요즘은 Spring boot를 활용하여 프로젝트를 만든다. start.spring.io를 활용하여 만들 수도 있지만 나는 VScode환경이기 때문에 Spring Initializr Extension을 사용하여 만들 것이다. spring.start.io도 UI만 다르지 똑같기 때문에 똑같이 따라하면 될 것 같다.
1. ctrl + shift + P > Spring initializr:Create spirng
ctrl+shift+P를 실행하면 커맨드 팔렛트가 나오는데 여기에 spring initializr을 검색 후 Create a Gradle Project를 선택한다.
2. Specify Spring Boot version
스프링 부트의 버전을 선택하는 화면이다. 각자 설치한 자바의 버전에 맞춰서 설치하면 되고 나는 자바 11버전이 깔려있어서 2.7.15버전을 선택했다. 자바 버전을 모른다면 터미널에서 java -version 입력하면 버전 정보를 알 수 있다.
버전 뒤에 붙어있는 영어와 M2는 실험중인 버전이며 쉽게 말해서 아직 안정화가 안된 버전이라고 한다. 그렇기때문에 혹시모를 안정성을 위해 최종 릴리즈 버전인 숫자만 적혀있는 버전을 선택하면 좋다!
3. Language
자바로 개발할거니까 자바 선택!
4. Group Id
보통은 회사의 도메인을 거꾸로 작정한다고 하는데 나는 개인 공부용이기 때문에 hello를 입력해줬다.
이 부분과 다음순서인 ArifactId와 함께 프로젝트의 기본 패키지 이름으로 설정된다.
5. Artifact Id
프로젝트의 주 패키지명이다. 4번 Group Id와 함께 패키지명을 구성한다.
항상 모든 공부를 시작할때 국룰인 hello-과목을 입력해줬다.
6. Packaging type
프로젝트를 배포할 타입을 선택한다.
JAR과 WAR모두 Java의 옵션을 이용하여 생성된 압축 파일로 애플리케이션을 쉽게 배포하고 동작시킬 수 있도록 관련 파일을 패키징한 것이다. Spring boot에서 가이드하는 표준은 JAR이기 때문에 여기서는 Jar을 선택해주도록 하자
JAR과 WAR에 대해 간단히 설명하자면 아래와 같다.
JAR (Java Archive)
- JAVA 어플리케이션이 동작할 수 있도록 자바 프로젝트를 압축한 파일
- Class (JAVA리소스, 속성 파일), 라이브러리 - 파일을 포함함
- JRE(JAVA Runtime Environment)만 있어도 실행 가능함 (java -jar 프로젝트네임.jar)
WAR (Web Application Archive)
- Servlet / Jsp 컨테이너에 배치할 수 있는 웹 애플리케이션(Web Application) 압축파일 포맷
- 웹 관련 자원을 포함함 (JSP, Servlet, JAR, Class, XML, HTML, Javascript)
- 사전 정의된 구조를 사용함 (WEB-INF, META-INF) 별도의 웹서버(WEB) or 웹 컨테이너(WAS) 필요
- 즉, JAR파일의 일종으로 웹 애플리케이션 전체를 패키징 하기 위한 JAR 파일이다.
7. Java version
2번에서 본인의 자바 버전에 맞춰 스프링부트 버전을 선택했으므로 여기서는 자신의 자바 버전을 선택해 주면 된다.
8. Dependencies
필요한 의존성들을 추가하는 부분인데 쉽게말해 편하게 사용할 수 있는 라이브러리들을 선택한다고 생각하면 쉽다.
여기서 필요한 것들을 선택하고 나중에 추가할 수 있으니 걱정 안해도 된다. 나는 당장 필요한 DevTools, Thymeleaf, Spring Web을 선택했다.
DevTools : 여러 편의기능이 있지만 서버 재시작할 필요 없이 변경사항이 변경되는 기능이 있음
Thymeleaf : 템플릿 엔진의 일종이며 html 태그에 속성을 추가해 페이지에 동적으로 값을 추가하거나 처리할 수 있게해준다.
Spring Web : 내장톰캣, web-mvc, spring starter등 여러 웹 개발을 하는데 필요한것들이 들어있다.
9. 파일 생성 경로 설정
Springinitializr로 만들 프로젝트가 생성될 경로를 선택하는 부분이다 각자 알아서 선택하면 될 것같다.
10. Run
여기까지 끝냈으면 hello-spring/src/main/java/hello/hellospring/HelloSpringApplication.java를 실행했을 때 아래와 같이 나오면 성공이다. 혹시라도 Run을 눌렀는데 안되면 Debug를 눌러보고 그래도 안되면 자신의 자바와 선택한 스프링의 버전을 다시 확인해보기 바란다. (내가 이렇게 해서 성공했어요)
이렇게 해서 첫 Spring 프로젝트를 만드는 방법을 알아보았다. 개발에서 제일 어려운 환경 설정을 마쳤으니 이제 포기하지 않고 쭉 나아가기만 하면 된다.
처음 하는데 헤메서 군대에서 codespaces를 사용해서 스프링을 배울 다른 누군가를 위해서 자세하게 적어봤다. 다른 사람은 수월하게 끝내길!
혹시라도 제 블로그를 따라하다가 막히는 부분이 있으면 편하게 댓글 주세요!
궁금한 부분이 생기면 찾아보고 토대로 제가 이해한 내용을 글로 정리하는 개인 공부 블로그입니다.
내용 중 틀린 부분은 언제든지 댓글로 틀린 부분 및 피드백 주시면 공부 및 반영하겠습니다🧐