채용공고 올리기

하윤형님을 응원해보세요!

이직/구직 중이에요
협업 지향
꼼꼼함
커뮤니케이션
자기 주도적
고객 중심

미리보기

기본 정보

이름
하윤형
직업
안드로이드 개발자
간단 소개

7년 차 안드로이드 개발자입니다. 꾸준히 성장하는 개발자가 되기 위해 항상 새로운 기술을 탐색하고 추구합니다. 주도적인 팀원이자 개발자로서 비즈니스 목표를 실현하는 데 집중합니다. 효율적인 협업과 원활한 커뮤니케이션의 가치를 이해하고, 공동의 목표를 달성하기 위해 팀원들과 함께 발전해 나가는 것을 중요하게 여깁니다.

기술 스택

기술 스택

Android, Kotlin, Java, clean-architecture, Git, coroutine, Android Compose, android-multi-module, github-actions, CI/CD, MVVM, Slack, JIRA, Figma

경력

회사명

(주)헬로마켓

직급 | 부서 | 근무 유형

안드로이드 개발자 | 셀러스쿼드

근무 기간

2022.08. ~ 2024.09. (2년 2개월)

담당 업무

헬로마켓 - 중고거래 앱

누적 다운로드 약 800만+, MAU 약 130만+, 앱 안정성 크래시 미발생 비율 99.9% 이상 유지

헬로마켓 - 중고거래 앱 - Google Play 앱


🫡 업무 진행 방식 및 역할

OKR + 애자일 기반 업무

  • 변화에 빠르게 대응하고, 스프린트마다 신속히 실행

  • 분기(3개월) 단위로 목표를 수립하고 주기적으로 달성도 점검

  • 팀원들이 합의한 목표를 바탕으로 스프린트 진행

  • (참고 문서: OKR과 애자일: 변화의 시작과 도전)

셀러 스쿼드 구성

  • 안드로이드 개발자(본인), 스쿼드 팀장, 디자이너, iOS 개발자, 프론트엔드 개발자, 백엔드 개발자로 팀 구성

  • 판매자 관련 기능을 집중적으로 개발하며, 빠른 피드백과 협업 진행

목표 수립 및 진행 방식

  • 충분한 논의를 거쳐 실현 가능한 목표를 설정하고, 팀 전체 동의 아래 최종 확정

  • 설정된 OKR을 중심으로 스프린트를 구성해 업무를 진행

  • 주요 지표 및 목표는 “판매자 경험 개선”에 집중

데일리 스크럼

  • 매일 아침 전날 작업 내용과 당일 계획, 이슈를 공유

  • 진행 상황을 빠르게 확인하고 필요한 지원 사항을 즉시 논의

스프린트 종료 후 회고

  • “Keep, Problem, Try” 형태로 회고를 진행해 개선점을 식별하고 다음 스프린트에 반영

  • 회고 결과를 문서화하여 팀의 업무 프로세스와 협업 방식을 지속 개선

주니어 개발자 협력

  • 안드로이드 주니어 개발자들의 사수 역할 수행

  • 바이어 스쿼드 업무도 주기적으로 모니터링하여 기술 지원 및 방향성 제시

  • 코드 리뷰 및 기술적 문제 해결을 함께 논의해 성장 지원

  • 최신 안드로이드 기술(Paging3, GraphQL(SDUI) 등)과 트렌드를 공유하며 프로젝트에 적용


🏗 코드베이스 개선 및 아키텍처 개편

레거시 코드 리팩토링 (Java → Kotlin, MVC → Clean Architecture + MVVM)

기존 아키텍처의 한계

  • Java + MVC 기반으로 인해 유지보수성과 확장성이 낮고, 신규 기능 추가 시 변경 범위가 큼

  • 관심사 분리가 부족해 UI와 비즈니스 로직이 강하게 결합됨

변경 내용

  • Java 코드를 Kotlin으로 전환하여 가독성과 유지보수성을 향상

  • MVC에서 Clean Architecture + MVVM 구조로 개선

  • UI Model을 도입하여 UI와 Domain 간 의존도를 줄이고, ViewModel을 통해 UI 상태를 명확하게 관리

  • Coroutine & Flow를 활용하여 비동기 처리의 안정성과 성능을 향상

