Skip to content

๐Ÿง‘๐Ÿปโ€๐Ÿ’ป IT์ธ๋“ค๋ผ๋ฆฌ MO์—ฌ JI์‹์„ ๋‚˜๋ˆ„๋Š” ๋ชจ์ž„ ๊ด€๋ฆฌ ์„œ๋น„์Šค | IT-MOJI

License

Notifications You must be signed in to change notification settings

it-moji/it-moji-client

Repository files navigation

๐Ÿง‘๐Ÿปโ€๐Ÿ’ป IT-MOJI (์ž‡๋ชจ์ง€) ํ”„๋ก ํŠธ์—”๋“œ ๋ ˆํฌ์ง€ํ† ๋ฆฌ

์ž‡๋ชจ์ง€ ์ธํŠธ๋กœ


๋ชฉ์ฐจ

  1. ๐Ÿš€ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ
  2. ๐Ÿ“š ์‚ฌ์šฉ ๊ธฐ์ˆ 
  3. โœ… ์ปจ๋ฒค์…˜ ๊ฐ€์ด๋“œ
  4. โš’๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ
  5. ๐Ÿ”— ์ฐธ์กฐ ๋ฌธ์„œ
  6. ๐ŸŽ–๏ธ Contributors


๐Ÿš€ ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

IT-MOJI๋Š” IT์ธ๋“ค๋ผ๋ฆฌ ๋ชจ์—ฌ ์ง€์‹์„ ๋‚˜๋ˆ„๋Š” ๋ชจ์ž„์ด๋ผ๋Š” ๋œป์œผ๋กœ 24๋…„ 02์›” ๋ถ€ํ„ฐ ์‹œ์ž‘๋œ ๋ชจ๊ฐ์ฝ” ์Šคํ„ฐ๋”” ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ํŽธํ•˜๊ฒŒ ์šด์˜ํ•˜๊ธฐ ์œ„ํ•ด ์‹œ์ž‘๋œ ํ”„๋กœ์ ํŠธ์—์š”. ํ˜„์žฌ๋Š” MVP์ธ ์ถœ์„ ๊ด€๋ฆฌ - ๋””์Šค์ฝ”๋“œ TIL ํ…์ŠคํŠธ ํŒŒ์‹ฑ ๊ธฐ๋Šฅ๊นŒ์ง€ ๊ตฌํ˜„๋˜์–ด ์žˆ์ง€๋งŒ, ์ถ”ํ›„ ์Šคํ„ฐ๋””์› ๋ชจ์ง‘ ๊ด€๋ฆฌ, ์Šคํ„ฐ๋””์› ์ถœ์„ ์ง‘๊ณ„ ๋ฐ ํ†ต๊ณ„ ๊ด€๋ฆฌ ๋“ฑ ๋‹ค์–‘ํ•œ ๊ธฐ๋Šฅ์ด ์ถ”๊ฐ€๋  ์˜ˆ์ •์ด์—์š”.


์ฃผ์š” ๊ธฐ๋Šฅ

  • ์Šคํ„ฐ๋””์› ์ถœ์„ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ
    • ๋””์Šค์ฝ”๋“œ TIL ํ…์ŠคํŠธ ํŒŒ์‹ฑ ๊ธฐ๋Šฅ
    • ์ถœ์„ ์˜ต์…˜ ๋ฐ ๋ฐฐ์ง€ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ
  • ๊ณต์ง€์‚ฌํ•ญ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ

์ถœ์‹œ ์˜ˆ์ • ๊ธฐ๋Šฅ

  • ์Šคํ„ฐ๋””์› ์ถœ์„ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ
    • ์ถœ์„ ์ง‘๊ณ„ ๋ฐ ํ†ต๊ณ„ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ
  • ์Šคํ„ฐ๋””์› ๋ชจ์ง‘ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ
    • ๋ชจ์ง‘ ๊ณต๊ณ  ๊ด€๋ฆฌ ๊ธฐ๋Šฅ
  • ์Šคํ„ฐ๋””์› ๋“ฑ๊ธ‰ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ
    • ๋ณด์ƒ ๋ฐ ํœด๊ฐ€ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ
  • ์Šคํ„ฐ๋”” ์†Œ๊ฐœ๊ธ€ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ (CMS)
  • ์Šคํ„ฐ๋”” ํ–‰์‚ฌ ๊ด€๋ฆฌ ๊ธฐ๋Šฅ

