데이터베이스의 내부 동작 원리
RDBMS(MySQL)와 NoSQL(MongoDB)의 내부 구조와 작동 방식을 비교 정리
RDBMS(MySQL)와 NoSQL(MongoDB)의 내부 구조와 작동 방식을 비교 정리
데이터를 추출·변환·적재하는 자동화 워크플로우
Vault를 활용해 K8s 시크릿을 안전하게 관리하는 방법 정리
정보보호 및 개인정보보호 관리체계(ISMS-P)에 대한 개념과 구조 정리
시스템 자원에 대한 접근을 통제하는 보안 전략
네트워크를 내부/외부망으로 나눠 보안을 강화하는 전략
HTTPS 인증서가 필요한 이유, 갱신이 필요한 이유, cert-manager가 어떤 도움을 주는지 정리
객체지향 설계의 5대 원칙인 SOLID
Kubernetes에서 애플리케이션 자원 요구사항을 선언하는 방법과 그 중요성
Terraform의 핵심 개념인 state 파일과 그 관리 방식에 대한 이해
Terraform에서 모듈 간의 실행 순서를 제어하는 방법
Pod가 의도된 중단에서도 안정적으로 유지되도록 보장하는 정책
서비스 안정성과 성과 측정을 위한 SRE 핵심 지표 개념 정리
AWS에서 격리된 가상 네트워크 공간을 구성하고 제어하는 핵심 서비스
교차 출처 요청을 제어하는 웹 보안 정책 (Kotlin 기반 예시 포함)
데이터 복구 시 어느 시점까지 복구할 수 있는지를 나타내는 지표
재해 복구에서 '얼마나 빨리 복구할 것인가'를 정의하는 지표
RAID 구조와 RAID 5 복구 능력에 대해 정리
EKS 환경에서 Pod 단위 IAM 권한 부여를 가능하게 하는 IRSA에 대해 정리
OAuth 2.0 위에 구축된 인증 프로토콜인 OIDC(OpenID Connect)의 개념과 사용처 정리
웹 서비스 통신 방식 두 가지인 SOAP와 REST의 차이 비교
서로 다른 네트워크(AS) 간의 경로 정보를 교환하는 라우팅 프로토콜
Kubernetes Secret을 GitOps 환경에서 안전하게 관리하는 방법
연산이 집중적으로 필요한 작업과 디스크/네트워크 등 입출력 대기가 많은 작업
데이터를 저장하고 관리하는 기술
StatefulSet vs DaemonSet StatefulSet은 각 Pod에 고정된 ID, 고정된 스토리지, 순차적 배포가 필요한 워크로드를 위한 리소스. DaemonSet은 클러스터의 모든(또는 일부) 노드마다 1개씩 Pod을 배포할 때 사용하는 리소스. (공식문서 링크 - StatefulSet: https://k...
고성능 L7 프록시
서비스 메쉬를 구현하는 오픈소스 플랫폼으로
리눅스 서버에 원격 접속하는 기본 수단
서비스 라이프사이클은 소프트웨어 또는 서비스가 기획, 개발, 배포, 운영, 개선, 종료까지의 과정을 포함하는 전체 생명주기
실시간으로 계속 흐르는 데이터(이벤트)를 순서대로 처리하는 데이터 구조
어떤 노드에 스케줄될 수 있는지를 노드의 라벨을 기준으로 제어할 수 있게 해주는 기능
Kubernetes 클러스터 내에서 가상 머신(VM)을 컨테이너처럼 실행할 수 있게 해주는 확장 프로젝트
CPU 제어를 위한 CFS 스케줄러
로그 수집 & 분석을 위한 도구 조합
JaCoCo(Java Code Coverage)는 Java 프로그램의 테스트 커버리지를 측정하는 오픈소스 도구입니다. JaCoCo는 Java 바이트코드 수준에서 동작하며, 코드의 실행 여부를 추적하여 테스트가 코드의 어느 부분까지 실행되는지를 분석합니다.
Kotlin은 JetBrains에서 개발한 현대적인 프로그래밍 언어입니다.
이벤트 기반 아키텍처(Event-Driven Architecture, EDA)는 시스템 구성 요소들이 이벤트(event)를 생성하고 소비하는 방식으로 통신하는 소프트웨어 아키텍처 패턴입니다.
TCP 통신에서 사용되는 3-Way Handshake와 4-Way Handshake에 대해 설명합니다.
AOP (Aspect-Oriented Programming, 관점 지향 프로그래밍)은 애플리케이션의 핵심 비즈니스 로직과는 별개로, 부가적인 관심사(공통 기능, Cross-Cutting Concerns)를 분리하여 모듈화하는 프로그래밍 기법입니다. 이를 통해 코드를 간결하고 유지보수 가능하게 만듭니다.
IoC(Inversion of Control)는 제어의 역전이라는 의미로, 객체의 생성, 의존성 관리, 생명주기 등을 개발자가 아닌 프레임워크나 컨테이너가 관리하도록 위임하는 디자인 원칙입니다. 이는 애플리케이션의 유연성을 높이고, 코드의 결합도를 낮추는 데 핵심적인 역할을 합니다.
DI(Dependency Injection)는 객체 간의 의존성을 Spring Framework가 관리하여 객체 생성 및 의존성 주입을 처리하는 디자인 패턴입니다. DI는 Spring의 핵심 개념 중 하나로, 코드의 결합도를 낮추고 유연성과 테스트 가능성을 높입니다.
Pitest (PITest, PIT Mutation Testing) 는 자바 기반의 Mutation Testing 도구로, 코드의 테스트 커버리지뿐만 아니라 테스트의 효율성을 평가하는 데 사용됩니다. 일반적인 코드 커버리지는 테스트가 코드의 각 부분을 실행했는지 확인하지만, Pitest는 테스트가 코드의 동작을 올바르게 검증하는지도 평가합니다.
HikariCP는 Java 응용 프로그램에서 JDBC Connection Pool을 제공하는 가볍고 고성능의 커넥션 풀 라이브러리입니다. Spring Boot는 기본적으로 HikariCP를 데이터베이스 연결 풀로 사용합니다.
Lombok은 Java 개발자가 반복적으로 작성하는 보일러플레이트 코드를 줄이고, 더 간결하고 가독성 좋은 코드를 작성할 수 있도록 도와주는 라이브러리입니다.
JPA에서 제공하는 핵심 개념인 영속성 컨텍스트 내용입니다.
ORM(Object-Relational Mapping)은 객체 지향 프로그래밍 언어를 사용하여 관계형 데이터베이스를 다룰 수 있도록 중간 매핑 역할을 해주는 기술입니다. 객체 모델과 데이터베이스의 관계 모델 간 불일치를 해결하고 데이터베이스 작업을 코드로 추상화하는 것이 핵심입니다. Java에서는 ORM 도구로 Hibernate, JPA(Java Pe...
Java Persistence API (JPA)는 자바 애플리케이션에서 관계형 데이터베이스를 쉽게 다룰 수 있도록 지원하는 표준 ORM (Object-Relational Mapping) 기술입니다. JPA는 Java EE (현재는 Jakarta EE)의 일부로, 데이터베이스와 객체 간 매핑을 통해 SQL 작성을 최소화하면서 데이터를 처리할 수 있도록 ...
SQL과 NoSQL은 데이터베이스 관리 시스템(DBMS)의 두 가지 주요 유형으로, 데이터 저장 및 관리 방식에 따라 구분됩니다.
데이터베이스에서 인덱스(Index)는 특정 컬럼이나 컬럼 조합에 대해 검색 속도를 향상시키기 위해 사용하는 데이터 구조입니다.
트랜잭션(Transaction)은 데이터베이스 상태를 변환시키는 하나의 논리적 작업 단위를 뜻합니다. 트랜잭션은 완전히 실행되거나(Commit), 완전히 취소되어야(Rollback) 합니다.