Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
26 commits
Select commit Hold shift + click to select a range
14eeee7
โœจ[feat]: ์˜จ๋ณด๋”ฉ API ๋ฐ ์ดˆ๋Œ€์ฝ”๋“œ ๊ฒ€์ฆ ์‹œ์Šคํ…œ ๊ตฌํ˜„
Roy-wonji Dec 30, 2025
74311ad
๐Ÿ”ง[refactor]: ํšŒ์›๊ฐ€์ž… ๋ฐ ์˜จ๋ณด๋”ฉ ๋ ˆํฌ์ง€ํ† ๋ฆฌ Mock ๊ตฌํ˜„ ๊ฐœ์„ 
Roy-wonji Dec 30, 2025
6dd4452
๐Ÿ”ง[refactor]: ์ดˆ๋Œ€์ฝ”๋“œ ๊ฒ€์ฆ ๋กœ์ง ๊ฐœ์„  ๋ฐ ์˜คํƒ€ ์ˆ˜์ •
Roy-wonji Dec 30, 2025
d00c745
โœจ[feat]: ์ง์—… ์„ ํƒ API ์—ฐ๋™ ๋ฐ DTO ๊ตฌํ˜„
Roy-wonji Dec 30, 2025
2ae6863
๐Ÿ”ง[refactor]: ์˜จ๋ณด๋”ฉ ๋ฐ ํšŒ์›๊ฐ€์ž… Repository Mock ์‹œ์Šคํ…œ ํ†ตํ•ฉ
Roy-wonji Dec 30, 2025
db03684
๐Ÿ”ง[refactor]: ํšŒ์›๊ฐ€์ž… ํ™”๋ฉด ์ฝ”๋“œ ์ •๋ฆฌ ๋ฐ API ์—ฐ๋™ ๊ฐœ์„ 
Roy-wonji Dec 30, 2025
b02adfe
โœจ[feat]: ํŒ€ ์„ ํƒ API ์—ฐ๋™ ๋ฐ DTO ๊ตฌํ˜„
Roy-wonji Dec 31, 2025
e92897a
โœจ[feat]: ์˜จ๋ณด๋”ฉ ๋„๋ฉ”์ธ ๊ตฌ์กฐ ๊ฐœ์„  ๋ฐ ํŒ€ ์„ ํƒ ๊ธฐ๋Šฅ ์ถ”๊ฐ€
Roy-wonji Dec 31, 2025
3710048
๐Ÿ”ง[refactor]: UserEntity๋ฅผ UserSession์œผ๋กœ ํ†ตํ•ฉ ๋ฐ ์ƒํƒœ๊ด€๋ฆฌ ๊ฐœ์„ 
Roy-wonji Dec 31, 2025
6820b6c
๐Ÿ”ง[refactor]: Data layer ํšŒ์›๊ฐ€์ž… API ๊ตฌ์กฐ ๊ฐœ์„  ๋ฐ ํ†ตํ•ฉ
Roy-wonji Jan 1, 2026
8af6e6c
๐Ÿ”ง[refactor]: ์˜จ๋ณด๋”ฉ ๋„๋ฉ”์ธ ์ธํ„ฐํŽ˜์ด์Šค ์ •๋ฆฌ ๋ฐ ๊ด€๋ฆฌ ์—ญํ•  ๊ธฐ๋Šฅ ์ถ”๊ฐ€
Roy-wonji Jan 1, 2026
63600a2
๐Ÿ”ง[refactor]: ๋„๋ฉ”์ธ ์—”ํ‹ฐํ‹ฐ ๋ฐ ํšŒ์›๊ฐ€์ž… UseCase ๊ตฌ์กฐ ๊ฐœ์„ 
Roy-wonji Jan 1, 2026
d436f7e
๐Ÿ”ง[refactor]: ์˜จ๋ณด๋”ฉ ๊ด€๋ฆฌ์ง„ ์„ ํƒ ๋กœ์ง ๊ฐœ์„  ๋ฐ ํƒ€์ž… ์˜ค๋ฅ˜ ์ˆ˜์ •
Roy-wonji Jan 1, 2026
37a98c8
๐Ÿ”ง[refactor]: OAuth ํ† ํฐ ์ฒ˜๋ฆฌ ๋ฐ ํšŒ์›๊ฐ€์ž… ํ•„๋“œ ์˜ต์…”๋„ ์ฒ˜๋ฆฌ ๊ฐœ์„ 
Roy-wonji Jan 1, 2026
8c3298b
๐Ÿ”ง[refactor]: ํ† ํฐ ์ œ๊ณต์ž ์˜์กด์„ฑ ์ฃผ์ž… ํŒจํ„ด์œผ๋กœ APIHeader ๋ฆฌํŒฉํ„ฐ๋ง
Roy-wonji Jan 2, 2026
67de44f
๐Ÿ”ง[refactor]: ์˜์กด์„ฑ ์ฃผ์ž… ๊ตฌ์กฐ ๊ฐœ์„  ๋ฐ ์ค‘๋ณต ์ธ์ฆ ํŒŒ์ผ ์ œ๊ฑฐ
Roy-wonji Jan 2, 2026
542e03a
๐Ÿ”ง[refactor]: ๋ฐ๋ชจ ๋ชจ๋“ˆ ํ…œํ”Œ๋ฆฟ์—์„œ Core ์˜์กด์„ฑ ์ œ๊ฑฐ
Roy-wonji Jan 2, 2026
530a4eb
๐Ÿ”ง[refactor]: ํ”„๋ ˆ์  ํ…Œ์ด์…˜ ๋ ˆ์ด์–ด ์˜์กด์„ฑ์„ Core์—์„œ Domain UseCase๋กœ ๋ณ€๊ฒฝ
Roy-wonji Jan 2, 2026
ea1fe34
๐Ÿ”ง[refactor]: App ๋ชจ๋“ˆ์—์„œ Core ์˜์กด์„ฑ ์ œ๊ฑฐ
Roy-wonji Jan 2, 2026
f2c66a3
๐Ÿ”ง[refactor]: Core ๋ชจ๋“ˆ ์™„์ „ ์ œ๊ฑฐ ๋ฐ ์˜์กด์„ฑ ์ •๋ฆฌ
Roy-wonji Jan 2, 2026
ba54524
๐Ÿ”ง[refactor]: Token ๊ธฐ๋ฐ˜ ์ธ์ฆ ์‹œ์Šคํ…œ์œผ๋กœ ์ „ํ™˜ ๋ฐ SignUp ๋ชจ๋“ˆ ์ •๋ฆฌ
Roy-wonji Jan 2, 2026
9425777
๐Ÿ”ง[refactor]: ํ‚ค์ฒด์ธ ํ† ํฐ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ ๊ตฌํ˜„ ๋ฐ OAuth ํ† ํฐ ์ €์žฅ ๋กœ์ง ์ถ”๊ฐ€
Roy-wonji Jan 2, 2026
05e8c68
๐Ÿ”ง[chore]: ์•ฑ ๋นŒ๋“œ ๋ฒ„์ „ 48์—์„œ 49๋กœ ์—…๋ฐ์ดํŠธ
Roy-wonji Jan 2, 2026
aa3e99c
๐Ÿ”ง[feat]: ํšŒ์›ํƒˆํ‡ด API ๊ตฌํ˜„ ๋ฐ WithdrawDTO ์ถ”๊ฐ€
Roy-wonji Jan 2, 2026
6d926f2
๐Ÿ”ง[feat]: ํšŒ์›ํƒˆํ‡ด ๊ธฐ๋Šฅ ๋ฐ OAuth ํ† ํฐ ๊ด€๋ฆฌ ๊ฐœ์„ 
Roy-wonji Jan 2, 2026
f39e8c3
๐Ÿ”ง[refactor]: Core ๋ชจ๋“ˆ ์ œ๊ฑฐ ๋ฐ import ๊ตฌ์กฐ ๊ฐœ์„ 
Roy-wonji Jan 2, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,7 @@ extension String {
return Project.Environment.bundlePrefix
}