๋ชจ๊ฐ์ฝ” ์šด์˜์ง„ ๋Œ€์ƒ ์‚ฌ์šฉ๋ฒ• ์•ˆ๋‚ด ์˜์ƒ

๋””์Šค์ฝ”๋“œ TIL ํ…์ŠคํŠธ ํŒŒ์‹ฑ ๊ธฐ๋Šฅ ์‚ฌ์šฉ๋ฒ• ์•ˆ๋‚ด ์˜์ƒ (์†Œ๋ฆฌ O)

IT-MOJI-.-.-.-.mp4


๐Ÿ“š ์‚ฌ์šฉ ๊ธฐ์ˆ 

  • ํ”„๋ ˆ์ž„์›Œํฌ: Next.js, React, React Compiler (Beta)
  • ์–ธ์–ด: TypeScript
  • ์„œ๋ฒ„ ์ƒํƒœ๊ด€๋ฆฌ: Tanstack Query
  • ํด๋ผ์ด์–ธํŠธ ์ƒํƒœ๊ด€๋ฆฌ: Zustand
  • ํผ ์ƒํƒœ๊ด€๋ฆฌ: Mantine Form
  • ์Šคํ‚ค๋งˆ ์œ ํšจ์„ฑ ๊ฒ€์‚ฌ: Zod
  • ์Šคํƒ€์ผ ํ”„๋ ˆ์ž„์›Œํฌ: TailWindCSS, Mantine, Motion, Iconify React
  • ํ…Œ์ŠคํŠธ: StoryBook, Vitest, MSW
  • ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ €: pnpm
  • ์„œ๋น„์Šค ๋ฐฐํฌ: AWS Amplify
  • ์Šคํ† ๋ฆฌ๋ถ ๋ฐฐํฌ: GitHub Pages, GitHub Actions

โœ… ์ปจ๋ฒค์…˜ ๊ฐ€์ด๋“œ

์ฝ”๋“œ ์ปจ๋ฒค์…˜

์ถ”ํ›„ ์œ„ํ‚ค์— ์ถ”๊ฐ€๋  ์˜ˆ์ •์ด์—์š”.


์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ปจ๋ฒค์…˜

์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์ปจ๋ฒค์…˜์€ ๊ธฐ๋ณธ์ ์œผ๋กœ Husky์™€ commitlint๋ฅผ ํ†ตํ•ด ๊ด€๋ฆฌ๋ผ์š”.


์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ํ˜•์‹

[์œ ํ˜•]: ์ œ๋ชฉ

๋ณธ๋ฌธ

์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ์œ ํ˜•

์ปค๋ฐ‹ ์œ ํ˜• ์˜๋ฏธ
feat ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์˜ ์ถ”๊ฐ€
fix ๋ฒ„๊ทธ ์ˆ˜์ •
docs ๋ฌธ์„œ ์ˆ˜์ •
style ์ฝ”๋“œ ํฌ๋งทํŒ…, ์„ธ๋ฏธ ์ฝœ๋ก  ๋“ฑ ์ฝ”๋“œ ์ž์ฒด์˜ ๋ณ€๊ฒฝ์ด ์—†๋Š” ๊ฒฝ์šฐ
refactor ์ฝ”๋“œ ๋ฆฌํŒฉํ† ๋ง
test ํ…Œ์ŠคํŠธ ์ฝ”๋“œ, ๋ฆฌํŒฉํ† ๋ง ํ…Œ์ŠคํŠธ ์ฝ”๋“œ์˜ ์ถ”๊ฐ€
chore ํŒจํ‚ค์ง€ ๋งค๋‹ˆ์ € ์ˆ˜์ • ๋˜๋Š” ๊ทธ ์™ธ ๊ธฐํƒ€ ์ˆ˜์ • ex) .gitignore
design CSS ๋“ฑ ์‚ฌ์šฉ์ž UI ๋””์ž์ธ ๋ณ€๊ฒฝ
comment ํ•„์š”ํ•œ ์ฃผ์„์˜ ์ถ”๊ฐ€ ๋ฐ ๋ณ€๊ฒฝ
rename ํŒŒ์ผ ๋˜๋Š” ํด๋” ๋ช…์„ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ์˜ฎ๊ธฐ๋Š” ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•œ ๊ฒฝ์šฐ
remove ํŒŒ์ผ์„ ์‚ญ์ œํ•˜๋Š” ์ž‘์—…๋งŒ ์ˆ˜ํ–‰ํ•œ ๊ฒฝ์šฐ
hotfix ๊ธ‰ํ•˜๊ฒŒ ์น˜๋ช…์ ์ธ ๋ฒ„๊ทธ๋ฅผ ๊ณ ์ณ์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ

