채용공고 올리기

정승훈님을 응원해보세요!

지금 만족하고 있어요
책임감
유연함
효율적
열정적
긍정적

미리보기

기본 정보

이름
정승훈
직업
안드로이드 개발자
간단 소개

안드로이드 개발자를 꿈꾸는 정승훈 입니다. 아키텍쳐 설계, 앱 배포를 수행해본 경험을 가지고 있습니다. 1. 생각하고 기록하는 습관을 들이기 위해 노력하고 있습니다. 2. 스터디를 통해 팀원들과 함께 성장하는 것을 좋아합니다. 3. 소통을 가장 중요하게 생각합니다.

기술 스택

기술 스택

Android, Android Compose, Kotlin, clean-architecture, MVVM, coroutine, Jetpack

프로젝트

프로젝트명

JOBIS

소속/기관명

대덕소프트웨어마이스터고등학교

프로젝트 기간

2022.11. ~ 진행 중

프로젝트 내용

Github | Playstore | Velog

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.

프로젝트 내용

Github | Playstore

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를 더 깊게 공부할 수 있는 계기가 되었습니다.

포트폴리오

URL

link

CS 스터디

노션
link

벨로그

URL 링크
link

개인 공부

노션
댓글