TIL - 개발 키워드 정리

2026. 4. 15. 12:49·내배캠

아키텍처

  • MSA (Microservices Architecture) - 각 서비스가 커짐에 따라, 확장 가능하고 장애 대응에 유연한 설계를 채택하기 위함
  • 헥사고날 아키텍처 (Hexagonal Architecture) - 모듈의 독립성을 보장하고, 포트와 어댑터구조로 외부 기술에 유연하게 대처하기 위함
  • DDD (Domain-Driven Design) - 도메인 중심으로 모델을 설계하여 비즈니스 로직을 명확하게 표현하기 위함
  • Layered Architecture - 4 계층 구조로 의존성이 상위 계층에서 하위 계층으로 흐르는 단방향 설계를 채택하여 각 계층이 자신의 역할만 수행하도록 하고, 특정 계층의 변화가 다른 계층에 영향을 미치도록 않기 하기 위함

데이터 및 트랜잭션

  • 분산 트랜잭션 - MSA 환경에서 하나의 비즈니스 요구사항을 처리하는 데에 하나가 아닌 물리적으로 떨어진 여러 개의 트랜잭션이 사용되면서 발생하는 문제를 뜻함
  • 이벤트 기반 아키텍처 - 메시지 브로커를 통한 이벤트를 중심으로 한 비동기 통신을 채택해 시스템 간 결합도를 낮추고 응답 시간을 낮추기 위함
  • 결과적 일관성 (Eventual Consistency) - "지금 당장은 일치하지 않더라도, 결국에는 일치하게 된다"는 개념으로 예를 들어, 주문이 생성될 때 배송도 같이 생성되어야 한다는 요구사항이 있을 때, 주문이 존재하지만 배송은 아직 없는 상태가 생기는데 이후 배송이 생성되어 요구사항을 충족하게 된다.
  • Outbox 패턴 - 메시지를 발행할 당시의 이벤트의 내용을 시점 데이터로 테이블에 저장하고 스케쥴러를 통해 실패한 이벤트를 재시도 함으로써, 수신자에게 이벤트가 도달하도록 보장하는 위해 사용하는 패턴
  • Inbox 패턴 - 메시지를 수신할 당시의 이벤트의 내용을 처리하기 전에 시점 데이터로 테이블에 저장하고 스케쥴러를 통해 실패한 이벤트를 재시도할 때, 동일한 이벤트가 중복 처리되는 것 같은 멱등성 문제를 해결하기 위해 사용하는 패턴
    데이터 정합성 - 각 마이크로 서버나 DB에 분산되어 저장된 데이터들이 일관된 값을 유지하는 상태를 의미

통신

  • REST, REST API, RESTful -  본래 REST는 'REpresentatinal State Transfer'을 줄인 것으로써, 표현된 상태 전송이라는 의미이다. 이름에서 알 수 있듯이 HTTP 요청을 자원과 행위로 나누고 자원의 상태를 URI와 적절한 형식으로 주고받는 방식을 의미한다. REST API는 이런 REST 아키텍처 스타일을 따르는 API를 의미하며 RESTful이란 "REST의 원칙을 얼마나 준수했는가"에 대한 형용사적 표현이다.
  • Feign Client - 마이크로 서비스 간 HTTP 통신을 할 때 사용되며 인터페이스를 통한 선언형 방식으로 구현되기 때문에, 비즈니스 로직과의 결합도를 낮출 수 있고 Spring Cloud와 연동하여 장애대응 면에서 RestTemplate에 비해 간편하게 설정할 수 있다.
  • 동기 / 비동기 처리 - FeignClient를 통한 동기식 통신과 EDD방식의 비동기식 통신을 적절하게 사용해 MSA 환경에서 유연하게 통신할 수 있다.
  • 메시지 큐 - 처리하고자 하는 이벤트를 큐에 저장해 각 서비스의 책임을 명확히 할 수 있고 원하는 시간에 이벤트를 처리할 수 있도록 한다.

성능 최적화

  • 캐싱 (Redis) - 대규모 트래픽 상황에서 조회의 성능을 높이기 위해 사용되는 것으로 DB를 거치지 않고 캐시를 1차적으로 조회하도록 하여 조회속도를 향상하기 위해 사용한다.
  • N+1 문제 - 연관된 객체정보들을 가져올 때 발생하는 문제로 객체 그래프 탐색과 같이 여러 테이블을 join 하는 작업에서 발생하는 문제이다.
  • Fetch Join - 데이터 조회 시에 연관된 객체정보까지 한 번에 가져오는 Query이다.
  • Batch 처리 - 실시간으로 쿼리를 실행하는 것이 아닌 일정 개수만큼 쿼리를 모아서 실행하는 방식으로, 서버와 DB 간 통신 비용을 줄이기 위해 사용된다.

