Skip to content

LeeCh0129/GlobalNomad

Β 
Β 

Repository files navigation

🧭 GlobalNomad - λ‹€μ–‘ν•œ μ²΄ν—˜μ„ μ˜ˆμ•½ν•˜λŠ” ν”Œλž«νΌ

μ†Œκ°œμ΄λ―Έμ§€

πŸ—‚ λͺ©μ°¨

  1. μ†Œκ°œ
  2. νŒ€ μ†Œκ°œ
  3. μ—­ν•  λΆ„λ‹΄
  4. 기술 μŠ€νƒ
  5. μ£Όμš” κΈ°λŠ₯
  6. 디렉토리 ꡬ쑰
  7. μ»¨λ²€μ…˜

🧭 μ†Œκ°œ

GlobalNomadλŠ” μ‚¬μš©μžκ°€ 직접 μ²΄ν—˜μ„ λ“±λ‘ν•˜κ³ ,
λ‹€λ₯Έ μ‚¬μš©μžκ°€ ν•΄λ‹Ή μ²΄ν—˜μ„ μ˜ˆμ•½ν•  수 μžˆλŠ” μ–‘λ°©ν–₯ μ²΄ν—˜ μ˜ˆμ•½ ν”Œλž«νΌμž…λ‹ˆλ‹€.

지도 및 μΊ˜λ¦°λ” SDKλ₯Ό ν™œμš©ν•˜μ—¬ μ²΄ν—˜ μœ„μΉ˜μ™€ μ˜ˆμ•½ κ°€λŠ₯ 일정을 μ§κ΄€μ μœΌλ‘œ 확인할 수 있으며,
λ³΅μž‘ν•œ UI 흐름과 μƒνƒœ 관리λ₯Ό 톡해 싀무 μˆ˜μ€€μ˜ μ‚¬μš©μž κ²½ν—˜μ„ μ œκ³΅ν•©λ‹ˆλ‹€.

🎯 ν”„λ‘œμ νŠΈ 주제

  • μ‚¬μš©μžκ°€ μ²΄ν—˜μ„ λ“±λ‘ν•˜κ³ , λ‹€λ₯Έ μ‚¬μš©μžκ°€ 이λ₯Ό μ˜ˆμ•½ν•  수 μžˆλŠ” ꡬ쑰
  • 지도 및 μΊ˜λ¦°λ” SDKλ₯Ό ν†΅ν•œ μœ„μΉ˜ 기반 + 일정 기반 μ˜ˆμ•½ κΈ°λŠ₯ κ΅¬ν˜„

🧩 μ„ μ • λ°°κ²½

  • 지도/μΊ˜λ¦°λ” 기반 μ˜ˆμ•½ μ‹œμŠ€ν…œμ— λŒ€ν•œ 기술적 관심
  • λ³΅μž‘ν•œ UI 흐름과 μƒνƒœ 관리 κ²½ν—˜μ„ 톡해 싀무에 κ°€κΉŒμš΄ ν”„λ‘ νŠΈμ—”λ“œ κ²½ν—˜μ„ μŒ“κΈ° μœ„ν•¨

πŸš€ 배포 링크

GlobalNomad λ°”λ‘œκ°€κΈ°

πŸ‘₯ νŒ€ μ†Œκ°œ

λ°•κ΄‘λ―Ό 김보경 λ§Ήμ€λΉˆ 이찬호

πŸ§‘β€πŸ’» μ—­ν•  λΆ„λ‹΄

πŸ§‘β€πŸ’» λ°•κ΄‘λ―Ό

  • 곡톡 μ»΄ν¬λ„ŒνŠΈ μ œμž‘: Input, Button, νŒμ—… Modal λ“± μ‚¬μš©μž 쀑심 μΈν„°λž™μ…˜ μš”μ†Œ κ΅¬ν˜„
  • 둜그인 / νšŒμ›κ°€μž… 인증 흐름 및 μœ νš¨μ„± 검사 둜직 κ΅¬ν˜„
  • 폼 μž…λ ₯ 검증 및 μ—λŸ¬ 처리 둜직 섀계
  • Kakao OAuth 연동 둜그인 κΈ°λŠ₯ 개발
  • μ•Œλ¦Ό κΈ°λŠ₯ κ΅¬ν˜„
  • νŒ€ 리딩 및 μ½”λ“œ 리뷰 주도

