config 파일
- 특징
설정 값들을 특정 형식의 파일에 저장하는 방식
주로 프로퍼티 파일(.properties), YAML 파일(.yml), JSON 파일(.json) 등을 사용한다 - 장점
관리와 유지보수가 용이하다 . 설정 값들을 하나의 파일에 모아두기 때문에 코드와 분리되어 있어 변경이 쉽다
배포와 환경 전환이 간편하다. 다른 환경으로의 전환 시 파일만 변경하면 되므로 유연한 운용이 가능하다 - 단점
보안에 취약하다. 보안이 필요한 정보를 평문으로 저장하므로 노출될 경우 보안 문제가 발생할 수 있다
DB
- 특징
설정 값을 데이터베이스에 저장하는 방식
주로 관리자 설정, 시스템 설정 등의 정보를 저장한다 - 장점
보안이 강화된다. 데이터베이스에 저장되므로 접근 제어와 암호화 등의 보안 수준을 높일 수 있다
확장성이 높다. 대용량 데이터를 처리할 수 있고, 여러 서비스에서 공유하기 용이하다 - 단점
성능 저하가 발생할 수 있다. DB 조회 시 시간이 소요되므로 설정 값의 빈번한 참조는 성능 저하를 야기할 수 있다
별도의 관리가 필요하다. 데이터베이스 연결, 트랜잭션 관리 등 추가적인 작업이 필요하다
arg 변수로 입력
- 특징
프로그램 실행 시 인자로 설정 값을 전달하는 방식
명령행 인터페이스(CLI) 또는 실행 환경에서 직접 입력받는다 - 장점
간편하다. 설정 값을 변경하려면 프로그램을 다시 빌드할 필요 없이 인자를 변경하면 된다
테스트에 용이하다. 다양한 설정 값을 쉽게 시뮬레이션하고 테스트할 수 있다 - 단점
관리가 어렵다. 실행할 때마다 설정 값을 일일히 입력해야 하므로 실수가 발생할 수 있다
보안에 취약하다. 민감한 정보가 명령행에 노출될 수 있어 보안 문제가 발생할 수 있다
환경변수
- 특징
운영 체제 또는 실행 환경에 설정되어 있는 값
주로 운영 시스템이나 컨테이너에서 설정한다 - 장점
보안에 용이하다. 환경변수는 보안에 민감한 정보를 안전하게 보관할 수 있는 방법 중 하나이다
확장성이 좋다. 환경변수를 이용하여 다양한 환경에서 설정 값을 동적으로 관리할 수 있다 - 단점
관리가 어렵다. 많은 환경변수가 설정되어 있을 경우 관리가 복잡해질 수 있다
사용자가 변경하기 어렵다. 일반 사용자는 환경변수를 직접 수정하는 것이 어려울 수 있다
코드에 작성
- 특징
설정 값을 코드 내에 하드코딩하는 방식
직접 코드를 수정하여 설정 값을 변경한다 - 장점
빠르게 접근할 수 있다. 설정 값을 변경할 필요 없이 코드를 수정하여 즉시 적용할 수 있다
파일 또는 DB와 같은 외부 의존성이 없다 - 단점
유지보수가 어렵다. 설정 값이 코드에 하드코딩되어 있기 때문에 변경이 필요할 때마다 코드를 수정해야 한다
배포와 관리가 번거롭다. 설정 값이 코드와 결합되어 있기 때문에 변경 시 프로그램을 재배포해야 한다
'-- 기타 -- > 일반 개념' 카테고리의 다른 글
[Git] .gitignore 란? (0) | 2024.04.03 |
---|---|
Dependency Injection(의존성 주입, DI)란? (0) | 2024.03.14 |
[프로그래밍 패러다임] AOP (관점 지향 프로그래밍) (0) | 2024.03.14 |
[디자인 패턴] 싱글톤 패턴 (0) | 2024.01.22 |
[디자인 패턴] 팩토리 패턴(Factory Pattern) (0) | 2024.01.21 |