์ƒ์„ธ ์ปจ๋ฒค์…˜

  1. ์ œ๋ชฉ๊ณผ ๋ณธ๋ฌธ์„ ๋นˆํ–‰์œผ๋กœ ๋ถ„๋ฆฌ
    • ์ปค๋ฐ‹ ์œ ํ˜• ์ดํ›„ ์ œ๋ชฉ๊ณผ ๋ณธ๋ฌธ์€ ํ•œ๊ธ€๋กœ ์ž‘์„ฑํ•˜์—ฌ ๋‚ด์šฉ์ด ์ž˜ ์ „๋‹ฌ๋  ์ˆ˜ ์žˆ๋„๋ก ํ•  ๊ฒƒ
    • ์ œ๋ชฉ ๋์—๋Š” ๋งˆ์นจํ‘œ(.) ๊ธˆ์ง€
    • ๋ณธ๋ฌธ์—๋Š” ๋ณ€๊ฒฝํ•œ ๋‚ด์šฉ๊ณผ ์ด์œ  ์„ค๋ช… (์–ด๋–ป๊ฒŒ๋ณด๋‹ค๋Š” ๋ฌด์—‡ & ์™œ๋ฅผ ์„ค๋ช…)
    • ๋ณธ๋ฌธ์— ์—ฌ๋Ÿฌ๊ฐ€์ง€ ํ•ญ๋ชฉ์ด ์žˆ๋‹ค๋ฉด ๊ธ€๋จธ๋ฆฌ ๊ธฐํ˜ธ(-)๋ฅผ ํ†ตํ•ด ๊ฐ€๋…์„ฑ ๋†’์ด๊ธฐ
  2. ํ•œ ์ปค๋ฐ‹์—๋Š” ํ•œ ๊ฐ€์ง€ ๋ฌธ์ œ๋งŒ ๋‹ด๊ธฐ
    • ์ถ”์  ๊ฐ€๋Šฅํ•˜๊ฒŒ ์œ ์ง€ํ•ด์ฃผ๊ธฐ (๋„ˆ๋ฌด ๋งŽ์€ ๋ฌธ์ œ๋ฅผ ํ•œ ์ปค๋ฐ‹์— ๋‹ด์œผ๋ฉด ์ถ”์ ํ•˜๊ธฐ ์–ด๋ ค์›€)

๊นƒ ๋ธŒ๋žœ์น˜ ์ „๋žต