성과

  • 관심사 분리와 계층 구조 개선을 통해 유지보수 비용을 30% 절감

  • 코드 구조를 개선하여 문제 해결 속도와 기능 개선 효율이 증가

  • 신규 기능 추가 시 영향 범위를 최소화하여 확장성을 확보

멀티 모듈 아키텍처 개편

기존 아키텍처의 한계

  • 깊게 커플링된 레거시 코드로 모듈 세분화가 어려움

  • 단일 모듈에 모든 화면이 몰려 유지보수성과 확장성 저하

  • 의존성이 복잡해 변경 및 관리 부담 증가

개편 내용

  • Clean Architecture(app, domain, data, common, design-system)를 Feature, Domain, Core 단위로 모듈화

  • Feature 모듈(feature.seller, feature.buyer, feature.home 등)을 도입하여 화면별로 분리하고, 독립적인 개발이 가능하도록 구성

  • Domain 모듈을 domain-xxx-api(인터페이스 정의)와 domain-xxx-impl(구현)로 분리하여, 모듈 간 의존성을 명확히 관리

    • 다른 도메인 모듈(domain-xxx)은 API 모듈을 의존하여 인터페이스만 활용하고, 직접 구현체에 의존하지 않도록 설계

    • 구현체는 @Module을 통해 의존성 주입을 관리하여 결합도를 낮추고 유지보수성을 향상

  • Core 모듈을 정리하여 ui, data, model, designsystem, test 등 앱 전반에서 공통적으로 사용되는 모듈을 분리하여 관리함으로써 재사용성과 유지보수성을 향상

성과

  • 모듈화를 통해 역할별로 분리하여, 여러 개발자가 동시에 여러 모듈을 개발할 수 있는 환경을 구축

  • 모듈별 역할과 의존성이 명확해져, 코드 변경 시 영향 범위가 줄어들고 유지보수성과 확장성이 향상

  • 모듈 단위로 분리하여 모듈 간 의존성을 최적화하고, 변경 범위를 최소화

  • 코드 충돌 위험을 줄이고, 병렬 빌드를 최적화하여 전체 빌드 시간을 단축

Gradle Kotlin DSL 및 컨벤션 플러그인 적용

기존 Gradle 설정의 한계

  • Groovy DSL 사용으로 인해 IDE 지원이 부족하고, 중복 설정이 많아 유지보수성이 저하됨

  • 각 모듈별 의존성 관리가 비효율적이어서 버전 충돌 및 업데이트 부담이 증가

개선 내용

  • Gradle Kotlin DSL을 도입하여 IDE 자동 완성과 정적 타입 검사를 지원함으로써 코드 가독성과 안정성을 향상

  • 컨벤션 플러그인(buildSrc)을 적용하여 공통 빌드 설정을 플러그인화함으로써 모듈 간 일관성을 유지

  • libs.versions.toml을 활용하여 의존성과 빌드 설정을 중앙에서 관리함으로써 버전 충돌을 방지하고 업데이트 편의성을 강화

성과

  • 신규 모듈 추가 시 설정을 자동화하여 개발 속도를 향상

  • 공통 빌드 설정을 효율적으로 관리하여 중복 코드를 최소화

  • 버전 충돌을 방지하고 빌드 성능을 개선


🚀 새로운 기술 도입과 최적화

GraphQL과 Apollo Client를 활용한 SDUI 구현 및 문서화

기존 UI 변경 방식의 한계

  • 홈 화면에 유연한 UI를 구성하기 어려워, UI 변경 시 반복적 개발 리소스 소모

  • 앱 배포 없이 즉각적인 UI 조정이 불가능해 변경 대응 속도 저하

