Skip to content

Latest commit

 

History

247 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 

Repository files navigation

🚀 ReMU

스크린샷 2026-01-09 오전 12 29 23

ReMU: 여행의 시작, 당신만의 은하로 떠나요 Swift Xcode License



👥 멤버

티모 나래 벨라
IMG_6758 IMG_6758
PL FE FE
GitHub GitHub GitHub

📱 소개

ReMU는 여행 중 느낀 감정과 순간을 기록하고, 시간이 지나도 다시 꺼내볼 수 있도록 설계된 감정 중심 여행 저널 서비스입니다.


📆 프로젝트 기간

  • 전체 기간: 2025.12.22. - 2026.02.20.
  • 개발 기간: 2026.01.05. - 2026.02.20.

🤔 요구사항

For building and running the application you need:

iOS 26.0
Xcode 26.0.1
Swift 5


🏗 Architecture

  • MVVM 기반 구조
  • Moya + Alamofire 네트워크 레이어 분리
  • DIContainer 기반 의존성 주입
  • Feature 단위 모듈화 구조

🔎 기술 스택

🖥 Development

⚙️ Environment

🤝 Collaboration


📱 화면 구성

0_진입 시 1-1_ 은하 생성 후, Home (기본) 1-1-2_ 여행 다짐 카드 조회 (앞면)

🔖 브랜치 컨벤션

🪵 브랜치 전략

  • main (master) : 출시 가능한 상태의 코드를 모아두는 브랜치 (직접 push ❌, PR로만 병합)
  • develop : 다음 버전을 위해 개발 중인 코드를 모으는 브랜치 (기본 베이스)
  • feature : 기능을 개발하는 브랜치 (develop에서 분기)
  • fix : 버그를 수정하는 브랜치

🌿 네이밍 규칙

{태그} / #{이슈번호}-{기능설명}

  1. 태그는 소문자로 작성합니다.
  2. 이슈번호는 Github Issues에 등록된 번호를 적습니다. (추적 용이)
  3. 기능설명은 짧은 영어 단어로, 띄어쓰기는 하이픈(-)으로 연결합니다.

✅ 사용 예시

  • feat/#13-login-ui (13번 이슈인 로그인 UI 구현)
  • fix/#20-token-error (20번 이슈인 토큰 에러 수정)
  • refactor/#5-api-structure (5번 이슈인 API 구조 개선)

📌 이슈 컨벤션

  • 양식 | 이모지 커밋유형: 이슈 내용
  • 예시 | 이모지 FEAT: 사용자 로그인 API 구현

🌀 코딩 컨벤션

선언 네이밍

  1. 변수 & 상수

    • 카멜 케이스(camelCase) 사용
    • 의미 있고 설명적인 이름 사용
    • 너무 짧거나 모호한 이름 피하기
  2. 함수 & 메서드

    • 동사로 시작
    • 함수의 역할을 명확히 설명
  3. 클래스 & 구조체 & 열거형

    • 대문자로 시작 (PascalCase)
  4. 타입 추론

// Bad: 불필요한 타입 명시
let explicitDouble: Double = 70.0

// Good: 타입 추론 사용
let implicitDouble = 70.0 
  1. 오류 처리
enum NetworkError: Error {
    case badURL
    case noData
}

func fetchData(from urlString: String) throws -> Data {
    guard let url = URL(string: urlString) else {
        throw NetworkError.badURL
    }
    // ... (생략)
    throw NetworkError.noData
}

// 사용 예시
do {
    let data = try fetchData(from: "https://example.com")
    print("Data fetched successfully")
} catch NetworkError.badURL {
    print("Invalid URL")
} catch {
    print("Unknown error")
}

공백

  1. 들여쓰기는 tab 대신 띄어쓰기 4개로

  2. 연산자 주변 공백

// 좋은 예
let result = 1 + 2

// 나쁜 예
let result=1+2
  1. 중괄호는 엔터 없이 열기
// 좋은 예
func doSomething() {
    // ...
}

// 나쁜 예
func doSomething()
{
    // ...
}
  1. 콜론 뒤에만 공백을 둡니다.
let value: Int

📁 PR 컨벤션

  • PR 시, 템플릿이 등장한다. 해당 템플릿에서 작성해야할 부분은 아래와 같다
    1. PR 유형 작성, 어떤 변경 사항이 있었는지 [] 괄호 사이에 x를 입력하여 체크할 수 있도록 한다.
    2. 작업 내용 작성, 작업 내용에 대해 자세하게 작성을 한다.
    3. 추후 진행할 작업, PR 이후 작업할 내용에 대해 작성한다
    4. 리뷰 포인트, 본인 PR에서 꼭 확인해야 할 부분을 작성한다.
    5. PR 태그 종류, PR 제목의 태그는 아래 형식을 따른다.

