2025/08 24

[Spring Cloud Vault] 1. 설정

1. ConfigData API외부 설정을 가져오는 역할을 하는 API✅ Vault, Config Server 등✅ 어떤 설정 시스템을 가져올지, 순서를 어떻게 할지 지정 가능➡️ 유연성 높음 ConfigData Locations위치vault://vault:/// (컨텍스트 지정 가능)vault:///?prefix= (prefix 지정 가능) 기본 경로/secret/${spring.application.name}/${profile} 예시) application.yml더보기spring.config.import: vault://first/context/path, vault://other/path, vault://spring.config.import: vault://my/path?prefix=foo., vau..

카테고리 없음 2025.08.31

[Spring Cloud Vault] 0. Overview

0. 소개Spring Vault 위에서 동작하는 클라이언트 사이드 지원 도구✅ 모든 환경에서 애플리케이션이 필요로하는 외부 비밀 속성을 중앙에서 관리할 수 있음➡️ 다양한 외부 서비스에 대한 접속 자격 증명을 애플리케이션에 제공함 타입정적 비밀: 고정 값으로 자격 증명하는 방식의 secret (사용자 이름/비밀번호 등)동적 비밀: 필요할 떄마다 생성되는 임시 자격 증명 1. Server 설치2. Client 셋팅의존성) gradle더보기implementation 'org.springframework.cloud:spring-cloud-starter-vault-config' application.yml더보기spring.cloud.vault: host: localhost # Vault ..

카테고리 없음 2025.08.31

[Vault] Secret Engines

1. Overview데이터를 저장, 생성, 암복호화하는 컴포넌트 Path & RoutingVault 내 특정 경로에 마운트됨클라이언트 요청이 들어오면, Vault 라우터가 경로 접두어를 보고 해당 엔진으로 라우팅함 Lifecycle동작요약주요 영향enable엔진을 특정 경로에 활성화엔진 인스턴스 생성✅ 경로 대소문자 구분➡️ 해당 경로로 요청 라우팅 시작disable해당 엔진 비활성화엔진 사용 불가✅ 저장 데이터 제거move엔진의 마운트 경로 변경기존 경로에서 발급된 모든 리스 무효화✅ 설정 데이터는 유지tune엔진의 전역 설정예: TTL 등⚠️ 엔진의 경로가 충돌되어서는 안됨 (서로 접두어 관계가 되면 안됨) 예시) 명령어더보기vault secrets enable -path= vault secrets ..

카테고리 없음 2025.08.30

[Vault] 1. About Vault

1. What is Vault?중앙 집중화된 secret 관리 및 접근 제어를 제공하는 도구✅ 모듈형 설계✅ 플러그인 생태계➡️ 기존 시스템과 손쉽게 통합 가능 PluginVault의 기능 단위 블록✅ "데이터가 어떻게 처리되고, 클라이언트가 어떻게 접근하는지" 제어함✅ 내장 플로그인은 기본 포함되어 별도 등록없이 "enable" 해서 사용함✅ 외부 플러그인은 별도 배치 및 등록이 필요함 Who can access data in Vault?Vault는 저장되는 데이터에 대한 접근을 엄격히 제한함✅ 데이터는 저장 시 자동으로 암호화됨✅ 접근은 인증과 인가 과정을 반드시 거쳐야 함✅ 모든 인증/인가 시도를 감사 로그로 기록함 2. How Vault worksCore Workflow인증: 토큰, LDAP 프로..

카테고리 없음 2025.08.29

[Spring Cloud Netflix] 0. Overview

Netflix OSS를 Spring Boot 애플리케이션에서 바로 쓸 수 있도록 해주는 자동 설정 패키지✅ Netflix OSS: 오픈소스로 공개된 Netflix 인프라 라이브러리들 (Eureka, Ribbon, Hystrix, Zuul 등) 1. Service Discovery서비스 레지스트리 및 디스커버리 기능 제공✅ 클라이언트는 http://'서비스 이름' 형식으로 접근 가능 Eureka서비스 디스커버리를 제공하는 Netflix OSS 컴포넌트구분Eureka ServerEureka Client역할서비스 등록소(Registry)서비스 등록자 + 소비자주요 기능- 서비스 메타데이터(IP, Port, 이름 등) 보관- 서비스 상태 모니터링- 클러스터링(HA) 지원- 자기 자신을 Eureka Server에..

카테고리 없음 2025.08.28

[gRPC] 1. What is gRPC?

1. Introduction to gRPCGoogle의 원격 프로시저 호출 오픈소스 프로젝트클라이언트 애플리케이션이 원격 서버 애플리케이션의 메서드를 로컬 객체처럼 직접 호출할 수 있음✅ 클라이언트 측에서는 "Stub"을 이용함 (서버와 동일한 메서드를 제공하는 프록시 역할) Concept Diagram다양한 환경에서 실행되고 서로 통신할 수 있음 (서로 다른 기술 스택 등)✅ 서비스 인터페이스 정의를 기반으로 통신함✅ 서비스 정의를 중심으로 동작함➡️ 분산 애플리케이션을 훨씬 쉽게 만들 수 있음 Working with Protocol BuffersGoogle이 만든 오픈소스 직렬화 방식✅ 구조화된 데이터를 효율적으로 저장 및 전송하게 해줌proto 파일: gRPC 서비스 및 데이터 구조 정의protoc..

