Search
Duplicate

이한솔의 이력서

Java/Kotlin Back-end Developer
지식을 공유하고, 환경에 적응하며 팀원들과 소통하며 문화를 만들어 가는 것을 즐깁니다.
 010-2912-8804
 killfine1988@gmail.com
 https://catsbi.oopy.io/

소개

채용 관리 솔루션(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

주요 외부활동

2024.01

게으른 개발자 컨퍼런스, 코틀린 도입기 발표[링크][발표자료]

레거시 프로젝트팀이 모놀리틱 구조에서 매크로 서비스를 넘어 미니 서비스로 구조 전환이 되는 과도기에서 신규 기술 스택들을 도입하며 어떻게 해결해나가고 같이 성장하고 문화를 만들어가는지에 대한 발표를 했습니다.

2021.10 ~ 현재

NestStep

Nextstep, 코드리뷰어 활동

만들면서 배우는 Spring 4기 코드리뷰어[링크][샘플]
TDD, 클린 코드 with Kotlin 7기 코드리뷰어 [링크][샘플]
ATDD와 함께 클린 API로 가는 길 4~9기 코드리뷰어 [링크][샘플]
TDD Clean Code With Java 13~17기 코드리뷰어 [링크][샘플]
여러 교육과정에 코드리뷰어로 활동하며 리뷰이들에게 코드리뷰를 통해 인사이트를 제공하고 함께 성장해나가는 경험을 하고 있습니다.

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로 변경 및 중복 코드 제거
컨트롤러에 집중되어있는 비즈니스 로직 서비스와 도메인 계층으로 분리
개발자별로 작성한 중복 코드 컨벤션 논의 후 취합하여 일원화
셋째, 인명록 관리 서비스 개발
아모레퍼시픽 인명록 기반 접근 권한 관리 기능 개발
넷째, 화장품이 아닌 다른 제품 홍보 솔루션으로도 사용할 수 있도록 아키텍처 구조 변경
멀티모듈 구조 도입으로 기존 구조 추상화및 화장품 추천 솔루션 구조 변경