채용공고 올리기

김선진님을 응원해보세요!

지금 만족하고 있어요

미리보기

기본 정보

이름
김선진
직업
Backend Developer
간단 소개

안녕하세요, 따뜻하면서도 효과적인 커뮤니케이션을 지향하는 개발자, 김선진입니다. SaaS 서비스에 관심이 많으며, 스케줄링 및 커뮤니티 관리 SaaS 서비스 구현에 참여한 경험이 있습니다. Google Calendar, Zapier와 같은 외부 서비스 연동에 강점을 가지고 있으며, 특히 비동기 방식을 활용한 Notification 연동에 관심이 많습니다. 최근에는 테스트 코드 작성과 배치 작업에도 많은 관심을 두고 있습니다.

기술 스택

기술 스택

Java, Node.js, NestJS, Spring Boot, MySQL

경력

회사명

비즈니스 캔버스

직급 | 부서 | 근무 유형

Backend Developer | Dev

근무 기간

2022.11. ~ 2023.12. (1년 2개월)

담당 업무

📝 세일즈맨을 대상으로 하는 신규 스케줄링 SaaS 서비스 re:catch 개발에 참여했습니다.

  • 데이터베이스 스키마 변경: TypeORM Migration을 사용하여 비즈니스 로직 업데이트에 따른 RDBMS 마이그레이션을 성공적으로 수행.
  • 결제 서비스 이관: Paddle 결제 서비스 도입을 통해 기존 PG사의 100여 개 고객사 데이터를 성공적으로 이관하고, 데이터 전략 설계 및 임시테이블을 활용한 데이터 추출 작업을 주도.
  • 캘린더 서비스 통합: Google Calendar와 Outlook API를 통해 캘린더 서비스를 통합하여 효율적인 일정 조율 서비스 구현.
  • 서드파티 서비스 연동 기능 제공 : Slack, Sendgrind 알람 전송 기능, Zapier 연동 기능 구현
  • 개발팀 협업 : OpenAPI Spec 기반 API 문서화, Postman 팀 공유 프로세스 구축
회사명

주식회사 스플랩

직급 | 부서 | 근무 유형

Backend Developer | Dev | 재직 중

근무 기간

2024.04. ~ 재직 중 (11개월)

담당 업무

📝 B2B/B2C 행사, 정부/민간 사업 프로그램, 커뮤니티, 네트워킹 파티를 위한 올인원 툴 서비스 Umoh 개발에 참여했습니다.

  • 기존 배치 작업들을 Spring Batch로 이관:

    • 나라장터, k-스타트업 포털 등에서 주기적으로 데이터 수집하는 기능을 Spring Batch의 Tasklet을 사용하여 구현 (데이터 양: 일일 약 100건).
    • 알림톡 발송 내역 등 대량의 주기적 데이터 수집 작업을 Spring Batch의 Chunk 방식으로 구현 (데이터 양: 일일 약 10,000건). 알림톡 발송 내역을 가져온 후, 클라이언트별 사용량을 계산하여 요금을 측정해야 하므로, 데이터를 적절히 나눠서 가져온 후 전처리하는 과정이 필요함. 이를 위해 Chunk와 Step 방식을 활용하여 데이터를 효율적으로 처리함.
  • 외부 서비스 연동:

    • Daily Report, 일괄 메일 발송 작업 등 Notification 기능 구현
    • TransactionalEventListener와 Async를 활용하여 기존 서비스 영향 최소화

3개월 계약직으로 근무했으며, Spring Boot와 Kotlin 기반 서비스 운영 및 개발 환경에 대해 배울 수 있었습니다.

프로젝트

프로젝트명

DG Times

소속/기관명

개인

프로젝트 기간

2022.08. ~ 2022.09.

프로젝트 내용

항해 99에서 진행한 프로젝트로 키워드 기반의 빠르고 간편한 뉴스 검색 및 분석 서비스 입니다.

  • 뉴스 데이터 300만 건의 키워드 검색 성능을 향상시키기 위해서 Full Text Search 를 도입해, 키워드 검색 조회 시간 2,150% 개선(18초 → 0.8초)
  • 실제 사용자 트래픽을 고려하여 Main - Replica DB 이중화 방식으로 구축하여 시간당 읽기 1만 건, 쓰기 2500건 동시 처리
  • 뉴스 키워드 분석 조회 성능을 향상시키기 위해 Redis로 캐싱 기능을 구축하여 키워드 분석 조회 시간 91% 단축(4초 → 0.3초)
  • 뉴스 데이터 300만 건 수집 성능 향상을 위해 Rabbitmq와 Spring Scheduled & Async를 활용한 데이터 파이프라인을 구축하여 수집 성능 530% 향상(19H → 3H)

