80건의 항목
Fail2ban을 9개월간 운영하며 수집한 웹 스캐닝 공격 로그를 분석합니다.
NCP SourceBuild에서 Next.js 16 Turbopack 빌드가 무한 대기되는 문제를 해결합니다.
NCP Object Storage에서 프론트엔드 접근 시 발생한 CORS 오류를 s3cmd로 해결합니다.
macOS NFD 인코딩으로 인한 한글 파일명 자소 분리와 DB 검색 실패 문제를 해결합니다.
localhost와 127.0.0.1의 해석 과정 차이와 IPv4/IPv6 이슈 사례를 분석합니다.

카카오 소셜 로그인 시 전화번호 가입 계정의 email이 null로 들어오는 문제를 해결합니다.

네트워크관리사 2급 필기/실기 학습 방법과 합격 후기를 공유합니다.

OneTime 서비스의 서버 비용 절감을 위한 인프라 개선 과정과 아키텍처 변경기입니다.

JPA @CreationTimestamp 사용 시 타임존 차이로 생성일자가 잘못 저장되는 문제를 해결합니다.

Spring Batch initialize-schema 설정에도 메타 테이블이 생성되지 않는 문제를 해결합니다.
네트워크관리사 2급 필기 및 실기 시험 대비 핵심 개념 정리 노트입니다.

3일 벼락치기로 AWS SAA 자격증에 합격한 공부법과 후기를 공유합니다.

AWS SAA 시험 대비를 위한 주요 서비스별 핵심 개념 정리 노트입니다.

Java Reflection의 동작 원리와 Spring DI, JPA 등 프레임워크에서의 활용을 정리합니다.
Lombok @Builder와 @NoArgsConstructor를 함께 사용할 때 컴파일 에러가 발생하는 원인을 분석합니다.

JPA 엔티티에서 protected 기본 생성자가 필요한 이유를 리플렉션과 프록시 관점에서 설명합니다.

Java 25 LTS의 주요 변경점과 신규 기능, 마이그레이션 시 고려사항을 정리합니다.
@Builder가 기본 생성자를 제거해 MyBatis 결과 매핑이 실패하는 원인과 해결 방법을 분석합니다.
NAS의 개념, 클라우드 스토리지와의 비교, 활용 시나리오를 정리합니다.

로드밸런싱의 알고리즘, L4/L7 비교, 장애 대응 및 세션 유지 전략을 정리합니다.
포워드 프록시와 리버스 프록시의 차이점 및 Nginx 기반 활용 사례를 설명합니다.

MySQL utf8mb4의 두 Collation 차이와 한글 자소 분리 문제를 비교 분석합니다.
비동기 이벤트와 FeignClient로 유저 의견을 디스코드/노션에 자동 전송하는 구조를 구현합니다.

MBTI P를 위한 투두 앱 '일단'의 주요 기능, 차별점, 팀 소개를 담은 서비스 소개글입니다.
hashCode가 고유하지 않은 이유와 해시 충돌이 허용되는 설계 원리를 알아봅니다.

Object 클래스의 toString(), equals(), hashCode() 메서드 동작 원리와 재정의 방법을 다룹니다.

Object.hashCode()가 메모리 주소와 같은지 JVM 내부 코드를 분석하여 확인합니다.

트랜잭션 격리 수준 4단계와 각 수준에서 발생할 수 있는 정합성 문제를 정리합니다.

토큰 재발행 시 발생한 동시성 문제를 Redisson 분산 락과 AOP로 해결한 과정입니다.

JVM 가비지 컬렉터의 동작 원리, 힙 메모리 구조, 그리고 다양한 GC 알고리즘을 정리합니다.

JVM의 구성 요소와 클래스 로더, 실행 엔진, 런타임 데이터 영역을 정리합니다.

데이터베이스 트랜잭션의 ACID 특성과 COMMIT, ROLLBACK 등 제어 구문의 내부 동작을 설명합니다.
Bulk Insert 적용으로 OneTime 이벤트 생성 API의 처리 속도를 개선한 과정을 다룹니다.

DB 인덱스의 필요성, B+Tree 기반 동작 원리, 한계점 및 생성 전략을 정리합니다.

N+1 문제 해결과 인덱스 적용으로 OneTime 조회 API 성능을 개선한 과정을 정리합니다.

파일 스캐닝 공격을 Nginx와 Fail2Ban으로 탐지하고 iptables로 IP를 차단하는 과정을 기록합니다.

Spring Security Filter에서 발생한 예외가 GlobalExceptionHandler로 전달되지 않는 문제를 해결합니다.

JPA 지연 로딩으로 인한 LazyInitializationException 발생 원인을 분석하고 해결합니다.

SQL 로그 제거, 인터셉터 기반 API 로깅, 요청 정보 수집 등 운영 로깅을 단계별로 개선합니다.

