미리보기
기본 정보
ㅤ 안녕하세요! 문제점을 발견하고 이를 함께 해결하나가는 것을 즐기는 4년차 백엔드 개발자, 이동겸 입니다. ㅤ
기술 스택
Java, Spring, MSSQL, Oracle, MySQL, JPA, mybatis, Spring Security, AWS
경력
라텔앤드파트너즈
주임 | 서버 개발팀 | 재직 중
2023.09. ~ 재직 중 (1년 3개월)
Acuvue 렌즈 서비스 백엔드 서버 개발
APP, WEB 소비자 사이트 개발
안경사 전문 사이트, 영업사원 내부 사이트, 어드민 사이트 개발
ㅤㅤ
ㅤㅤ
(주) 엔코씨앤에스
주임 | 기술 개발팀
2020.07. ~ 2023.02. (2년 8개월)
Spring Framework 기반의 자사 프레임워크를 활용한 금융 회계 시스템 개발
K-GAAP -> IFRS 전환 업무
ㅤㅤ
포트폴리오
URL
프로젝트
아큐브 영업사원 페이지 리뉴얼
라텔앤드파트너즈
2024.08. ~ 진행 중
Java21, Spring Boot 3.X, MSSQL, JPA, Spring Security, AWS
기존 PC 버젼만 있던 사이트에 모바일 웹 추가
역할
인증/인가 시스템 구현
작업 내용
Spring Security 도입으로 인증/인가 시스템 추가
Google 2차 인증 구현
역할에 따른 API 허용 범위 관리
Redis를 사용한 session 정보 관리
아큐브 안경사 사이트 세션 개선
라텔앤드 파트너즈
2024.09. ~ 2024.10.
Java8, Spring Framework 4.X, MSSQL, mybatis, AWS
세션 관리 구조 개선 및 무중단 배포 시스템 도입
역할
세션 스토어 구현체 변경
작업 내용
세션 스토어 구현체 변경
작업 과정
문제점
두대의 서버에서 각각의 톰캣 인메모리로 세션을 관리
배포 시 서버가 재기동되면서 세션이 끊기고
분산 시스템이지만 사용자 요청이 실패하며 무중단 배포가 안되고 있는 구조
이로 인해 야간에만 배포 가능하여 기획자 및 개발자의 피로도 증가
해결 방법
Redis 기반 세션 관리를 도입
AWS ALB의 스티키 세션을 해제하여 무중단 배포가 가능한 구조로 변경
성과
야간 배포 작업 80% 감소
거래 데이터 손실 문제 해결
기획자 및 개발자의 피로도 감소로 생산성 향상
아큐브 안경사 약정서 개발
라텔앤드파트너즈
2023.09. ~ 2024.04.
Java8, Spring Framework 4.X, MSSQL, mybatis, AWS
분기 별 약정서 개발
역할
신규 약정서 개발 및 기존 약정서 구조 개선
작업 내용
약정서 관리 시스템 성능 최적화 및 데이터 마이그레이션
작업 과정
문제점
레거시 코드에서 신규 약정서가 추가될 때마다 해당 약정서에 관련된 테이블이 생성되는 구조
새롭게 추가되는 테이블 마다 JOIN 절에 추가되어 조회하는 구조로 인해 성능 저하와 유지보수 어려움이 발생
해결 방법
비슷한 타입으로 정의 될 수 있는 약정서 데이터를 통합 후 테이블 통합
약정서 타입을 ENUM으로 관리하여 중복 테이블 생성을 방지
기존 데이터를 통합 마이그레이션하고 성능 최적화
성과
데이터베이스 테이블 수 30% 감소
평균 쿼리 성능 40% 향상
유지보수 시간 단축
향후 계획
JSON 기반 NoSQL 또는 MSSQL의 JSON 데이터 타입을 도입하여 비정형 데이터 관리를 더욱 유연하게 처리
아큐브 각종 구매 이벤트
라텔앤드파트너즈
2023.09. ~ 2024.09.
Java8, Spring Framework 4.X, MSSQL, mybatis, AWS
소비자, 안경사 구매 이벤트 개발 및 운영
역할
쿠폰, 기프티콘, 안경사 구매 이벤트 개발
작업 내용
구매 시 특정 조건에 맞는 대상자들에게 베네핏 제공
이벤트 신규 API 개발
작업 과정
문제점
하드코딩 된 쿠폰, 기프티콘, 맞춤형 문구 노출 시스템 구조로 인한 유지보수 비용 증가
비즈니스 요구 사항에 빠르게 대응하지 못함
API 명세를 Wiki 문서화 하여 관리하던 기존 구조
해결 방법
쿠폰 및 문구를 동적으로 관리할 수 있는 DB 기반 시스템으로 개선
어드민 페이지를 개발해 비개발자도 손쉽게 관리할 수 있도록 UI 설계 및 구현
Swagger 도입을 통해 항상 실시간의 API 명세를 유지하여 클라이언트 개발자와의 커뮤니케이션 리소스 감소
성과
관리 효율성 50% 증가
프로모션 응답 시간 90% 단축
비개발자도 운영 가능해짐으로써 관리 비용 절감
프론트 팀과 커뮤니케이션 리소스 감소
교육
F-lab
사설 교육 | Java 백엔드
2023.04. ~ 2023.10. | 졸업
경기과학기술대학교
대학교(학사) | 컴퓨터 모바일
2014.03. ~ 2020.02. | 졸업
대외활동
글또
글또
글쓰는 개발자들의 모임으로 양질의 글을 작성하여 공유하고, 다양한 커뮤니케이션 활동을 통해 서로에게 좋은 영향을 주는 모임
사내 스터디
라텔앤드파트너즈
회사에서 현재 가장 필요하다고 생각하는 기술들의 배경지식을 얻고 공유하기 위해 주도한 스터디 그룹
인원수와 스터디에 속한 인원들의 특성에 기반 하여 맞춤형 스터디 방식으로 진행
자격증
정보처리기사
PASS | 한국산업인력공단
2020.08.
자기소개
자기소개
함께 문제를 주도적으로 해결하는 것을 좋아하는 개발자 이동겸입니다.
건강하고 긍정적인 피드백을 통해 팀원들의 성장을 지원하며, 팀원의 성장이 곧 회사의 성장으로 이어진다고 믿습니다. 기술적 성장을 위해서는 팀원들과의 지속적인 스터디를 통해 학습하며, 기술의 근본적인 가치를 탐구하는 것을 즐깁니다.
장점과 단점
저의 강점은 구성원들과의 협업에서 시너지를 발휘하는 데 있으며, 꼼꼼하고 책임감 있게 업무를 처리해 믿고 맡길 수 있다는 피드백을 자주 받았습니다. 반면, 저의 단점으로는 YAGNI(You Ain’t Gonna Need It)의 부족으로 인해 초기 단계에서 불필요하게 복잡하게 고려하는 경향이 있다는 점이 있습니다.
이를 보완하기 위해, 최근에는 최소한의 기능을 우선 구현하고 이후에 리팩토링을 통해 구조를 개선하는 방식을 실천하고 있습니다. 커뮤니케이션을 중요시하여 업무 지시를 받을 때 이해한 내용을 팀 리더와 한 번 더 확인하고, 더 나은 방법을 찾기 위해 팀원들의 의견을 적극적으로 수렴합니다. 또한, 팀원들이 겪고 있는 기술적, 정서적 어려움을 공유하고 해결책을 제시하는 것을 좋아합니다.
문제 해결과 성능 개선
주인의식을 가지고 개발하며, 모니터링 시스템을 통해 개선 사항을 끊임없이 점검합니다. 유저가 서비스를 사용하는 것에 문제가 발생하면 우선적으로 문제를 해결한 뒤, 유사한 문제가 재발하지 않도록 분석하고 대책을 마련합니다.
이벤트성 CRM을 모든 사용자에게 일괄 전송하면서 서비스 지연이 과도하게 발생했던 사례가 있었습니다. 이를 해결하기 위해 APM을 사용하여 성능을 분석한 결과, 시간이 오래 걸리는 쿼리와 작업을 파악했습니다.
비즈니스적으로 반드시 필요하지 않은 오래 걸리는 쿼리와 프로시저 호출 등을 제거하고, nGrinder를 통해 메인 화면 접근 리소스에 대해 TPS 300 기준으로 부하 테스트를 실시했습니다. 그 결과, 응답 시간이 4초에서 2초로 약 50% 성능 향상을 달성했습니다
업무개선
반복되는 단순 업무에 대해서 자동화하는 것을 좋아하고, 데이터 특이사항에 대한 노티 모니터링 작업 하는 것을 즐깁니다.
개선 업무에 있어서는, 효율과 작업량을 비교해 가치가 높은 작업을 우선적으로 진행합니다. 혁신적인 결과를 지향하지만, 그 과정은 신중하게 한 단계씩 접근하며 안정성을 중요시합니다.