포트폴리오

URL

link

Github

깃허브
link

blog

URL 링크

교육

소속/기관명

금오공과대학교

종류 | 전공

대학교(학사) | 컴퓨터소프트웨어공학과

재학 기간 | 재학 상태

2015.03. ~ 2022.03. | 졸업

소속/기관명

스파르타코딩클럽

종류 | 전공

사설 교육 | 플러스 3기

재학 기간 | 재학 상태

2023.12. ~ 2024.02. | 졸업

소속/기관명

f-lab 백엔드 코스

종류 | 전공

사설 교육 | Java 백엔드 코스

재학 기간 | 재학 상태

2022.12. ~ 2023.06. | 졸업

대외활동

활동명

금오사이

소속/기관명

금오공과대학교 학생 커뮤니티

연도

내용

금오공과대학교 학생들이 운영하는 MAU 3만 명 규모의 금오공대 대표 커뮤니티입니다.

  • 학교 공지사항 및 학사 일정 등 수작업으로 진행하던 데이터 수집 과정을 Python & Scheduled를 활용하여 자동화 구축
  • 서버 유지보수를 위해 PHP 기반의 서버를 Nest js로 마이그레이션 프로젝트 진행 중
  • 졸업으로 인한 초기 개발자 이탈로 인한 인수 인계 문제를 스터디를 진행하여 해결, (2022년 기준 총 7명의 개발팀원 진행)
  • 수강 신청 등의 특정 이벤트에서 유저 급증에 따른 알림 로그 수집으로 인한 데이터베이스 메모리 부족 문제를 해결하기 위해, DB 스케일업을 통해 해결, 이를 통해 2022년 3월 기준 MAU 3만명을 안정적으로 처리

자기소개

자기소개

안녕하세요, 따뜻하면서도 효과적인 커뮤니케이션을 지향하는 개발자, 김선진입니다. 세일즈맨을 대상으로 하는 신규 스케줄링 SaaS 서비스 개발에 참여한 경험을 보유하고 있으며, 이를 통해 Google Calendar와 Outlook과 같은 외부 캘린더 연동, 미팅 Notification 구현, Zapier 연동 구현 등 다양한 역량을 키웠습니다.

다양한 데이터 처리 경험:

  • TypeORM의 Migration 기능을 활용하여 비즈니스 로직 변경에 따른 데이터베이스 내부 데이터 가공 및 수정.
  • 외부 결제 서비스인 paddle 도입 시, 기존 pg사의 100여개의 고객사 데이터를 성공적으로 이관, 이 과정에서 시니어 개발자와 협력하여 아래 업무를 주도적으로 수행했습니다.
    • 데이터 이관에 관한 전략 설계에 참여
    • 데이터를 이관해야하는 고객사 데이터를 임시테이블을 활용해서 추출
    • 기존 pg사 데이터 정리 및 이관하면서 기존 데이터에 추가되어야하는 내용 정리

외부 서비스 연동 및 API 관리:

  • Google Calendar, Outlook 등 캘린더 서비스와의 연동을 통해 일정 조율 서비스 구현.
  • Slack, Sendgrid와의 연동으로 Notification 서비스 구축.
  • Zapier를 이용하여 CRM 등 다양한 서드파티 서비스와의 연동 기능 제공.
  • OpenAPI Spec을 활용한 API 문서 작성 및 Postman을 통한 문서 공유로 팀 내 협업 효율성 증진.

간단한 배치 서비스 구축 가능:

  • 나라장터, k-스타트업 포털 등에서 주기적으로 데이터 수집하는 기능을 Spring Batch의 Tasklet을 사용하여 구현 (데이터 양: 일일 약 100건).
  • 알림톡 발송 내역 등 대량의 주기적 데이터 수집 작업을 Spring Batch의 Chunk 방식으로 구현 (데이터 양: 일일 약 10,000건). 알림톡 발송 내역을 가져온 후, 클라이언트별 사용량을 계산하여 요금을 측정해야 하므로, 데이터를 적절히 나눠서 가져온 후 전처리하는 과정이 필요함. 이를 위해 Chunk와 Step 방식을 활용하여 데이터를 효율적으로 처리함.

개발자로서의 제 목표 지속적인 학습과 협업을 통해 더욱 성장하고, 동시에 팀 및 조직에 긍정적인 영향을 미치는 것입니다. 앞으로도 저는 기술적 문제 해결 능력과 팀워크를 바탕으로 새로운 도전을 즐기며 성장해 나가고자 합니다.

댓글