πŸ§‘β€πŸ’» 김보경

  • 곡톡 λ ˆμ΄μ•„μ›ƒ μ»΄ν¬λ„ŒνŠΈ μ œμž‘: Header, Footer, Pagination λ“±
  • λ°˜μ‘ν˜• μŠ€νƒ€μΌλ§ 및 νŽ˜μ΄μ§€λ„€μ΄μ…˜ 둜직 μž‘μ„±
  • 메인 νŽ˜μ΄μ§€ 퍼블리싱 및 API 연동
    • μ²΄ν—˜ 리슀트, 검색, 필터링, μ •λ ¬ κΈ°λŠ₯ 포함
  • 인기 μ²΄ν—˜ μ„Ήμ…˜ λ¬΄ν•œ 슀크둀 κ΅¬ν˜„
  • μ²΄ν—˜ μˆ˜μ •/등둝 UI κ΅¬ν˜„
  • λͺ¨λ°”일 UI κ°œμ„ 

πŸ§‘β€πŸ’» λ§Ήμ€λΉˆ

  • 곡톡 μ»΄ν¬λ„ŒνŠΈ μ œμž‘: Modal, Floating Box, Avatar λ“±
  • μ²΄ν—˜ 상세 νŽ˜μ΄μ§€ κ΅¬ν˜„
    • 이미지 λ·°μ–΄, μ†Œκ°œ, Kakao Map, μΊ˜λ¦°λ” μ˜ˆμ•½ κΈ°λŠ₯, 리뷰 νŽ˜μ΄μ§€λ„€μ΄μ…˜ 포함
  • μ²΄ν—˜ 등둝/μˆ˜μ • νŽ˜μ΄μ§€ 초기 UI 및 둜직 κ΅¬ν˜„
  • UX κ°œμ„ μ„ μœ„ν•œ μ„ΈλΆ€ μΈν„°λž™μ…˜ κ΅¬ν˜„

πŸ§‘β€πŸ’» 이찬호

  • Oracle Cloud Infrastructure(OCI) 기반 ν΄λΌμš°λ“œ 인프라 섀계
  • GitHub Actions 및 GHCR 기반 CI/CD νŒŒμ΄ν”„λΌμΈ ꡬ좕
  • Docker λ©€ν‹°μŠ€ν…Œμ΄μ§€ λΉŒλ“œ 기반 μ»¨ν…Œμ΄λ„ˆν™” ꡬ성
  • Nginx + Let’s Encrypt 기반 HTTPS ν™˜κ²½ ꡬ성
  • 도메인(globalnomad.site) 및 DNS μ„€μ •
  • 곡톡 μ»΄ν¬λ„ŒνŠΈ(λ“œλ‘­λ‹€μš΄) 개발
  • λ§ˆμ΄νŽ˜μ΄μ§€ (λ‚΄ 정보, μ²΄ν—˜ ν˜„ν™©, μ˜ˆμ•½ λ‚΄μ—­, ν›„κΈ° μž‘μ„± λ“±) κ΅¬ν˜„

πŸ“š 기술 μŠ€νƒ

μ–Έμ–΄

TypeScript

ν”„λ ˆμž„μ›Œν¬

Next JS

νŒ¨ν‚€μ§€ λ§€λ‹ˆμ €

PNPM

μŠ€νƒ€μΌλ§

TailwindCSS

μ½”λ“œ ν¬λ§·νŒ…

ESLint Prettier

μƒνƒœ 관리

Zustand React Query

API 톡신

Axios

지도 API

KakaoMap

ν˜‘μ—… 도ꡬ

GitHub Discord Figma

인프라

Oracle GitHub Actions Docker Nginx

