미리보기
기본 정보

자기소개
새로운 것을 배우는 것에 대한 호기심이 강하고, 관심이 생긴 분야에 대해 깊이 파고들며 탐구합니다. 어떤 문제를 마주했을 때, 단순히 겉으로 드러난 현상만 보고 지나치지 않고 원인을 파악하고 이해하려는 집요함이 제 강점입니다.
프로젝트에서 동시성, 서버 동기화 등 예상치 못한 문제가 발생했을 때, 문제의 본질을 이해하기 위해 다양한 자료를 찾아보고 분석하며 해결 방법을 찾아냈던 경험이 있습니다. 이 과정에서 포기하지 않고 끈기 있게 도전하는 태도가 좋은 결과로 이어졌습니다. 해당 내용은 아래 기여부분의 링크를 통해 확인할 수 있습니다.
이러한 성격을 바탕으로 새로운 환경에서도 빠르게 적응하고, 끊임없이 배우며 성장해 나가고자 합니다.
기술 스택
Java, Spring Boot, MySQL, Git, GitHub, Docker, JPA, Redis, aws-ec2, aws-rds, aws-s3
프로젝트
on your cs
개인
2024.04. ~ 진행 중
Web / 풀스택 (3인) / 기여도 (60%)
CS학습을 위한 주제 선정 및 퀴즈 출제
역할 : Backend 개발 담당 (실시간으로 현재인원 갱신을 해주는 게임 방 리스트 페이지 구현)
기술 : JAVA17, Spring Boot3.1, WebSocket, STOMP, MySQL , Spring Data JPA, Thymeleaf, Caffeine Cache, Redis, AWS EC2, RDS, Github Actions, Nginx, Prometheus, Grafana
기여 부분 :
단일 서버에서 부하 분산을 위해 Scale out을 진행하면서 서버마다 데이터가 달라지는 문제 발생. 방 생성 및 인원 변동과 같은 서버 상태 변경이 발생했을 때 동기화를 위해 Redis pub/sub을 도입하여 정보 일관성 유지 -> 관련 링크
특정 게임방에 동시 접속 인원 제한이 필요한 상황에서 다수 사용자 접근시에도 동시성 보장을 위해 AtomicInteger의 CAS연산을 이용하여 동시성 문제 해결 -> 관련 링크
라운드로빈 로드밸런싱되는 환경에서 방 생성 요청이 분산되어 동일 방 중복 생성 문제 발생. 중복 생성 방지를 위한 UUID를 모든 서버에 동기화하고 TOCTOU 문제 방지를 위해 Redisson 기반 분산락을 도입해 읽기/쓰기 작업 원자적으로 처리-> 관련 링크
실시간 환경에서 STOMP 사용 시 페이지 종료 시 구독 해제 요청 누락 문제 발생. 해결하기 위해 beforeunload 이벤트로 종료를 감지하고 Spring boot의 @EventListener를 활용해 구독 해제 처리하도록 개선 -> 관련 링크
실시간 서비스에서 네트워크 불안정으로 인해 연결이 끊어지는 상황 발생. 네트워크 연결 상태를 지속적으로 확인하고 연결이 끊어졌을 경우 재연결하기 위해 STOMP에 Heart-Beat 기능을 도입해 신호가 중단될 경우 자동으로 재연결되도록 구현
JMeter를 통한 성능 테스트(1000명의 사용자가 30초 동안 점진적으로 증가하며 접속)에서 로드밸런싱 전 평균 응답속도 614ms, 응답속도 표준편차 860ms에서 로드밸런싱 후 평균 응답속도 217ms, 응답속도 표준편차를 23ms로 안정성 향상
강의 할인 정보 제공
한국전파진흥협회 (부트캠프)
2023.09. ~ 2023.11.
Web / 프론트엔드(2인), 백엔드(4인) / 기여도 (40%)
여러 사이트의 강의 할인 정보 수집 및 제공, 메일 알람으로 등록한 강의 할인 시 메일전송
역할 : Backend 개발 담당 (백엔드 API 개발 및 크롤링 서버, Elasticsearch 서버 구축)
기술 : JAVA17, Spring Boot3.1, MariaDB, Spring Data JPA, Elastic Stack, AWS EC2, RDS, S3
기여 부분 :
여러 사이트의 강의 정보를 가져오기 위해 Jsoup을 활용한 크롤링 서버 설계 및 구현
전문 검색 및 동의어 검색을 위한 Elasticsearch 클러스터 환경 구성 및 운영 -> 관련 링크
색인 지연 해결을 위해 Metricbeat로 모니터링 시스템 구축
많은 단건 색인요청으로 인한 색인 지연을 해결하기 위해 벌크 색인 도입. 약 6,000개 문서 색인 시간 3분에서 8초(96% 단축)로 개선
일부 강의의 썸네일 이미지 로드 실패문제를 해결하기 위해 기존 URL 직접 저장 방식 대신 이미지를 다운로드하여 AWS S3에 저장하고 그 URL을 강의 테이블에 저장하는 방식으로 개선
포트폴리오
교육
카카오 클라우드 스쿨 (한국전파진흥협회 주관 부트캠프)
사설 교육 | JAVA 백엔드 개발자 양성과정
2023.05. ~ 2023.11. | 졸업
대구대학교
대학교(학사) | 컴퓨터 소프트웨어 전공
2017.03. ~ 2023.02. | 졸업
성광고등학교
고등학교 | 인문
2014.03. ~ 2017.02. | 졸업
자격증
SQLD
한국데이터산업진흥원
2024.12.
정보처리기사
한국산업인력공단
2022.09.