본문 바로가기
개발/스프링 FIreBase Neo4j

SPRING INITIALZR 생성 후 PROFILES 설정 방법 feat Okata

by 꿈트리꿈트리 2023. 1. 21.

SPRING INITIALZR 생성 후 Okta를 빼게 되었다.

Okta 사용하지 않은 이유

Okta Documents

프로젝트가 최종 목표는 스프링과 플러터를 이용해서 모든 플랫폼에 돌아가는 앱을 만드는 것이다.

그 과정 중에 Okta라는 라이브러리를 발견하였고 보안, 인증에 매우 편리 할거 같았다.

하지만 get started 페이지에 보니 플러터가 보이지 않는 것이다.

리액트는 있는데 플러터가 보이지 않네 괜히 플러터로 하기로 마음먹은 건가. 왜 플러터에 꽂혀 가지고

리액트 했으면 왠지 편하지 않았을까 하는 마음이 자꾸 든다 지금이라도 리액트로 방향을 잡아야 하는 것인가. 

리액트는 생태계가 복잡해도 그 생태계에 진입한 사람이 많아서 다양한 방향과 라이브러리들이 꽃을 피우는 거 같다 복잡해 보이는 생태계 때문 들어가기가 꺼려지긴 하지만.

node 생태계를 배우는게 빠를지 구글이 플러터를 빨리 발전시켜 주는 게 빠를지 후자에 기대를 걸고 있다. 구글이 만드니 그 커다란 구글 생태계에 최적화된 플랫폼을 만들지 않을까 하는 기대감 그렇게 기대감을 주고 사라진 프로젝트들도 많지만 허허

어찌 되었든 그래서 일단 Okta는 뒤로 미뤄두고 세팅을 진행해 보려 한다.

제 마음은 Flutter를 향하고 있으나 seo도 지원 안되고 Okta도 지원 안되고 제 마음은 왜 플러터를 향하고 있는 걸까요?>,<

 

Spring Profile 설정

애플리케이션을 실행할 때 환경을 프로파일마다 다르게 설정해 줄 수 있다.

개발환경에서 프로토타입이나 테스트 용으로 사용할 때 운영 중인 서버에 사용할 때 같은 디비를 사용하면 위험하다

잘못 만든 소스로 현재 실제 운영 중인 데이터가 기대한 값과 다를 수도 있기 때문에 테스트 환경 안에 있는 디비를 사용한다 든지 운영 중인 서버와 분리해서 개발환경에서 충분히 테스트하고 운영서버에 반영해야 하기 때문이다.

그래서 프로파일을 설정해 줌으로써 어느 프로파일을 선택하냐에 따라 디비 혹은 서버를 다르게 해 줄 수 있다

 

  • application.properties
  • application-dev.properties
  • application-production.properties

같은 식으로 파일명을 다르게 주고 그 안에 디비의 주소라든지 포트 서버등을 다르게 해 주어도 되고

 

application.yml처럼 yaml 형식을 사용하여 

 

spring:
  profiles: test

---
spring:
  profiles: dev

---
spring:
  profiles: production

예전엔 이런 식으로 사용했는데

Property 'spring.profiles' imported from location 'class path resource [application.yml]' is invalid and should be replaced with 'spring.config.activate.on-profile' [origin: class path resource [application.yml]

이런 에러가 나서 찾아보니

spring:
profiles: test

---
spring:
profiles: dev

---
spring:
profiles: production

이런 식으로 프로파일을 따로 분리시켜서 적용해 주니 작동되네요.

이 부분이 이전에 비해 변경된 거 같은데 사용해 보면서 알아봐야겠네요.

일단은 간단하게 테스트해 보았다

1. profiles를 안 적은 부분이 default가 되고 

server:
  port: 8081

---
spring:
profiles: dev

---
spring:
profiles: production

netty port check

포트가 8081인걸 확인 

보통 같이 일하는 사람에게 소스 내려주고 실행시켰을 시 바로 실서버로 돌아가면 안 되기에 

default profiles를 비워두면 디비 세팅 같은 환경 설정이 없어서 에러가 나므로 프로파일을 인지하고 프로파일 세팅하게 해 줄 수 있다. 에러가 나면 에러를 찾고 프로파일을 강제 세팅하게 하는 거지.

 

실행 메뉴 구성편집
실행/디버그 구성 화면

메이븐이나 그래들 실행 시 프로파일 옵션을 주는 방법도 있고 -D 뒤에 옵션을 적어줘서

intellij IDE에선 실행/디버그 구성 화면에서 활성화된 프로파일을 적어 주는 것으로 프로파일을 활성화시킬 수 있다.

전 IDE를 항상 사용하므로 cli보단 ui로 설정해서 사용합니다.

server:
  port: 8081

---
spring:
profiles: dev
server:
  port: 8082

---
spring:
profiles: production

로그 확인 화면

run을 실행시키면 포트가 8082 dev 프로파일인 것을 확인할 수 있다.

일단은 작은 규모라 파일 한 군데서 프로파일에 대한 옵션을 설정하는 게 편하지만

나중에 규모가 커지거나 환경에 따라 파일로 쪼개고 나누고 할 수가 있다.

 

다음은 Neo4j 환경을 잡고 오류 없이 스프링 프레임웍을 시작하는 법을 알아보겠습니다.

graalvm 라이브러리의 힘인지 스프링이 업그레이드된 것인지 애플리케이션 띄우는데 속도가 빨라진 거 같네요.