N° 01 — 목록
'Configuration' (3)
-
Cloud & Infrastructure/KubernetesKubernetes - 10. config secret
왜 앱 설정을 이미지에 구우면 안 되는가 — ConfigMap과 Secret한 팀이 같은 앱을 개발/스테이징/운영 세 환경에 띄운다. 앱은 DB 호스트, API 키, 타임아웃 값을 설정 파일에서 읽는다. 처음엔 환경마다 이미지를 따로 빌드했다 — 설정 파일만 다른 이미지 세 개. 그러다 설정이 바뀔 때마다 빌드 3번, 푸시 3번, 배포 3번에 지쳤다. 그리고 깨달았다: 이미지는 코드여야지 환경 설정이어선 안 된다.이 글이 푸는 것은: Kubernetes가 ConfigMap(비기밀 설정)과 Secret(기밀 값)으로 "설정을 이미지에서 빼내는" 방법, 그리고 Secret이 사실 "비밀"이 아니라는 진실이다.설정은 세 가지로 주입된다Kubernetes에서 컨테이너에 설정을 넣는 방법은 세 가지다. 모두 Co..
-
Backend Development/Spring BootSpringBoot - 02. starter-config
spring-boot-starter-web 한 줄이 47개 JAR을 끌고 오는 이유 — Starter와 설정 관리build.gradle에 implementation 'org.springframework.boot:spring-boot-starter-web' 한 줄을 추가했다. Gradle은 47개의 의존성을 다운로드한다 — Spring MVC, Jackson, Tomcat, Bean Validation, 로깅 등. 각각의 버전을 직접 맞출 필요 없이, Starter가 호환되는 버전 세트를 큐레이션한다.이 글은 Starter 의존성의 구조, application.yml 외부화, 프로파일별 설정, 그리고 Spring Boot 4.0의 모듈화된 Starter 구조를 풀어간다. (Spring Boot Refere..
-
Backend Development/SpringSpring - 04. configuration component-scan
@Configuration이 싱글톤을 보장하는 원리 — CGLIB 프록시와 컴포넌트 스캔@Configurationpublic class AppConfig { @Bean public A a() { return new A(b()); } // b()를 직접 호출 @Bean public B b() { return new B(); }}a()에서 b()를 직접 호출하면 new B()가 두 번 실행될까? — 아니다. @Configuration 클래스는 CGLIB 프록시로 감싸져서, b()를 호출하면 컨테이너에 이미 등록된 bean을 반환한다. 이것이 Spring의 싱글톤 보장 메커니즘이다. (Spring Framework Reference - Java-based Container Config..