profile
기획과 설계 그리고 구현까지 하는 개발자가 되고 싶습니다

별헤는밤 앱 서비스 제작 시작!

웹서비스를 하나 만들고 나면, 묘하게 두 가지 감정이 동시에 온다.“일단 돌아간다”는 안도감이랑, “이게 끝은 아니지”라는 조급함.내가 만든 별헤는밤도 그랬다. 웹으로 커뮤니티를 만들고, 채팅을 붙이고, 쪽지를 만들고, 로그인과 보안을 다지고, 뉴스와 영상, 날씨, I

2026년 2월 6일
·
0개의 댓글
·

별 헤는 밤을 운영하며 배운 것 — 결국 Simple is Best

사이드 프로젝트로 별 헤는 밤이라는 커뮤니티 사이트를 배포하고 운영하면서, 기능을 만들고 고치고 다시 걷어내는 과정을 꽤 오래 겪었다.그중에서도 가장 기억에 남는 건 날씨 캐싱 설계와 회원 탈퇴 처리였다.지금 돌아보면, 정말 많은 시간을 쏟았는데 결과적으로는“굳이 이렇

2026년 1월 3일
·
0개의 댓글
·

별 헤는 밤 웹 서비스 회고록

'별 헤는 밤'이라는 웹 서비스를 만들기로 결심한 이유는 세 가지였다.완성의 경험이 필요했다정규 학습 외에 내가 혼자 처음부터 끝까지 완성한 프로젝트가 없었다. 실전 경험의 부재자바와 스프링을 공부만 하고 직접 개발하며 상황을 겪어보지 않으니 모든 것이 막연하게만 느껴

2025년 10월 22일
·
0개의 댓글
·

JPA N+1 문제 정리 & 해결 방법

JPA에서 연관 관계가 LAZY 로딩일 때,1번의 메인 쿼리 실행 후, 연관된 엔티티를 N번 추가 조회하는 현상Post와 User는 @ManyToOne(fetch = LAZY) 관계게시글이 10개라면:Post 조회 쿼리: 1번각 User 조회 쿼리: 10번 → 총 1

2025년 10월 22일
·
0개의 댓글
·

🧠 Oracle CDB와 PDB 차이 쉽게 이해하기