πŸ› οΈ μ£Όμš” κΈ°λŠ₯

  1. μ²΄ν—˜ 등둝 / μ˜ˆμ•½
    μ‚¬μš©μžλŠ” ν˜ΈμŠ€νŠΈλ‘œμ„œ μžμ‹ λ§Œμ˜ μ²΄ν—˜μ„ 등둝할 수 있으며,
    λ‹€λ₯Έ μ‚¬μš©μžλŠ” κ²ŒμŠ€νŠΈλ‘œμ„œ μ›ν•˜λŠ” μ²΄ν—˜μ„ μ„ νƒν•˜μ—¬ μ˜ˆμ•½ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

  2. μΉ΄ν…Œκ³ λ¦¬ 기반 μ²΄ν—˜ 탐색

    • λ‹€μ–‘ν•œ μΉ΄ν…Œκ³ λ¦¬λ‘œ μ²΄ν—˜μ„ λΆ„λ₯˜ν•˜μ—¬ 탐색 κ°€λŠ₯
    • 검색 / 필터링 / μ •λ ¬ κΈ°λŠ₯ 제곡
  3. 지도 + μΊ˜λ¦°λ” 기반 μ˜ˆμ•½

    • Kakao Map을 ν†΅ν•œ μœ„μΉ˜ 기반 μ²΄ν—˜ 확인
    • μ˜ˆμ•½ κ°€λŠ₯ 일자λ₯Ό μ§κ΄€μ μœΌλ‘œ 확인 κ°€λŠ₯ν•œ μΊ˜λ¦°λ” UI 제곡
  4. μ‹€μ‹œκ°„ μ•Œλ¦Ό κΈ°λŠ₯

    • μ²΄ν—˜ 승인, 거절 λ“± μ£Όμš” ν™œλ™μ— λŒ€ν•œ μ‹€μ‹œκ°„ μ•Œλ¦Ό 제곡
  5. ν›„κΈ° μž‘μ„± μ‹œμŠ€ν…œ

    • μ²΄ν—˜ μ°Έμ—¬ ν›„ 리뷰 μž‘μ„± κ°€λŠ₯
    • λ‹€λ₯Έ μ‚¬μš©μžμ˜ ν›„κΈ° 확인을 톡해 신뒰도 확보

πŸ“ 디렉토리 ꡬ쑰

src/
β”œβ”€β”€ actions/ # μ„œλ²„ μ•‘μ…˜ ν•¨μˆ˜ μ •μ˜
β”œβ”€β”€ apis/ # API 호좜 κ΄€λ ¨ ν•¨μˆ˜ λͺ¨μŒ
β”œβ”€β”€ app/ # Next.js 13 App Router 기반 라우트
β”‚ β”œβ”€β”€ (non-header)/ # 헀더가 ν•„μš” μ—†λŠ” νŽ˜μ΄μ§€ 폴더
β”‚ β”‚ β”œβ”€β”€ νŽ˜μ΄μ§€ν΄λ”/
β”‚ β”‚ └── νŽ˜μ΄μ§€ν΄λ”/
β”‚ β”œβ”€β”€ (with-header)/ # 헀더가 ν•„μš”ν•œ νŽ˜μ΄μ§€ 폴더
β”‚ β”‚ β”œβ”€β”€ νŽ˜μ΄μ§€ν΄λ”/
β”‚ β”‚ └── νŽ˜μ΄μ§€ν΄λ”/
β”‚ β”œβ”€β”€ api/ # Next.js API 라우트
β”‚ β”œβ”€β”€ globals.css # κΈ€λ‘œλ²Œ μŠ€νƒ€μΌ
β”‚ β”œβ”€β”€ layout.tsx # 루트 λ ˆμ΄μ•„μ›ƒ
β”‚ β”œβ”€β”€ loading.tsx # μ „μ—­ λ‘œλ”© UI
β”‚ β”œβ”€β”€ not-found.tsx # 404 νŽ˜μ΄μ§€
β”‚ └── error.tsx # μ—λŸ¬ νŽ˜μ΄μ§€
β”œβ”€β”€ components/ # μž¬μ‚¬μš© κ°€λŠ₯ν•œ 곡톡 μ»΄ν¬λ„ŒνŠΈ
β”œβ”€β”€ constants/ # μƒμˆ˜ μ •μ˜ (예: μ˜΅μ…˜ 리슀트, URL λ“±)
β”œβ”€β”€ contexts/ # μ „μ—­ Context μ •μ˜ (예: ν…Œλ§ˆ, λͺ¨λ‹¬ λ“±)
β”œβ”€β”€ hooks/ # μ»€μŠ€ν…€ ν›…
β”œβ”€β”€ lib/ # μœ ν‹Έμ„± ν•¨μˆ˜ 및 μ™ΈλΆ€ 라이브러리 μ„€μ •
β”œβ”€β”€ stores/ # Zustand λ“± μ „μ—­ μƒνƒœ 관리
β”œβ”€β”€ types/ # μ „μ—­ TypeScript νƒ€μž… μ •μ˜
β”œβ”€β”€ ui/ # λ””μžμΈ μ‹œμŠ€ν…œ 기반 UI μ»΄ν¬λ„ŒνŠΈ
└── utils/ # 곡톡 μœ ν‹Έ ν•¨μˆ˜