안정성 및 장애대응

  • Circuit Breaker - MSA 환경에서 서비스의 장애가 다른 서비스로 전파되어 영향을 미치는 것을 막는 기술이다.
  • Retry 전략 - 시스템 전반에서 발생하는 일시적 오류들을 재시도함으로써 회복성을 높이기 위한 기술이다.
  • Fallback 처리 - 예외 발생 시 실행되는 Fallback 메서드로 장애 전파를 막고 사용자에게 우아한 실패(Graceful Degradation)를 제공해 서비스 연속성을 제공하기 위한 실패 처리 기술이다.
  • 장애 격리(Bulk Head) - 선박의 격벽 구조처럼 기능별로 스레드/커넥션풀을 분리해 특정 기능의 부하가 시스템 전체로 전파되는 것을 막는 전략이다.
  • SPOF - SPOF는 Single Poion Of Failure라는 뜻으로 단일 지점 실패라는 의미이다. 주로 서버가 한 개로 구성되어 서버가 다운됐을 때, 그 서버를 이용하는 다른 서버들에게까지 영향을 미치는 상황을 의미한다. 서버를 여러 개로 구성하는 서버 이중화와 로드 밸런서 도입으로 해결할 수 있다.
  • 고가용성 (High Availability) - 시스템이 중단 없이 정상 서비스를 제공하는 상태를 말하며, 다중화나 자동 복구 같은 기능등으로 구현된다.

인프라 및 운영

  • Docker - 애플리케이션과 실행 환경을 하나로 묶는 컨테이너화를 통해, 개발 환경과 운영 환경의 차이를 없애고 배포의 일관성을 보장하는 기술입니다.
  • CI/CD - 코드 변경 사항을 자동으로 테스트하고 빌드하여 운영 환경에 배포하는 자동화 파이프라인으로, 서비스 업데이트 속도와 소프트웨어 품질을 높이는 핵심 공정입니다.
  • 로그 모니터링 - 시스템에서 발생하는 로그 데이터를 실시간으로 수집하고 분석하여, 장애를 조기에 감지하고 발생 원인을 빠르게 파악하기 위한 가시성 확보 체계입니다.

인증 및 보안

  • 인증/인가 (AuthN / AuthZ) - 사용자가 누구인지 확인하는 인증(Authentication)과, 확인된 사용자가 특정 자원에 접근할 권한이 있는지 검증하는 인가(Authorization)를 통해 시스템을 보호하는 보안의 기초입니다.
  • JWT (JSON Web Token) - 인증 정보를 안전하게 주고받기 위해 JSON 객체를 암호화한 토큰으로, 별도의 세션 저장소 없이도 클라이언트의 상태를 검증할 수 있는 표준 규격입니다.
  • 토큰 기반 인증 - 서버가 세션을 유지하지 않고 클라이언트가 제출하는 토큰만으로 사용자를 식별하는 방식으로, 무상태성(Stateless)을 유지하여 서버의 확장성을 극대화하는 방식입니다.
  • 키클록(Key Cloak) - 개별 마이크로서비스가 수행하던 인증 및 인가 로직을 중앙 서버로 위임하여 통합 관리하는 기술이다. Oauth나 복잡한 보안 설정을 맡아서 처리하기에 각 마이크로 서버의 개발 효율을 높일 수 있다.

'내배캠' 카테고리의 다른 글

TIL - 생성자에 private과 protected, 언제 어떻게 쓸까  (0) 2026.04.24
TIL - 실시간 랭킹 구현 방법  (0) 2026.04.23
TIL - 회복성, SPOF, 분산 트랜잭션과 결과적 일관성  (1) 2026.04.13
TIL - 이벤트 스토밍 해보기  (0) 2026.04.11
TIL - MSA 환경에서, 엔티티가 필드로 관리해야할 범위  (0) 2026.04.08
'내배캠' 카테고리의 다른 글
  • TIL - 생성자에 private과 protected, 언제 어떻게 쓸까
  • TIL - 실시간 랭킹 구현 방법
  • TIL - 회복성, SPOF, 분산 트랜잭션과 결과적 일관성
  • TIL - 이벤트 스토밍 해보기
MvA
MvA
백엔드 개발자 김재현입니다. 주로 공부하면서 느낀점을 기록합니다.
  • MvA
    Man vs Ai
    MvA
  • 전체
    오늘
    어제
    • 분류 전체보기 (94)
      • Java (6)
      • Python (8)
        • 딥러닝 (1)
        • 머신러닝 (7)
      • JavaScript (2)
      • 내배캠 (60)
      • 개인 프로젝트 (11)
      • 책 후기 (5)
      • 기타 (1)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    내일배움캠프
    배포
    Riot API
    아키텍처
    딥러닝
    TiL
    머신러닝
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
MvA
TIL - 개발 키워드 정리
상단으로

티스토리툴바