카테고리 없음 2025.08.26

[주니어 백엔드 개발자가 반드시 알아야 할 실무 지식] 8. 실무에서 꼭 필요한 보안 지식

최범균 님의 "주니어 백엔드 개발자가 반드시 알아야 할 실무 지식" 책을 정리한 포스팅 입니다. 1. 중요한 보안2. 인증과 인가3. 데이터 암호화4. HMAC을 이용한 데이터 검증5. 방화벽으로 필요한 트래픽만 허용하기서버가 외부에 노출되기 시작하면 다양한 공격이 들어옴이를 방지하려면 필요한 만큼만 네트워크 접근을 허용하고 나머지는 차단해야 함 웹 방화벽웹 기반 위협을 감지하고 차단함SQL Injection, XSS 공격 등 OS 방화벽 6. 감사 로그(audit log) 남기기컴플라이언스나 정책을 지키기 위해 기록함✅ 활동을 입증하는 증거로 사용됨✅ 보안 사고 발생 시, 문제 해결에 큰 도움이 됨 예시더보기사용자 로그인/로그아웃 내역설정 변경 내역 (암호 초기화 등)민감 데이터 조회/수정 내역 7..

카테고리 없음 2025.08.26

[주니어 백엔드 개발자가 반드시 알아야 할 실무 지식] 5. 비동기 연동, 언제 어떻게 써야 할까

최범균 님의 "주니어 백엔드 개발자가 반드시 알아야 할 실무 지식" 책을 정리한 포스팅 입니다.1. 동기 연동과 비동기 연동동기 연동순차적으로 진행됨✅ 외부 연동 시, 외부 연동 실패가 전체 기능의 실패인지 확인해야 함✅ 외부 연동 시, 외부 서비스의 응답 시간 고려하기⚠️ 전체 서비스가 먹통될 수 있음 비동기 연동한 작업이 끝날때까지 기다리지 않고 바로 다음 작업을 처리함✅ 외부 연동 결과가 즉시 필요하지 않을 경우✅ 연동에 약간의 시차가 생겨도 문제가 생기지 않을 경우✅ 실패했을 때 재시도가 가능한 경우✅ 실패했을 때 수동으로 복구 가능한 경우 예시) 비동기 연동더보기로그인 시, 포인트 적립주문이 들어오면 판매자에게 푸시 보내기학습을 완료하면 포인트 적립컨텐츠 등록 시 검색 서비스에도 등록인증 번호 ..

카테고리 없음 2025.08.26

[주니어 백엔드 개발자가 반드시 알아야 할 실무 지식] 4. 외부 연동이 문제일 때 살펴봐야 할 것들

최범균 님의 "주니어 백엔드 개발자가 반드시 알아야 할 실무 지식" 책을 정리한 포스팅 입니다. 대규모 트래픽 요청 중 외부 시스템에 의존할 경우, 외부 시스템에서 부하를 감당하지 못해 장애가 발생할 수 있음✅ 연동 시스템의 품질도 함께 신경써야 함➡️ 문제를 완전히 차단하기는 어려우므로, 영향을 줄이도록 접근하기 1. 타임아웃외부 시스템 호출 시, 일정 시간 안에 응답이 없으면 강제로 중단하고 에러로 처리하는 기능타임아웃 시간을 설정하여 지정한 시간이 지나도 응답이 없을 경우 에러를 반환하기✅ 연동 서비스의 응답이 느릴 때, 연동 서비스에 대한 타임아웃을 설정하지 않으면 처리량이 급격히 떨어짐➡️ 사용자 경험 개선 (반응 없는 무한 대기보다는 에러 화면이 나음)➡️ 시스템 자원 보호 (자원이 포화되기 ..

카테고리 없음 2025.08.24

[주니어 백엔드 개발자가 반드시 알아야 할 실무 지식] 3. 성능을 좌우하는 DB 설계와 쿼리

최범균 님의 "주니어 백엔드 개발자가 반드시 알아야 할 실무 지식" 책을 정리한 포스팅 입니다.1. 성능에 핵심인 DB테이블 풀 스캔일 경우, DB 부하 커짐 2. 조회 트래픽을 고려한 인덱스 설계일반적인 시스템에서는 조회 기능의 실행 비율이 높음인기 있는 게시글과 인기 없는 게시글이 구분될 수 있음➡️ 인덱스 사용 (카테고리, 작성자 id 등) Full-Text Search더보기데이터베이스나 검색 시스템에서 문자열 전체를 대상으로 검색하는 기능➡️ 효율적으로 검색할 수 있음✅ 단어 단위 인덱스✅ 불용어 처리✅ 어근화 / 형태소 분석✅ 랭킹/점수 부영 MySQLCREATE FULLTEXT INDEX idx_title_content ON articles(title, content);SELECT * FROM..

카테고리 없음 2025.08.21