public static func appBuildVersion(buildVersion: String = "48") -> String {
public static func appBuildVersion(buildVersion: String = "49") -> String {
return buildVersion
}

Expand Down
1 change: 0 additions & 1 deletion Projects/App/Project.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,7 +17,6 @@ let project = Project.makeAppModule(
scripts: [],
dependencies: [
.Shared(implements: .Shareds),
.Core(implements: .Core),
.Presentation(implements: .Presentation),
.Data(implements: .Repository)
],
Expand Down
9 changes: 7 additions & 2 deletions Projects/App/Sources/Di/DiRegister.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,8 @@ import Foundation

import DomainInterface
import Repository
import Core
import Foundations
import UseCase

import ComposableArchitecture
import WeaveDI
Expand All @@ -32,7 +33,11 @@ public class AppDIManager: @unchecked Sendable {
.register { AppleOAuthRepositoryImpl() as AppleOAuthInterface }
.register { AppleOAuthProvider() as AppleOAuthProviderInterface }
.register { GoogleOAuthProvider() as GoogleOAuthProviderInterface }

// MARK: - ํ† ํฐ ๋“ฑ๋ก ๊ด€๋ จ
.register { KeychainManager() as KeychainManaging }
.register { KeychainTokenProvider(keychainManager: KeychainManager()) as TokenProviding }
// MARK: - ์˜จ๋ณด๋”ฉ ๊ด€๋ จ
.register { OnBoardingRepositoryImpl() as OnBoardingInterface }
.register { SignUpRepositoryImpl() as SignUpInterface }
.register { AttendanceRepositoryImpl() as AttendanceInterface }
.register { ProfileRepositoryImpl() as ProfileInterface }
Expand Down
22 changes: 0 additions & 22 deletions Projects/App/Sources/Di/Extension+AppDIContainer.swift

This file was deleted.

27 changes: 27 additions & 0 deletions Projects/App/Sources/Di/KeychainTokenProvider.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
//
// KeychainTokenProvider.swift
// DDDAttendance
//
// Created by Wonji Suh on 1/2/26.
//

import Foundation

import DomainInterface
import Foundations

struct KeychainTokenProvider: TokenProviding {
private let keychainManager: KeychainManaging

init(keychainManager: KeychainManaging) {
self.keychainManager = keychainManager
}

func accessToken() -> String? {
keychainManager.accessToken()
}

func saveAccessToken(_ token: String) {
keychainManager.saveAccessToken(token)
}
}
18 changes: 0 additions & 18 deletions Projects/Core/Core/Project.swift

This file was deleted.

12 changes: 0 additions & 12 deletions Projects/Core/Core/Sources/CoreExported/CoreExported.swift

This file was deleted.

8 changes: 0 additions & 8 deletions Projects/Core/Core/Tests/Sources/Test.swift

This file was deleted.

This file was deleted.

This file was deleted.

This file was deleted.

19 changes: 10 additions & 9 deletions Projects/Data/API/Sources/API/Auth/AuthAPI.swift
Original file line number Diff line number Diff line change
Expand Up @@ -9,16 +9,17 @@ import Foundation

public enum AuthAPI: String, CaseIterable {
case login
case sessionToJwt

public var authDescription: String {
case refresh
case withDraw

public var description: String {
switch self {
case .login:
return "login"

case .sessionToJwt:
return "session-to-jwt/"
case .login:
return "login"
case .refresh:
return "refresh"
case .withDraw:
return "/me"
}
}
}
29 changes: 15 additions & 14 deletions Projects/Data/API/Sources/API/Base/AttendanceDomain.swift
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ import AsyncMoya
public enum AttendanceDomain {
case auth
case onboarding
case user
case invite
case profile
case qr
Expand All @@ -26,22 +27,22 @@ extension AttendanceDomain: DomainType {

public var url: String {
switch self {
case .auth:
return "api/auth/"

case .auth:
return "api/auth/"
case .onboarding:
return "api/onboarding/"
case .invite:
return "api/v1/invites/"
case .profile:
return "api/v1/profiles/"
case .qr:
return "api/v1/qrcodes/"
case .schedule:
return "api/v1/schedules/"
case .attendance:
return "api/v1/attendances/"
case .user:
return "api/users"
case .invite:
return "api/v1/invites/"
case .profile:
return "api/v1/profiles/"
case .qr:
return "api/v1/qrcodes/"
case .schedule:
return "api/v1/schedules/"
case .attendance:
return "api/v1/attendances/"
}
}
}

Loading