미리보기
기본 정보

최고의 사용자 경험을 제공합니다. - Optimistic UI를 통해 사용자 인터페이스의 동기화 시간을 기존 3초에서 1초로 단축시켜 사용자 만족도를 크게 향상시켰습니다. 완벽한 코드는 없다고 생각합니다. - 이슈가 해결된 라이브러리를 리팩터링하여 코드를 50% 감축하여 가독성을 향상하고 테스트 코드 도입을 통해 테스트 시간을 60초에서 6초로 90% 절감한 경험이 있습니다. 꾸준한 성장을 지향합니다 - 다양한 사이드프로젝트와 스터디를 통해 실질적인 개발 역량을 쌓아왔으며, 개발자 커뮤니티 활동을 통해 얻은 인사이트를 바탕으로 지속적인 성장을 이루고 있습니다.
기술 스택
Android, Android Compose, XML, Jetpack, coroutine, MVVM, clean-architecture
경력
(주)블루버드
주임연구원 | SW2팀
2023.08. ~ 2024.07. (1년)
페이먼트 라이브러리 유지보수
결제 단말기 인증 반복 테스트 로직 개선
펌웨어 업데이트 앱 UX 개선
AOSP framework 관련 약 20건의 이슈 해결
퇴사 사유 : 앱 개발자로서 커리어 전환
스마트데이터주식회사
주임 | 기업부설연구소
2020.08. ~ 2023.08. (3년 1개월)
모바일 POS - OKPOS 연동 프로젝트 담당
모바일 POS 고도화 프로젝트 기획, 설계 및 구현
위쳇페이, 올리브 식권 간편결제 연동
퇴사 사유 : 국민 연금 연체에 따른 재정 악화
프로젝트
달다_Dalda
기타
2024.07. ~ 진행 중
Compose를 활용한 UI 개발
Stateless한 컴포넌트 설계를 통한 재사용성 증가
Preview 기능을 통한 실시간 검토 및 테스트를 통한 개발 생산성 향상
Hilt를 사용하여 프로젝트의 의존성을 관리
인터페이스로 구성된 저장소와 데이터 소스를 모듈화하여 가독성 및 유지보수성 향상.
@Qualifier를 사용하여 자체 서버와 Naver API 개별 객체 DI 적용
Coroutine를 사용하여 비동기 작업 처리
Room과 네트워크 요청을 비동기로 처리하고, 앱의 반응성을 유지했습니다.
Flow debounce를 사용하여 검색어 입력에 따른 주류 추천 API 호출 최적화 및 사용자 경험 개선
Clean Architecture기반의 멀티 모듈 프로젝트 리펙터링
단일 모듈프로젝에서 멀티모듈(di, presenter, data, domain)로 분리
UseCase 도입으로 ViewModel의 책임을 UI 상태 관리로 제한하고, 비즈니스 로직의 재사용성을 향상
의존성 역전 원칙을 준수하여 Domain모듈과 Data모듈의 의존성 및 결합도를 낮춰 유지보수성 향상
플레이스토어 배포 및 관리
플레이스토어 배포 및 업데이트 진행
페이먼트 라이브러리 유지보수
블루버드
2023.10. ~ 2024.06.
라이브러리 유지보수 및 이슈 대응
TDD기반의 리팩터링 진행, 관심사 기반 객체 분리.
테스트 코드를 도입하여 약 6단계 수동 테스트 프로세스를 2단계로 단축
IC카드 테스트 로직 최적화를 통한 비지니스 로직 대기 시간 단축 O(n) →O( 1)
펌웨어 업데이트 상태 콜백 주기 단축을 통한 UX 개선 및 사용자 에러 방지
모바일 POS - OKPOS 연동 프로젝트
스마트데이터
2022.03. ~ 2023.08.
OKPOS API 연동
RxJava를 활용하여 네트워크 및 데이터 비동기 처리
RxJava Operators을 활용하여 네트워크 재시도 및 병렬처리 순서 보장
마스터 데이터 다운로드 최적화를 통해 API 호출 12회 단축
3개의 데이터 공급원에 저장소패턴을 적용하여 개발 생산성 및 가독성 향상
주문 / 결제 / 테이블 상태 동기화 / 마스터데이터 동기화 기능 구현
UI / UX 개발
Optimistic UI를 적용하여 주문 및 결제 후 테이블 UI 동기화 시간을 5초에서 1초로 단축
추가, 취소 주문 통합을 통해 사용자의 작업 단계를 2단계에서 1단계로 단축
커뮤니케이션
OKPOS API 개선 및 검증 요청
사용자와 영업팀을 위한 가이드 문서 제작
모바일 POS 고도화 프로젝트
스마트데이터
2021.06. ~ 2022.02.
모바일 POS 기능 설계 및 구현
테이블 이동 및 합석 기능 구현
상품 주문 기능 구현 • 더치페이 기능 구현(인원, 상품, 가격)
상품 DB 설계 및 구현
UI / UX 개발
테이블 주문 상세 기능을 통한 편의성 제공
UI 설계 및 초안 제작
커뮤니케이션
사용자와 영업팀을 위한 가이드 문서 제작
통합 간편 결제 연동 프로젝트
스마트데이터
2020.10. ~ 2021.03.
간편 결제 수단 연동
위쳇페이, 올리브 식권 결제 연동을 통한 자사 앱 경쟁력 강화
WeChat Pay API의 2차 인증 요구에 맞춰 고객의 입력을 기다리는 결제 대기 로직 구현
기존 간편결제 연동 코드와 프로세스를 분석하고, 이를 바탕으로 새로운 간편결제 서비스에 맞는 통합 연동을 성공적으로 구현
교육
한경대학교
대학교(학사) | 컴퓨터공학과
2012.03. ~ 2018.02. | 졸업
NEXTSTEP
사설 교육 | 학습 테스트로 배우는 Compose
2024.08. ~ 2024.09. | 수료
NEXTSTEP
사설 교육 | TDD, 클린 코드 with Kotlin
2023.10. ~ 2023.12. | 수료
NEXTSTEP
사설 교육 | 안드로이드 아키텍처 with TDD
2023.07. ~ 2023.09. | 수료
포트폴리오
URL
자기소개
[앱 개발자를 선택한 이유]
대학에서 매년 행해지는 졸업과제 전시회의 가이드 앱을 만들어 사람들을 도울 수 있는 안드로이드 개발에 매력을 느꼈습니다.
매년 전시회를 참석할 때마다 작은 부스에서 여러 사람이 하나의 레이블을 봐야하는 상황, 관람객의 피드백을 받을 수 없는 환경을 개선하고자 전시회 가이드 앱을 만들기로 하였습니다. 앱 개발이 처음이었기에 인터넷과 책을 참고하여 Java와 PHP를 활용하여 개발을 진행하였습니다. 0에서 시작하여 어려운 시간이었지만 하나씩 문제를 해결하며 원하는 기능이 구현할 수 있었습니다. 그 결과 비콘 주변의 부스가 활성화 되고 자신의 핸드폰으로 레이블을 볼 수 있었으며 평점과 감상평을 남길 수 있었습니다.
이 프로젝트를 진행하며 안드로이드 개발로 사람들에게 새로운 가치를 제공할 수 있다는 것을 직접 경험했습니다. 이를 통해 저는 사람들을 도울 수 있는 안드로이드 개발자가 되겠다는 목표를 갖게 되었습니다.
[POS 기능 고도화를 통한 신규 사업 확장]
POS 시스템의 핵심 기능 구현과 DB 설계를 통해 신규 사업 확장의 기반을 마련했습니다. 저는 모바일 POS 프로젝트에서 테이블 관리, 주문, 결제와 같은 주요 POS 기능을 설계하고 구현했습니다. 특히, 다양한 사용자의 니즈와 상황을 충족시키기 위해 더치페이 시 상품, 가격, 인원으로 3가지 기준의 결제 방법을 제공하였습니다. UI/UX 설계에서는 대중적인 OKPOS의 UI를 참고하여 사용자 친화적인 인터페이스를 구축했습니다. 이를 통해 사용자는 새로운 POS 시스템에 빠르게 적응할 수 있었고, 영업팀과 협업하여 사용자 요구사항을 반영하며 반복적인 테스트와 피드백을 통해 기능 완성도를 높였습니다.
그 결과, 이 프로젝트는 자사의 신규 사업 확장에 기여했으며, 이후 OKPOS 연동 작업의 기반이 되었습니다.
[Optimistic-UI를 통한 앱 반응 속도 3배 향상]
Optimistic UI를 적용해 결제 프로세스의 사용자 경험(UX)을 혁신적으로 개선했습니다. KISPAY와 OKPOS 연동 프로젝트에서, 저는 KIS정보통신과 OKPOS 백엔드 개발자들과 협력하여 API 검증 및 개선 요청을 진행하며 안정적인 연동 환경을 구축했습니다. 특히, 결제 요청 후 테이블 변경 사항 업데이트가 3초 가량 지연되는 문제점을 해결하기 위해 Optimistic-UI를 적용하여 1초로 단축, 앱 반응 속도를 300% 향상시키며 UX를 개선하였습니다.
이러한 경험을 통해 제한된 외부 환경에서도 다양한 방법을 적용하며 문제를 해결하는 역량과 사용자 중심의 솔루션을 설계하는 능력을 기를 수 있었습니다
[주문 프로세스 50% 단축을 통한 UX 개선]
비지니스 로직 개선을 통해 주문 프로세스를 50% 단축하며 사용자 중심 개발을 진행한 경험이 있습니다. 기존 OKPOS와 연동하여 추가 주문과 취소 주문을 진행할 경우 각각 개별적으로 호출하도록 개발되었습니다. 이러한 프로세스는 추가적인 행동과 사용자 실수를 유발하는 문제를 발생시킬 수 있었습니다. 문제 해결을 위해 추가와 취소 주문을 통합하여 한 번의 API 요청으로 개선하였습니다. 하지만 이러한 API 사용법이 메인 POS에 사이드 이펙트를 유발하는지 검증이 필요했습니다. OKPOS 담당자분에게 변경하려는 상황과 새로운 API 사용법 그리고 로그를 전달하여 검증을 요청했고 사이드이팩트가 발생하지 않는다는 답변을 받았습니다. 이를 통해 추가와 취소 주문을 동시에 처리할 수 있게 되며 UX를 개선하였습니다
[클린 아키텍처 기반 멀티 모듈 전환으로 유지보수성 200% 향상]
유지보수성과 확장성을 향상시키기 위해 단일 모듈 프로젝트를 클린 아키텍처 기반 멀티 모듈로 리팩터링한 경험이 있습니다.
기존 프로젝트는 저장소와 데이터 소스가 추상화에 의존하고 Hilt를 통해 의존성 주입을 해주었습니다. 하지만 명확하게 역할을 구분하고 의존성을 낮춰 유지보수성과 확장성 그리고 개발 실수를 방지하고자 클린아키텍처 기반의 멀티 모듈로 리펙터링을 진행하였습니다. DI, Presentation, Domain, Data로 4개의 모듈로 나누었고 Hilt를 활용해 의존성 주입을 모듈 간 의존성을 낮추었습니다.
그 결과 각 계층의 독립성을 보장해 기능 추가 및 변경 시 다른 계층에 미치는 영향을 최소화했으며, 모듈을 나누어 빌드할 수 있게 되어 시간을 단축할수 있게 되었습니다.
[코드 리펙터링 및 테스트코드 도입을 통한 생산성 90% 향상]
레거시코드를 개선하고 테스트 코드를 도입하여 개발 생산성을 90% 향상시킨 경험이 있습니다. 결제 라이브러리의 이슈를 해결하는 과정에서 레거시 코드로 인한 분석의 어려움과 수동 테스트로 인한 비효율적인 시간 소모가 발생하였습니다. 이러한 상황의 근본적인 원인이 레거시 코드라 판단하였고 동료 개발자들이 이러한 문제에 노출되지 않도록 리펙터링을 진행하였습니다. TDD를 기반으로 한 객체 지향적 설계와 구현을 통해 가독성을 크게 높였습니다. 더불어, 테스트 앱을 통해 60초가 소요되던 6단계의 수동 테스트 프로세스를 테스트 코드 도입으로 3초 이내로 단축하며 개발 생산성 향상과 동료 개발자들에게 고품질의 코드를 제공하였습니다.
이러한 경험을 통해 레거시 코드의 체계적인 개선 역량과 테스트 자동화를 통한 프로세스 최적화 능력을 기를 수 있었습니다.