최운식

JAVA Back-end Developer

About Me

안녕하세요. 백엔드 개발자 최운식입니다.

  • kotlin + Spring Boot 기반 백엔드 개발을 담당하고 있습니다.
  • 카카오스타일에 재직 중이며 2주 단위 스프린트를 통한 애자일 방식의 개발을 진행하고 있습니다.
  • 개발 / 코드 리뷰를 병행하며 읽기 좋으며 수정하기 좋은 코드를 작성하는 데 많은 관심이 있습니다.
  • 지속적인 기술 학습을 위해 도서 스터디 및 강의를 통해 학습하고 기술 블로그에 기록을 병행하고 있습니다.

Work Experience

카카오스타일 프라이싱팀

백엔드 엔지니어

2022.06 ~ 현재

https://github.com/croquiscom

[역할]

  • 기존 Node 기반 멤버십 ➡️ Spring 전환 및 개편
    • Spring Batch ItemStream에 비동기 멀티 스레드를 적용하여 1시간 이내에 처리되도록 성능 개선
    • Athena Query 최적화
  • 기존 Node 기반 크롤링 ➡️ Spring 전환
    • Spring Batch, Selenium, Skrape.it을 이용하여 타 사이트 크롤링 Batch 개발
    • IteamStream을 통해 중도 중단될 경우에도 Execution Context에 저장된 인덱스를 기준으로 재시작 가능하도록 적용
  • Github Actions를 사용하여 안정적인 Versioning 배포가 가능하도록 개선 및 롤백 체계 구현
  • GraphQL, QueryDSL을 이용하여 지그재그 내부 중복 상품에 대한 수동/자동 매칭 API 및 Batch 구현

[사용기술]

  • 언어: Kotlin
  • 프레임워크: Spring Boot, Spring Batch, QueryDsl
  • AWS: Athena, S3, Lambda, EC2
  • DB: MySql, Redis
  • API: DGS + GraphQL
  • 라이브러리: Jenkins, Kafka, Selenium, Github Actions
  • 테스트: JUnit5, Kotest, MockK
  • 툴: Slack, Jira, DataDog, Github Actions, ArgoCD

Projects

코디네이터 1:1 매칭 패션 플랫폼 [팀] - 스타일멘토

담당 - Spring Boot 백엔드

2021.12 ~ 2022.06

https://github.com/Sigma-i-2022/backend

교육부 주관 학생 창업유망팀 300 성장트랙을 목표로 진행

[목적]

  • 서비스 이용자에게 개인 코디네이터를 1:1 매칭하여 스타일 피드백 및 고객 맞춤형 코디 서비스를 제공해주는 패션 플랫폼 제작

[인원]

  • 7명 - 백엔드 2명, 안드로이드 2명, 디자이너 1명, 기획 2명

[역할]

  • 토스페이먼츠 PG 시스템 API를 이용한 결제 시스템 구현
  • 금융결제원 오픈뱅킹 OpenAPI를 이용한 계좌실명조회 기능 구현
  • 기능 단위 패키지 개발 & Git Branch 전략을 통한 협업
  • Junit 5 및 BDD Mockito 를 사용하여 API, DB (JPA), Service 로직 테스트 코드 작성
  • 전체 목록 조회 시 페이징 기법을 적용하여 DB 쿼리 최적화
  • Fetch Join Query문을 통해 Lazy Loading 관계를 포함하는 객체 조회 시 발생하는 N + 1 문제 해결

[문제 해결 경험]

[사용 기술]

  • 언어 : Java
  • 프레임워크 : Spring Boot, Spring Data JPA
  • 서버 : AWS EC2, RDS, S3
  • DB : MySql
  • API: REST API, Swagger
  • 모니터링 : AWS Cloud Watch
  • 외부 API : 토스페이먼츠 PG, 금융결제원 오픈뱅킹 오픈 API
  • 테스트: JUnit5, BDD Mockito

[성과]

리그오브레전드 스펠/궁극기 체크 도우미 [팀] - 스우미

담당 - Spring Boot 백엔드

2021.07 ~ 2021.10

https://github.com/choiwoonsik/swoomi-backend

해커톤 우승 후 약 3개월의 실제 운영기간 동안 평균 DAU 20 이상 유지

[목적]

  • Riot Games API를 활용하여 리그오브레전드 게임 유저들이 쉽고 편리하게 스펠/궁극기 시간을 체크할 수 있는 서비스 제작

[인원]

  • 5명 - 백엔드 2명, 프론트 2명, 디자이너 1명

[역할]

  • Redis 기반 캐시메모리 적용으로 쿼리 최적화 및 50% 응답속도 개선
  • nGrinder를 이용해 가상 트래픽 발생을 통한 서버 내구성 테스트
  • HiKariCP를 이용해 DB 커넥션 풀 관리
  • Junit4를 이용해 통합 테스트 진행
  • Web Socket을 이용해 실시간 팀원 간 정보 동기화 구현
  • Git web hook + Jenkins를 이용한 CI/CD 구현 및 Slack 연동
  • 도메인 구매 후 TLS를 이용해 HTTPS 적용
  • Spring boot mail을 이용해 예외 발생 시 지정된 이메일로 에러 내용 발송

[문제 해결 경험]

[사용 기술]

  • 언어 : Java
  • 프레임워크 : Spring Boot, Spring Data JPA
  • 서버 : AWS EC2, RDS, Route 53
  • DB : MySql
  • API: REST API, Swagger
  • DevOps : Jenkins + Github WebHook
  • 외부 API : Orianna

[성과]

[참고 자료]

스프링 부트 웹 애플리케이션 [개인]

담당 - 전체

2021.05 ~ 2021.07

[목적]

  • 스프링 부트 기반 백엔드를 제작하여 MVC 구조, REST API, OAuth 2.0 관련 학습 목표

[역할]

[사용 기술]

  • 언어 : Java
  • 프레임워크 : Spring Boot, Spring Data Jpa, Spring Security
  • 서버 : AWS EC2
  • DB : H2
  • API: REST API, Swagger

Blog

개인 기술블로그

https://ws-pace.tistory.com/

일일 300명 이상 방문

Skill

백엔드 기술 스택

  • 언어: Java, Kotlin
  • 프레임워크: Spring(Boot, Batch, MVC, Security, Data JPA)
  • AWS: EC2, RDS, S3, Lambda, Cloud Watch
  • DB: MySql, Redis, QueryDsl
  • API: GraphQL, REST API
  • 테스트: JUnit4/5, Kotest, BDD Mockito, MockK, nGrinder
  • 외부 툴: Linux, Git/Github, Github Actions, Jenkins, Gradle

Education

상명대학교

SW융합학부 컴퓨터과학전공

2016.03 - 2023.02 (졸업)

[전공 과목]

  • 운영체제, 네트워크, 리눅스 프로그래밍 수업 등을 들으며 컴퓨터 내외 전반적인 프로토콜에 대한 지식 함양
  • 알고리즘, 자료구조 수업을 통해 다양한 자료구조 및 알고리즘에 대한 접근 방법과 풀이 방법 학습
  • 객체지향 프로그래밍 수업을 통해 다양한 디자인 패턴의 구조 및 활용 방법 학습

42 서울

2020.05 ~ 2020.09

https://github.com/choiwoonsik/my42-Seoul
  • Linux manual과 C언어 책을 참고해 구현 목적과 입력, 반환 값 등 내부 구조를 바탕으로 printf() 등 C 라이브러리 함수 구현 과제 수행

알고리즘

2020 ~ 현재