Intro
지금까지는 막연히 "파이썬만 잘하면 취업할 수 있겠지" 라는 생각을 가지고 있었습니다.
하지만 취업 시장을 마주하고 보니, 현실은 그리 녹록지 않더군요. 허허.
그래도 Django, Express, FastAPI 등 다양한 웹 프레임워크를 다뤄본 경험이 있기에 Spring Boot도 금방 익숙해질 수 있으리라 생각합니다.
이 글을 시작으로 Spring Boot의 기본적인 사용법을 익히고, 동시에 작은 프로젝트를 하나 만들어보려 합니다.
저는 단순히 기능 구현에 그치지 않고 기술 하나하나를 선택할 때 왜 사용하는지 어떤 대안이 있는지를 항상 고민하며 학습하고자 합니다.
단순한 기능 구현은 이제 중학생도 할 수 있습니다.
기술자의 입장에서는 어떤 선택에도 책임과 확신이 필요하다고 생각합니다.
그런 마음가짐으로 끝까지 최선을 다해보겠습니다.
뭐 만들지이
음 당장 필요한 웹 사이트를 만들어보려고 합니다.
언제 어디서든 내 이력서를 이어서 작성 할 수 있는 웹사이트를 만들면 유용하게 쓸 거 같고요.
간단한 CRUD도 연습이 가능하고 DB까지 다룰 수 있을 것 같습니다.
더 나아가 OAuth도 적용하여 개인화된 서비스를 만들어볼 계획입니다. 허허
개발 환경 세팅
IDE는 IntelliJ IDEA를 사용합니다.
기존에는 주로 VSCode를 사용했지만 Spring Boot 개발에서는 IntelliJ의 자동 완성과 디버깅 기능이 훨씬 강력하다고 합니다.
특히 Gradle, Spring Initializr, 실행 로그 확인 등에서 IntelliJ는 확실한 이점을 제공한다고 합니다.
스프링 부트 개발 환경 세팅은 유료버전 IntelliJ는 IDE 내에서 가능하지만 커뮤니티 버전은 외부에서 프로젝트를 만들어와야한다.
Spring Initializr : https://start.spring.io/
위 링크로 들어가 아래와 같이 설정하였습니다.
각각 왜 이런 설정을 했는지 살펴보겠습니다.
Project – Gradle (Groovy DSL)
Gradle는 빌드 속도가 빠르고 Groovy DSL을 통해 의존성 추가나 설정이 더 간결하게 느껴졌습니다. 처음 학습하거나 빠르게 프로토타이핑하기에 적합하다고 판단했습니다. (Maven은 레거시에서 많이 사용한다고 합니다.)
Spring Boot Version – 3.4.5
가장 최신이면서도 안정적인 릴리즈 버전입니다. Snapshot이나 RC는 실험적인 요소가 포함되어 있어 학습이나 개인 프로젝트에서는 피하는 것이 낫다고 판단했습니다.
Packaging – Jar
Spring Boot는 내장 톰캣을 기본으로 포함하고 있기 때문에 굳이 War 파일로 외부 WAS에 배포하지 않아도 됩니다. 실행도 간단하고, 대부분의 실습 및 클라우드 배포에도 jar가 적합합니다.
Java Version – 17
Java 17은 LTS(장기 지원) 버전으로, 안정성과 성능 모두 검증된 버전입니다. Spring Boot 3.x부터는 최소 Java 17을 요구하므로 가장 자연스러운 선택이기도 합니다.
Dependencies – Spring Web
REST API 중심으로 서비스를 만들 것이기 때문에, 웹 기능의 핵심인 Spring Web만 먼저 추가했습니다. 이후 필요한 기능들은 하나씩 추가하면서 왜 필요한지를 따져볼 계획입니다.
이제 GENERATE를 눌러 나온 압축파일을 풀어 IntelliJ로 열어준다.
위 화면이 나오면 굿
근데 하나 설정을 더 해줘야 한다.
무료버전 IntelliJ는 이게 Spring Boot인지 뭔지 알지를 못한다고 한다.
그래서 직접 실행 구성을 해줘야 한다.
오른쪽 위에 돋보기를 누르고 EditConfiguration.. 를 검색하여 클릭한다
이후 아래 사진처럼 생성해준다
자바 버전과 프로젝트 main위치와 Application 위치까지 명시 후 저장해준다.
-> @지정한이름Application 클래스는 @SpringBootApplication이 붙은 메인 클래스입니다. 여기서부터 실행되어 전체 앱이 시작됩니다.
그럼 시작 버튼이
이렇게 지정해준 runspring으로 설정이 된다.
구웃
이제 실행해보면
이런 로그가 뜨고 http://localhost:8080 으로 접속했을 때, 다음과 같은 "Whitelabel Error Page" 화면이 나온다면 성공적으로 서버가 실행된 것입니다.
왜 포트가 8080일까?
우리는 위에서 프로젝트를 만들 때 단 하나의 의존성 Spring Web만 추가했습니다.
이 의존성에는 내부적으로 Tomcat이라는 내장 웹 서버가 포함되어 있습니다.
Spring Boot는 이 Tomcat을 자동으로 설정해주며 기본적으로 8080번 포트를 열어 애플리케이션을 구동합니다.
정리하자면:
- 우리가 Spring Web 의존성을 추가했기 때문에
- Spring Boot가 내장 Tomcat을 자동 구성하고
- Tomcat은 기본값으로 8080 포트를 사용해 서버를 실행합니다
이 모든 과정이 별도의 설정 없이 자동으로 이루어진다!
(나중에 서블렛이 뭐고 톰켓의 동작원리가 어떻게 이루어지는지도 다뤄볼 예정이다.)
다음 글에선 컨트롤러에 대해 다뤄보겠습니다.
'웹 프로그래밍 > Spring Boot' 카테고리의 다른 글
[Spring Boot] CRUD 간단 구현 (2) | 2025.05.13 |
---|---|
[Spring Boot] 기본적인 폴더 구조와 domain을 선택한 이유 (0) | 2025.05.08 |
[Spring Boot] MVC 패턴이란 (0) | 2025.05.07 |