Oracle 12c부터 DB를 CDB(큰 집)과 PDB(방)으로 나누어 관리해요.여러 개의 데이터베이스를 하나의 DB 시스템 안에서 동임적으로 사용하고 싶을 때 필요해요.CDB = 오라클 전체 시스템 (건물)PDB = 서비스에 쓰이는 DB 하나하나 (방)\`C개발자는

2025년 10월 16일
·
0개의 댓글
·

🌌 별 헤는 밤: S3 아키텍처 개선 회고록

별 헤는 밤 프로젝트에서 S3 직접 접근 방식에서 CloudFront CDN 기반 아키텍처로 전환하고, Presigned URL 수명을 5분으로 최적화한 과정을 기록합니다.직접 S3 접근: CDN 없이 전 세계 사용자가 미국 동부 리전에 직접 접근캐싱 부재

2025년 9월 19일
·
0개의 댓글
·

🌙 별 헤는 밤: ERR_TOO_MANY_REDIRECTS에서 JWT 암호화 문제까지

평소와 같이 커피 한 잔과 함께 모니터링 대시보드를 확인하던 중, 별 헤는 밤 서비스에 접속이 안 되는 것을 발견했다. 브라우저에는 무정하게도 ERR_TOO_MANY_REDIRECTS 오류만 반복되고 있었다."어제까지 잘 되던 사이트가 갑자기 왜...?

2025년 9월 17일
·
0개의 댓글
·

운영체제(OS) 개념, 화장실로 이해해보기 💡

운영체제 개념이 어렵게 느껴지는 분들을 위해, 복잡한 이론 대신 우리에게 익숙한 '화장실'을 비유로 들어 쉽게 이해해보자프로세스 (Process): 화장실을 이용하려는 사람임계영역 (Critical Section): 한 번에 한 사람만 들어갈 수 있는 변기칸자원 (Re

2025년 8월 27일
·
0개의 댓글
·

🔒 Redisson 분산락 도입 해보기

"분산락이 필요한 이유가 뭔가요? Redis와 Redisson의 차이점은?" Redis Template: 단순한 캐싱과 세션 관리에 사용동시성 문제: 포인트 지급, 출석체크 등에서 Race Condition 발생 가능기술면접 대비: 분산 시스템에서의 동시성 제어에 대

2025년 8월 4일
·
0개의 댓글
·

📚 Spring DI 정리 – 의존성 주입, Autowired, RequiredArgsConstructor, Mock 이해

내가 직접 객체를 생성하지 않고, Spring이 필요한 객체를 대신 주입해주는 개념→ 객체 간 결합도를 낮추고 테스트 가능성을 높임@Autowired = 쟁반: 먼저 쟁반 놓고 나중에 이것저것 올림 (중간에 이상한 거 섞일 수 있음)생성자 주입 = 쿠키틀: 처음부터 필

2025년 7월 29일
·
0개의 댓글
·
post-thumbnail

📘 Partitioning & Sharding 정리

Partitioning은 하나의 데이터베이스 내에서 테이블 데이터를 여러 파티션(partition)으로 분할하는 기법입니다.수평 파티셔닝 (Horizontal Partitioning) 행(Row) 기준으로 데이터 분할 → 예: 사용자 ID 1~10000 / 1000

2025년 7월 29일
·
0개의 댓글
·

☕ CORS를 스타벅스 비유로 쉽게 이해해보자

웹 개발하다 보면 누구나 한 번쯤은 마주치는 CORS 에러.처음 보면 굉장히 당황스럽고, “왜 요청은 성공했는데 브라우저는 응답을 못 받지?”라는 혼란이 생기죠.오늘은 이 CORS(Cross-Origin Resource Sharing) 개념을스타벅스 비유로 쉽고 재밌

2025년 7월 26일
·
0개의 댓글
·
post-thumbnail

🎉 SpringCamp 2025 후기 – 실무 아키텍처와 철학이 만나는 개발자의 축제

지난주 토요일, 강남 삼성역 인근에서 열린 SpringCamp 2025에 다녀왔습니다.사실 처음엔 “개발자 행사야 다 거기서 거기지”라는 마음도 조금 있었는데, 결론부터 말하자면 기술, 조직, 사고방식까지 통으로 자극받고 돌아온 값진 경험이었습니다.이번 후기에선 단순한

2025년 7월 22일
·
0개의 댓글
·

🔐 AuthenticationProvider 커스텀 구현 정리

Spring Security에서 실제 인증 로직을 담당하는 핵심 컴포넌트사용자의 ID/PW 또는 JWT 토큰 등으로부터 인증을 수행하고인증된 사용자 정보(Authentication)를 반환함다양한 인증 방식을 Provider로 분리할 수 있음 (예: Form Login

2025년 6월 19일
·
0개의 댓글
·

🔐 Spring Security 인증 필터 흐름 정리

스프링 시큐리티는 필터 기반으로 작동하며, 인증/인가 과정을 체계적으로 분리하여 처리함.FilterChain → AuthenticationFilter → AuthenticationManager → Provider 흐름으로 구성됨.로그인 시: /login, 또는 사용자

2025년 6월 19일
·
0개의 댓글
·

🔄 Java ThreadPool 구조 정리

자바에서 다수의 요청을 처리하기 위해 미리 생성된 쓰레드 집합(Pool)을 재사용하는 구조매번 새 쓰레드를 만들지 않고, 일정 개수의 쓰레드를 반복 사용하여 성능을 최적화주로 비동기 작업, 백그라운드 작업, 대규모 요청 처리 등에 사용됨Executors는 내부적으로 T

2025년 6월 19일
·
0개의 댓글
·

🔐 Spring Security + JWT + Redis 인증 구조 정리

JWT는 무상태 인증 방식이기 때문에, 토큰을 클라이언트에만 저장하면 서버는 상태를 기억하지 못함.이를 보완하기 위해 Redis를 사용해 로그아웃된 토큰이나 강제로 만료시킬 토큰을 관리하는 구조를 설계함.클라이언트가 로그인 요청 → 서버가 JWT 발급 (access +

2025년 6월 19일
·
0개의 댓글
·

☕ JVM GC 및 메모리 구조 정리

JVM은 실행 중인 Java 애플리케이션의 메모리를 아래와 같이 구분해 관리함:Heap 영역: 객체가 저장되는 공간 (GC의 주요 대상)Young Generation (Eden, Survivor)Old Generation (Tenured)Method Area (Perm

2025년 6월 19일
·
0개의 댓글
·