도입 내용

  • SDUI를 적용하여 서버에서 UI를 동적으로 구성할 수 있도록 개선, 이를 통해 클라이언트 수정 없이 UI 변경이 가능해짐

  • GraphQL을 활용하여 필요한 데이터만 요청함으로써 언더페칭 및 오버페칭을 방지하고, 서버 부하를 감소

  • 공통 스키마를 문서화하여 Android 및 iOS 간 UI 구조의 일관성을 유지

성과

  • 홈 화면 UI를 동적으로 변경할 수 있도록 개선하여 개발 리소스를 30% 절감

  • 네트워크 사용량을 최적화하여 성능을 향상하고 서버 비용을 절감

  • UI 관련 에러 발생 없이(0건 유지) 안정적인 운영 환경을 유지

Paging3 도입과 한계, 그리고 ListAdapter 전환

기존 SuperRecyclerView의 한계

  • 유지보수 부재로 기술 부채 발생, 최신 SDK와 호환성 문제

Paging3 도입

  • 구글 공식 Paging3 적용으로 비동기 데이터 처리 최적화

  • Flow 기반 페이징 구조로 리스트 업데이트 효율 개선

문제점

  • PagingData가 불변이라 삽입/삭제 시 전체 재생성 필요

  • Domain Layer에서 Android 의존성을 제거하기 어려움

ListAdapter로 전환

  • Paging3 제거 후 ListAdapter+DiffUtil 방식 채택

  • 부분 업데이트 가능해지면서 성능·유지보수성 향상

얻은 교훈

  • Google에서 권장하는 라이브러리가 항상 최적의 선택은 아니므로, 프로젝트 요구사항과의 적합성을 신중히 검토해야 함

  • 장기적인 유지보수성과 확장성을 고려하여 기술을 선정하는 것이 중요함

  • 철저한 테스트와 팀 내 논의를 통해 의사결정 품질을 높여야 함

GitHub Actions 기반 CI/CD 자동화 구축

기존 문제점

  • 별도의 CI 서버 없이 수동 빌드 및 배포를 진행하여 배포 리드타임이 길고, 인적 오류 발생 빈도가 높음

  • 멀티 모듈 구조 전환 이후에도 자동화 체계가 미비하여 팀 간 협업 및 통합 테스트가 어려움

  • 개발 환경마다 빌드 조건이 다르게 설정되어 예측할 수 없는 오류가 자주 발생

개선 내용

  • GitHub Actions를 도입하여 자동 및 수동 실행 워크플로우를 구축하고, CI/CD 프로세스를 확립

  • PR 생성 시 CI/CD 워크플로우를 실행하여, 코드 변경 사항에 대한 빌드, 테스트, 정적 분석 및 품질 검증을 자동화

  • 다양한 자동화 기능을 구현

    • Detekt 정적 분석, APK 빌드 및 배포, PR 코멘트 기반 트리거 등 주요 자동화 기능을 포함한 여러 기능을 구현함

    • 기존에 수동으로 진행되던 작업과 추가 자동화가 필요한 영역을 지속적으로 탐색하고 검토하여, 새로운 자동화 기능들을 도입하고 이를 점진적으로 확장

  • 자동 배포 프로세스를 구축하여, Release 브랜치가 Main 브랜치로 병합될 경우 Firebase App Distribution을 활용해 자동으로 빌드 및 배포가 진행되도록 설정

  • 빌드 및 배포 프로세스를 문서화하여, 팀원들과 워크플로우 설정을 공유하고 일관된 개발 환경을 유지

성과

  • 배포 리드타임을 단축하고 인적 오류를 감소

  • PR 단계에서 코드 품질 문제를 조기에 발견하여 유지보수 효율을 개선

  • 멀티 모듈 환경에서도 일관된 프로세스를 유지하여 협업 효율을 극대화


