Skip to content

KwanHoo/isekai-fe

ย 
ย 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

์ด์„ธ๊ณ„ ์“ฑ๋‹ท์ปด ๐Ÿฅ‡

๋กœ๊ณ 

1. ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ

๐Ÿ›’ ํ”„๋กœ์ ํŠธ ๊ฐœ์š”

ํ”„๋กœ์ ํŠธ ํŒ€๋ช… : ์ŠคํŒŒ๋กœ์Šค 4๊ธฐ ์ด์„ธ๊ณ„ ์“ฑ๋‹ท์ปด ํ”„๋กœ์ ํŠธ ๊ธฐ๊ฐ„ : 2024.02.23 ~ 2024.04.17

ํ”„๋กœ์ ํŠธ ์†Œ๊ฐœ : ์ดˆ๊ธฐ ๊ธฐํš๋ถ€ํ„ฐ ๋ฐฐํฌ๊นŒ์ง€, A๋ถ€ํ„ฐ Z๊นŒ์ง€ ์ „ ๊ณผ์ •์„ ์ง์ ‘ ๊ฐœ๋ฐœํ•œ ์“ฑ๋‹ท์ปด ํด๋ก  ํ”„๋กœ์ ํŠธ

์ด์„ธ๊ณ„์“ฑ๋‹ท์ปด

์“ฑ๋‹ท์ปดํ์•Œ

๐Ÿ’ป ๊ธฐํš ๋ฐฐ๊ฒฝ

ํ˜„๋Œ€์ ์ธ ์˜จ๋ผ์ธ ์‡ผํ•‘ ๊ฒฝํ—˜์„ ์žฌํ˜„ํ•˜๊ณ ์ž ์‹œ์ž‘ํ•œ ํ”„๋กœ์ ํŠธ๋กœ, ์‹ค์ œ ์‹œ์žฅ์—์„œ์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ถ„์„ํ•˜์—ฌ ์‚ฌ์šฉ์ž ์ค‘์‹ฌ์˜ ํŽธ๋ฆฌํ•œ ์‡ผํ•‘ ํ”Œ๋žซํผ ๊ตฌ์ถ•์„ ๋ชฉํ‘œ๋กœ ํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ์‹ค์ œ ์‡ผํ•‘๋ชฐ ์šด์˜์˜ ์ „ ๊ณผ์ •์„ ์ดํ•ดํ•˜๊ณ , ์ตœ์‹  ๊ธฐ์ˆ ์„ ์ ์šฉํ•ด ๋ณด๋Š” ๊ฒƒ์ด ์ฃผ์š” ๋™๊ธฐ์˜€์Šต๋‹ˆ๋‹ค.

๐Ÿฅ… ํ”„๋กœ์ ํŠธ ๋ชฉํ‘œ

๋ณธ ํ”„๋กœ์ ํŠธ์˜ ๋ชฉํ‘œ๋Š” ์‚ฌ์šฉ์ž์—๊ฒŒ ์ตœ์ ํ™”๋œ ์‡ผํ•‘ ๊ฒฝํ—˜์„ ์ œ๊ณตํ•˜๋ฉฐ, ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ๋ฅผ ํ†ตํ•ด ์ƒํ’ˆ ์ •๋ณด์˜ ์ •ํ™•์„ฑ๊ณผ ์‹ ๋ขฐ์„ฑ์„ ๋ณด์žฅํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ง๊ด€์ ์ธ UI/UX ๋””์ž์ธ์„ ํ†ตํ•ด ์‚ฌ์šฉ์ž ํŽธ์˜์„ฑ์„ ๊ทน๋Œ€ํ™”ํ•˜๊ณ , ๋ชจ๋“  ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ์˜ ํ˜‘์—…๊ณผ ๊ธฐ์ˆ  ์Šคํƒ์˜ ์ตœ์‹ ์„ฑ์„ ์œ ์ง€ํ•˜์—ฌ, ์‹ค์ œ ์—…๊ณ„ ํ‘œ์ค€์— ๋ถ€ํ•ฉํ•˜๋Š” ํ”„๋กœ์ ํŠธ ๊ตฌํ˜„์„ ๋ชฉํ‘œ๋กœ ํ•ฉ๋‹ˆ๋‹ค.