πŸ› οΈ μ»¨λ²€μ…˜


πŸ–ŠοΈ Git Flow

브랜치λͺ… μ„€λͺ…
main 배포 브랜치
develop 톡합 개발 브랜치
feat/* κΈ°λŠ₯ 개발 브랜치
fix/* 버그 μˆ˜μ • 브랜치
style/* μŠ€νƒ€μΌ μˆ˜μ • 브랜치
docs/* λ¬Έμ„œ μž‘μ„± 및 μˆ˜μ • 브랜치

πŸ“‚ 폴더/파일λͺ… 넀이밍 μ»¨λ²€μ…˜

λŒ€μƒ κ·œμΉ™ μ˜ˆμ‹œ
폴더λͺ… μΌ€λ°₯μΌ€μ΄μŠ€ (kebab-case) components, user-profile
μ»΄ν¬λ„ŒνŠΈ 파일λͺ… νŒŒμŠ€μΉΌμΌ€μ΄μŠ€ (PascalCase) UserProfile.tsx
이미지/μ•„μ΄μ½˜ 파일λͺ… μΌ€λ°₯μΌ€μ΄μŠ€ (kebab-case) logo-icon.png, profile-default.png
ν•¨μˆ˜λͺ…/λ³€μˆ˜λͺ… μΉ΄λ©œμΌ€μ΄μŠ€ (camelCase) fetchUserData, userList
ν™˜κ²½λ³€μˆ˜ λŒ€λ¬Έμž + μŠ€λ„€μ΄ν¬μΌ€μ΄μŠ€ NEXT_PUBLIC_API_URL

🌿 브랜치 넀이밍 μ»¨λ²€μ…˜

브랜치 μ’…λ₯˜ 넀이밍 κ·œμΉ™ μ˜ˆμ‹œ
κΈ°λŠ₯ 개발 feat/{이슈번호} feat/13
버그 μˆ˜μ • fix/{이슈번호} fix/24
λ¬Έμ„œ μˆ˜μ • docs/{이슈번호} docs/58
μŠ€νƒ€μΌ μˆ˜μ • style/{이슈번호} style/33

🧐 컀밋 λ©”μ‹œμ§€ νƒ€μž… (Commit Type)

Type Description
feat κΈ°λŠ₯ μΆ”κ°€
feat 이미지/μ•„μ΄μ½˜ μΆ”κ°€
fix 버그 μˆ˜μ •
docs λ¬Έμ„œ μˆ˜μ •
style UI, μŠ€νƒ€μΌ κ΄€λ ¨ μΆ”κ°€ 및 μˆ˜μ •
refactor λ¦¬νŒ©ν† λ§
chore μ„€μ •, λΉŒλ“œ λ³€κ²½

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 96.8%
  • CSS 1.5%
  • Other 1.7%