주요 스프린트

 관심 탭 구현

  • 기존 홈 추천 탭의 한계를 극복하여, 사용자가 찜한 상품과 팔로우한 상점을 한 화면에서 손쉽게 확인할 수 있도록 개선

  • 레거시 SuperRecyclerView의 제약을 보완하기 위해 최신 Paging3 라이브러리를 도입

  • 클린 아키텍처 기반 데이터 레이어에 재사용 가능한 페이징 모듈을 설계 및 구현함

 판매자와 구매자 상점 분리

  • 기존 하나의 화면에 통합되어 있던 판매자와 구매자 기능을 분리하여, 각 사용자 유형에 맞는 최적의 UI 및 기능을 제공

  • 판매자 상점: 구매자 관련 요소 제거 및 상품 등록/관리 인터페이스 개선

  • 구매자 상점: 별도의 화면에서 상품 검색, 내 사이즈 설정, 카테고리 필터를 활용해 원하는 상품을 쉽게 찾을 수 있도록 개선하고, 사용자 후기 기능을 통해 상품 선택에 참고할 수 있는 정보를 제시.

  • 두 상점 모두에서 할인 정보 등 동적 데이터를 일관되게 표시하기 위해 텍스트 슬라이드 애니메이션을 설계 및 구현

 상품 일괄 편집 기능 도입

  • 판매자가 다수의 상품을 한 번에 편집할 수 있도록 하여 관리 효율성을 극대화

  • 할인, 상단업, 자동판매, 가격 수정, 삭제 등 주요 편집 기능을 추가하여 편리성을 대폭 향상

 상품 등록 프로세스 개선

  • 복잡했던 기존 등록 절차를 단순화하여, 사용자가 보다 쉽게 상품 정보를 등록할 수 있도록 개선

  • 입력 순서와 배치를 재구성하여 등록 과정을 직관적으로 개선함

 묶음 구매 제안 기능 구현

  • 판매자가 여러 상품을 묶어 할인 조건을 제공할 수 있도록 하여, 구매 옵션을 다양화

  • 구매 수량에 따른 할인 조건을 설정할 수 있는 로직을 설계하고, 이를 UI에 효과적으로 표현함

 SDUI(GraphQL) 기반 홈피드 개선

  • 기존 레거시 홈피드를 대체하여 개인화된 쇼핑 환경을 제공하는 새로운 홈피드를 구축

  • SDUI(GraphQL) 기술 도입으로 다양한 상품 피드 타입을 추가하고, 사용자 맞춤형 정보를 제공함

 상품 상세 화면 개편

  • 상품 상세 정보를 한눈에 파악할 수 있도록 UI를 재구성하여 사용자 편의성을 극대화

  • 핵심 정보를 상단에 요약 배치하고, 추가 정보는 스크롤 방식으로 제공하는 UI를 설계함

 프리미엄 매입 진행 현황 시각화

  • 매입 프로세스를 "신청 확인 → 봉투 발송 → 수거 중 → 검수 진행 → 검수 완료" 단계별로 시각화하여, 사용자에게 투명한 진행 상황을 제공

  • 사용자에게 실시간 진행 상태를 확인할 수 있는 화면 및 단계별 노티 알림 기능을 구현하여 중고 의류 매입 과정의 편리성과 투명성을 동시에 향상

회사명

더싸이언티스트

직급 | 부서 | 근무 유형

안드로이드 개발자 / 매니저

근무 기간

2021.10. ~ 2022.07. (10개월)

담당 업무

지카 차란차 스튜디오 앱

딜러가 실시간 방송으로 차량을 소개하고 판매할 수 있도록 지원하는 앱 개발

차란차 스튜디오 - 중고차 라이브커머스 - Apps on Google Play


주요 기능 구현

  • 화면 전환 최적화

    • Single Activity 패턴을 적용하여 Activity 간 불필요한 전환을 줄이고, 화면 관리를 단순화

    • Navigation Component를 활용해 Fragment 간 이동을 효율적으로 관리

  • 아키텍처 설계

    • UI, 데이터, 도메인 계층을 분리하여 유지보수성과 확장성을 고려한 구조 적용

  • 라이브 방송 및 실시간 커뮤니케이션 기능 개발

    • Tencent SDK를 활용해 실시간 방송 송출 기능 적용

    • 방송 중 시청자와 딜러 간 실시간 채팅 기능 적용

  • VOD(Video On Demand) 기능 추가

    • 방송 종료 후 다시보기 기능을 제공하여 콘텐츠 접근성 향상

