미리보기
기본 정보
안녕하세요! 빠르게 실험해서 결과를 도출하는 백엔드 개발자, 김동균입니다. 개인 깃허브 링크 : https://github.com/ca1af 개인 블로그 링크 : https://velog.io/@calaf
자기소개
자기소개
더 나은 방법은 없을까? 왜 이렇게 해야할까? 를 고민합니다. 고민을 빠르게 실험해보고 결과를 나누는 것을 좋아합니다.
코드 리뷰에 관심이 많습니다. 리뷰 문화를 더 활성화시키고 싶어서, 관련 사이드프로젝트를 진행중입니다.
추상화, 리팩토링에 진심입니다. 변경과 확장에 유리한 코드를 작성해서 유연성을 높이고, 관리 포인트를 줄여 휴먼 에러로 발생하는 장애를 줄이는 것을 좋아합니다.
테스트 코드 작성을 좋아합니다. 테스트코드가 좋은 코드, 나아가 좋은 아키텍쳐를 만들 수 있다고 생각합니다.
기술 스택
Java, Spring, Spring Boot, mybatis, JPA, Oracle, GitHub, gitlab, github-actions, junit5, AWS
경력
해피머니 아이엔씨
사원 | 플랫폼개발팀
2023.08. ~ 2024.08. (1년 1개월)
홈페이지 및 백오피스 운영 및 개발
2023.08. - 2024.08. (1년 0개월)
해피머니 홈페이지 프론트(뷰) 서버 및 API 서버 유지 및 보수
하나의 프로젝트에서 관리되던 관심사를 MSA 형태로 분리
레거시 백오피스를 개편하여 Spring Boot 3.x 버전으로 마이그레이션
프로젝트
상품권 교환소(제휴사) 로직 리팩토링 및 마이그레이션
해피머니 아이엔씨
2023.10. ~ 2023.12.
상품권 교환소? : 제휴사의 상품권을 자사 캐시로 교환하는 서비스
JDK 8, Spring Core 4.x → JDK 17, SpringBoot 3.x 로 마이그레이션
제휴사 별 공통 로직을 인터페이스로 추상화
제휴사 로직을 호출하는 부분을 객체지향 디자인패턴에 따라 리팩토링 (https://velog.io/@calaf/비슷한-동작을-추상화하기)
Map<String, Object> 형태의 데이터를 DTO로 변경, 이에 따라 디버깅을 하지 않더라도 데이터의 용도를 코드에서 알 수 있도록 변경
기존 Swagger 를 사용한 E2E 테스트를 Controller 테스트코드 작성으로 자동화
고객센터 (FAQ, QNA) API 리팩토링 및 프론트 개선
해피머니 아이엔씨
2023.08. ~ 2023.09.
MyBatis → JPA 로 변경함으로써 도메인 객체가 로직을 가지도록 변경, 유지보수 및 확장 용이성 확보
Spring Core에 필요한 추가 환경설정(Tomcat 등)을 간소화함으로써 팀 내 생산성 증대
불필요한 데이터도 모두 조회하던 기존 로직을 꼭 필요한 데이터만을 조회하도록 변경
이 과정에서 불필요한 로직을 제거하여, 로직의 가독성 증대
Oracle DB 버전 업그레이드로 인한 옵티마이저의 작동 방식 변경으로 조회 쿼리가 느려진 현상 파악, Oracle Query Hint 를 통해서 해결
레거시 백오피스 개편 및 추가개발
해피머니 아이엔씨
2024.02. ~ 2024.08.
세 개로 나누어 운영하던 레거시 백오피스를 통합, 하나의 백오피스로 변경 및 SpringBoot 3.x 버전으로 마이그레이션
관심사 (통계, CS, 발권, 이벤트 등등) 별로 API 서버는 분리, 프론트(뷰) 서버는 하나로 변경
관심사를 사용하는 측의 요청에 따라 추가 기능 개발
ISMS 권고에 따라, 권한이 없는 관리자에게는 고객의 개인정보를 마스킹 처리하는 공통 조회 로직 개발
SpringCore, JSP 로 운영되던 백오피스를 SpringBoot, Thymeleaf 로 마이그레이션
기존 Controller 메소드별로 발생하던 로깅을 AOP를 이용해서 공통으로 처리되도록 변경
대외활동
코드잇, 스파르타코딩클럽
2024.05. ~ 2024.08.
사이드 프로젝트
1. 사이드 프로젝트 공유 플랫폼 (https://yeogi-client.vercel.app/)
Read, Write 서비스 및 컨트롤러 분리(CQRS), 이에 따라 도메인 로직/조회 로직을 구분
QueryDSL 검색 및 정렬조건을 더 유연하게 사용하도록 변경 (https://velog.io/@calaf/SpringBoot-검색정렬-조건-유연하게-받기)
Github Actions를 이용해서 코드 리뷰어 자동 할당 (https://velog.io/@calaf/Github-Actions-로-리뷰어-자동-할당하기)
2. Pull Request 생성 시 코드 리뷰어 자동할당 플랫폼 (PR-Deliver : https://github.com/ca1af/gh-pr-consumer)
Docker, DockerHub, Github-Actions 를 이용한 CI/CD 파이프라인 구축 (https://velog.io/@calaf/Docker-DockerHub-Github-Actions-로-편하게-CICD-구성하기)
도메인 로직 및 서비스로직에 대한 자동화된 테스트코드 작성 및 외부 의존성(Github API) 에 대한 테스트코드 작성 (라인 커버리지 80%)
코딩 교육 활동
스파르타 코딩 클럽 (2024.03 - 2024.06)
스파르타 코딩 클럽 코딩입문반 튜터로, (https://spartacodingclub-jgyk.oopy.io/) - 24/03/15~06/27 활동
수강생들에게 Spring 과 JPA에 대한 기본 지식을 강의하고, 이에 따른 질문과 답변을 진행
Spring 및 JPA의 원리에 대해서 다시 한 번 공부하고 살펴봄으로써 더욱 단단한 기본기를 가지게 되는 계기가 됨
포트폴리오
교육
스파르타코딩클럽
사설 교육 | 백엔드(SpringBoot)
2022.10. ~ 2023.03. | 졸업
한세대학교
대학교(학사) | 경영학과
2013.03. ~ 2023.02. | 졸업