โ”œโ”€โ”€ main
    โ”œโ”€โ”€ hotfix
    โ””โ”€โ”€ dev
        โ”œโ”€โ”€ feature/*
        โ””โ”€โ”€ refactor/*

๋ธŒ๋žœ์น˜๋ช… ์šฉ๋„
main ์„œ๋น„์Šค ์ถœ์‹œ ๋ธŒ๋žœ์น˜์—์š”
hotfix ์ถœ์‹œ๋œ ๋ฒ„์ „์—์„œ ๋ฐœ์ƒํ•œ ์น˜๋ช…์ ์ธ ๋ฒ„๊ทธ๋ฅผ ๊ธ‰ํžˆ ์ˆ˜์ •ํ•˜๋Š” ๋ธŒ๋žœ์น˜์—์š”
dev ์„œ๋น„์Šค ์ถœ์‹œ ์ „ ๊ฐœ๋ฐœ ๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ธŒ๋žœ์น˜์—์š”
feature/* ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ์˜ ๊ฐœ๋ฐœ ๋ฐ ํ…Œ์ŠคํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ธŒ๋žœ์น˜์—์š”
refactor/* ๊ฐœ๋ฐœ๋œ ๊ธฐ๋Šฅ์„ ๋ฆฌํŒฉํ„ฐ๋งํ•˜๋Š” ๋ธŒ๋žœ์น˜์—์š”

๋ธŒ๋žœ์น˜ ๋ช…์— ์™€์ผ๋“œ ์นด๋“œ(*)๋กœ ํ‘œ์‹œ๋œ ์ด๋ฆ„์˜ ๊ฒฝ์šฐ ๋Œ€์‹œ(์ผ€๋ฐฅ) ์ผ€์ด์Šค๋ฅผ ์ ์šฉํ•ด์š”. ex) feature/attendance-badge


โš’๏ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ

์š”๊ตฌ ํ™˜๊ฒฝ


ํ™˜๊ฒฝ ๋ณ€์ˆ˜

ํ™˜๊ฒฝ ๋ณ€์ˆ˜๋Š” ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ ์ฃผ์†Œ ํ•˜์œ„์˜ .env.local ํŒŒ์ผ์— ์ž…๋ ฅํ•ด ์ฃผ์„ธ์š”.

  • MOCK_ENABLED: MSW ์‚ฌ์šฉ ์—ฌ๋ถ€๋ฅผ ๋‚˜ํƒ€๋‚ด์š”. ๊ฐ’์ด true์ธ์ง€๋งŒ ํŒ๋‹จํ•ด์š”.
  • NEXT_PUBLIC_DOMAIN_ADDRESS: Next.js ์„œ๋ฒ„ ์‹คํ–‰ ์ฃผ์†Œ์—์š”.
  • NEXT_PUBLIC_SERVER_DOMAIN_ADDRESS: ๋ฐฑ์—”๋“œ API ์„œ๋ฒ„ ์‹คํ–‰ ์ฃผ์†Œ์—์š”. MSW๊ฐ€ ์‹คํ–‰ ์ค‘์ด๋ผ๋ฉด ์•„๋ฌด ์ฃผ์†Œ๋‚˜ ์ž…๋ ฅํ•ด๋„ ๋ผ์š”.
  • STORYBOOK_DOMAIN_ADDRESS: ์Šคํ† ๋ฆฌ๋ถ ๋ฌธ์„œ ์ฃผ์†Œ์—์š”. ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ์— ์‚ฌ์šฉ๋˜๋ฉฐ, ํ•„์ˆ˜ ๊ฐ’์€ ์•„๋‹ˆ์—์š”.
  • SWAGGER_DOMAIN_ADDRESS: ์Šค์›จ๊ฑฐ ๋ฌธ์„œ ์ฃผ์†Œ์—์š”. ๋ฆฌ๋‹ค์ด๋ ‰ํŠธ์— ์‚ฌ์šฉ๋˜๋ฉฐ, ํ•„์ˆ˜ ๊ฐ’์€ ์•„๋‹ˆ์—์š”.
# ํ™˜๊ฒฝ ๋ณ€์ˆ˜ ์˜ˆ์‹œ

MOCK_ENABLED=true

NEXT_PUBLIC_DOMAIN_ADDRESS=http://localhost:3000
NEXT_PUBLIC_SERVER_DOMAIN_ADDRESS=http://localhost:5000

STORYBOOK_DOMAIN_ADDRESS=http://localhost:6006
SWAGGER_DOMAIN_ADDRESS=http://localhost:8080

์‹คํ–‰ ๊ฐ€์ด๋“œ

1. ํ”„๋กœ์ ํŠธ ๊ฐ€์ ธ์˜ค๊ธฐ

git clone https://github.com/it-moji/it-moji-client.git ./

2. ์˜์กด์„ฑ ์„ค์น˜ํ•˜๊ธฐ

pnpm install

3. ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹คํ–‰ํ•˜๊ธฐ

pnpm dev:service

๐Ÿ”— ์ฐธ์กฐ ๋ฌธ์„œ


๐ŸŽ–๏ธ Contributors

@LC-02s Lead @ChaeYubin
@LC-02s ํ”„๋กœํ•„ @ChaeYubin ํ”„๋กœํ•„

Important

IT-MOJI๋Š” ํ˜„์žฌ ์™ธ๋ถ€์ธ์˜ ๊ธฐ์—ฌ๋ฅผ ๋ฐ›์ง€ ์•Š๊ณ  ์žˆ์–ด์š”.

์ œ์•ˆํ•ด ์ฃผ์‹ค ๋‚ด์šฉ์ด ์žˆ๋‹ค๋ฉด, ์ด์Šˆ๋ฅผ ๋“ฑ๋กํ•ด ์ฃผ์‹œ๊ฑฐ๋‚˜, chanlee1007@naver.com์œผ๋กœ ์—ฐ๋ฝ ๋ถ€ํƒ๋“œ๋ฆด๊ฒŒ์š”.


About

๐Ÿง‘๐Ÿปโ€๐Ÿ’ป IT์ธ๋“ค๋ผ๋ฆฌ MO์—ฌ JI์‹์„ ๋‚˜๋ˆ„๋Š” ๋ชจ์ž„ ๊ด€๋ฆฌ ์„œ๋น„์Šค | IT-MOJI

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •