Java/Kotlin Back-end Developer
지식을 공유하고, 환경에 적응하며 팀원들과 소통하며 문화를 만들어 가는 것을 즐깁니다.
소개
채용 관리 솔루션(ATS) 개발팀에서 백엔드 개발을 하고 있으며, 수상시 채용부터 대규모 공채를 안정적으로 서비스하기 위해 다양한 성능 개선을 하고 있습니다.
해결되지 못한 기술부채들을 해소하기 위해 메이저 스프린트마다 누적 VoC들과 기술부채 해소 항목들을 선정해 누적되어 있는 문제들을 해결하고 서비스의 안전성과 응답성을 높히고 있습니다.
팀원들에게 비전을 제시하고 기술 개선에 대한 동기를 마련해주기 위해 꾸준히 스터디와 세미나를 진행하고 있으며 이런 학습들을 기반으로 Java, Spring, MyBatis기반에서 Kotlin, Spring Boot, JPA기반으로 전환하며 신규 서비스를 성공적으로 출시했습니다.
외부적으로는 NextStep이라는 개발 교육 업체에서 TDD, ATDD, JWP 관련 코드 리뷰어로 활동하고 있으며 타 기업의 사내 교육 코드 리뷰어로도 활동하고 있습니다.
최근에는, ElasticSearch와 Datadog과같은 검색엔진 및 모니터링 도구에 관심을 가지고 있으며 실제 서비스에 제공될 수 있도록, 스터디와 별도 브랜치로 개발을 진행하고 있고, Datadog을 통해 슬로우쿼리 추적 및 수집을 통해 서비스의 성능을 개선할 수 있도록 노력하고 있습니다.
경력
Midasin - BackEnd Developer / 프로
2022.02 ~ 재직 중
건축 ,토목등의 건축 소프트웨어 시장 점유율 세계1위인 마이다스에선 채용및 경영 솔루션 사업을 개발 및 보급하고 있습니다.
채용에 필요한 과정들에 대한 기능들을 제공하며 인사담당자는 더 효율적인 방식으로 일하면서 회사가 원하는 인재상에 맞는 지원자를 채용하는데 도와주는 기능을 제공하는 솔루션을 제공합니다.
성능 개선과 지원서 관리 및 일괄 기능과 대용량 파일 제어에 관련된 개발을 담당하고 있습니다.
Mosition - BackEnd Developer / 과장
2019.04 ~ 2021.12
SI 전문 기업으로 아모레 퍼시픽과 삼성의 제품 홍보 솔루션이나 CMS 대시보드, 웹 크롤러등을 수주해서 진행했습니다. 아모레 퍼시픽의 제품 추천 솔루션 개발을 담당했으며, 그 외에도 남해 스마트 시티 컨소시엄에서 노약자 돌봄 화상 채팅 솔루션과, 여러 스타트업들과 웹 기반의 화상 채팅 솔루션 개발을 담당했습니다.
보유 기술
Languages
: Java, Kotlin, Javascript, Python
Frameworks
: Spring Boot, Spring Batch, Node, Flask, ElasticSearch
Database / ORM
: MySQL, PostgreSQL, Redis, JPA, queryDSL, MyBatis
Environments
: Linux, AWS
Tools/ DevOps
: Git, Maven, Gradle, Jenkins, Jira, Bitbucket, IntelliJ, Artillery, ELK, Pinpoint, Datadog, K6
Architecture/ methodology
: MSA, Hexagonal, Clean, TDD, ATDD
학력 / 자격
호서대학교 - 컴퓨터공학/ 석사(수료)
2016.03 - 2018.02
호서대학교 - 컴퓨터공학/ 학사(졸업)
2007.03 - 2016.02
양지고등학교 - 인문계 / 이과
2004.03 - 2007.02
정보처리기사
2019.05.22
주요 프로젝트
2024.06 ~ 2024.08
Midasin
ATS 솔루션 스페이스 상품
•
고객사 솔루션 내 계열사별 개별 채용관리 상품 개발
•
분산되어 있는 레거시한 채용 관련 도메인 파악 및 리팩토링
•
분산되어 존재하는 서비스 상품 사용량 계산 로직 통합 모듈화 진행
•
고객사 사용자별 포인트 분배 로직 문제를 해결하여 포인트 데이터 무결성 해결
Java 11, Spring 5, Maven, MyBatis, MySQL, Datadog, Bitbucket
2024.02 ~ 2024.05
Midasin
대규모 공채 지원자 응시 트래픽 부하 대응
•
Datadog을 통한 RDB 슬로우쿼리 분석및 개선 항목 리스트업
•
Staging 서버 테스트 데이터 셋 준비 및 테스트 환경 구축
•
쿼리 튜닝 및 코드 리팩토링하여 RDB Resource 점유율 70% 이하 안정화
Java 11, Spring 5, Maven, MyBatis, MySQL, Datadog, Bitbucket
2024.01 ~ 2024.02
Midasin
지원서 정보 매칭 ATS 연동 기능
•
고객사 계약 상품별 지원서 연동 동의서 데이터 마이그레이션
•
지원서 연동용 임시 정보 Redis 저장 로직 개발
•
지원서 최종 제출시 카프카 이벤트 발행 로직 개발
•
지원서 파기 정책 기준 임시 정보 제거 스케줄러 개발
Java 11, Spring 5, Maven, redis, Kafka, Bitbucket
2023.05 ~ 2023.12
Midasin
MRS-CMS, 전체 지원자 관리 서비스 구축
•
기술스택 정의, 아키텍처 설계, DB 엔티티 마이그레이션
•
멀티 모듈 레이어드 아키텍처 구축
•
전체 지원자에 대한 메일/SMS 발송 시스템 개발
•
전체 지원자 엑셀/PDF 생성 기능 개발
•
지원자 검색을 위한 다이나믹 검색 필터 개발
Kotlin, Spring Boot, Gradle, JPA, queryDSL, MySQL, redis, Bitbucket
2023.01 ~ 2024.03
Midasin
대용량 엑셀/PDF 생성 서버 구축
•
기술스택 정의, 아키텍처 설계, DB 설계
•
대용량 파일 생성 로직 비동기화 리팩터링
•
PDF 생성용 aws-lambda 개발(orchestrator/ renderer/ merger)
•
레거시 엑셀 생성 로직 개선 및 쿼리 튜닝(행 기반 → 열 기반)
Java 11, Spring Batch, Gradle, aws-lambda, redis, kafka, bitbucket, datadog
2022.02 ~ 2024.05
Midasin
MRS, 채용 관리 솔루션
•
레거시 코드 리팩터링, 코드리뷰 컨벤션 도입
•
대용량 파일 다운로드 OOM 이슈 해결
•
AI 역량검사, Dev(코딩테스트 서비스) 연동 개발
•
산재되어 있던 누적 VoC 집계 및 주도적 해결
Java 8, Java 11, Spring, Maven, MySQL, MyBatis, Redis, kafka
2020.07 ~ 2020.11
Mosition
SGU, 아모레 퍼시픽 화장품 추천 서비스 고도화
•
IOS 12버전 이하 호환되지 않는 코드 리팩토링
•
테스트 커버리지 0% → 80% 달성(라인 및 함수 테스트 커버리지 기준)
•
신규 API 개발, 스펙 변경 API 수정
Java 8, Spring Boot, PostgreSQL, JPA, Maven, Thymeleaf, Git
2019.11 ~ 2020.06
Mosition
Vavalive, 다자간 화상 채팅 플랫폼 개발
•
기술스택 정의, 아키텍처 설계, DB 설계
•
webRTC 기반 화상 채팅 기능 개발
•
클라이언트간 통신을 위한 Signalling Server 구축
•
사용자별 SDP 제어 기능 개발
Java 8, JavaScript, Spring Boot, PostgreSQL, JPA, Maven, Thymeleaf, JQuery, WebRTC, AWS, RabbitMQ
2019.04 ~ 2019.06
Mosition
MARS, 아모레 퍼시픽 제품 홍보 서비스 개발
•
Spring Boot기반 REST API Server 구축
•
Flask 기반 머신러닝 결과 데이터 추출 및 병합 기능 개발
•
홍보 메일/SMS 발송 내역 분석 API 및 화면 개발
•
이종간 데이터베이스 취합 로직 개발
Java 8, Python, JavaScript, Spring Boot, Flask, MySQL, PostgreSQL, Netteza, JQuery, Maven, JSP
주요 외부활동
2023.07 ~ 2023.09
Midasin
사내 기술 스터디 진행
사내에서 신규 기술스택 도입시 선행학습한 내용을 토대로 사내교육 전반을 담당하여 기술 지원을 했습니다.
경력 소개서
채용 관리 솔루션 ATS
Midasin
A to Z, 채용의 A부터 Z까지
채용 관리 솔루션(ATS)에서 BackEnd 스쿼드장으로 대규모 공채부터 수상시 채용까지, 구직자부터 인사담당자 및 평가자까지 채용 과정에서 필요한 대부분의 기능들을 안정적으로 제공하며, 높은 응답성을 보장할 수 있도록 지속적인 리팩토링을 진행하고 있으며, 전반적인 응답성 향상과 VoC해결로 인해 최우수 팀으로 선정되었습니다.
재직 중 주요 수행 업무는 다음과 같습니다.
첫째, 유지보수 및 API 응답성 향상을 위한 리팩토링 진행
•
비효율적인 쿼리 튜닝 및 행 기반의 쿼리 조회를 열 기반의 쿼리 조회 방식으로 변경해 응답속도 1000% 이상 향상
둘째, 동기식 파일 다운로드 구조를 비동기 구조로 변경
•
지원자의 정보를 엑셀 혹은 PDF로 만들어 다운받는 로직 비동기식으로 변환 및 파일 다운로드함 개발
•
대용량 엑셀/PDF 생성을 위한 배치서버 및 aws-lambda 서버 구축
셋째, 모든 지원자를 한 눈에 확인 및 관리 할 수 있게 전체 지원자 관리 시스템 구축
•
Kotlin, Spring Boot, JPA 기반의 신규 기술스택으로 서비스 구축
•
지원자 검색에 필요한 다이나믹 검색 필터 개발 및 Redis 캐싱 처리
•
전체 지원자 요약 정보 엑셀 취합 기능 개발
•
No Offset Paging을 이용한 검색 쿼리 페이징 최적화
넷째, 대규모 공채시 지원자 트래픽 부하를 대비한 부하 테스트 환경 구축
•
artillery를 활용한 테스트 시나리오 작성
•
RDB 리소스 부하를 주는 슬로우쿼리 분석 및 쿼리 튜닝
•
ehCache 활용 조회 성능 향상
다자간 화상채팅 서비스
Mosition
화상 통신 기술의 다양한 활용
Mosition에서 WebRTC기반으로 화상 채팅 모듈을 만들어 사용자들간에 영어 회화, 랩/보컬, 뷰티등 다양한 관심사를 가지고, 비대면으로 소통할 수 있는 VAVALIVE 웹/앱과 남해 지역 주민들과 케어매니저, 가족들간에 화상채팅 기능을 개발하였습니다.
해당 서비스를 통해 어째서 미디어 서버가 존재하고 비싼 비용을 필요로 하는지 깨닫고, flutter 기반으로 voip를 제공하기 위해 오픈소스를 활용하며, 직접 소스를 커스터마이징 하는 경험을 했습니다.
재직 중 주요 성과는 다음과 같습니다.
첫째, WebRTC 를 이용한 화상채팅 서버 구축
•
채팅 및 세션 수립을 위해 Node로 Signaling 서버 구축
•
AWS EC2에 coturn(turnserver) 구축
둘째, Flutter 도입으로 앱 지원
•
Flutter 도입으로 IOS/AOS 지원
•
앱 환경에서 세션 수립 순서 보장을 위한 Mutex 도입
•
VoIP 도입 및 라이브러리 커스터마이징
셋째, 관리자용 Admin 사이트 개발
•
노약자와, 케어 매니저, 가족들간의 관계 수립 기능 개발
•
케어 매니저 접근 이력 로그 관리 페이지 개발
•
노약자 제공용 유튜브 링크 관리 페이지 개발
제품 추천 서비스
Mosition
재구매를 위한 똑똑한 홍보 서비스
제 커리어의 첫 시작이였던 SI전문회사 Mosition에서 제가 처음으로 투입된 프로젝트로 머신러닝 팀에서 추출한 아모레 퍼시픽의 화장품 재구매 가능 고객 정보를 가져와 데이터 가공/화면 노출/메일및 SMS 발송기능 개발등이 주 업무였습니다. 데이터들이 제각각 다른 데이터베이스에 있어서 이를 빠른 속도로 취합하여 하나의 데이터베이스에 저장하기 위해 많은 노력을 기울였습니다.
재직 중 주요 수행업무는 다음과 같습니다.
첫째, 빠른 데이터 취합을 위한 로직 개선, 리팩토링 쿼리 튜닝
•
다른 데이터베이스별로 파편화된 데이터 취합 및 load data를 활용한 성능 향상으로 95%이상의 성능 향상
•
머신러닝 임시 생성 테이블 제거 기능 개발
둘째, 프로젝트 구조 MVC로 변경 및 중복 코드 제거
•
컨트롤러에 집중되어있는 비즈니스 로직 서비스와 도메인 계층으로 분리
•
개발자별로 작성한 중복 코드 컨벤션 논의 후 취합하여 일원화
셋째, 인명록 관리 서비스 개발
•
아모레퍼시픽 인명록 기반 접근 권한 관리 기능 개발
넷째, 화장품이 아닌 다른 제품 홍보 솔루션으로도 사용할 수 있도록 아키텍처 구조 변경
•
멀티모듈 구조 도입으로 기존 구조 추상화및 화장품 추천 솔루션 구조 변경