미리보기
기본 정보

소개 안녕하세요, 올라운더 개발자 이상길입니다. 입사 초기 약 8개월 동안 웹 프론트엔드 개발 업무를 담당하며 재사용 가능한 컴포넌트 개발에 집중했습니다. 이후 서버 애플리케이션 개발 직무로 전환하여 인프라 구축, 데이터베이스 쿼리 최적화 등 다양한 백엔드 기술을 다루었습니다. 특히, 서비스 개발 초기 단계부터 출시 및 유지보수까지 전체 라이프사이클에 기여하며 웹/앱 개발 프로세스를 깊이 이해하게 되었습니다. 프로젝트를 진행하면서 코드의 품질과 안정성을 높이기 위한 지속적인 리팩토링과 견고한 테스트 코드 작성의 중요성을 깨달았으며, 이를 실무에 적극적으로 적용하고 있습니다. - 이름: 이상길 - 이메일: highway92@kakao.com - 전화번호: 010-8922-3388 - GitHub: https://github.com/highway92 - 블로그: https://github.com/highway92/blog
기술 스택
Java, TypeScript, Linux, Spring Boot, AWS, Docker
경력
프라임에셋(주)
사원 | 시스템개발팀 | 재직 중
2024.01. ~ 재직 중 (1년 3개월)
프라임에셋 (2024.01 ~ 현재) / BackEnd Engineer
사내 시스템 개발 (Spring, Java, MyBatis, Oracle DB)
프로젝트 초기 환경 세팅: Spring Security, Global Error Handler, Response Entity 등 필수 기능 구성
Redis를 활용한 분산 락 AOP 모듈 개발로 동시성 문제 해결
데이터 Excel 내보내기 프로세스를 간소화하기 위한 AOP 기반 모듈 개발
견고한 테스트 코드 작성 (Mockito, JUnit)
가상 계좌 입출금 서비스 설계 및 개발
NICE 평가정보 본인인증 서비스 연동 및 모듈화하여 재사용성 극대화
픽앤 주식회사(PICK 'N)
사원 | 기술개발팀
2022.04. ~ 2023.12. (1년 9개월)
픽앤 (2022.10 ~ 2023.12) / BackEnd Engineer
Picknplan 프로젝트 (Express, NestJS, TypeScript, JavaScript, Sequelize ORM, PostgreSQL)
PostgreSQL 성능 최적화 (메모리, WAL, 체크포인트 튜닝)
Cloud 환경에서 On-Premise 기반으로 마이그레이션 수행
슬로우 쿼리 개선 (EXPLAIN, ANALYZE 활용, 3초 → 0.9초 단축)
DI 기반 프레임워크로 리팩토링하여 유지보수성 향상 (Express → NestJs)
사용자의 입력에 따라 최적의 보험 상품을 검색하는 알고리즘 설계 및 구현
DNS 레코드 구성, 테스트 환경 인증서 발급 및 HTTPS 적용
AWS ECR, ECS, EC2, Route53등 다양한 서비스를 활용하여 프로덕션 환경 구축 및 운영
개발팀 외의 사용자도 테스트 가능한 독립된 테스트 환경 구성 (Docker, Nginx)
마이크로서비스 아키텍처를 모놀리식 아키텍처로 마이그레이션
OAuth 2.0 기반 로그인 구현 (Google, Kakao, Naver, Apple)
보험 상품 검색 알고리즘 최적화 (이분 탐색 적용, 검색 속도 2배 향상)
보험 데이터 추출 작업 자동화로 개발 및 운영팀의 주당 업무 시간 10시간 이상 단축
서비스 간 공유 변수 및 ENUM을 체계적으로 정리하여 반복적인 커뮤니케이션 최소화 (Notion 활용)
픽앤 (2022.04 ~ 2022.12) / FrontEnd Engineer
Picknplan 프로젝트 (Nuxt.js, TypeScript)
사내 영업용 웹/웹앱 PicknPlanner 개발
15~20개 페이지, 15개 이상의 컴포넌트, 10개 이상의 모달 구현
웹앱 호환성 고려한 개발 (Web/App 환경별 동작 차별화)
앱과 웹 간 데이터 공유 기능 구현 (Push Notification 실행 시 특정 웹 페이지로 라우팅 가능하도록 설계)
SendBird SDK를 활용한 실시간 채팅 기능 구현
React Native를 사용하여 Dev 및 Production 앱 개발
Apple App Store 출시 과정 경험 (Certificate, TestFlight, App build 등)
Play Store, App Store 출시 경험 보유
교육
부경대학교
대학교(학사) | 국제경영학
2011.03. ~ 2018.02. | 졸업
자기소개
기술적 깊이를 더하고, 팀과 함께 성장하는 개발자
저는 단순히 코드를 작성하는 개발자가 아니라, 기술을 깊이 이해하고 체계적으로 접근하는 개발자가 되기 위해 노력하고 있습니다.
트러블슈팅 과정에서 웹서핑을 하다 보면 "이 값을 변경하니 문제가 해결되었다" 같은 글을 자주 접할 수 있습니다. 빠른 문제 해결에는 도움이 될 수 있지만, 저는 이런 방식보다는 근본적인 원인을 분석하고 해결하는 접근법을 지향합니다. 특히, 여러 시스템이 연계된 환경에서는 특정 시스템의 병목이나 Failover가 다른 시스템에도 영향을 줄 수 있기 때문에, 문제의 원인을 명확히 파악하는 것이 중요합니다.
가장 인상 깊었던 경험은 슬로우 쿼리 개선 업무였습니다. 문제의 원인은 SELECT 쿼리에서 각 ROW의 상태 값을 계산하기 위해 서브쿼리를 반복 호출하는 것이었습니다. 이를 EXPLAIN ANALYZE를 활용해 성능 병목을 파악하고, JOIN을 사용해 서브쿼리를 제거하는 방식으로 최적화하여 성능을 크게 개선했습니다.
하지만 여기서 문제 해결에 그치지 않고, 추가적으로 UPDATE가 잦은 테이블에서 발생하는 Dead Tuple과 AutoVacuum의 영향을 학습하며 데이터베이스 내부 동작 원리를 더 깊이 이해할 수 있었습니다. 이러한 인사이트를 팀원들과 공유하면서, 단순한 최적화가 아닌 DB 운영의 안정성과 장기적인 성능 개선까지 고려하는 팀 문화를 만드는 데 기여했습니다.
저는 앞으로도 단순한 문제 해결을 넘어, 기술을 깊이 이해하고 팀과 함께 성장하는 개발자가 되고자 합니다.
문제의 본질을 파악하고 최적의 솔루션을 찾는 개발자
신규 개발 및 운영 업무를 진행하다 보면 다양한 업데이트 요청을 접하게 됩니다. 하지만 그중 일부는 추가적인 개발 없이도 해결할 수 있는 경우가 있습니다.
개발자가 도메인 지식이 부족할 수 있듯이, 기획자나 PM 또한 시스템 구현의 세부 사항을 완벽히 이해하지 못할 수 있습니다. 이러한 간극을 메우는 것 또한 개발자의 역할이며, 원활한 소통이 중요한 이유입니다.
예를 들어, 게시글과 카테고리 관련 개발을 진행하던 중, 기획자로부터 "카테고리 없음"이라는 별도의 카테고리를 추가해 달라는 요청을 받았습니다. 하지만 시스템 구조를 고려했을 때, 이는 불필요한 작업으로 보였습니다. 요청의 의도를 명확히 하기 위해 기획자에게 해당 카테고리의 용도를 물었고, "사용자에게 보이지 않지만 데이터를 남기기 위한 목적"이라는 답변을 들었습니다.
이미 게시글, 카테고리, 매핑 테이블의 구조를 고려하고 있던 저는 해당 요구 사항을 별도의 카테고리 없이도 충족할 수 있음을 설명했고, 불필요한 개발을 줄이며 최적의 방식으로 구현할 수 있었습니다.
이처럼 개발자가 기획서만 보고 개발을 진행한다면, 문제 해결보다 구현 자체에 집중하게 되는 위험이 있습니다. 저는 단순히 주어진 기능을 만드는 것이 아니라, 기획의 본질을 이해하고 최적의 솔루션을 찾아가는 개발자가 되고자 합니다.