미리보기
기본 정보

"함께 성장하는 팀을 지향하며, 개발을 통해 더 나은 가치를 만들어가는 백엔드 개발자입니다." 개발 과정에서 소통과 협업의 중요성을 깊이 이해하고 있으며, 팀원들과 긴밀히 협력하며 함께 성장하는 환경을 만들어가는 것을 중요하게 생각합니다. "RoomE" 프로젝트에서 백엔드 팀장으로서 팀원들과의 원활한 소통을 이끌고, 코드 리뷰 및 기술 공유를 통해 팀 전체의 개발 역량 향상에 기여하였습니다. 또한, 서비스의 안정성과 확장성을 고려한 설계를 통해 보다 신뢰성 높은 시스템을 구축하는 경험을 쌓았습니다. 앞으로도 팀과 함께 고민하고 성장하며, 개발을 통해 의미 있는 가치를 만들어가는 개발자가 되고자 합니다.
기술 스택
프로젝트
Grepp
RoomE
나를 찾는 디지털 힐링 공간 RoomE Github주소
1. 웹소켓 기반 실시간 알림 시스템 개발
STOMP 기반 웹소켓 도입으로 기존 Polling 방식 대비 데이터 전송 지연율 90% 감소
@Async 및 전용 스레드 풀 적용을 통한 비동기 이벤트 처리 최적화 → 알림 전송 속도 85% 개선
Redis Pub/Sub을 활용한 다중 서버 확장 대응으로 안정적인 실시간 알림 서비스 구축
포인트 시스템 개발 (적립/차감/조회 최적화)
Redis 기반 분산 락 적용으로 동시성 문제 해결 및 데이터 정합성 보장
포인트 적립 및 차감 기능 개발 → 중복 적립 방지 로직 추가로 데이터 무결성 확보
부하 테스트 진행 → 초당 640TPS 처리 성능 검증, 평균 응답 속도 290ms → 22ms (94% 개선)
포인트 내역 조회 최적화 → Redis 캐싱 적용으로 응답 속도 94% 단축 (391ms → 22ms), 최대 응답 속도 95% 단축 (3.49초 → 174ms)
CD 관리 시스템 개발 및 성능 최적화
CD 목록 조회 API 최적화 → QueryDSL 적용 및 인덱스 튜닝을 통해 검색 속도 개선, Redis 캐싱으로 DB 부하 감소
CD 단건 조회 성능 개선 → 불필요한 JOIN 제거 및 캐싱 적용으로 조회 속도 92% 단축 (180.95ms → 14.06ms)
CD 플레이어 업그레이드 기능 개발 → 포인트 사용을 통한 CD 등록 개수 확장 기능 추가로 유저 경험 향상
랭킹 시스템 개발 및 성능 개선
사용자 활동 기반 점수 부여 및 주간 랭킹 산출 → 상위 랭커 자동 보상 지급 시스템 개발
Redisson 기반 분산 락 적용 → 동시성 문제 해결 및 데이터 정합성 유지
장애 복구 시스템 구축 → 점수 업데이트 실패 시 자동 복구 기능 추가하여 장애 복구 시간 40% 단축
랭킹 조회 성능 최적화 → Redis 캐싱 활용으로 랭킹 조회 속도 70% 향상
트러블슈팅 및 해결 과정 링크
웹소켓 연결이 일정 시간 후 끊어지는 문제
하트비트(heartbeat) 설정이 누락되어 장시간 미사용 시 연결이 자동 종료됨
해결: 하트비트 설정 추가하여 연결 안정성 확보
Redis 캐싱 적용 후
RedisTemplate
미등록 오류
Spring이 올바른
RedisTemplate
Bean을 찾지 못해 캐싱이 동작하지 않음해결: RedisTemplate Bean을 명확히 정의하여 정상 작동 유도
Redis 캐싱 적용 시
LocalDate
직렬화 오류
Java 8의
LocalDate
가 Redis 저장 시 직렬화되지 않는 문제 발생해결: Jackson
JavaTimeModule
을 등록하여 직렬화 문제 해결
사용 기술
Java, Spring Boot, Spring Security, MariaDB, JPA, Docker, nginx, Redis, QueryDSL, WebSocket, STOMP, K6
Grepp
REDBOX
생명을 나누는 따뜻한 마음 REDBOX Github주소
JWT 기반 인증 시스템 최적화
- Access Token(30분) 및 Refresh Token(24시간) 구조를 설계하여 인증 흐름을 효율화하였습니다.
- Redis TTL을 적용하여 만료된 토큰을 자동 삭제하고, 동시 요청 처리량을 5.6배 증가 (148 req/s 838 req/s) 시켰습니다.비밀번호 초기화 기능 구현
- 임시 비밀번호 생성 및 이메일 발송을 트랜잭션 처리하여 데이터 정합성을 보장하고, 작업 실패율 0% 유지하였습니다.
- Redis 캐싱을 활용하여 만료된 Refresh Token을 자동 삭제, 응답 속도 92% 개선 (180.95ms 14.06ms) 하였습니다.보안성 및 확장성 강화
- Spring Security 및 JWT를 활용하여 안전한 인증 시스템을 구축하였습니다.
- Redis 기반 세션 관리로 확장성을 고려한 구조를 설계하여, 높은 트래픽에서도 안정적인 인증 처리가 가능하도록 개선하였습니다.
사용 기술
Java, Spring Boot, Spring Security, MySQL, JPA, Docker, nginx, Redis, JWT, QueryDSL, React, Vercel
포트폴리오
대외활동
Grepp
CS팟(CS지식 및 기술면접 스터디)
OS, 네트워크, DB, OOP 등 CS 전반의 핵심 지식 합습
기술 면접 대비를 위한 주요 질문과 답변을 준비하고 모의 면접 진행
2024
국립한국교통대 소프트웨어공학과
F(x) 학술 동아리
알고리즘 스터디
매주 코딩 테스트 문제 풀이 및 해설을 통해 알고리즘 역량 강화
Spring 기반 프로젝트 스터디
Spring Framework와 JPA를 활용한 웹 애플리케이션 개발 스터디
Git을 활용한 협업과 프로젝트 버전 관리 경험
Restful API 설계 및 구현 학습
2023
Grepp
프로그래머스 클라우드 기반 백엔드 데브코스 2기
실무 중심의 백엔드 개발 역량 강화
Spring Boot, JPA, Spring Security를 활용한 웹 서비스 개발 및 아키텍처 설계 경험
비동기 처리, 동시성 제어, RESTful API 설계 등 백엔드 최적화 기술 학습 및 프로젝트 적용
애자일 기반 협업 및 프로젝트 수행
데일리 스크럼 및 회고를 통해 개발 진행 상황을 공유하고 팀의 협업 방식을 지속적으로 개선
GitHub Git-flow 전략, Jira, Notion, Slack을 활용한 체계적인 일정 관리 및 협업 경험
RoomE & REDBOX 프로젝트 수상 경험
REDBOX (헌혈증 기부 서비스) 최우수상 수상 → 사용자 인증 및 서비스 최적화로 높은 완성도 인정
RoomE (소셜 플랫폼 서비스) 우수상 수상 → 실시간 데이터 처리 및 캐싱 최적화를 통한 서비스 개선 성과
백엔드 성능 최적화 및 시스템 설계 경험
JWT 기반 인증 시스템, Redis 캐싱, QueryDSL 최적화를 통해 성능 개선 및 확장성 확보
STOMP 웹소켓과 Redis Pub/Sub을 활용한 실시간 알림 시스템 개발
Redis 기반 분산 락 적용 및 부하 테스트(K6) 수행으로 데이터 정합성을 유지하며 트랜잭션 안정성 확보
지속적인 학습 및 성장
CS 기초, 알고리즘, 디자인 패턴 정기 스터디를 통해 개발 지식 강화
현업 개발자의 멘토링을 통해 실무에서 요구되는 기술과 문제 해결 능력을 습득
➡ 이론과 실무를 연결하는 과정에서 프로젝트를 통해 문제 해결 경험을 쌓았으며, 백엔드 성능 최적화와 안정적인 시스템 설계를 중점적으로 다루며 성장하였습니다.
2024
교육
국립한국교통대학교
대학교(학사) | 소프트웨어전공
2019.03. ~ 2025.02.
졸업
자격증
TOEIC SPEAKING
IM2 | ETS
2024.08.
SQL
개발자 | 한국데이터산업진흥원
2024.09.
정보처리기사
기사 | 한국산업인력공단
2024.06.
자기소개
개발자의 길을 선택한 이유
어떻게 하면 기술을 통해 실질적인 가치를 창출할 수 있을까?
이 질문에 대한 답을 찾기 위해 저는 개발자의 길을 선택했습니다.
처음 전자공학과에 입학했지만, 군 복무 중 진로에 대한 깊은 고민을 하게 되었습니다. 다양한 가능성을 탐색하는 과정에서, 개발자는 단순한 기능 구현을 넘어 문제를 해결하고 새로운 가치를 창출하는 직업이라는 점이 매력적으로 다가왔습니다. 이에 전역 후 소프트웨어학과로 전과하며 본격적으로 개발을 배우기 시작했습니다.
전과 후 처음에는 새로운 환경에 적응하는 것이 쉽지 않았지만, 꾸준한 학습과 프로젝트 경험을 통해 점차 개발자로서의 역량을 키워나갔습니다. 학업과 병행하여 알고리즘 스터디를 진행하고, 팀 프로젝트를 수행하며 소통과 협업의 중요성을 실감하게 되었습니다. 특히, 프로젝트를 통해 단순히 기능을 구현하는 것이 아닌 확장성과 유지보수성을 고려한 개발이 중요하다는 것을 깨닫게 되었습니다.
이러한 경험을 바탕으로, 보다 실무적인 역량을 갖추기 위해 프로그래머스 백엔드 데브코스에 참여하였습니다. 데브코스에서 저는 Spring Boot 기반의 웹 서비스 개발, RESTful API 설계, 인증 및 보안 시스템 구축, 성능 최적화 등 실무에서 요구되는 다양한 기술을 익히고 프로젝트에 적용하였습니다. 실시간 알림 시스템, 포인트 시스템, 랭킹 시스템, CD 관리 시스템 등 다양한 기능을 개발하며 대규모 트래픽을 고려한 성능 최적화와 데이터 정합성을 유지하는 방법을 고민하는 과정에서 백엔드 개발자로서 성장할 수 있었습니다.
어떤 개발자가 되고 싶은가?
저는 효율적인 시스템을 고민하고, 성능과 확장성을 고려한 개발을 지향하는 백엔드 개발자입니다.
단순히 기능을 구현하는 것이 아니라, 장기적으로 유지보수 가능한 코드와 확장성 있는 아키텍처를 설계하는 것이 중요하다고 생각합니다. RoomE 프로젝트에서는 웹소켓 기반의 실시간 알림 시스템을 구축하며, 다중 서버 환경에서도 안정적으로 동작할 수 있도록 Redis Pub/Sub을 활용하였습니다. 또한, 포인트 시스템 개발 시 Redis 기반 분산 락을 적용하여 동시성 문제를 해결하고, 부하 테스트를 통해 시스템의 안정성을 검증하였습니다.
개발 과정에서 소통과 협업을 무엇보다 중요하게 생각하며, 팀원들과 긴밀하게 소통하며 더 나은 결과를 만들어가는 것을 목표로 합니다. RoomE 프로젝트에서 백엔드 팀장으로서 코드 리뷰와 기술 공유를 주도하며 팀 전체의 개발 역량 향상에 기여하였으며, 원활한 협업을 위해 문서화 및 코드 컨벤션 정립에도 힘썼습니다.
앞으로도 사용자에게 실질적인 가치를 제공하는 서비스를 만들기 위해, 성능 최적화와 안정적인 서비스 운영을 고민하는 백엔드 엔지니어로 성장하고자 합니다. 새로운 기술을 배우는 것을 두려워하지 않으며, 주어진 역할에 끝까지 책임을 다하는 개발자가 되겠습니다.