본문 바로가기

SpringBoot

프로젝트 설정 : DB 연동 및 민감한 정보 마스킹

1. DB 연동 

application.yml 파일에 설정을 추가합니다.

server:
  port: 0

spring:
  application:
    name: user-service

# MySQL 설정하기
  datasource:
    url: jdbc:mysql://127.0.0.1:3306/DB명
    username: 계정 이름
    password: 계정 비밀번호
    driver-class-name: com.mysql.cj.jdbc.Driver

  jpa:
    hibernate:
      ddl-auto: update
    properties:
      hibernate:
        format_sql: true
    show-sql: true

 

2. 정보 마스킹

resources 내에 application-XX.yml 형식으로 파일 생성합니다.

- application-db.yml

url: jdbc:mysql://127.0.0.1:3306/msa_db
username_: root  #username이 예약어 비슷해서 _를 붙여야 했음.
password: 1234
driver-class-name: com.mysql.cj.jdbc.Driver

 

- application.yml에 추가로 아래 부분을 추가해야 합니다

 spring.profiles.active:application-[이부분 이름].yml

  profiles:
    active:에서 []에 들어있는 이름을 이 부분에 꼭 적어주셔야 정보 마스킹 파일에서 읽어올 수 있습니다.

server:
  port: 0

spring:
  application:
    name: user-service

  # spring.profiles.active:application-[이부분 이름].yml
  profiles:
    active: db  #두 개 이상의 외부파일에서 받아올 때는  콤마(,)로 여러개를 나열합니다.

  # MySQL 설정하기
  datasource:
    url: ${url}
    username: ${username_}
    password: ${password}
    driver-class-name: ${driver-class-name}
    
  jpa:
    hibernate:
      ddl-auto: update
    properties:
      hibernate:
        format_sql: true
    show-sql: true

 

- gitignore에 만들어 놓은 yml파일을 등록합니다.

### profile file ###
application-db.yml

 

3. 트러블슈팅

- 원인

만약 인텔리제이를 사용하는 중 위 순서대로 진행했음에도 깃허브에 application-db.yml 파일이 올라간다면,

IntelliJ IDEA나 다른 Git 클라이언트에서 파일을 추가할 때 "Add to Git" 또는 "Stage" 버튼을 클릭하면 해당 파일이 Git에 추가되어 추적됩니다. 이후 .gitignore 파일의 규칙이 적용되기 전에 이미 커밋된 파일이 됩니다.

파일 생성 시 Add를 누르면서 이미 Git 저장소에 커밋된 파일로 Git이 추적하게 되면서 .gitignore 파일의 규칙은 이미 Git 저장소에 커밋된 파일에는 영향을 미치지 않기 때문 . gitignore 파일에 적용되지 않은 것입니다.

 

- 해결

이미 커밋된 파일을 .gitignore 규칙에 따라 추적에서 제외하려면 해당 파일을 Git 저장소에서 제거하고 다시 커밋해야 합니다. 이를 위해 git rm --cached 명령을 사용하면 됩니다. 이후 커밋을 진행하시면 됩니다