BACKEND DEVELOPER

임요섭

Lim Yosup

안녕하세요, 백엔드 개발자 임요섭입니다.
문제를 해결하면 기록하고, 기록한 문제는 미래의 자산이 됩니다.
270편 이상의 블로그 포스팅과 팀장으로서 이끈 최우수 프로젝트 1위,
문서화를 무기로 사용하는 Java / Spring Boot 백엔드 개발자입니다.

TECHNICAL SKILLS

기술 스택

01 · BACKEND
Backend
Java Spring Boot Spring Framework Spring Data JPA Hibernate ORM MyBatis Spring Security Thymeleaf HTML CSS
02 · DATABASE & SEARCH
Database & Search
PostgreSQL Elasticsearch MySQL Redis
03 · MESSAGING & INFRA
Messaging & Infra
Kafka Docker Git
04 · TOOLS & COLLABORATION
Tools & Collaboration
Slack Notion Claude Gemini Postman Discord
BLOG

팀의 WIKI가 되는 백엔드 개발자

272
TOTAL POSTS
4+
YEARS WRITING
4,666
TOTAL VISITORS

학부 시절, 시험 대비용으로 글쓰기를 시작했습니다.

그러다 개발을 하면서 같은 에러에 반복적으로 시간을 잃는 경험을 했고, 직접 기록해둔 글 덕분에 빠르게 해결할 수 있다는 걸 깨달았습니다.

시간이 지나면서 내 글이 팀원들에게도 도움이 됐고, 문서화가 반복 질문을 줄이고 팀 전체의 능률을 올린다는 걸 직접 느꼈습니다.

저의 꾸준함과 잠깐의 시간이 주변에 높은 능률과 좋은 영향을 주길 기대하며 지금까지도 글을 작성하고 있습니다.

웹 서버, WAS, 그리고 Ingress까지
멱등성(Idempotency)에 대하여
ES의 Dynamic Mapping 때문에 생긴 일
SPOF 문제와 고가용성
Blog 방문 ↗ 버튼 클릭시 즉시 이동합니다.
WORK

프로젝트

자세한 내용과 아키텍처는 포트폴리오를 참고 부탁드립니다.

01
원데이 클래스 예약 플랫폼
잡아 클래스 (Jaba Class)
2026.03 — 2026.05
6인 팀 프로젝트
팀장 / Product Owner

사용자 행동 이력 기반 AI 추천과 MSA 아키텍처를 적용한 원데이 클래스 예약·결제 서비스. 유저/상품/주문/결제/정산/관리자/AI 총 7개 마이크로서비스 구성. 검색 성능 최적화(Elasticsearch 도입)와 Admin 서비스 개발 담당.

🏆 최우수 프로젝트 1위 GitHub ↗
Jaba Class 스크린샷 1 Jaba Class 스크린샷 2 Jaba Class 스크린샷 3 Jaba Class 스크린샷 4 Jaba Class 스크린샷 5 Jaba Class 스크린샷 6 Jaba Class 스크린샷 7
TECHNICAL CHALLENGES
01
검색 트래픽 집중 — Elasticsearch 도입으로 p95 31% 개선
JPA LIKE → PostgreSQL GIN 인덱스 순서로 DB 자체 최적화를 먼저 검증한 뒤 한계를 수치로 확인 후 ES 도입 결정. nori 형태소 분석기 + fuzziness:AUTO 적용으로 한국어 검색 품질 동시 확보.
p95 1,879ms → 1,294ms · 실패율 0% · 데이터 100배 증가 시 ES +85% vs DB +153%
02
ES Dynamic Mapping nori 누락 — @PostConstruct 초기화 순서 보장
Kafka consumer가 인덱스 초기화보다 먼저 실행되어 잘못된 매핑이 디스크에 영속화. @PostConstruct로 전환하여 Kafka consumer 등록 전 인덱스 초기화가 반드시 선행되도록 보장.
명시적 매핑 선생성으로 Dynamic Mapping 차단 · 재발 방지 설계
03
ES 단일 장애점(SPOF) 제거 — Resilience4j 서킷 브레이커 + Fallback
ES 컨테이너 강제 종료(카오스 테스트)로 실제 장애 재현. socket-timeout 2s 설정으로 무한 대기 선제 차단, 장애 중 PostgreSQL fallback 조회로 무중단 제공.
장애 중 실패율 0% · 최대 지연 3,259ms → 2,000ms 단축
04
MSA 데이터 정합성 — Outbox 패턴으로 이벤트 유실 0% 보장
DB 저장과 Kafka 발행을 동일 트랜잭션 내 outbox_events 테이블로 원자적 처리. FOR UPDATE SKIP LOCKED으로 다중 인스턴스 중복 발행 방지, DLQ로 문제 메시지 격리.
이벤트 유실 0% · Kafka 브로커 재기동 후 자동 재발행
05
ES 색인 컨슈머 자연 멱등성 — 별도 인프라 없이 이중 색인 0건
ES document ID upsert 특성 활용 — save/saveAll 재실행 시 덮어쓰기, deleteById 부재 시 무시. processed_events 테이블 없이 at-least-once 환경에서 중복 수신 안전성 확보.
이중 색인 0건 · 추가 인프라 비용 없음
02
다니엘 청년부
행정 관리 웹 애플리케이션
2025.12 — 2026.03
개인 프로젝트
기획 · 개발 · 운영 전담