기술 스택

  • 아키텍처: Clean Architecture(MVVM)

  • 네트워크: Retrofit2, OkHttp3

  • 비동기 처리: Coroutine

  • 미디어 처리: ExoPlayer2

  • 라이브 방송: Tencent SDK

  • Jetpack 라이브러리: ViewModel, LiveData, Room, DataBinding, DataStore, LifeCycle

회사명

(주)버텍스아이디

직급 | 부서 | 근무 유형

대리 | 사업수행 파트

근무 기간

2018.05. ~ 2021.09. (3년 5개월)

담당 업무

농협하나로유통 DFC (디지털 풀필먼트 센터) - PDA 앱 개발

피커가 총량피킹(농협몰에서 고객들이 주문한 상품의 총 수량 단위) 상품 리스트를 PDA에서 확인하고, 매장으로 이동해 트레이(바구니)에 상품을 매핑한 후, 피킹이 완료된 트레이와 상품 정보를 DAS 스테이션(컨베이어 벨트)으로 전송하는 PDA 앱 개발

주요 기능 구현

  • 총량피킹 상품 리스트 연동 및 매핑

    • PDA에서 피킹 리스트를 확인하고, 트레이(바구니)와 매핑 후 매장으로 이동

  • 바코드 스캔 기능 구현

    • Honeywell SDK를 활용해 상품과 트레이를 스캔하여 매핑 처리

  • 피킹 완료 후 데이터 전송

    • 피킹이 완료된 트레이와 상품 정보를 DAS 스테이션(컨베이어 벨트)으로 전송

기술 스택

  • 아키텍처: Clean Architecture(MVP)

  • 네트워크: Retrofit2

  • 비동기 처리: RxJava

  • 바코드 스캔: Honeywell SDK

  • Jetpack 라이브러리: ViewModel, LiveData, Room, DataBinding, DataStore, LifeCycle


농협하나로유통 (신)PCS 고도화 - PDA 앱 개발

(구)PCS 시스템을 농협몰(NGIN) 시스템으로 이관하면서, 기존 존별 피킹 방식에서 주문별 피킹 방식으로 전환하는 PDA 앱 개발

주요 기능 구현

  • 주문별 피킹 방식 전환

    • 기존 존별 피킹 방식에서 주문별 피킹 방식으로 개편

  • 바코드 스캔 기능 구현

    • Honeywell SDK를 활용해 상품과 트레이를 스캔하여 매핑 처리

기술 스택

  • 아키텍처: MVP 패턴

  • 네트워크: Retrofit2

  • 데이터 관리: Room

  • 바코드 스캔: Honeywell SDK


기타 프로젝트

농협하나로유통 (구)PCS

  • 하나로마트 피킹 시스템 유지보수 및 기능 개선

팔도 PSM

  • 영업 지원 시스템 앱의 추가 기능 개발 및 UI 개선

  • 사인 라이브러리를 활용한 서명 기능 구현

동서식품 DSIS, 다사 PAMS, ESL 전자가격택 관리 시스템

  • 유지보수 및 신규 기능 개발

  • 지도 API 전환 (다음맵 → 카카오맵)

회사명

주식회사 비트바이트

직급 | 부서 | 근무 유형

안드로이드 개발자 / 매니저

근무 기간

2017.09. ~ 2017.11. (3개월)

담당 업무

플레이키보드

키워드에 반응하는 인터랙티브 키보드 서비스인 '플레이키보드' 앱을 개발하여 사용자 입력 경험을 개선

플레이키보드 - 2배로 주는 앱테크, 리워드앱, 포인트 - Google Play 앱


주요 기능 구현

  • 새로운 UI 화면 추가

    • 기존 앱에 새로운 화면을 추가하고, 디자이너와 협업하여 UI 구성

기술 스택

  • UI: ConstraintLayout

포트폴리오

URL

link

GitHub

깃허브
link

LinkedIn

링크드인
댓글