일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
- 허깅 페이스
- 인증
- 공동인증서
- docker
- 보안
- AOP
- Spring
- Spring Boot
- db
- 본인확인
- spring security
- exception
- AWS
- 딥시크
- 로그인
- IntelliJ
- postgis
- 본인인증
- ktlin
- webflux
- netty
- NGINX
- 컨퍼런스
- Kotlin
- Flux
- deepseek vs chatgpt
- 코틀린
- PostgreSQL
- Mono
- API
- Today
- Total
[수미수의 개발 브로구]
[WebFlux] Spring WebFlux 프로젝트 생성 하기 본문
들어가기 전
지난 글에서는 Spring WebFlux로 개발 하기 전, Netty 서버와 Reactive Stream Publisher 구현체인 Mono 와 Flux 에 대해서 간단히 개념만 알아 보았다. 이번 글에서 부터는 실제로 프로젝트를 생성하고, Netty 기반에서 동작하는 웹 어플리케이션 개발을 진행 할겁니다. 웹 어플리케이션을 개발 하고, API 를 노출 하고, 다른 API 와 연동 그리고 R2DBC? 를 통해서 Database 와 연결하여 데이터를 핸들링 할 예정입니다. 어? R2DBC는 머지 하시겠지만, 해당 기술은 나중에 Database 연결 부분에서 간단히 설명 드리겠습니다.
실습하기 전
이번 장에서는 어떻게 Spring WebFlux 프로젝트를 생성 하는지에 대해서 이야기 하고자 합니다. 실습 하기전 저의 개발 환경은 아래와 같습니다.
- IntelliJ, Java 17
프로젝트 생성 하기
IntelliJ IDE 를 실행 시킨 후 맨위 왼쪽을 보시면 [File] -> [New] -> [Project] 를 클릭 하시면 아래 그림과 같은 창이 나타납니다. 여기서 Spring Initializer 를 통해서 프로젝트를 생성 할 것이기 때문에 해당 항목을 선택 하신 후 프로젝트 명을 입력 합니다.
빌드는 어떤 기술을 사용할 것인지와 어떤 언어를 사용할 것인지 그리고 Java 버전과 패키징 방식을 선택 할 수 있습니다. 저는 빌드 툴은 Gradle, Language 는 Kotlin 을 사용할 예정이라, Gradle -Kotlin Type 을 지정하고, Language 는 Kotlin 그리고, Java 버전은 OpenJDK 17 을 선택 하였습니다. 그리고, jar 패키징을 선택 하였습니다.
여기서 어떤 패키징을 사용할 것인가 고민이시면, 일반적으로 Spring Boot 에서는 임베디드 was 를 사용하기 때문에 jar 패키징을 사용합니다. 하지만, 개발 환경, 운영환경에 따라 별도의 외부 was 를 사용해야 한다면, war 패키징을 선택하여, 해당 war 를 외부 was 배포 하는 형태로 가져가면 됩니다.
저는 개발 시 회사 인프라팀에서 was 를 관리 하는 형태일 경우, war 패키징 하여 해당 was 로 배포 하였으나 현재는 Spring Boot 기반의 프로젝트의 경우 임베디드 was 를 사용하여 jar 로 패키징 하여 운영 하고 있습니다.
다음 화면입니다. 다음 화면에서 Spring Boot 버전과 어떤 Web 타입을 선택할 것인지 나옵니다. 현재 Spring Boot 3 이 나왔지만, 2.7 버전을 선택 한 뒤 Spring Reactive Web 을 선택 합니다.
Spring Boot 3 버전의 WebFlux 를 선택하여 개발 할 수 있으나, 3 버전에서 API Tracing 기능인 sleuth 를 사용 할 수 없어서 현재 2.7 버전을 사용하고 있습니다.
3 버전에서 micrometer 를 통해서 tracing 할 수 있다고 하지만 아직 잘 안되는 거 같아서 우선 2.7 버전으로 개발/운영 하고 있으나, 개발/운영 환경에 맞게 Spring Boot 버전을 선택하면 됩니다.
[Finish] 버튼을 클릭하게 되면, 아래 그림과 같이 최초 Spring WebFlux 프로젝트 최초 생성 화면을 볼 수 있습니다. 기본적인 프로젝트 구조를 확인 할 수 있습니다.
아래 그림과 같이 build.gradle.kt 파일을 확인하면 spring webflux 관련 starter 프로젝트가 implemetation 되어 있는 것을 확인 할 수 있습니다.
이번글에서는 IntelliJ를 이용해서 기본적인 Spring WebFlux 프로젝트를 생성하는 방법에 대해서 알아보았습니다. 다음 글에서는 API 를 개발 하여 클라이언트와 통신 하는 과정에 대해서 이야기 해보도록 하겠습니다.
'Language & Framework > WebFlux' 카테고리의 다른 글
[WebFlux] WebClient Connection Reset By Peer 오류 발생 (0) | 2023.08.18 |
---|---|
[WebFlux] Spring WebFlux R2DBC를 이용한 데이터베이스 연동 (1) | 2023.08.14 |
[WebFlux] Spring WebFlux 원리 (2) | 2023.08.13 |
[WebFlux] Spring WebFlux란? #1 (0) | 2023.08.13 |
[WebFlux] WebFlux 적용기 (2) | 2023.08.09 |