미리보기
기본 정보
기술 스택
Jetpack, Kotlin, Java, Android Compose, XML
자기소개
이런 것들에 자신이 있습니다!
Jetpack compose를 이용하여 구현하기 까다로운 뷰를 설계 및 구현할 수 있습니다.
빌드 파일들을 최적의 상태로 설정하여 앱의 용량과 빌드 속도를 효율적으로 관리할 수 있습니다.
적극적인 PR리뷰를 통해 성장하고 서비스의 품질을 높일 수 있습니다.
프로젝트의 아키텍처를 준수하여 깔끔한 코드를 유지할 수 있습니다.
포트폴리오
프로젝트
Jobis
대덕소프트웨어마이스터고등학교
2022.11. ~ 진행 중
Jobis는 교내 학생들이 모집의뢰서 및 기업체 목록을 확인하고 지원을 할 수 있는 서비스 입니다.
소프트웨이브 출품과 함께 교내에서 실사용되어 기업과 학생을 연결시켜 실제 채용 사례를 만드는 기여를 하였습니다.
적극적인 코드 리뷰가 오고 갔으며 서로의 지식을 공유하여 성능을 개선시키고 버그를 예방할 수 있었습니다.
디자인 시스템 도입으로 UI개발에 최소한의 시간 소요를 경험하였고 비즈니스 로직에 집중할 수 있었습니다.
플레이스토어 링크→
github→
스킬
Kotlin
Kotlin Coroutines
Jetpack Compose
Hilt
Retrofit2
MVVM
multi module architecture
CI
FCM
도전해본 것
모집의뢰서 검색 및 필터 기능 개발
디자인 시스템 문서화 및 애니메이션 개발
페이지네이션 로직의 리컴포지션 개선
초당 10번 -> 페이징 시 3번
기존의 페이징 로직이 lazyState를 참조하기 때문에 리컴포지션이 무한하게 발생
마지막 인덱스인지 Boolean으로 판단 후 페이징 진행하여 리컴포지션 최소화
테스트 코드 작성
디자인시스템에서 ui테스트를 통해 click, displayed, style 등의 뷰의 기본적인 요소 검증
lifecycleOwner를 이용하여 composable 함수의 수명주기 관찰
HiltAndroidTest를 활용해 viewmodel 테스트 코드 컨벤션 구축
Moshi를 사용하여 직렬화 속도 개선
약10%
기존 Gson 라이브러리는 reflection이 빈번하여 성능 저하
다른 선택지인 Jackson에 비해 Kotlin의 Nullable 형식을 자동으로 처리하는등의 이점이 있음
적극적인 PR리뷰 문화 만들기
선후배간 맨토링을 진행하며 서로의 의견을 자유롭게 표현할 수 있도록 함
dependabot도입을 통한 의존성 버전 관리 및 생산성 증가
github action을 이용한 생산성 향상
기존 직렬 방식은 ktlint -> gradle 순으로 ci가 동작하기 때문에 시간 소요가 심함
파이프라인 병렬화를 통해 ci 소요 시간 단축
축소와 난독화 최적화를 통한 앱 용량 감소
dex파일 25개 -> 2개로 감소
XQUARE
대덕소프트웨어마이스터고등학교
2023.03. ~ 2023.12.
XQUARE는 대덕소프트웨어마이스터고등학교만을 위한 통합 서비스로 지금까지 사용되었던 DMS(기숙사 관리 시스템), PiCK(학생 출결 관리 시스템) 등을 합쳐 탄생한 서비스입니다.
agile스크럼을 따르고 스프린트 주기를 맞춰 개발을 진행하는 상황에서 일정관리의 중요성을 느꼈고 개발자로서 어떻게 하면 더 좋은 서비스를 사용자에게 제공할 수 있을지 고민하게 해주는 프로젝트였습니다.
Jetpack Compose, Jetpack Room, Webview, Hilt등 다양한 기술들이 적용되어 이후 여러 프로젝트를 진행하며 기술을 정확히 이해하고 왜 필요한가를 고민하며 사용할 수 있게 되었습니다.
플레이스토어 링크→
github→
스킬
Kotlin
Coroutines
Jetpack Compose
Hilt
Retrofit2
CI
Jetpack Room
MVVM
clean architecture
webView
도전해본 것
화면로딩 개선
네트워크 사용량 감소 & 로딩 속도 개선
saveState, launchSingleTop를 통해 화면 로딩 속도 개선
의미없이 반복되는 서버와의 통신 방지
바텀 네비게이션간 네비게이션 스택 최적화
상태 호이스팅 적용
버그 제보를 할 때 이미지를 추가해도 리컴포지션이 일어나지 않아 사진이 안뜨는 경우 발생
상태 호이스팅을 적용하여 상태 업데이트가 원하는 범위 내에서 수행되도록 개선
로컬DB인 Jetpack Room을 사용하여 다양한 타입의 데이터 저장
시간표 정보, 급식 정보, 유저 정보
예외 처리
서버와의 통신 도중 갑작스럽게 작업이 중지될 때 요청작업을 중단하여 앱의 비정상 종료 방지
공휴일에 예외가 발생하는 시간표 로직 개선
Pager의 아이템 개수를 서버에서 받아온 값과 같도록 변경
오늘과 날짜 비교 후 같으면 initPage로 설정
외출증을 설정하는 webview bridge 개발
잘못된 url 참조 수정
V2 XML디자인 시스템
checkbox switch 등의 뷰를 class 단위로 Custom View 경험
중첩되는 레이아웃 최소화
Row, Column등의 레이아웃을 통해 뷰를 배치하기보단 Box를 통해 뷰의 위치를 유동적으로 조절
코드 및 초기 컴포지션 감소 & 리컴포지션시 컴포지션 범위 감소
대외활동
전공 동아리(정)
대덕소프트웨어마이스터고등학교
유성구청에서 진행하는 보훈수당 자동화 관리 프로그램 개발에 참여하였습니다. 기존에 수기로 진행되는 보훈수당 대상자 기입을 프로그램을 통해 자동화 하는 프로젝트로 안드로이드(테블릿) 개발을 하였습니다.
배운점
유성구청 담당자 분들의 요구사항에 맞춰 개발을 진행하는 과정에서 협업의 중요성을 배웠습니다.
엑셀 모양의 뷰와 데이터를 직접 관리하며 라이브러리에 의존하지 않고 개발하는 능력을 키우게 되었습니다.
자격증
정보기기운용기능사
합격 | 한국산업인력공단
2024.07.