Skip to content

cerdeuk/CERTI-iOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

image

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

자격증 고민부터 이력서 완성까지, 한 번에 도와주는 취준생을 위한 올인원 자격증 서비스

맞춤 자격증 추천

내 전공, 진로, 관심 분야 기반으로 지금 필요한 자격증을 추천!

공부법 & 일정까지 한 번에

시험 일정, 준비 팁, 학습 자료까지 모두 제공

스펙 자동 정리

쌓아온 자격증과 경험을 한눈에 정리하고, 목표 직무에 맞게 추천까지 연결


Contributors

김한열(Lead) 김나연 이상엽
소셜로그인
온보딩

취득예정 자격증
로딩 애니메이션
추천 자격증
카테고리별 조회
검색
자격증 상세
즐겨찾기
이력서
취득 자격증
경력사항
대내외활동
카드 애니메이션

서비스 기능

기능 설명 주요 특징
로그인 소셜 계정으로 간편하게 로그인하는 공간 - 카카오/구글 로그인 지원
- 로그인 상태 유지 시 홈으로 자동 이동
온보딩 나의 정보를 입력하고 자격증 추천을 준비하는 단계 - 대학교, 학과, 학년, 계열, 희망 직무 입력
- 희망 직무는 최대 3개까지 선택 가능
- 단계별 프로그레스 UI 제공
추천 자격증 입력 정보 기반으로 자격증을 추천받는 공간 - 희망 직무 기반 맞춤 추천
- 추천 직무 재설정 가능
- 자격증 유형, 태그, 인증기관 등 표시
자격증 상세 자격증에 대한 상세 정보를 확인하는 공간 - 시험 일정, 취득 기간, 수수료, 유효기간 제공
- 즐겨찾기, 취득 예정/완료 등록 가능
- 외부 기관 링크 연동
자격증 편집 등록한 자격증을 관리하는 공간 - 취득 예정 자격증 리스트 관리
- 삭제 시 모달 확인 후 반영
사용자 정보와 자격증 상태를 한눈에 보는 대시보드 - 사용자 인사말, 대학교/학과 정보 제공
- 이력서 프로그레스바로 작성 현황 시각화
- 추천/예정/즐겨찾기 자격증 노출
카테고리별 조회, 검색 분야별 자격증 탐색 및 검색할 수 있는 공간 - 13개 카테고리 + 직무 기반 필터 구성
- 실기/필기/복합형 정렬
- 즐겨찾기 토글 및 필터링 가능
- 검색어 기반 실시간 검색
- 공백 및 결과 없음 시 안내 메시지 표시
- 자격증 리스트로 결과 제공
이력서, 경력사항, 대내외 활동 자격증, 경력, 대내외 활동을 통합 관리하는 화면 - 자격증 카드 (앞/뒷면 전환 가능)
- 경력/대외활동 포함한 이력서 구성
- 최신순 정렬 및 편집 기능 지원
- 근무 기간, 회사명, 직무, 업무 내용 입력
- 최대 글자 수 제한 적용
- 삭제 및 최신순 정렬 가능
- 활동명, 단체명, 활동 소개 입력
- 활동 기간 선택
- 삭제 및 편집 가능

Library

분류 기술 / 도구 역할 버전
IDE & SDK Xcode & SPM Apple의 공식 IDE, Swift 기반 의존성 관리 도구 16.4
UI 프레임워크 SwiftUI 코드의 간결성과 직관성을 통해 빠르고 쉽게 사용자 인터페이스를 설계하고 유지보수가 가능 -
네트워크 계층 Moya 간결한 네트워크 요청과 구조화된 관리 방식으로 코드 가독성과 유지보수성 향상 15.0.3
이미지 처리 Kingfisher 효율적인 이미지 다운로드 및 캐싱을 통해 네트워크 이미지 로딩 성능 향상 8.4.0
비동기 처리 Swift Concurrency 명확하고 안전한 비동기 흐름 관리를 통해 복잡한 비동기 로직의 가동성과 유지보수성 향상 3.22.0
로그 관리 Logger 구조화된 로깅을 지원하여 성능 저하 없이 효율적으로 로그 수집 및 분석 가능
로그인 KakaoOpenSDK 카카오 소셜 로그인을 위해 사용 2.24.4