2. ํ”„๋กœ์ ํŠธ ๋ฉค๋ฒ„

Name ๋ฐ•์ค€ํ‘œ ๊ตฌํฌ์˜ ๊น€๊ด€ํ˜ธ ๋ฐ•ํ•˜์œค ์žฅ๋ฏธ๋ฆผ
Position ํŒ€์žฅ
ํ”„๋ก ํŠธ์—”๋“œ
๋ฐฑ์—”๋“œ
ํ”„๋ก ํŠธ์—”๋“œ ๋ฐฑ์—”๋“œ ๋ฐฑ์—”๋“œ ๋ฐฑ์—”๋“œ
Git wnsvy7203 heeyoung KwanHoo hyoonpark mirimy97

3. ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ๋ฐ ์‚ฌ์šฉ ๊ธฐ์ˆ 

๐Ÿ”จ ๊ฐœ๋ฐœ ์–ธ์–ด ๋ฐ ๋„๊ตฌ

  • BE Spring boot(3.1.9) , IntelliJ(2023.2.5)

  • FE TypeScript(5.1.3), Visual Studio Code(1.84.2)

  • ๊ณตํ†ต

๐Ÿ›  ์‚ฌ์šฉํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๋ฐ ํ”„๋ ˆ์ž„์›Œํฌ

๋ถ„๋ฅ˜ ๊ธฐ์ˆ  ์Šคํƒ
Common GitHub, Notion, Discord, Figma, Git-Flow
Front-end Next.js(v14.1.3), TypeScript(5.1.3), Node.js(20.11.1), npm(10.4.0)
Back-end JDK(17), gradle(8.5), ORM (JPA), Spring Security, swagger(3)
CI/CD AWS EC2, Nginx, Ubuntu(Ubuntu 20.04 LTS), Docker(25.0.4), Jenkins(2.440.1), Docker-compose(2.23.0)
Database MySQL(8.0.36), Redis(7.2.4)

๐Ÿ”ง ์„œ๋ฒ„ ๊ตฌ์„ฑ ๋ฐ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

  • ์•„ํ‚คํ…์ฒ˜ ๊ตฌ์กฐ๋„

แ„‹แ…กแ„แ…ตแ„แ…ฆแ†จแ„Žแ…ฅ.png

  • ERD

CloneSSG_v3.png

๐Ÿ—‚๏ธ Directory ๊ตฌ์กฐ๋„

  • BE