🌟 태그 종류 (커밋 컨벤션과 동일)

  • Feat : 새로운 기능 추가
  • Fix : 버그 수정
  • Design : CSS, UI/UX 디자인 변경
  • !BREAKING CHANGE : 커다란 API 변경의 경우
  • !HOTFIX : 급하게 치명적인 버그를 고쳐야 하는 경우
  • Style : 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
  • Refactor : 코드 리팩토링 (기능 변경 없음, 코드 구조 개선)
  • Comment : 필요한 주석 추가 및 변경
  • Docs : 문서 수정
  • Test : 테스트 코드 추가, 테스트 리팩토링
  • Chore : 빌드 업무 수정, 패키지 매니저 수정, 프로젝트 세팅
  • Rename : 파일 혹은 폴더명을 수정하거나 옮기는 경우
  • Remove : 파일을 삭제하는 경우

✅ PR 예시 모음

🎉 [Chore] 프로젝트 초기 세팅
✨ [Feat] 프로필 화면 UI 구현
🐛 [Fix] iOS 17에서 버튼 클릭 오류 수정
💄 [Design] 로그인 화면 레이아웃 조정
📝 [Docs] README에 프로젝트 소개 추가


📑 커밋 컨벤션

💬 깃모지 가이드

아이콘 코드 설명 원문
🐛 bug 버그 수정 Fix a bug
sparkles 새 기능 Introduce new features
💄 lipstick UI/스타일 파일 추가/수정 Add or update the UI and style files
♻️ recycle 코드 리팩토링 Refactor code
heavy_plus_sign 의존성 추가 Add a dependency
🔀 twisted_rightwards_arrows 브랜치 합병 Merge branches
💡 bulb 주석 추가/수정 Add or update comments in source code
🔥 fire 코드/파일 삭제 Remove code or files
🚑 ambulance 긴급 수정 Critical hotfix
🎉 tada 프로젝트 시작 Begin a project
🔒 lock 보안 이슈 수정 Fix security issues
🔖 bookmark 릴리즈/버전 태그 Release / Version tags
📝 memo 문서 추가/수정 Add or update documentation
🔧 wrench 구성 파일 추가/삭제 Add or update configuration files.
⚡️ zap 성능 개선 Improve performance
🎨 art 코드 구조 개선 Improve structure / format of the code
📦 package 컴파일된 파일 추가/수정 Add or update compiled files
👽 alien 외부 API 변경 반영 Update code due to external API changes
🚚 truck 리소스 이동, 이름 변경 Move or rename resources
🙈 see_no_evil .gitignore 추가/수정 Add or update a .gitignore file

🏷️ 커밋 태그 가이드

  • Feat : 새로운 기능 추가
  • Fix : 버그 수정
  • Design : 사용자 UI 디자인 변경 (CSS 등)
  • !BREAKING CHANGE : 커다란 API 변경의 경우
  • !HOTFIX : 급하게 치명적인 버그를 고쳐야 하는 경우
  • Style : 코드 포맷팅, 세미콜론 누락, 코드 변경이 없는 경우
  • Refactor : 코드 리팩토링 (기능 변경 없음, 코드 구조 개선)
  • Comment : 필요한 주석 추가 및 변경
  • Docs : 문서 수정
  • Test : 테스트 코드 추가, 테스트 리팩토링
  • Chore : 빌드 업무 수정, 패키지 매니저 수정, 프로젝트 세팅
  • Rename : 파일 혹은 폴더명을 수정하거나 옮기는 경우
  • Remove : 파일을 삭제하는 경우

✅ 커밋 예시 모음

🎉 [Chore] 프로젝트 초기 세팅
✨ [Feat] 프로필 화면 UI 구현
🐛 [Fix] iOS 17에서 버튼 클릭 오류 수정
💄 [Design] 로그인 화면 레이아웃 조정
📝 [Docs] README에 프로젝트 소개 추가


🗂️ 폴더 컨벤션

ReMU
├── App
│   ├── AppDelegate.swift
│   └── ReMUApp.swift
├── Common
│   ├── Enum
│   ├── Protocol
│   └── UIComponents
├── Core
│   ├── Actor
│   ├── DIContainer
│   ├── Image
│   ├── Keychain
│   ├── MediaPicker
│   ├── Navigation
│   ├── Notification
│   ├── Utils
│   └── APIProviderStore.swift
├── Models
│   ├── Domain
│   └── DTO
├── Modules
│   ├── AppFlow
│   └── Tab
├── Resource
│   ├── Extension
│   ├── Font
│   ├── Modifier
│   ├── UIConstants
│   └── Assets.xcassets
├── Service
│   ├── Feedback
│   ├── Galaxy
│   ├── Manager
│   ├── NetworkCore
│   ├── Notification
│   ├── Pledge
│   ├── Result
│   ├── Social
│   └── AccessTokenRefresher.swift
├── ContentView.swift
├── Info.plist
├── NextView.swift
├── testView.swift
└── ReMU_Tests

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages