미리보기
기본 정보

안드로이드 개발자를 꿈꾸는 정승훈 입니다. 아키텍쳐 설계, 앱 배포를 수행해본 경험을 가지고 있습니다. 1. 생각하고 기록하는 습관을 들이기 위해 노력하고 있습니다. 2. 스터디를 통해 팀원들과 함께 성장하는 것을 좋아합니다. 3. 소통을 가장 중요하게 생각합니다.
기술 스택
Android, Android Compose, Kotlin, clean-architecture, MVVM, coroutine, Jetpack
프로젝트
JOBIS
대덕소프트웨어마이스터고등학교
2022.11. ~ 진행 중
BE 3 | FE 3 | Android 2 | iOS 2
교내 취업 지원 시스템 입니다. 기존의 모집의뢰서 관리, 수기 채용형 프로세스를 온라인에서 관리하여 학생, 교사, 기업을 대상으로 배포하였습니다. 안드로이드 팀 리더를 맡아 전체적인 앱 개발을 맡았습니다.
기술 스택.
Kotlin, Coroutine
Jetpack Compose, Design System
MVI, MVVM, Multi Module Architecture
Github Actions CI
Compose UI Test
한 일.
Multi Module 아키텍처 설계
Google App Architecture에 근거한 멀티모듈 아키텍처 채택
Jetpack Compose 디자인 시스템 구축
빠른 개발 속도, 편리한 커스터마이징의 이점을 챙김
모집의뢰서, 기업 리스트 페이징 구현
Kotlin Collection, Coroutine 사용, 이해도 향상, 단순하면서도 효율적인 코드 작성
트러블 슈팅.
페이징 로직 개선으로 리컴포지션 평균 약 8~10회 감소
기존의 페이징 로직을 async, job을 이용하여 리팩토링
이후 ViewModel을 통한 index 처리 방식으로 성능 개선
다음 페이지 조회 시 스크롤 지연 문제 해결을 위해 스켈레톤 효과 적용
Ktlint 자동화를 통해 코드 컨벤션 관련 pr 코멘트 약 7~8개 이상 감소
pr에서 코드 컨벤션 관련 작업의 비중이 약 30%를 차지
CI 단계에서 Ktlint 자동화 적용
코드 리뷰 시 코드의 효율성과 성능에 더욱 집중할 수 있는 환경 구축
회고.
뿌듯함과 성취감
오랜 시간 진행하고, 그만큼 많은 애정과 열정을 쏟아부은 프로젝트인만큼 출시를 성공했을 때 안드로이드 팀 리더로서 보람을 느낄 수 있었습니다. 안드로이드 팀을 이끌며 Jetpack Compose, Multi Module Architecture를 도입하기 위해 팀원들과 함께 학습하는 과정에서 전공 실력이 많이 향상되었고, 가끔은 의견차이 문제로 동료와 다투기도 하면서 소통의 중요성과 갈등이 발생했을 때 풀어나가는 저만의 노하우를 얻어갈 수 있었던 것 같습니다.
DMS
대덕소프트웨어마이스터고등학교
2023.02. ~ 2023.07.
BE 3 | FE 3 | Android 3 | iOS 2
대덕소프트웨어마이스터고등학교 기숙사 관리 시스템 입니다. 기숙사 수기 업무를 온라인으로 제공하여 학생 및 사감 선생님들에게 편리함을 제공하였습니다. 안드로이드 팀에서 주로 디자인 시스템 유지보수 및 레거시 코드 리팩토링 작업을 맡았습니다.
기술 스택.
Kotlin, Coroutine
Jetpack Compose, Design System
Hilt
Clean Architecture, MVI
한 일.
PRD, 플로우 차트 등 여러 기획문서 작성 참여
기획팀으로 참여, 회의록을 작성하며 프로젝트 진행 과정 및 상황을 체계적으로 정리
Kotlin Coroutines를 활용한 비동기 처리 구현
Coroutine Scope, suspend를 이용
사용자가 네트워크 요청으로 긴 시간 대기할 필요 없도록 함
StateFlow, SharedFlow를 활용하여 MVI 패턴 구현
명확한 데이터 흐름을 나타내기 위해 MVI 패턴 채택, Coroutine을 사용하여 구현
추상화 된 BaseViewModel을 구현하여 팀원들이 MVI에 금방 적응할 수 있도록 함
트러블 슈팅.
Presigned Url 적용하여 파일 업로드 요청 시간 3초 → 약 0.3초로 단축
파일 업로드 과정 중 3~5초 정도의 로딩이 생기는 문제 발생
로딩 속도 개선을 위해 Presigned Url 업로드 방식으로 변경
결과적으로 파일 업로드 시간 단축
xml 마이그레이션을 통해 생산성 향상
각 팀원의 프레임워크 이해도에 따라 XML 코드가 곳곳에 존재하였음.
Compose 병행 사용, 별도의 디자인 시스템이 요구된다는 점에서 생산성 감소 우려
XML → Compose 마이그레이션 진행
불필요한 파일과 코드를 삭제해 앱 용량 감소
UI 프레임워크를 하나로 통일하며 전반적인 생산성 향상
회고.
기획 역량 향상
학생, 사감 선생님의 요구사항을 분석하고 이를 구체적으로 문서화 시키는 작업에 참여하며 프로젝트의 전반적인 기획~개발 프로세스를 이해하였습니다. 해당 프로젝트에서 쌓은 기획 경험으로 타 프로젝트에 PM으로 참여하여 좋은 성과를 낼 수 있었습니다.
Compose 사용 능력 향상
처음으로 Compose를 공부하며 XML과 비교했을 때 확실한 장점을 깨달을 수 있었습니다. 여러 기능을 구현하며 애니메이션 api를 사용하고, 디자인 시스템을 담당하며 Compose를 더 깊게 공부할 수 있는 계기가 되었습니다.