Spring Interceptor의 동작 원리와 Filter와의 차이점, 인증 처리 활용법을 정리합니다.
서블릿 필터의 개념과 동작 원리, 로깅/인코딩/CORS 등 실전 사용 사례를 정리합니다.
Spring의 복잡한 설정 문제를 Spring Boot가 어떻게 해결하는지 핵심 기능 중심으로 비교합니다.
REST Docs + Swagger 연동 시 Components 덮어쓰기로 스키마가 누락되는 문제를 해결합니다.

에브리타임 시간표 연동 기능의 부하 테스트와 성능 개선 과정을 정리합니다.

에브리타임 시간표를 OneTime에 연동하는 크롤링 기반 신기능 구현 과정입니다.

OneTime 팀 합류부터 1차 스프린트까지의 백엔드 개발 과정을 회고합니다.

OOP의 4대 원칙, 클래스와 객체, JVM 메모리 구조, 변수, 메서드, 생성자를 정리합니다.
자바의 변수와 타입, String Pool, 형변환, Wrapper 클래스, 배열을 정리합니다.
자바가 컴파일 언어가 아닌 하이브리드 언어인 이유와 JIT 컴파일러의 동작을 설명합니다.
야구 구역 추천 서비스 HitZone의 DDD 리팩토링과 REST Docs+Swagger 적용 과정을 회고합니다.
GCP Cloud SQL 인스턴스가 예고 없이 자동 삭제되는 현상의 원인과 해결 과정을 공유합니다.

다인원 일정 조율 웹 서비스 OneTime의 탄생 배경과 주요 기능을 소개합니다.

RestControllerAdvice의 annotations 옵션이 에러 처리 범위에 미치는 영향을 분석합니다.

NCP 기반 밋업 프로젝트 배포 과정에서 Docker 포트포워딩 누락 삽질과 해결 경험을 기록합니다.
MethodArgumentNotValidException 오버라이드와 유효성 검증 에러 처리 세분화 과정을 다룹니다.

GlobalExceptionHandler를 활용한 Spring Boot 전역 에러 처리 구조와 동작 과정을 설명합니다.

로컬에서는 정상인 REST Docs가 배포 서버에서 적용되지 않는 문제를 해결합니다.

당근 테크 밋업 서버 파트 세션에서 배운 엔지니어링 전략과 느낀 점 정리입니다.

비즈니스 이해, '왜' 고민하기, AI 시대 개발자 경쟁력에 대해 고찰합니다.
Spring Boot와 NCP 클로바 스튜디오 API를 연동하여 공감/요약/키워드 챗봇을 구현한 과정을 정리합니다.

Service-ServiceImpl 인터페이스 구현체 구조의 장단점과 사용 여부에 대한 고찰을 담았습니다.
캡스톤 디자인에서 가상화폐 백테스팅 및 자동매매 서비스 BAMOWL을 개발한 회고입니다.
Effective Java의 toString 재정의 원칙과 Cloneable/clone의 주의사항을 정리합니다.
큐시즘 29기 밋업 프로젝트 '셀피스' 서비스의 2개월간 백엔드 개발 과정을 회고합니다.

Spring Security와 OAuth2.0으로 구글/카카오/네이버 소셜 로그인을 구현하는 전체 과정을 정리합니다.

큐시즘 29기 기업 프로젝트에서 드론 기업 '위플로'와 협업한 개발 과정을 회고합니다.

collection, Collection, Collections의 차이와 주요 유틸리티 메서드를 정리합니다.

Integer.toString()과 Integer.parseInt()를 활용한 진수 변환 방법을 정리합니다.
정수의 이진수 표현에서 1의 개수를 세는 Integer.bitCount() 메서드를 소개합니다.

문자에서 '0'을 빼면 정수가 되는 아스키코드 활용법을 정리합니다.
기본형 int와 래퍼 클래스 Integer의 차이, 그리고 Boxing/Unboxing을 정리합니다.

Comparator와 람다를 활용한 Java 2차원 배열 정렬 방법을 정리합니다.
Java에서 배열을 콘솔에 출력하는 5가지 방법을 정리합니다.

String의 불변 특성으로 인한 성능 문제와 StringBuilder를 사용해야 하는 이유를 설명합니다.
HashMap을 Key 또는 Value 기준으로 정렬하는 방법을 람다와 함께 정리합니다.
Java Stack 클래스의 주요 메서드(push, pop, peek 등) 사용법을 정리합니다.
Java에서 문자열 비교 시 ==가 아닌 equals()를 사용해야 하는 이유를 설명합니다.

split(".")이 동작하지 않는 이유와 정규식 이스케이프 처리 방법을 설명합니다.
캐시 메모리의 공간 지역성 원리로 다차원 배열의 차원 배치가 성능에 미치는 영향을 설명합니다.
Spring Boot 실행 시 포트 8080 충돌로 인한 종료 문제를 해결합니다.
