카테고리 없음
모노레포 / 멀티모듈로 백엔드 프로젝트
코딩연습중
2025. 4. 30. 16:34
1. 깃허브 레포 생성
git clone 해오기.
2. 안에 폴더 생성
cd Tranner_BE_2
mkdir api-gateway
3. 스프링 프로젝트(api-gateway) 생성해서 폴더에 넣기
4. build.gradle 확인
5. application.yml 추가
server:
port: 8080
spring:
cloud:
gateway:
routes:
- id: account-service
uri: http://account-service:8081
predicates:
- Path=/account/**
- id: travel-plan-service
uri: http://travel-plan-service:8082
predicates:
- Path=/plan/**
- id: travel-plan-search-service
uri: http://travel-plan-search-service:8083
predicates:
- Path=/search/**
- id: travel-discovery-service
uri: http://travel-discovery-service:8084
predicates:
- Path=/discovery/**
security:
oauth2:
resourceserver:
jwt:
secret-key: 시크릿키
logging:
level:
org.springframework.security: DEBUG
6. 시크릿키 발급
openssl rand -hex 64
위를 터미널에 입력
IntelliJ에서 환경변수 등록
cd api-gateway
./gradlew clean build
해서 실행.(실행해야 run > edit configuration에서 설정 가능?)

이런 화면이 나와야되는데 안 나옴. ApiGatewayApplication에 메인 들어있는데 선택이 안 됨
--> 좌측 상단 File > Project Structure > Modules에서 Sources 탭에 src/main/java가 파란색인지 확인.
--> 아닌 경우 Source로 등록

이렇게 하고(Source로 등록)하고 보니까 에러 엄청 남..
오른쪽에 Gradle 없음. 내 프로젝트를 gradle로 인식 못 함.
api-gateway의 build.gradle 우클릭 > Link Gradle Project 클릭하니 gradle 생김.
다시 Run > Edit Configurations
에서 좌측 사이드에서 Add new > Application 클릭,


이제 여기서 환경 변수 등록하기

멀티모듈 환경 설정
Tranner_BE_2로 열어서 밑에 모든 모듈의 코드를 한 눈에 볼 수 있도록 멀티 모듈 환경으로 개발하고 싶었다.
Tranner_BE_2 하위에 settings.gradle 파일 생성
rootProject.name='Tranner_BE_2'
include 'api-gateway'
이렇게 세팅.
api-gateway의 settings.gradle 파일 삭제.
reload gradle.
6. spring security 설정
7. dockerfile 작성
FROM openjdk:17-jdk-slim
ARG JAR_FILE=build/libs/*.jar
COPY ${JAR_FILE} app.jar
EXPOSE 8080
ENTRYPOINT ["java", "-jar", "/app.jar"]
8. docker-compose 추가
api-gateway:
build: ./api-gateway
ports:
- "8080:8080"
depends_on:
- account-service
- travel-plan-service
- travel-plan-search-service
- travel-discovery-service