๐Ÿ“‚src
    โ”œโ”€โ”€๐Ÿ“‚main
    โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚generated
    โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚com
    โ”‚ย ย  โ”‚ย ย      โ””โ”€โ”€๐Ÿ“‚isekai
    โ”‚ย ย  โ”‚ย ย          โ””โ”€โ”€๐Ÿ“‚ssgserver
    โ”‚ย ย  โ”‚ย ย              
    โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚java
    โ”‚ย ย  โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚com
    โ”‚ย ย  โ”‚ย ย      โ””โ”€โ”€๐Ÿ“‚isekai
    โ”‚ย ย  โ”‚ย ย          โ””โ”€โ”€๐Ÿ“‚ssgserver
    โ”‚ย ย  โ”‚ย ย              โ”œโ”€โ”€๐Ÿ“‚bundle
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚controller
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚dto
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚entity
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚enums
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚repository
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚service
    โ”‚ย ย  โ”‚ย ย              โ”œโ”€โ”€๐Ÿ“‚cart
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚controller
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚dto
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚entity
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚repository
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚service
    โ”‚ย ย  โ”‚ย ย              โ”œโ”€โ”€๐Ÿ“‚category
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚controller
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚dto
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚entity
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚repository
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚service
    โ”‚ย ย  โ”‚ย ย              โ”œโ”€โ”€๐Ÿ“‚common
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚dto
    โ”‚ย ย  โ”‚ย ย              โ”œโ”€โ”€๐Ÿ“‚config
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚aop
    โ”‚ย ย  โ”‚ย ย              โ”œโ”€โ”€๐Ÿ“‚coupon
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚entity
    โ”‚ย ย  โ”‚ย ย              โ”œโ”€โ”€๐Ÿ“‚delivery
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚controller
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚dto
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚entity
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚enums
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚repository
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚service
    โ”‚ย ย  โ”‚ย ย              โ”œโ”€โ”€๐Ÿ“‚deliveryAddress
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚controller
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚dto
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚entity
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚repository
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚service
    โ”‚ย ย  โ”‚ย ย              โ”œโ”€โ”€๐Ÿ“‚exception
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚common
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚constants
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚dto
    โ”‚ย ย  โ”‚ย ย              โ”œโ”€โ”€๐Ÿ“‚image
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚controller
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚dto
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚entity
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚repository
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚service
    โ”‚ย ย  โ”‚ย ย              โ”œโ”€โ”€๐Ÿ“‚member
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚controller
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚dto
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚entity
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚enums
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚repository
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚service
    โ”‚ย ย  โ”‚ย ย              โ”œโ”€โ”€๐Ÿ“‚option
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚controller
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚dto
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚entity
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚repository
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚service
    โ”‚ย ย  โ”‚ย ย              โ”œโ”€โ”€๐Ÿ“‚order
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚controller
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚dto
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚entity
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚repository
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚service
    โ”‚ย ย  โ”‚ย ย              โ”œโ”€โ”€๐Ÿ“‚product
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚controller
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚dto
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚entity
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚enums
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚repository
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚service
    โ”‚ย ย  โ”‚ย ย              โ”œโ”€โ”€๐Ÿ“‚redis
    โ”‚ย ย  โ”‚ย ย              โ”œโ”€โ”€๐Ÿ“‚report
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚entity
    โ”‚ย ย  โ”‚ย ย              โ”œโ”€โ”€๐Ÿ“‚review
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚controller
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚dto
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚entity
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚enums
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚repository
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚service
    โ”‚ย ย  โ”‚ย ย              โ”œโ”€โ”€๐Ÿ“‚s3
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚controller
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚service
    โ”‚ย ย  โ”‚ย ย              โ”œโ”€โ”€๐Ÿ“‚seller
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚controller
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚dto
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚entity
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚enums
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ”œโ”€โ”€๐Ÿ“‚repository
    โ”‚ย ย  โ”‚ย ย              โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚service
    โ”‚ย ย  โ”‚ย ย              โ””โ”€โ”€๐Ÿ“‚util
    โ”‚ย ย  โ”‚ย ย                  โ””โ”€โ”€๐Ÿ“‚jwt
    โ”‚ย ย  โ””โ”€โ”€๐Ÿ“‚resources
    โ””โ”€โ”€๐Ÿ“‚test
  • FE
๐Ÿ“‚public
|---๐Ÿ“‚images      # ์ •์  ์ด๋ฏธ์ง€ ํŒŒ์ผ
|---๐Ÿ“‚svgs        # svg ํŒŒ์ผ
๐Ÿ“‚src
|---๐Ÿ“‚app         # ๋ผ์šฐํŒ… ๊ด€๋ จ ํŒŒ์ผ
|---๐Ÿ“‚components  # ๊ณตํ†ต ์ปดํฌ๋„ŒํŠธ
|---๐Ÿ“‚containers  # ๋ผ์šฐํ„ฐ ํด๋” ๋ณ„ ์ปจํ…์ธ 
|---๐Ÿ“‚hooks       # ๊ณตํ†ต ํ›…
|---๐Ÿ“‚states      # recoil atom ๊ด€๋ จ ํŒŒ์ผ
|---๐Ÿ“‚styles      # ์Šคํƒ€์ผ ์‹œํŠธ ๊ด€๋ จ ๊ณตํ†ต ์š”์†Œ
|---๐Ÿ“‚types       # ํƒ€์ž… ์ •์˜ ํŒŒ์ผ
\---๐Ÿ“‚utils       # ์œ ํ‹ธ์„ฑ ํ•จ์ˆ˜ ๋ฐ API fetch ํ•จ์ˆ˜
		

4. ๊ธฐ๋Šฅ ์†Œ๊ฐœ

