“자격증, 나에게 딱 맞는 시작을 Certi로!”

자격증 고민부터 이력서 완성까지, 한 번에 도와주는
내 전공, 진로, 관심 분야 기반으로 지금 필요한 자격증을 추천!
시험 일정, 준비 팁, 학습 자료까지 모두 제공
쌓아온 자격증과 경험을 한눈에 정리하고, 목표 직무에 맞게 추천까지 연결
![]() |
![]() |
![]() |
![]() |
---|---|---|---|
송민서(Lead) | 이지현 | 김민지 | 김종우 |
소셜로그인 온보딩 검색 카테고리별 조회 |
이력서 취득 자격증 경력사항 대내외활동 |
홈 취득예정 자격증 카드 애니메이션 |
추천 자격증 자격증 상세 로딩 애니메이션 |
기능 | 설명 | 주요 특징 |
---|---|---|
1️⃣ 로그인 | 소셜 계정으로 간편하게 로그인하는 공간 | - 카카오/구글 로그인 지원 - 로그인 상태 유지 시 홈으로 자동 이동 |
2️⃣ 온보딩 | 나의 정보를 입력하고 자격증 추천을 준비하는 단계 | - 대학교, 학과, 학년, 계열, 희망 직무 입력 - 희망 직무는 최대 3개까지 선택 가능 - 단계별 프로그레스 UI 제공 |
3️⃣ 추천 자격증 | 입력 정보 기반으로 자격증을 추천받는 공간 | - 희망 직무 기반 맞춤 추천 - 추천 직무 재설정 가능 - 자격증 유형, 태그, 인증기관 등 표시 |
4️⃣ 자격증 상세 | 자격증에 대한 상세 정보를 확인하는 공간 | - 시험 일정, 취득 기간, 수수료, 유효기간 제공 - 즐겨찾기, 취득 예정/완료 등록 가능 - 외부 기관 링크 연동 |
5️⃣ 자격증 편집 | 등록한 자격증을 관리하는 공간 | - 취득 예정 자격증 리스트 관리 - 삭제 시 모달 확인 후 반영 |
6️⃣ 홈 | 사용자 정보와 자격증 상태를 한눈에 보는 대시보드 | - 사용자 인사말, 대학교/학과 정보 제공 - 이력서 프로그레스바로 작성 현황 시각화 - 추천/예정/즐겨찾기 자격증 노출 |
7️⃣ 카테고리별 조회, 검색 | 분야별 자격증 탐색 및 검색할 수 있는 공간 | - 13개 카테고리 + 직무 기반 필터 구성 - 실기/필기/복합형 정렬 - 즐겨찾기 토글 및 필터링 가능 - 검색어 기반 실시간 검색 - 공백 및 결과 없음 시 안내 메시지 표시 - 자격증 리스트로 결과 제공 |
8️⃣ 이력서, 경력사항, 대내외 활동 | 자격증, 경력, 대내외 활동을 통합 관리하는 화면 | - 자격증 카드 (앞/뒷면 전환 가능) - 경력/대외활동 포함한 이력서 구성 - 최신순 정렬 및 편집 기능 지원 - 근무 기간, 회사명, 직무, 업무 내용 입력 - 최대 글자 수 제한 적용 - 삭제 및 최신순 정렬 가능 - 활동명, 단체명, 활동 소개 입력 - 활동 기간 선택 - 삭제 및 편집 가능 |
항목 | 내용 |
---|---|
IDE | Android Studio Meerkat (2024.3.2 Patch1) |
Language | Kotlin (v2.0.21) |
Architecture | MVVM + Clean Architecture |
UI Framework | Jetpack Compose |
Module 구조 | Single Activity / Single Module |
Navigation | Jetpack Navigation |
Dependency Injection | Dagger-Hilt |
Async | Coroutine, Flow |
Network | Retrofit, OkHttp |
Design System | Material3 |
Build Tooling | Gradle Version Catalog |
Data Handling | Repository Pattern |
- 관심사 분리
- UI, 데이터 처리, 비즈니스 로직을 분리해 각 컴포넌트의 책임이 명확해지고, 테스트 및 유지보수 효율이 높아집니다.
- View ↔ ViewModel N:1 대응
- ViewModel 재사용성이 높아져 보일러플레이트 코드 감소에 효과적입니다.
- 데이터 소스 추상화
- 네트워크 및 로컬 DB 등 다양한 데이터 소스를 통합적으로 관리할 수 있어 데이터 접근 로직을 분리할 수 있습니다.
- 유지보수 및 확장성 향상
- 변경 사항을 Repository 레이어에 국한시켜 전체 구조에 영향을 주지 않으므로, 유지보수성이 높습니다.
- 통일된 DI 패턴 제공
- 일관된 의존성 주입 방식을 통해 협업 시 코드 가독성과 이해도를 높일 수 있습니다.
- Android 환경 최적화
- Android 컴포넌트에 맞춘 주입 어노테이션을 제공하여 개발 효율성을 높입니다.
- 비즈니스 규칙의 명확한 분리
- 이번 프로젝트는 iOS, 서버 등 다양한 플랫폼과 병행 개발이 이루어지므로, 비즈니스 로직을 외부 변화(플랫폼, UI 등)로부터 독립시키는 Clean Architecture가 더 적합합니다.
- 도메인 계층이 선택적인 구글 권장 아키텍처보다, 도메인을 중심에 두는 구조가 명확한 책임 분리에 유리하다고 판단했습니다.
- 변경에 유연하게 대처 가능
- 계층 간 의존성을 추상화해 느슨한 결합 구조로 구성되어, 스프린트 과정에서 발생할 수 있는 다양한 변경 사항에 유연하게 대응할 수 있습니다.
- Code Convention
- Git Convention
- Issue & PR Convention
- Code Review convention
📂 org.sopt.certi
┣ 📂 core
┃ ┣ 📂 component
┃ ┣ 📂 navigation
┃ ┣ 📂 network
┃ ┣ 📂 state
┃ ┣ 📂 util
┣ 📂 data
┃ ┣ 📂 local
┃ ┃ ┣ 📂 datasource
┃ ┃ ┣ 📂 datasourceimpl
┃ ┣ 📂 mapper
┃ ┃ ┣ 📂 todata
┃ ┃ ┣ 📂 todomain
┃ ┣ 📂 remote
┃ ┃ ┣ 📂 datasource
┃ ┃ ┣ 📂 datasourceimpl
┃ ┃ ┣ 📂 dto
┃ ┃ ┃ ┣ 📂 base
┃ ┃ ┃ ┣ 📂 request
┃ ┃ ┃ ┣ 📂 response
┃ ┃ ┣ 📂 service
┃ ┃ ┣ 📂 util
┃ ┣ 📂 repositoryimpl
┣ 📂 di
┣ 📂 domain
┃ ┣ 📂 model
┃ ┣ 📂 repository
┃ ┣ 📂 type
┃ ┣ 📂 usecase
┣ 📂 presentation
┃ ┣ 📂 ui
┃ ┃ ┣ 📂 splash
┃ ┃ ┣ 📂 home
┃ ┃ ┣ 📂 certDetail
┃ ┃ ┣ 📂 certList
┃ ┃ ┣ 📂 certrecommend
┃ ┃ ┣ 📂 login
┃ ┃ ┣ 📂 main
┃ ┃ ┣ 📂 onboarding
┃ ┃ ┣ 📂 precertificationedit
┃ ┃ ┣ 📂 resume
┃ ┃ ┣ 📂 search
...
┃ ┣ 📂 util
┣ 📂 ui.theme