콘텐츠로 바로가기
주제38

software-engineering-devops

이 주제 아래 묶인 기록을 섹션별로 살펴봅니다.

  1. Backpressure Pattern

    기술 노트

    소비자가 처리 가능한 속도보다 생산자가 빠를 때 소비자가 생산 속도를 제어하는 메커니즘. 버퍼 폭발과 OOM을 방지. 생산자 >> 소비자 속도 차이 → 무한 큐 성장 → 메모리 고갈 또는 지연 폭증. Java의 `Flow` API, Project Reactor, ...

    software-engineering-devops / architecture-design / backpressure-pattern
  2. DDD Bounded Context

    기술 노트

    도메인 모델이 일관된 의미를 유지하는 명시적 경계. 경계 안에서 Ubiquitous Language가 적용된다. 도메인 전문가와 개발자가 동일한 언어로 소통. 코드·문서·대화 모두 동일 용어 사용. 예: "Order"라는 단어가 영업 컨텍스트에서는 '고객 주문',...

    software-engineering-devops / architecture-design / ddd-bounded-context
  3. GraphQL vs REST

    기술 노트

    두 API 패러다임의 설계 철학 차이. 선택은 팀 규모·클라이언트 다양성·쿼리 복잡도에 달려 있다. GraphQL의 리졸버 구조상 관계 데이터 조회 시 N+1 쿼리 발생 위험.

    software-engineering-devops / architecture-design / graphql-vs-rest
  4. OAuth2 and OIDC

    기술 노트

    PKCE(Proof Key for Code Exchange): 코드 탈취 방지. SPA/모바일 앱에서 필수.

    software-engineering-devops / architecture-design / oauth2-oidc
  5. SOLID Principles

    기술 노트

    OOP 설계의 5원칙. 변경에 강하고 테스트 가능한 코드를 만드는 지침. SOLID는 목적이 아닌 수단. 과도한 추상화도 위반이다. 인터페이스 1개에 구현체 1개라면 추상화 비용이 이득을 초과.

    software-engineering-devops / architecture-design / solid-principles
  6. Feature Flag

    기술 노트

    코드 배포와 기능 활성화를 분리하는 기법. 런타임에 기능을 켜고 끌 수 있어 안전한 배포와 점진적 롤아웃을 가능하게 함. 플래그가 쌓이면 코드베이스가 복잡해짐. 출시 완료된 Release Toggle은 반드시 제거. "플래그 청소 티켓"을 배포 직후 바로 생성하는...

    software-engineering-devops / devops-reliability / feature-flag
  7. Kubernetes Pod

    기술 노트

    Kubernetes의 최소 배포 단위. 하나 이상의 컨테이너가 네트워크와 스토리지를 공유하는 논리 호스트. 컨테이너는 격리 단위, Pod는 배포 단위. 사이드카 패턴(로깅, 프록시)이 Pod의 다중 컨테이너를 활용. `CrashLoopBackOff`: 컨테이너가 ...

    software-engineering-devops / devops-reliability / kubernetes-pod