교회 청년부 알림지 / 출석 / 소그룹 인원 분배 등 행정 업무를 자동화한 웹 서비스. Java / Spring Boot / Thymeleaf / MySQL / Railway. 월 $5 미만으로 운영 (운영 종료).

GitHub ↗
TECHNICAL CHALLENGES
01
동시 출석 등록 Race Condition — DB Unique 제약으로 중복률 0% 달성
@Column(unique=true)로 InnoDB 묵시적 락을 통한 INSERT 직렬화. DataIntegrityViolationException → IllegalStateException 변환. 동명이인은 차단이 아닌 분기 처리로 정상 인원 누락 방지.
데이터 중복률 0% · 무결성 100%
02
전체 인원 일괄 갱신 1+N 쿼리 — JPA 벌크 연산으로 N회 → 1회 단축
@Modifying(flushAutomatically=true) + 커스텀 JPQL로 영속성 컨텍스트 우회. 대규모 갱신 시 메모리 과부하 및 트랜잭션 타임아웃 위험 사전 차단.
쿼리 실행 횟수 N회 → 1회
03
소그룹 편성 자동화 — 다중 필터링 기반 랜덤 알고리즘 구현
isExcluded / isHard 속성 기반 2단계 필터링 후 Collections.shuffle() 난수 배정. 특수 조건 인원을 각 목장에 균등 선배치 후 일반 인원 라운드로빈 분배. 필터링 파이프라인 구조로 신규 조건 추가 시 확장성 확보.
수동 편성 → 클릭 1회 자동화 · 편성 공평성 기술적 보장
ABOUT

소개

임요섭 프로필 사진
임요섭 Lim Yosup
EDUCATION
2026.03 — 2026.05
프로그래머스 백엔드 단기심화 데브코스
팀장 · 최우수 프로젝트 (1위)
2019.02 — 2026.03
평택대학교 ICT융합학부 스마트콘텐츠전공
졸업 · 학점 4.05 / 4.5
2016.03 — 2019.02
고양 백신고등학교
졸업
AWARDS & CERTIFICATIONS
2026.05
프로그래머스 데브코스 최우수 프로젝트 (1위)
(주) 그렙
2026.05
프로그래머스 데브코스 최우수 팀장
(주) 그렙
2025.06
학사 학위 논문
「REST API 기반 OWASP Top 10 보안 취약점 대응 방안 연구」
2024.12
SQL 개발자 (SQLD)
한국데이터산업진흥원
4년+
기술 블로그 270편 이상
bdisappointed.tistory.com
MILITARY & ETC
2020.07 — 2022.01
육군 병장 만기 전역
2021.12
1종대형 운전면허
경찰청 (운전면허시험관리단)
2021.11
버스운전자격
한국교통안전공단
TOP