๐ŸŽˆ ๊ธฐ๋Šฅ ์†Œ๊ฐœ

  1. ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ : ํšŒ์›๊ฐ€์ž…/๋กœ๊ทธ์ธ, JWT ๋ฐœ๊ธ‰, ์•„์ด๋”” ์ฐพ๊ธฐ, ๋น„๋ฐ€๋ฒˆํ˜ธ ์žฌ์„ค์ •, ํœด๋Œ€ํฐ์ธ์ฆ(coolSMS ์‚ฌ์šฉ) ๊ธฐ๋Šฅ
  2. ์žฅ๋ฐ”๊ตฌ๋‹ˆ : ํšŒ์›/๋น„ํšŒ์› ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ธฐ๋Šฅ. ๋น„ํšŒ์›์˜ ๊ฒฝ์šฐ ์ฟ ํ‚ค๋ฅผ ๋ฐœ๊ธ‰ํ•˜์—ฌ ์ฟ ํ‚ค value๋กœ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ด€๋ฆฌ. ๋น„ํšŒ์›์œผ๋กœ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์ถ”๊ฐ€ํ›„ ๋กœ๊ทธ์ธ์‹œ ๋‹ด์•„๋’€๋˜ ์ƒํ’ˆ ํšŒ์› ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋กœ ์˜ฎ๊ฒจ์ง
  3. ์ฐœํ•˜๊ธฐ : ๋‹จ์ผ์ƒํ’ˆ, ํŠน๊ฐ€, ๋ธŒ๋žœ๋“œ, ์นดํ…Œ๊ณ ๋ฆฌ ์ค‘, ์†Œ ์ฐœํ•˜๊ธฐ ๊ธฐ๋Šฅ
  4. ์นดํ…Œ๊ณ ๋ฆฌ : ์นดํ…Œ๊ณ ๋ฆฌ๋ณ„๋กœ ์ƒํ’ˆ์ด ๋ณด์—ฌ์ง€๊ณ , ์ •๋ ฌ๊ธฐ๋Šฅ๊ณผ ํ•„ํ„ฐ๋ง ๊ธฐ๋Šฅ ์‚ฌ์šฉ ๊ฐ€๋Šฅ
  5. ๊ฒ€์ƒ‰ : ํ‚ค์›Œ๋“œ ์œ„์ฃผ์˜ ๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ
  6. ๊ตฌ๋งค : ๋ฐ”๋กœ๊ตฌ๋งค ๋ฐ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ๊ตฌ๋งค๋ฅผ ํ†ตํ•ด ์ƒํ’ˆ ๊ตฌ๋งค
  7. ๋ฐฐ์†ก : ๋ฐฐ์†ก ์ƒํƒœ ํ™•์ธ
  8. ๋ฆฌ๋ทฐ : ๊ตฌ๋งคํ•œ ์ƒํ’ˆ ๋ฆฌ๋ทฐ ๊ธฐ๋Šฅ

๐Ÿ”Ž ํ™”๋ฉด๋ณ„ ๊ธฐ๋Šฅ ์†Œ๊ฐœ

  • ๋ฉ”์ธํŽ˜์ด์ง€

๋ฉ”์ธํŽ˜์ด์ง€

  • ํ†ตํ•ฉํšŒ์›๊ฐ€์ž… ๋ฐ ๊ฐ„ํŽธํšŒ์›๊ฐ€์ž…
ํšŒ์›๊ฐ€์ž… ํœด๋Œ€ํฐ์ธ์ฆ
ํ†ตํ•ฉํšŒ์›๊ฐ€์ž… ๋˜๋Š” ๊ฐ„ํŽธํšŒ์›๊ฐ€์ž…์„
ํ†ตํ•ด ํšŒ์›๊ฐ€์ž…์„ ์ง„ํ–‰ํ•ฉ๋‹ˆ๋‹ค.
ํ†ตํ•ฉํšŒ์›๊ฐ€์ž…์„ ์ง„ํ–‰ํ•  ๊ฒฝ์šฐ
ํœด๋Œ€ํฐ์ธ์ฆ์„ ํ†ตํ•ด
ํšŒ์›๊ฐ€์ž…์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
  • ๋กœ๊ทธ์ธ

