



Project Details
0→1→100을 만드는 풀스택 개발자

기간: 2023년 12월 ~ 현재운영중
B2B 출장 예약 시스템(비즈플레이)
한정된 시간과 자원으로 최선의 결과를 도출, 현대자동차 및 대기업 고객 유치
배경
출장 정산 시스템에 예약 기능 추가 요청. 고객사의 일방적이고 무리한 일정 통보와 빈번한 요구사항 변경으로 매번 새로 개발해야 하는 상황
해결한 문제들
촉박한 일정과 빈번한 요구사항 변경
- 고객사의 일방적이고 무리한 일정 통보
- 빈번한 요구사항 변경으로 매번 새로 개발해야 하는 상황
- 신규 고객사 추가 시마다 전체 코드 수정 필요
전략 패턴(Strategy Pattern) 적용으로 예약 로직을 유연하게 확장
Angular 컴포넌트 상속 구조 설계로 설정 파일만 수정해 신규 고객사 대응
30개 고객사의 다양한 니즈 충족
신규 고객사 추가 시 1~2일 내 커스터마이징 완료
촉박한 일정 내 프로젝트 완료
레거시 항공 예약 시스템의 유지보수성 문제
- 스파게티 코드로 구성된 V1 시스템
- 간헐적인 버그 발생으로 고객 컴플레인 증가
- 신규 기능 추가 시 과도한 시간 소요
항공 예약 시스템 V2 전면 재개발로 구조 개선
모듈화 및 컴포넌트 단위 분리로 유지보수성 향상
타입 안전성 강화 (TypeScript, RxJS)
운영한지 1년이 다되어 가지만, 기존 예약 시스템과 비교해서 압도적으로 버그 없이 운영 중 입니다.
신규 기능 추가 및 유지보수 시간 단축
프로젝트별로 흩어진 API
- 다수의 프런트 서비스에서 API 응답을 조작하여 사용하는 복잡한 데이터 조작이 많음
Backend for Frontend 서버 도입
NestJS로 중간 서버 개발하여 API 통합 및 구글맵/네이버맵 프록시 역할
여러 프로젝트에서 중복된 API 응답 조작 코드를 BFF에 넣어서 프로젝트 마다 있던 중복 코드를 제거하여 유지보수성 향상
핵심기술구현
전략 패턴으로 다양한 결제 플로우 선택 기능 설계
기술적 도전:
30개 고객사마다 다른 결제 플로우
구현 방법:
전략 패턴을 적용하여 각 고객사별 ReservationStrategy 인터페이스 구현
Code Snippet
// 전략 패턴 적용 예시
interface ReservationStrategy {
validateBooking(): boolean;
getApprovalFlow(): ApprovalFlow;
checkBudget(): BudgetStatus;
}
class HyundaiReservationStrategy implements ReservationStrategy { ... }
class PoscoReservationStrategy implements ReservationStrategy { ... }효과/성과:
신규 결제 플로우 추가 시 새로운 Strategy 클래스만 작성
컴포넌트 상속 구조로 고객사별 커스터마이징 시간 단축 및 안정한 코드 작성
기술적 도전:
고객사별 UI/UX 요구사항이 제각기 다름 & 복잡한 요구사항을 당일에 완료하라고 통보받는 상황이 자주 발생 -> 잦은 배포로 인한 많은 버그 발생
구현 방법:
BaseReservationComponent를 만들고 고객사별로 상속하여 필요한 부분만 오버라이드하여 기존의 시스템에 영향이 없는 안정한 코드 작성
Code Snippet
// 베이스 컴포넌트
@Component({ ... })
export class BaseReservationComponent { ... }
// 고객사별 확장
@Component({ ... })
export class HyundaiReservationComponent extends BaseReservationComponent {
// 필요한 부분만 오버라이드
}효과/성과:
공통 로직은 상속, 차이점만 오버라이드
코드 중복 최소화
정량적 성과
30개 B2B 고객사 맞춤형 시스템 구축 (현대자동차, 포스코, 기아자동차 등)
신규 고객사 추가 시 기존 시스템에 영향이 없어 안정적인 운영 중
항공 예약 시스템 V2 재개발로 기아 복지몰 항공예약시스템 버그 발생 0건 유지중 (운영 1년 차)
BFF 서버 도입으로 복잡한 api 가공 후, 여러 프로젝트에 제공하여 중복 코드 제거 및 생산성 향상
기술스택
Frontend
Angular 2+, TypeScript, RxJS, NgRx
복잡한 예약 플로우와 복잡한 form의 input, selectbox, checkbox 등의 얽혀 있는 요구사항을 관리하기 위해 Angular를 선택
Backend For Frontend
NestJS, TypeScript
API 통합 및 구글맵/네이버맵 프록시 서버
담당업무
아키텍처설계
전략 패턴 기반 확장 가능한 결제 시스템 설계
컴포넌트 상속 구조 설계로 고객사별 커스터마이징 배포시에 기존의 시스템에 악영향 없는 안정한 코드 작성
개발
항공 예약 시스템 V2 전면 재개발
30개 고객사별 맞춤형 UI/UX 구현
NestJS BFF 서버 개발
B2B Admin, B2C Admin, 복지몰 프론트엔드 개발
팀리딩
프런트엔드 팀 3명 리딩
코드 리뷰 및 개발문서 작성
신규 팀원 온보딩 및 기술 공유 미팅 주도
고객사와의 기술 협의 및 일정 관리
핵심 성과 요약
복잡하고 다양한 요구사항과 매우 짧은 개발 기간에도 불구하고, 많은 고민을 하며 요구사항에 유연하게 대처할 수 있는 시스템을 위해 개선하며 운영하고 있습니다.

프로젝트 상세 문의가 있다면 연락주세요!





