미리보기
기본 정보

[꾸준히, 성실히 그리고 탁월하게] 개발을 사랑하는 백엔드 개발자 김민재 입니다. Phone : +82 01064707235
포트폴리오
기술 스택
Java, Spring Boot, AWS, Docker, github-actions, Kotlin, spring-jpa
경력
Air Premia Labs
백엔드 엔지니어 | 백엔드팀 | 재직 중
2023.10. ~ 재직 중 (1년 5개월)
[기술 스텍]
Kotlin, SpringBoot, Exposed, AWS, Github Actions
[온라인 체크인 서비스 재개발]
노선 별 온라인 체크인 가능 여부에 따른 조회 기능 재개발
각 노선별
Validator
를Factory Pattern
을 사용하여 구현
온라인 체크인을 위한
documents
검증 로직 재개발에어프레미아 체크인, 오토체크인 (체크인 예약) 기능 구현
모바일 탑승권 발급 및 조회 기능 재개발
Redis
를 활용한Cache
활용
[TSA 프리체크 취득 및 미주 체크인 기능 개발]
TSA 프리체크 취득 및 미주 체크인 기능 개발 (뉴스 보도 링크)
AWS 의 KMS 를 통한 디지털 서명 개발
[포토티켓 개발]
여행의 추억을 남길 수 있는 포토티켓 개발 (뉴스 보도 링크)
Headless Browser 인
Playwright
를 통한 캡쳐기능을 활용하여 개발
[체크인 알림톡 재개편]
체크인 유도 (48시간 전, 12시간 전) 알림톡 전송 개발
모바일 탑승권 조회, 오토 체크인 완료 알림톡 전송 개발
Job Runner
로 스케쥴러 서버 구현알림톡 발송 로직을 스케쥴러 서버에 위임하도록 설계 및 구현
http interface
를 통한 client 를 활용하여 서드파티 (infobip) 호출 구현
[플랫폼 도메인]
에어프레미아 항공 프로모션 실시간 모니터링 및 대응
CI / CD
github actions
파이프라인 workflow 개발repository dispatch
를 활용한 CI / CD 자동화 개발
샌프란시스코 취항 이벤트 서버 개발
graphql
model 프로젝트 참여gradle publish
를 통한graphql gds model
클래스를nexus
로 배포로직 개발
(주)위블링
사원 | P3팀
2022.03. ~ 2023.10. (1년 8개월)
[기술 스텍]
Java, SpringBoot, JPA, AWS, ECS, Github Actions
[통합 백오피스 차세대 전환 초기 설계 및 개발]
Spring Boot 2.6.4
,Gradle 7.0
도입Container 환경 도입을 위해
Docker
도입3개의 생산 백오피스를 하나의 통합된 백오피스로 전환
[Spring Security 도입을 통한 보안, 사용자 권한 체계 설계 및 구현]
Security Configuration
을 통한 인가 / 권한 정책 설계JWT, Redis
를 활용한 토큰을 통한 인증 및 접근 권한 시스템 구축동적으로 보안 및 권한 관리 할 수 있도록 설계 및 구축
[통합 BO 서비스 화면 및 비지니스 로직 개발]
관리자 메뉴 - 사용자 관리, 권한 관리, 메뉴관리
생산관리 - 작업지시서 출력, 어패럴 작업지시서, 사진인화작업, 액세서리 작업지시서
외주생산관리 - 포토넷 작업지시서, 포토넷 사진인화작업, 날염작업지시서
조판관리 - 조판관리, 조판관리 (최고권한)
모니터링 - 생산 오류 주문관리, 어패럴 주문 현황, 에러관리
[ECR, ECS 를 통한 서버리스 컨테이너 오케스트레이션 환경 구현]
AWS ECR
,ECS
,Fargate
기반 서버리스 운영 환경 설계 및 구축Session Manager, CloudWatch
를 통한 실시간 ECS 로그 모니터링 환경 구축CloudWatch Event Trigger
와AWS Lambda
,S3
를 통한 로그 적재 아키텍쳐 구축Pinpoint
도입을 통한 모니터링 서버 구축
[Github Actions 와 Code Deploy 를 통한 무중단 배포 환경 구축]
Github Actions
와Code Deploy
의 연계를 통한ECS
클러스터 배포 환경 구축Task-Definition
에 각각의 Container 의 명세 구축Github Repository 에 소스를 Push 하기만 하면 모든 과정이 진행되도록 자동화 환경 구축.
Workflow 성공과 실패 여부를 Slack 으로 실시간으로 확인 할 수 있는 알림 환경 구축
배포하는 과정에서 서비스 운영에 아무런 지장이 되지 않도록 무중단 Blue / Green 배포 환경 구축
트레이디
사원 | Work Up 팀
2021.10. ~ 2022.03. (6개월)
[근태관리 솔루션 Workup 어플 백엔드 REST API개발]
- 사원 회원가입, 사원 탈퇴, 사원 조회, 사원 정보 변경 등 사원 관리 API 개발
- 팀, 포지션 등 사원 관련 정보 관리 API 개발
- 근태 관리 (업무, 휴식, 외근에 해당하는 근태관리 DB 설계 및 관련 API 개발)
Prometheus
,Grafana
를 활용한 인스턴스 관리 및 시각화 기능 개발Firebase
를 활용한 푸시 알람 기능 개발 (회원가입 시, 가입 신청 승인 or 반려 시등 상황에 맞게 Firebase 활용)Amazon SES
통한 이메일 보내기, csv 파일 컬럼을 커스텀 하여 첨부파일로 보내는 기능 개발AWS EC2
로 DEV, PROD 인스턴스 관리 및 서버 로깅 모니터링
유펜솔루션 (스파이더킴)
사원 | 개발팀
2021.06. ~ 2021.10. (5개월)
[템플릿 프로젝트 (쿠팡, 네이버뉴스)]
- 템플릿 프로젝트의 엔터티 설계
- Jpa 를 사용한 카테고리 로직 구현 (무한 뎁스)
[카카오톡 알림톡 고객 안내 템플릿 프로젝트]
Spring Cloud Feign
을 이용하여 템플릿 수집 완료 시 고객에게 카카오톡 알림을 보내는 Admin API 개발
프로젝트
온라인 체크인 재개발
Airpremia Labs
2023.10. ~ 2024.03.
프로젝트 개요
레거시 시스템의 버그 문제 해결 및 확장성 확대를 위한 온라인 체크인 시스템 재개발
Java에서 Kotlin으로의 전환
레거시 JSP 기반 시스템을 RESTful API 서버로 전환 (
Spring Boot
)
주요 개발 내용
온라인 체크인 노선 확대
interface
를 활용한 추상화된 설계로 확장에 유연하도록 설계
국가별 체크인 조건 검증
Factory Pattern
을 활용한Validator
구현
모바일 탑승권 시스템
Redis
를 사용한 캐시 기반 조회 기능 구현
체크인 알림 기능 개선
JSP에서 서버 로직으로 이관
mustache
템플릿 및HttpInterface
클라이언트 사용
기술적 도전과 해결
국가별 체크인 조건 처리
문제: 국가, 시점, 승객의 국적 및 문서의 작성 여부마다 상이한 체크인 요구사항
해결
Factory Pattern
을 통한 국가별validator
생성Interface
설계를 통해 동적으로 체크인 조건 처리 로직 개발
체크인 알림 시스템 재설계
문제: JSP 기반 하드코딩된 알림 로직
해결:
서버 측
mustache
템플릿 구현HttpInterface
활용한 서드파티 연동job runner
로 구현된Scheduler
서버를 통한 알림 발송 자동화
개인적 성장
B2C 서비스 개발을 통한 사용자 중심 설계 역량 강화
복잡한 항공 도메인 이해와 비즈니스 규칙의 정확한 구현 능력 향상
객체 지향 설계 원칙에 대한 깊이 있는 이해와 적용 경험
더 나은 고객 경험을 위한 온라인 체크인 개선
Airpremia Labs
2024.04. ~ 2024.09.
프로젝트 개요
기존 온라인 체크인 시스템의 사용자 경험 개선 및 기능 확장
주요 개발 내용
포토티켓 기능 구현
Playwright
를 활용한 Headless Browser 기반 스크린샷 기능 개발
체크인 알림 시스템 확장
카카오톡, SMS, WhatsApp, 이메일 등 다중 채널 통합
국적 기반 동적 콘텐츠 생성
A/B 테스트 인프라 구축
Unleash
프레임워크를 이용한 체크인 알림 시점 (12시간 전, 24시간 전) 비교 실험
기술적 도전과 해결
포토티켓 구현:
문제: 프론트엔드에서 구현 불가능한 기술적 제약
해결:
Playwright
을 통한 서버로직 구현 (캡쳐 로직을 통해 구현)
알림 시스템 개선:
문제: 제한적인 알림 채널과 국제화 지원 부족
해결
백엔드 중심의 비즈니스 로직 재설계
Infobip API 추상화로 확장성 확보
DTO
최적화로 모듈 간 데이터 전송 효율화Job Runner
도입으로 비동기 처리 및 재시도 로직 구현
A/B 테스트 프레임워크 도입:
Unleash 선택 이유: 실시간 피쳐 플래그 업데이트, 상세한 사용자 타겟팅 기능
구현: Java SDK 통합, 사용자 그룹 설정 로직 개발
주요 성과
다양한 알림 채널 통합으로 사용자 도달률 향상
A/B 테스트를 통한 데이터 기반 의사결정 프로세스 확립
포토티켓 기능으로 사용자 참여도 증가 (인스타 공유등 활발)
개인적 성장
복잡한 시스템 설계 및 외부 서비스 통합 능력 향상
헤드리스 브라우저, A/B 테스트 프레임워크 등 새로운 기술 스택 습득
데이터 기반 의사결정 프로세스 경험을 통한 비즈니스 임팩트 이해도 증가
통합 백오피스 차세대 전환
(주)위블링 (P3팀)
2022.03. ~ 2023.01.
프로젝트 개요
3개 브랜드(스냅스, 오프린트미, 오라운드)의 백오피스 시스템 통합
생산 공정의 효율성 증대 및 브랜드 확장성 개선을 위한 프로젝트
주요 기술 전환
Spring
→Spring Boot
Maven
→Gradle
MyBatis
→JPA/QueryDSL
Docker
및Github Actions, ECS
등 컨테이너 환경 도입
기술적 도전과 해결
새로운 기술 스택 도입
문제: 팀 내 새로운 기술에 대한 이해도 차이와 도입 필요성 설득
해결
컨테이너화의 이점과
JPA/QueryDSL
의 장점에 대한 상세한 설명 및 논의초기 설계 단계에서 팀원들과 충분한 대화를 통한 합의 도출
시스템 통합 설계
3개 브랜드의 다양한 제품과 프로세스를 효율적으로 통합할 수 있는 아키텍처 설계
브랜드 간 공통점과 차이점을 고려한 유연한 시스템 구조 개발
프로젝트 성과
단일 백오피스 시스템을 통한 생산 공정 효율성 증대
새로운 기술 스택 도입으로 시스템 성능 및 유지보수성 향상
브랜드 확장에 대비한 확장성 있는 시스템 구축
개인적 성장
기술적 역량 강화
새로운 기술 스택에 대한 심도 있는 학습 및 실제 적용 경험
프로젝트 주도로 인한 높은 책임감과 지속적인 학습 동기 부여
팀 내 신뢰 구축 능력 향상
기술적 결정에 대한 효과적인 커뮤니케이션 스킬 개발
지식 공유의 중요성 인식 및 팀 내 기술 문화 조성에 기여
시스템 통합 및 마이그레이션 경험 획득
복잡한 비즈니스 로직을 가진 시스템들의 효율적인 통합 방법론 습득
레거시 시스템에서 현대적인 아키텍처로의 전환 경험
Spring Security 도입을 통한 보안, 사용자 권한 체계 설계 및 구현
(주)위블링
2022.08. ~ 2022.11.
프로젝트 개요
통합 백오피스 내 보안 설계 및 권한 관리 시스템 재구축
Spring Security
와JWT
를 활용한 인증/인가 시스템 개발Redis
를 이용한 동적 권한 관리 구현
주요 기술적 도전과 해결
프로젝트 중간 인수 및 재설계
문제: 기존 구현의 다양한 버그와 장애 (권한 부여 오류, 로그인/로그아웃 세션 문제 등)
해결
Spring Security
에 대한 심도 있는 학습 (21시간 분량의 Core Spring Security 강의 완강)보안 및 권한 시스템 전면 재설계 및 구현
동적 권한 관리 구현
문제: 생산 공장 담당자별로 다른 접근 권한 필요, 런타임에서의 동적 변경 요구
해결
Redis
를 활용한 메뉴-계정-팀 관계 매핑 구현JPA
와 연계한 효율적인Redis
데이터 처리 로직 개발
실무와 학습 병행
도전: 짧은 기간 내 (중간에 프로젝트를 인수 받아 시간이 없었음) 새로운 기술 습득 및 적용 필요
해결
퇴근 후 지속적인 자기 학습 및 실무 적용
학습한 내용을 바로 프로젝트에 적용하여 실무 경험 축적
프로젝트 성과
안정적이고 유연한 보안 및 권한 관리 시스템 구축
동적 권한 관리를 통한 사용자별 맞춤 접근 제어 실현
기존 시스템의 버그 및 장애 해결로 시스템 안정성 크게 향상
개인적 성장
Spring Security 전문성 획득
프레임워크의 깊이 있는 이해 및 실무 적용 능력 향상
인증/인가 시스템 설계 및 구현 역량 강화
Redis 활용 능력 향상
캐싱 시스템 설계 및 구현 경험 축적
JPA
와Redis
연계를 통한 데이터 처리 최적화 기술 습득
보안 시스템 설계 역량 강화
어플리케이션 레벨의 보안 아키텍처 설계 능력 향상
동적 권한 관리 시스템 구현을 통한 복잡한 비즈니스 요구사항 해결 능력 개발
자기주도적 학습 및 문제 해결 능력 향상
짧은 기간 내 새로운 기술 습득 및 실무 적용 경험
프로젝트 중간 인수 상황에서의 효과적인 대응 능력 개발
ECR, ECS 를 통한 서버리스 컨테이너 오케스트레이션 환경 구현
(주) 위블링
2022.11. ~ 2023.03.
프로젝트 개요
유연하고 관리하기 쉬운 서버 환경 구축
컨테이너 기반의 마이크로서비스 아키텍처 도입
AWS
클라우드 서비스를 활용한 인프라 최적화
주요 기술적 도전과 해결
컨테이너 오케스트레이션 도입
도전: 효율적인 트래픽 분산 및 중앙 제어 시스템 구축
해결:
AWS ECS(Elastic Container Service)
와Fargate
를 활용한 컨테이너 관리 시스템 구축
로그 관리 및 비용 최적화
문제:
CloudWatch
의 높은 비용 문제해결
AWS Lambda
함수를 설계하여 일정 기간 경과 로그를 S3로 이관CloudWatch
와Sesseion Manager
를 통한 실시간 모니터링과 비용 효율성의 균형 달성
CI/CD 파이프라인 구축
도전:
GitHub Actions
를 통한 AWS 서비스 접근 및 배포 자동화해결
ECR, ECS, CodeDeploy
등 AWS 서비스와의 연동 구현Task Definition, appspec.yml
등 필요 설정 파일 최적화
프로젝트 성과
탄력적이고 확장 가능한 서버 인프라 구축
로그 관리 비용 최적화 달성
자동화된 CI/CD 파이프라인을 통한 개발 생산성 향상
개인적 성장
클라우드 네이티브 기술 숙달
AWS ECS, Fargate, Lambda, S3
등 다양한 클라우드 서비스 활용 능력 향상컨테이너 기반 마이크로서비스 아키텍처 설계 및 구현 경험
DevOps 역량 강화
CI/CD 파이프라인 구축 및 최적화 능력 개발
문제 해결 능력 향상
복잡한 시스템 구축 과정에서의 지속적인 학습 및 시행착오 극복
비용 효율성과 기술적 요구사항 간의 균형 잡힌 해결책 도출 능력
전략적 사고 능력 개발
서비스 요구사항과 기술적 가능성을 고려한 최적의 솔루션 선택 능력 향상
장기적 확장성과 현재의 니즈를 동시에 고려한 인프라 설계 경험
Github Actions 와 Code Deploy 를 통한 무중단 배포 환경 구축
(주)위블링
2022.10. ~ 2023.02.
프로젝트 목표
"단 한 번의 클릭으로 배포" 실현
개발자의 배포 스트레스 감소 및 비즈니스 로직 집중 환경 조성
간편하고 빠르며 안정적인 배포 파이프라인 구축
주요 기술적 도전과 해결
모듈화된 파이프라인 설계
도전:
GitHub Actions, AWS CodeDeploy,
기타 AWS 서비스의 효과적인 연계해결: 여러 번의 설계 반복과 시행착오를 통한 최적화된 아키텍처 도출
무중단 배포 구현
문제: 운영 환경에서 서비스 중단 없는 배포 필요
해결: Blue/Green 배포 전략을 활용한 무중단 배포 환경 구축
완전 자동화된 배포 프로세스
도전: 수동 개입 최소화 및 인적 오류 방지
해결:
GitHub Push
를 트리거로 한 전체 배포 과정 자동화
최적의 CI/CD 도구 선정
문제: 기존
Jenkins
기반 솔루션의 한계해결:
GitHub Actions
와AWS CodeDeploy
의 장점을 결합한 커스텀 파이프라인 구축
프로젝트 성과
원클릭 배포 시스템 실현으로 개발자 생산성 향상
무중단 배포를 통한 서비스 안정성 확보
자동화된 프로세스로 인적 오류 최소화 및 배포 시간 단축
개인적 성장
클라우드 네이티브 CI/CD 역량 강화
AWS 서비스(
ECR, ECS, Fargate, CodeDeploy
)의 심도 있는 이해 및 활용 능력 향상GitHub Actions
워크플로우 설계 및 최적화 능력 개발
인프라 설계 능력 향상
컨테이너 오케스트레이션과 서버리스 환경 구성 경험 축적
문제 해결 능력 및 끈기 개발
반복된 실패와 도전을 통한 학습 능력 향상
목표 달성을 위한 지속적인 노력과 개선 능력 강화
기술 문서화 및 지식 공유 능력 향상
복잡한 기술적 내용을 팀원들과 효과적으로 공유하는 능력 개발 (3차례에 걸친 문서 공유)
회사 내 가치 있는 기술 자산 창출 및 공유 경험