๋กœ๊ทธ์ธ

ํ†ตํ•ฉํšŒ์› ๋˜๋Š” ์†Œ์…œํšŒ์›์œผ๋กœ ๋กœ๊ทธ์ธ์„ ํ•ฉ๋‹ˆ๋‹ค.

  • ํšŒ์›/๋น„ํšŒ์› ์žฅ๋ฐ”๊ตฌ๋‹ˆ
์žฅ๋ฐ”๊ตฌ๋‹ˆ1.PNG ์žฅ๋ฐ”๊ตฌ๋‹ˆ2.PNG ์žฅ๋ฐ”๊ตฌ๋‹ˆ3.PNG
๋น„ํšŒ์›์œผ๋กœ ์žฅ๋ฐ”๊ตฌ๋‹ˆ์—
์ƒํ’ˆ์„ ๋‹ด์Šต๋‹ˆ๋‹ค.
์žฅ๋ฐ”๊ตฌ๋‹ˆ์— ๋“ค์–ด๊ฐ„ ์ƒํ’ˆ์„
ํ™•์ธํ•˜๊ณ  ๋กœ๊ทธ์ธ์„ ํ•ฉ๋‹ˆ๋‹ค.
๋น„ํšŒ์›์œผ๋กœ ๋‹ด์€ ์žฅ๋ฐ”๊ตฌ๋‹ˆ ์ƒํ’ˆ์ด ๋กœ๊ทธ์ธ ํ›„ ํšŒ์›์˜ ์žฅ๋ฐ”๊ตฌ๋‹ˆ๋กœ
์˜ฎ๊ฒจ์ง‘๋‹ˆ๋‹ค.
  • ์ฐœํ•˜๊ธฐ
์นดํ…Œ๊ณ ๋ฆฌ์ฐœ.PNG ์ƒํ’ˆ์ฐœ)
ํšŒ์›์ธ ๊ฒฝ์šฐ ์ž์‹ ์ด ์ข‹์•„ํ•˜๋Š” ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ
์ฐœ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
ํšŒ์›์ธ ๊ฒฝ์šฐ ์ž์‹ ์ด ์ข‹์•„ํ•˜๋Š” ์ƒํ’ˆ์„
์ฐœ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ์นดํ…Œ๊ณ ๋ฆฌ
์นดํ…Œ๊ณ ๋ฆฌ1.PNG ์นดํ…Œ๊ณ ๋ฆฌ2.PNG ์นดํ…Œ๊ณ ๋ฆฌ3.PNG
์นดํ…Œ๊ณ ๋ฆฌ ๋Œ€๋ถ„๋ฅ˜๋ฅผ ํ†ตํ•ด ์›ํ•˜๋Š”
์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
๋Œ€๋ถ„๋ฅ˜๋ฅผ ์„ ํƒํ•˜๋ฉด ์ค‘๋ถ„๋ฅ˜
์นดํ…Œ๊ณ ๋ฆฌ๊ฐ€ ๋‚˜์˜ค๊ฒŒ ๋˜๊ณ  ๊ทธ ์ค‘ ๊ด€์‹ฌ์žˆ๋Š” ์นดํ…Œ๊ณ ๋ฆฌ๋ฅผ ์„ ํƒํ•ฉ๋‹ˆ๋‹ค.
ํ•ด๋‹น ์นดํ…Œ๊ณ ๋ฆฌ์˜ ์ƒํ’ˆ๋“ค์„
๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ •๋ ฌ๊ณผ ํ•„ํ„ฐ๋ง์„ ํ†ตํ•ด ์›ํ•˜๋Š”
์ˆœ์„œ๋กœ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
  • ๊ฒ€์ƒ‰
๊ฒ€์ƒ‰1.PNG ๊ฒ€์ƒ‰2.PNG
๊ฒ€์ƒ‰ ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ๋ณธ์ธ์ด ์›ํ•˜๋Š” ์ƒํ’ˆ์„ ๊ฒ€์ƒ‰ํ•ฉ๋‹ˆ๋‹ค. ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ๋กœ ์ƒํ’ˆ๋ฆฌ์ŠคํŠธ๋ฅผ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ๋ฐœ ํ›„๊ธฐ

