미리보기
기본 정보

개발 재밌다
기술 스택
Java, Spring Boot, Spring Security, MySQL, JPA, junit5, Mockito, Git, Github, IntelliJ IDEA, Python, Kotlin, Elasticsearch, AWS
경력
주식회사중고나라
매니저 | 검색팀 | 재직 중
2024.01. ~ 재직 중 (1년 2개월)
주요 업무
Elasticsearch 클러스터 운영
검색 서버 개발
대량의 문서를 색인하기 위한 데이터 파이프라인 구축
세메스
사원 | 제어SW그룹
2020.01. ~ 2022.03. (2년 3개월)
주요 업무
반도체 생산 설비 제어 프로그램 개발 및 운영
백오피스 프로그램 개발
Git을 통한 소스코드 형상 관리
테스트 시나리오 작성
사용자 가이드 작성
세부 내용
C/C++, TCP Modbus를 활용한 정전기 측정 드라이버 개발
SCTC 3.0(식각 설비 S/W Framework) SQL Injection 개선
Python 백오피스 프로그램 개발을 통해 업무 자동화 (공수 90% 단축)
2020년 우수 사원
프로젝트
Hotel-Java
F-Lab
2023.03. ~ 2023.06.
프로젝스 소개
- 에어 비앤비/야놀자/아고다 등 숙소 예약 서비스를 벤치마킹한 서비스입니다.
팀원
- 2명
주요 업무
- 유스케이스, ERD, 주요 핵심 기능 설계
- Spring boot, JPA, MySQL 기반 REST API 서버 개발
- 회원, 예약, 재고, 결제 도메인 개발
세부 내용
로그인 기능 구현
- 분산 환경에서 유리한 로그인 기법에 대해 고민한 끝에 JWT 방식을 선택
- 스프링 시큐리티 프레임워크 기반으로 로그인 기능 구현
동시성 이슈 해결
- 재고 감소 API가 동시에 호출됐을 때 예상과 다르게 동작하는 이슈 발생
- 최적의 해결 방법이 무엇일지 고민한 끝에 분산 락을 활용하여 이슈 해결
자료구조를 변경하여 성능 개선
- 테스트용 데이터를 DB에 삽입하는 과정에서 DB Communication link failure 발생
- 테스트용 데이터는 크기가 1,000만인 연결리스트였으며, 이를 조회하는 과정에서 시간이 지연된 것이 원인
- 자료 구조를 LinkedList → ArrayList로 변경하여 이슈 해결
포트앤어댑터 패턴 적용
- 잦은 변화가 있는 외부 API로 인해 도메인 코드를 수시로 수정해야하는 문제 발생
- 도메인이 인터페이스에 의존하도록 하여 외부 API에 대한 종속성 제거
Mock 프레임워크 적용
- 테스트 결과가 협력 객체의 코드에 의존하는 문제 발생
- 협력 객체를 적절히 Mocking하여 테스트하고자 하는 유스케이스에 집중
동적 쿼리 활용
- 숙소 검색 조건의 개수가 유동적으로 변하는 요구사항이 존재
- QueryDSL 기반 동적쿼리 활용
LOL-Judge
F-Lab
2023.06. ~ 2023.10.
프로젝트 소개
- 리그오브레전드 인게임 논쟁 상황에 대한 투표 서비스입니다.
팀원
- 개인프로젝트
주요 업무
- 유스케이스, ERD, Mock-up, 주요 핵심 기능 설계
- Spring boot, MyBatis, MySQL 기반 REST API 서버 개발
- 회원, 투표 도메인 개발
세부 내용
CI/CD 파이프라인 구축
- 새로운 기능을 개발할 때마다 수동으로 배포하여 시간이 오래 걸리고 실수하는 일이 잦음
- Naver Cloud Jenkins, GitHub Action 기반의 CI/CD 파이프라인을 구축하여 빌드/배포
페이징 쿼리 개선
- 페이징 쿼리에서 테이블 풀 스캔으로 인한 지연 현상 발생
- 실행 계획을 분석하여 인덱스를 타도록 쿼리를 수정하여 속도 향상 (0.7초 → 0.003초)
비동기 푸시 알림 시스템 구축
- 푸시 알림 기능의 오류가 전 시스템으로 전파되는 문제 발생
- 멀티 모듈 프로젝트로 구조를 변경하여 푸시 알림 기능을 별도의 모듈로 분리
메시지큐 적용
- 메시지를 주고받는 각 시스템이 다운될 경우, 메시지 전달이 보장되지 않을 가능성 존재
- RabbitMQ를 활용하여 시스템 간 메시지 전달을 보장하도록 함
포트폴리오
교육
NEXTSTEP
사설 교육 | 클린 코드 with Kotlin
2023.10. ~ 2023.12. | 졸업
F-lab
사설 교육 | Java 백엔드
2023.01. ~ 2023.08. | 졸업
삼성 청년 소프트웨어 아카데미
사설 교육 | Java 백엔드
2018.12. ~ 2019.12. | 졸업
경기대학교
대학교(학사) | 융합보안학과/컴퓨터과학과
2013.03. ~ 2019.02. | 졸업
성문고등학교
고등학교 | 인문 계열
2009.03. ~ 2012.02. | 졸업
대외활동
정보보안 학부 연구생
경기대학교 컴퓨터과학과
<주요 활동 내용>
- 경기대학교 컴퓨터과학과 소속의 정보보안 연구실에서 블록체인 연구를 진행하였습니다.
<세부 활동 내용>
- Mastering Bitcoin(https://github.com/bitcoinbook/bitcoinbook)을 바탕으로 매주 세미나를 진행하였습니다.
- NH와 협력하는 연구 활동에서 하이퍼레저와 관련된 보고서를 작성하였습니다.
<연구 내용 링크>
자격증
OPIC
IM1 | ACTFL
2021.09.
정보처리
기사 | 한국산업인력공단
2018.11.
워드프로세서
1급 | 대한상공회의소
2014.02.
외국어
영어
일상 회화 가능
자기소개
어린 시절 해킹 소재의 영화/드라마를 보고 컴퓨터에 흥미를 느꼈습니다. 이에 컴퓨터과학/융합보안학을 전공하였습니다. 국내 최대 반도체 설비 메이커에서 C/C++ 기반의 반도체 설비 S/W를 개발하였습니다. 현재는 주식회사 중고나라 검색팀에 재직하고 있습니다. 검색 서버를 개발하고, 검색 클러스터를 안정화하는 업무를 하고 있으며, Elasticsearch 성능 최적화에 관심이 많습니다.