[포트폴리오] 송도 케이블카 POS, KIOSK 제작
프로젝트 내용
실제 상용 서비스로 운영 중인 송도 해상 케이블카의 결제 및 운영 관리 시스템을 구축한 프로젝트입니다. 대규모 트래픽 환경에서의 안정적인 데이터 처리와 유지보수가 용이한 아키텍처 설계에 중점을 두었습니다.




1. 프로젝트 개요
- 성격: 상용 외주 프로젝트
- 기간: 2023.10 - 2024.06
- 규모: 개발 인원 3명
- 주요 성과: 일일 10만 건 이상의 트랜잭션 처리 안정성 확보 및 다각화된 결제 시스템 통합
2. 기술 스택
- Framework: .NET Framework 4.6 (Windows Forms)
- Language: C#
- Database: MariaDB
- Key Library: LINQ, Class Library(.dll) 활용
- Payment API: Kakao Pay, Samsung Pay, WeChat Pay
3. 주요 기술적 성과
대규모 트랜잭션 최적화 전략
하루 평균 10만 건 이상의 트랜잭션이 발생하는 환경에서 데이터베이스 및 서버 부하를 제어하는 것이 핵심이었습니다.
- 데이터 처리 효율화: LINQ를 활용하여 메모리 상에서 데이터를 최적으로 가공함으로써 불필요한 DB I/O 호출을 최소화했습니다.
- 통신 부하 경감: 서버와의 통신 시 부하를 분산하기 위한 전략을 수립하여 피크 타임에도 안정적인 응답 속도를 유지했습니다.
MVC 패턴을 통한 관심사 분리
WinForms 환경에서 코드 비대화를 방지하고 유지보수성을 높이기 위해 MVC(Model-View-Controller) 패턴을 적용했습니다.
- 모듈화: 반복되는 로직은 공용 메서드로 추출하고, 기능별로 클래스 라이브러리(.dll)를 분리하여 재사용성을 극대화했습니다.
- 유지보수성: UI 로직과 비즈니스 로직을 분리하여 시스템 요구사항 변경 시 신속하고 정확한 대응이 가능하도록 설계했습니다.
통합 결제 및 출력 시스템 구현
다양한 결제 환경과 하드웨어 제어 로직을 통합했습니다.
- 결제 인터페이스: 국내외 주요 간편 결제(카카오페이, 삼성페이, 위챗페이)를 단일 인터페이스로 추상화하여 연동했습니다.
- 하드웨어 제어: 영수증 프린팅 기능을 직접 구현하여 실시간 결제 정보 출력 시스템을 안정화했습니다.
로깅 및 장애 대응 전략
상용 시스템의 가동률을 높이기 위해 체계적인 로깅 전략을 수립했습니다.
- 클라이언트 단에서 발생하는 런타임 에러 및 예외 상황을 추적할 수 있는 Logging 시스템을 구축하여, 이슈 발생 시 빠른 원인 파악과 해결이 가능하도록 구현했습니다.
4. 학습 및 성찰
- 비즈니스 커뮤니케이션: 대규모 외주 프로젝트를 수행하며 요구사항 수렴, 미팅 프로세스, 효율적인 인수인계 방법 등 실무 협업 프로세스를 경험했습니다.
- 성능 중심 설계: 대규모 트래픽 환경을 고려한 데이터베이스 통신 전략의 중요성을 체감하고 이를 실무에 적용했습니다.
- 설계 철학: MVC 패턴 적용과 DLL 모듈화를 통해 클린 코드와 확장성 있는 아키텍처 설계의 가치를 학습했습니다.
[본 포스팅은 상용 프로그램의 보안 가이드라인에 따라 기술적 방법론을 위주로 작성되었습니다.]