๐Ÿ˜Ž ๋ฐ•์ค€ํ‘œ
ํ’€์Šคํƒ ๊ฐœ๋ฐœ์ž๋กœ์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•œ ์ดํ•ด๋„๋ฅผ ๋†’์ผ ์ˆ˜ ์žˆ๋Š” ๊ฐ’์ง„ ํ”„๋กœ์ ํŠธ์˜€์Šต๋‹ˆ๋‹ค. ๋‹ค๋งŒ, ์จ๋ณธ ์  ์—†๋Š” ๊ธฐ์ˆ ๋“ค์„ ๋ฐฐ์šฐ๋ฉด์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•ด์•ผ ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋”ฐ๋กœ ๊ณต๋ถ€ํ•˜๋Š๋ผ ๋“ค์ธ ์‹œ๊ฐ„๋„ ๋งŽ์•˜๊ณ  ๊ทธ๋ ‡๋‹ค๊ณ  ํ”„๋กœ์ ํŠธ์˜ ๊ทœ๋ชจ๊ฐ€ ์ž‘์€ ๊ฒƒ๋„ ์•„๋‹ˆ์–ด์„œ, ์ œ๋Œ€๋กœ 1์ธ๋ถ„์„ ํ•ด ๋ƒˆ๋Š”์ง€์— ๋Œ€ํ•œ ์˜๋ฌธ์ ์ด ๋‚จ๋Š” ํ”„๋กœ์ ํŠธ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.
์„ ํƒ์‚ฌํ•ญ์œผ๋กœ ๋‚จ์•„ ์žˆ์—ˆ๋˜ ๊ฒƒ๋“ค ์ค‘์— ๊ตฌํ˜„ํ•˜๊ธฐ๋กœ ๊ณ„ํšํ–ˆ๋˜ ๋ชจ๋“  ๊ฒƒ์„ ํ•ด๋‚ด์ง€ ๋ชปํ–ˆ๋‹ค๋Š” ์•„์‰ฌ์›€๊ณผ๋Š” ๋ณ„๊ฐœ๋กœ, ๊ฒฐ๊ณผ์ ์œผ๋กœ ํ›Œ๋ฅญํ•œ ํŒ€์›๋“ค๊ณผ์˜ ์›ํ™œํ•œ ํ˜‘์—…์„ ํ†ตํ•ด ํ•„์ˆ˜์ ์œผ๋กœ ๊ตฌํ˜„ํ•ด์•ผ ๊ฒƒ๋“ค์„ ๊ตฌํ˜„ํ•˜๋Š”๋ฐ๋Š” ๋ฌธ์ œ๊ฐ€ ์—†์—ˆ๊ณ  ์›ํ™œํ•œ ์†Œํ†ต์„ ๊ธฐ๋ฐ˜์œผ๋กœ ํŒ€ ๋ถ„์œ„๊ธฐ๋„ ์•„์ฃผ ์ข‹์•˜๋˜ ํ”„๋กœ์ ํŠธ๋ผ๋Š” ์ ์—์„œ, ์•ž์œผ๋กœ ์ง„ํ–‰ํ•˜๊ฒŒ ๋  ๋‹ค๋ฅธ ํ”„๋กœ์ ํŠธ๋“ค์„ ์ง„ํ–‰ํ•ด ๋‚˜๊ฐ€๋Š”๋ฐ ํฐ ๋„์›€์ด ๋  ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๐Ÿ€ ๊ตฌํฌ์˜
๋‹จ์ˆœํ•œ ํด๋ก  ์ฝ”๋”ฉ์„ ๋„˜์–ด์„œ, ์‚ฌ์šฉํ•˜๋Š” ๊ธฐ์ˆ ์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•˜๊ณ  ์ดํ•ดํ•˜๊ณ ์ž ๋…ธ๋ ฅํ–ˆ์Šต๋‹ˆ๋‹ค. ํŠนํžˆ, ์ด ๊ธฐ์ˆ ์„ "์™œ" ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ์ง€์— ๋Œ€ํ•œ ์ด์œ ๋ฅผ ์ฐพ๊ณ , ๋ฌธ์ œ๋“ค์„ "์–ด๋–ป๊ฒŒ" ํ•ด๊ฒฐํ•  ๊ฒƒ์ธ์ง€์— ์ดˆ์ ์„ ๋งž์ท„์Šต๋‹ˆ๋‹ค. ์ด๋Ÿฌํ•œ ๊ณผ์ •์„ ํ†ตํ•ด ๊ธฐ์ˆ ์ ์œผ๋กœ ํ•œ ๋‹จ๊ณ„ ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒฝํ—˜์„ ์–ป์—ˆ์Šต๋‹ˆ๋‹ค.
ํ•˜์ง€๋งŒ, ๊ตฌํ˜„ ๊ณผ์ •์— ๊ฝค๋‚˜ ๋งŽ์€ ์‹œ๊ฐ„์„ ์Ÿ๊ฒŒ ๋˜์—ˆ๊ณ , ๊ฒฐ๊ตญ ๊ธฐํšํ–ˆ๋˜ ๋ชจ๋“  ๊ธฐ๋Šฅ๋“ค์„ ์™„์„ฑํ•˜์ง€ ๋ชปํ•œ ์•„์‰ฌ์›€์ด ๋‚จ์Šต๋‹ˆ๋‹ค. ๊ทธ๋Ÿผ์—๋„ ๊ธ์ •์ ์ธ ๋ถ„์œ„๊ธฐ๋ฅผ ์œ ์ง€ํ•ด์ค€ ํŒ€์›๋“ค ๋•๋ถ„์— ํ”„๋กœ์ ํŠธ๋ฅผ ์„ฑ๊ณต์ ์œผ๋กœ ๋งˆ๋ฌด๋ฆฌ์ง€์„ ์ˆ˜ ์žˆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™์Šต๋‹ˆ๋‹ค.
๐Ÿฅจ ๊น€๊ด€ํ˜ธ
์ด๋ฒคํŠธ ์Šคํ† ๋ฐ๋ถ€ํ„ฐ API ๊ฐœ๋ฐœ๊นŒ์ง€ ์ƒˆ๋กœ์šด๊ฒƒ์„ ๋งŽ์ด ๊ฒฝํ—˜ํ•ด๋ณด๋Š” ํ”„๋กœ์ ํŠธ์˜€์Šต๋‹ˆ๋‹ค.
์•ž์„œ mybatis๋กœ ๊ฐœ๋ฐœํ•˜๋‹ค JPA๋ฅผ ์‚ฌ์šฉํ•œ ์ฒซ ํ”„๋กœ์ ํŠธ์˜€๋Š”๋ฐ์š”. ํ”„๋กœ์ ํŠธ ์ดˆ๊ธฐ์— ๊ฐœ์ธ์ ์œผ๋กœ ๊ณต๋ถ€ํ•ด์•ผํ• ๊ฒŒ ๋งŽ์•˜์Šต๋‹ˆ๋‹ค. ํŒ€์›๋“ค์ด ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ํ†ตํ•ด์„œ ์ž‘์„ฑํ•œ API์— ๋Œ€ํ•ด์„œ ์ง€์†์ ์œผ๋กœ ํ”ผ๋“œ๋ฐฑ ํ•ด์ฃผ์—ˆ๊ณ , ๊ฐ•์‚ฌ๋‹˜๊ณผ FT๋‹˜๋„ ์ฝ”๋“œ๋ฆฌ๋ทฐ๋ฅผ ํ†ตํ•ด์„œ ๋‹ค๋“ฌ์–ด์ฃผ์—ˆ๊ณ  ์ด๋ฅผํ†ตํ•ด ๋งŽ์ด ๋ฐœ์ „ํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ”„๋กœ์ ํŠธ๋ฅผ ๋งˆ๋ฌด๋ฆฌํ•˜๋Š” ์‹œ์ ์—์„œ ๊ฐœ์ธ์ ์œผ๋กœ ๋งŽ์ด ์„ฑ์žฅํ–ˆ๋‹ค๊ณ  ๋Š๋ผ๋Š”๋ฐ์š”. ํ”„๋กœ์ ํŠธ๋ฅผ ํ•˜๋ฉฐ ์ข‹์€ ํŒ€์›๋“ค์—๊ฒŒ ๋„์›€์„ ๋งŽ์ด ๋ฐ›์•˜๋˜ ๊ฒƒ์ฒ˜๋Ÿผ 2์ฐจ ํ”„๋กœ์ ํŠธ์—๋Š” ํŒ€์›๋“ค์—๊ฒŒ ๋„์›€์„ ์ฃผ๊ณ  ๋” ์„ฑ์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ๊ฐ€ ๋˜๊ธธ ๋ฐ”๋ž๋‹ˆ๋‹ค.
๐Ÿฌ ๋ฐ•ํ•˜์œค
์ด๋ฒˆ ํ”„๋กœ์ ํŠธ๋Š” ํ…Œ์ด๋ธ”์ด ์•ฝ 40๊ฐœ์— ๋‹ฌํ•˜๋Š” ๋Œ€๊ทœ๋ชจ ์ž‘์—…์ด์—ˆ์Šต๋‹ˆ๋‹ค.
๊ธฐ์กด์— ์ง„ํ–‰ํ–ˆ๋˜ ํด๋ก  ์ฝ”๋”ฉ ํ”„๋กœ์ ํŠธ๋“ค๊ณผ๋Š” ๋‹ฌ๋ฆฌ, ์„ค๊ณ„ ๋‹จ๊ณ„๋ถ€ํ„ฐ ์‹œ์ž‘ํ•ด ์ƒˆ๋กœ์šด ๊ธฐ์ˆ ๋“ค์„ ์ ‘ํ•˜๊ณ  ์ตํž ์ˆ˜ ์žˆ๋Š” ๊ธฐํšŒ์˜€์Šต๋‹ˆ๋‹ค.
์ƒˆ๋กœ์šด ๋„์ „์— ๋Œ€ํ•œ ์š•์‹ฌ์ด ์ปค์ ธ, ๋‹ค์–‘ํ•œ ๊ธฐ์ˆ ๋“ค์„ ๋ฐฐ์šฐ๊ธฐ ์œ„ํ•ด ๋งŽ์€ ์‹œ๊ฐ„๊ณผ ๋…ธ๋ ฅ์„ ํˆฌ์žํ–ˆ์Šต๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ, ๋•Œ๋กœ๋Š” ๋„ˆ๋ฌด ๋งŽ์€ ๊ฒƒ์„ ํ•œ ๋ฒˆ์— ์†Œํ™”ํ•˜๋ ค๋‹ค ๋ณด๋‹ˆ ์˜ค๋ฒ„ํŽ˜์ด์Šค๋ฅผ ํ•˜๋Š” ์ˆœ๊ฐ„๋„ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ๋‹ค์Œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•  ๋•Œ ๋ฐ˜๋“œ์‹œ ๊ณ ๋ คํ•ด์•ผ ํ•  ๊ตํ›ˆ์œผ๋กœ ๋‚จ์•˜์Šต๋‹ˆ๋‹ค.
๋งˆ์ง€๋ง‰์œผ๋กœ ํ”„๋กœ์ ํŠธ๋ฅผ ํ†ตํ•ด ๊ธฐ์ˆ ์ ์ธ ์„ฑ์žฅ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ํ˜‘์—…์˜ ์ค‘์š”์„ฑ๋„ ๋‹ค์‹œ ํ•œ๋ฒˆ ๊นจ๋‹ฌ์„ ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.
ํ•จ๊ป˜ ์ผํ•  ์ค„ ์•„๋Š” ํ›Œ๋ฅญํ•œ ํŒ€์›๋“ค๊ณผ์˜ ํ˜‘์—…์€ ์ด๋ฒˆ ํ”„๋กœ์ ํŠธ์˜ ์„ฑ๊ณต์ ์ธ ์™„์„ฑ์— ํฐ ๋„์›€์ด ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.
โœจ ์žฅ๋ฏธ๋ฆผ

Releases

No releases published

Packages

No packages published

Languages

  • TypeScript 80.0%
  • CSS 14.6%
  • SCSS 5.1%
  • Other 0.3%