Architecture

image 3

MVVM 패턴

SwiftUI의 선언형 UI 특성과 자연스럽게 맞물리는 MVVM(Model-View-ViewModel) 아키텍처를 채택하여 뷰와 비즈니스 로직을 명확히 분리했습니다.

이로 인해 코드의 재사용성과 테스트 용이성이 높아졌고, 뷰 상태 관리를 더욱 체계적으로 수행할 수 있었습니다.

또한, ViewModel을 통해 데이터 흐름을 일관되게 유지함으로써 유지보수성과 확장성을 고려한 구조를 구현하였습니다.

Foldering

📁 CERTI-iOS
├── 📁 CERTI-iOS
│   ├── 📁 Application
│   │   └── 📃 AppCoordinator.swift
│   │   └── 📃 AppCoordinatorView.swift
│   │   └── 📃 CERTI_iOSApp.swift
│   │   └── 📃 RootView
│   ├── 📁 Global
│   │   ├── 📁 Components
│   │   ├── 📁 Core
│   │   │   └── 📁 Auth
│   │   │       ├── 📁 Error
│   │   │       └── 📁 SocialLogin
│   │   ├── 📁 Enums
│   │   ├── 📁 Extensions
│   │   ├── 📁 Literals
│   │   ├── 📁 Manager
│   │   ├── 📁 Model
│   │   ├── 📁 Modifier
│   │   └── 📁 Resources
│   │       ├── 📁 Animation
│   │       ├── 📁 Assets.xcassets
│   │       │   ├── 📁 Colors
│   │       │   │   ├── 📁 Background
│   │       │   │   ├── 📁 Grayscale
│   │       │   │   ├── 📁 Main
│   │       │   │   └── 📁 Sub
│   │       │   ├── 📁 Image
│   │       │   ├── 📁 Loading
│   │       │   ├── 📁 Login
│   │       │   └── 📁 TabBar
│   │       └── 📁 Fonts
│   ├── 📁 Network
│   │   ├── 📁 Acquisition
│   │   │   └── 📁 DTO
│   │   │       ├── 📁 Response
│   │   │       │   └── 📃 AcquisitionDetailResponseDTO.swift
│   │   │       ├── 📃 AcquisitionAPI.swift
│   │   │       └── 📃 AcquisitionService.swift
│   │   ├── 📁 Activity
└── └── 📁 Presentation
        ├── 📁 CertificateDetail
        │   ├── 📁 Components
        │   │   └── 📃 CertificateDetailFailToastMessage.swift
        │   │   └── 📃 CertificateDetailSuccessToastMessage.swift
        │   ├── 📁 Models
        │   │   └── 📃 CertificateDetailModel.swift
        │   ├── 📁 View
        │   │   └── 📃 CertificateDetailView.swift
        │   │   └── 📃 CertificationDetailCompleteModalView.swift
        │   ├── 📁 ViewModel
        │   │   └── 📃 CertificateDetailViewModel.swift
        ├── 📁 Home
        │   ├── 📁 Components
        │   ├── 📁 Coordinator
        │   ├── 📁 Models
        │   ├── 📁 View
        │   └── 📁 ViewModel
        └── 📁 TabBar
            ├── 📁 Coordinator
            └── 📁 View

Convention

Coding

Swift 스타일쉐어 가이드를 기반으로

기반으로 팀원의 기존 스타일을 반영하였습니다.

Commit

[Feat] : 새로운 기능 구현
[Fix] : 버그, 오류 해결
[Chore] : 코드 수정, 내부 파일 수정, 애매한 것들이나 잡일은 이걸로!
[Add] : 라이브러리 추가, 에셋 추가
[Del] : 쓸모없는 코드 삭제
[Docs] : README나 WIKI 등의 문서 개정
[Refactor] : 전면 수정이 있을 때 사용합니다.
[Setting] : 프로젝트 설정관련이 있을 때 사용합니다.
[Merge] : Pull Develop

예시 [Feat] #1 - 메인 UI 구현

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 3

  •  
  •  
  •  

Languages