PangLog
PangLog_k.k
PangLog
전체 방문자
오늘
어제
  • Category (77)
    • 💾기록 (2)
      • 📔기록 (2)
    • 🔧알고리즘 (10)
    • ⚡AI (17)
      • ∃Mathematics (11)
      • AI (5)
      • 논문 (1)
    • 👨‍💻Data Science (2)
    • 📚CS (4)
      • 📡컴퓨터 네트워크 (3)
      • 💾DB (0)
      • ⚙OS (1)
    • ⌨Programming (15)
      • Python (6)
      • Pytorch (3)
      • FastAPI (0)
      • Java (1)
      • Spring (3)
      • Elastic Search (2)
    • 💻 (23)
      • Git (9)
      • Issue sol (2)
      • Linux (2)
      • etc (7)
      • Web (2)
      • Docker (1)
    • 📰칼럼 (4)
      • IT (4)
      • 그 외 (0)
    • Review (0)

블로그 메뉴

  • 홈
  • Github

인기 글

최근 글

태그

  • 파이썬
  • 내부단편화
  • inference
  • Jupyter Lab
  • Java
  • 외부단편화
  • 5215
  • 백준허브 이슈
  • Python
  • 11660
  • BOJ
  • SWEA
  • 탐색적 데이터 분석
  • 백준허브 에러
  • 자바
  • URL URI 차이
  • 인퍼런스
  • 알고리즘
  • 프로그래머스 체육복
  • 깃허브
  • cv2
  • 백준허브
  • 옹알이(1)
  • cors
  • 쥬피터랩
  • pycham
  • 파이참
  • K-디지털트레이닝 해커톤
  • 프로그래머스
  • 백준
hELLO · Designed By 정상우.
PangLog

PangLog_k.k

⌨Programming/Spring

Springboot 개발환경에서 노출되면 안되는 설정값, 환경변수 관리하기

2023. 5. 12. 16:00

application.properties ? application.yml ?

자바 프로젝트를 생성하면 리소스 아래에 application.~라는 파일을 볼 수 있다.

이는 자바 애플리케이션에서 사용하는 설정값, 환경변수들을 관리하는 파일로 서버의 포트번호, 연결할 DB에 관한 정보, AWS의 연결 정보 등을 관리할 수 있다.

보통 Git을 사용해 프로젝트를 관리하곤 하는데 Git에 DB연결 관련 정보같은 내용들이 그대로 올라간다면 보안이 박살날 수 밖에 없다. 따라서 노출되면 안되는 정보들은 Git에 올라가지 않게 따로 관리를 하는데 이에 대해 작성하려한다.

application-?.yml 작성

먼저 따로 관리할 값들에 대한 파일을 생성한다.

예를 들어, DB에 관한 정보를 관리할 경우 application.yml과 동일한 위치에 application-db.yml과 같은 이름으로 파일을 생성 한다.

 

그 후 아래와 같이 관리할 정보들을 작성한다. 아래는 MySQL연결 정보와 관련된 내용이다.

spring:
  datasource: 
    url: jdbc:mysql://{도메인:3306}/{DB명}?useUnicode=true&serverTimezone=Asia/Seoul
    username: username
    password: pw
    driver-class-name: com.mysql.cj.jdbc.Driver

아래는 AWS의 S3연결과 관련된 정보를 관리하기 위해 application-s3.yml 파일을 생성하였다.

cloud:
  aws:
    credentials:
      accessKey: 발급받은 accessKey
      secretKey: 발급받은 secretKey
    s3:
      bucket: bucket네임
    region:
      static: region명

작성한 파일들 포함관계 설정

자바에서 application.yml을 최우선적으로 살펴보기에 위에서 작성한 application-s3.yml 등을 포함시켜줘야한다

applicatoin.yml에 아래와 같이 포함할 파일들을 작성해주면 된다.

---
spring:
  profiles.include:
    - db
    - s3

.gitigroe 작성

열심히 따로 파일을 작성했는데 깃에 올라가면 OMG...

.gitignore에 아래와 같은 내용들을 추가해준다

### yml
application-db.yml
application-s3.yml

설정파일의 환경변수 사용법

@Value 어노테이션을 통해 application.yml파일의 설정값을 사용할 수 있다.

- @Value : 값들을 정의해놓은 파일에 접근해 원하는 데이터를 가져옴

예를 들어 application-s3.yml에 작성해놓은 accessKey를 가져오고 싶은경우 아래와 같이 코드를 작성하면 설정값을 가져올 수 있다.

@Value("${cloud.aws.credentials.accessKey}")
    private String accessKey;

 

반응형
저작자표시 비영리 변경금지 (새창열림)

'⌨Programming > Spring' 카테고리의 다른 글

JPA 복합키 삭제 에러, 이슈  (0) 2023.06.07
스프링에서 S3로 파일업로드하기  (0) 2023.05.30
    '⌨Programming/Spring' 카테고리의 다른 글
    • JPA 복합키 삭제 에러, 이슈
    • 스프링에서 S3로 파일업로드하기
    PangLog
    PangLog

    티스토리툴바