You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
각 환경에 따라 서로 다른 설정값이 존재하는데, 이 문제를 위해 각 환경에 맞게 어플리케이션을 빌드함
빌드를 통해 각 환경에 설정된 값들이 포함된 .jar가 생성됨
문제점!
개발 또는 운영 버전의 빌드 결과물이 다름. 개발 환경에서 검증되더라도 운영 환경에서 다른 빌드 결과를 사용하기에 예상치 못한 문제가 발생할 수 있음. 개발용 빌드가 끝나고 검증한 다음에 운영용 빌드를 해야하는데, 그 사이에 코드가 변경될 수 있음. 즉, 같은 소스코드에서 나온 결과물인지 검증하기 힘듦
각 환경에 맞추어 최종 빌드가 되어 나온 빌드 결과물은 다른 환경에서 사용할 수 없어 유연성이 떨어짐. 향후 다른 환경이 필요할때마다 맞추어 빌드해야함
환경에 따라 변하는 설정값을 실행 시점에 주입
어플리케이션 실행 환경과 무관하게 하나의 빌드 결과물을 만들고, 해당 빌드된 .jar파일에는 설정값을 설정하지 않는다. 설정 값은 어플리케이션 실행 시점에 환경에 따라 외부에서 주입한다.
이렇게하면 빌드는 한번만 하면 되며, 개발 버전과 운영 버전의 빌드 결과물이 같아서 개발환경에서 검증되면 운영 환경에서도 믿고 사용할 수 있음. 이후에 새로운 환경이 추가되어도 별도의 빌드 과정 없이 기존의 .jar를 사용할 수 있음
유지보수하기 좋은 어플리케이션 개발의 가장 기본 원칙은 변하는 것과 변하지 않는 것을 분리하는 것.
reacted with thumbs up emoji reacted with thumbs down emoji reacted with laugh emoji reacted with hooray emoji reacted with confused emoji reacted with heart emoji reacted with rocket emoji reacted with eyes emoji
Uh oh!
There was an error while loading. Please reload this page.
-
외부 설정과 프로필
하나의 어플리케이션을 환경에 따라 개발 또는 운영 등의 환경으로 사용해야할 때가 있다.
각 환경에 따라 서로 다른 설정값이 존재하는데, 이 문제를 위해 각 환경에 맞게 어플리케이션을 빌드함
빌드를 통해 각 환경에 설정된 값들이 포함된 .jar가 생성됨
문제점!
개발 또는 운영 버전의 빌드 결과물이 다름. 개발 환경에서 검증되더라도 운영 환경에서 다른 빌드 결과를 사용하기에 예상치 못한 문제가 발생할 수 있음. 개발용 빌드가 끝나고 검증한 다음에 운영용 빌드를 해야하는데, 그 사이에 코드가 변경될 수 있음. 즉, 같은 소스코드에서 나온 결과물인지 검증하기 힘듦
각 환경에 맞추어 최종 빌드가 되어 나온 빌드 결과물은 다른 환경에서 사용할 수 없어 유연성이 떨어짐. 향후 다른 환경이 필요할때마다 맞추어 빌드해야함
어플리케이션 실행 환경과 무관하게 하나의 빌드 결과물을 만들고, 해당 빌드된 .jar파일에는 설정값을 설정하지 않는다. 설정 값은 어플리케이션 실행 시점에 환경에 따라 외부에서 주입한다.
이렇게하면 빌드는 한번만 하면 되며, 개발 버전과 운영 버전의 빌드 결과물이 같아서 개발환경에서 검증되면 운영 환경에서도 믿고 사용할 수 있음. 이후에 새로운 환경이 추가되어도 별도의 빌드 과정 없이 기존의 .jar를 사용할 수 있음
유지보수하기 좋은 어플리케이션 개발의 가장 기본 원칙은 변하는 것과 변하지 않는 것을 분리하는 것.
외부 설정
어플리케이션을 실행할 때 필요한 설정 값을 외부에서 주입하는 방법
OS 환경 변수
OS에서 지원하는 외부 설정으로, 해당 OS를 사용하는 모든 프로세스에서 사용
자바 시스템 속성
자바에서 지원하는 외부 설정으로 JVM안에서 사용
자바 커맨드 라인 인수
커맨드 라인에서 전달하는 외부 설정. 실행 시 main(args)메소드에서 사용
외부 파일(설정 데이터)
어플리케이션에서 특정 위치의 외부 파일을 직접 읽어서 사용함
Beta Was this translation helpful? Give feedback.
All reactions