μ¬μ©μκ° λ¬Όκ±΄μ΄ βμ½κ² λ²λ¦΄ μ μλ 물건βμ΄ μλ βλκΉμ§ μ μΈλͺ¨λ₯Ό λ€ν 물건βμ΄ λ μ μλλ‘ λμμ€λλ€. ν¨κ» νλ©° μλ‘κ° μλ‘μ μλλ ₯μ΄ λλλ‘ νκ²½μ μ‘°μ±ν©λλ€. μ ν¬ νμ κ°μΈμ μμ μ€μ²κ³Ό λμ°ΈμΌλ‘ μ‘°κΈ λ κΉ¨λν μΈμμ λ§λ€ μ μλ€κ³ λ―Ώμ΅λλ€.
- μ°μ°λμ°λ μ¬μ©μκ° νλΌμ€ν± μ¬μ¬μ© νμ°¨λ³ μ¬μ§κ³Ό ν¨κ» κΈμ μ§μμ μΌλ‘ κΈ°λ‘νλ μΌμ§ μ 곡 μλΉμ€μ λλ€.
- μ¬μ¬μ©ν νλΌμ€ν±μ μ‘Έμ μ μν΄, ν¬ν κΈ°λ₯μ μ 곡ν©λλ€.
- ν¬ν κ²°κ³Όμ λ°λΌ λ°°μ§μ λ©λ¬ 보μμΌλ‘ μ±μ·¨κ°μ λλ μ μλλ‘ λ§λ€μμ΅λλ€.
μ²μ§μΈ(LEAD) (@jiin9999) |
μ€μλ¦ (@Aroma-oh) |
μ μν (@jungsoonhyun) |
- λ‘κ·ΈμΈ νμ΄μ§ |
- λΆλ§ν¬ νμ΄μ§ |
- λ±μ§ νμ΄μ§ |
μ§νλ(LEAD) (@mewluee) |
κΉλν (@NewfileDOTpy) |
μμ€μ (@digital-hamster) |
- νμ λλ©μΈ CRUD |
- μλ¦¬μ¦ λλ©μΈ CRUD |
- λ±μ§ λλ©μΈ CRUD |
![ERD](https://private-user-images.githubusercontent.com/119935602/244271607-149d42f7-fa6b-475f-bacf-8adbc707e77d.png?jwt=eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpc3MiOiJnaXRodWIuY29tIiwiYXVkIjoicmF3LmdpdGh1YnVzZXJjb250ZW50LmNvbSIsImtleSI6ImtleTUiLCJleHAiOjE3MjUzOTkyMTEsIm5iZiI6MTcyNTM5ODkxMSwicGF0aCI6Ii8xMTk5MzU2MDIvMjQ0MjcxNjA3LTE0OWQ0MmY3LWZhNmItNDc1Zi1iYWNmLThhZGJjNzA3ZTc3ZC5wbmc_WC1BbXotQWxnb3JpdGhtPUFXUzQtSE1BQy1TSEEyNTYmWC1BbXotQ3JlZGVudGlhbD1BS0lBVkNPRFlMU0E1M1BRSzRaQSUyRjIwMjQwOTAzJTJGdXMtZWFzdC0xJTJGczMlMkZhd3M0X3JlcXVlc3QmWC1BbXotRGF0ZT0yMDI0MDkwM1QyMTI4MzFaJlgtQW16LUV4cGlyZXM9MzAwJlgtQW16LVNpZ25hdHVyZT1hYmVkZmRlYzcwMTJjMWMyN2UxNzNhYjc2ZjVhNmQ0MjIyNGY1MjFiNmQyZTJmNGNhZDM2OTdhNDFmOWNhYjQ1JlgtQW16LVNpZ25lZEhlYWRlcnM9aG9zdCZhY3Rvcl9pZD0wJmtleV9pZD0wJnJlcG9faWQ9MCJ9.dfBWXc9wN4yI9VXR6-9GFG_KQMQUXe4Pfif9KGLSQVo)
- Next.js
- SSRμ μ΄μ©ν΄ SEO(κ²μμμ§ μ΅μ ν)λ₯Ό ν₯μμμΌ°μ΅λλ€.
- React
- μ»΄ν¬λνΈ μ¬μ¬μ©κ³Ό μνμ λ°λ₯Έ λΆνμν 리λ λλ§μ κ³ λ €νλ©° ꡬννμμ΅λλ€.
- TypeScript
- λμ μΈμ΄μΈ JSμ μμ μ±μ 보μ₯νκ³ , μνν νμ μ μν΄ μ¬μ©νμ΅λλ€.
- PWA
- PWAλ₯Ό μ΄μ©ν΄ λ°μ€ν¬ν, μλλ‘μ΄λ, IOSμμ λ€μ΄λ‘λνμ¬ μ±μΌλ‘ μ¬μ©ν μ μλλ‘ κ΅¬ννμκ³ , λ°μν UIλ‘ ν¬λ‘μ€ νλ«νΌμ μ§μν μ μλλ‘ νμ΅λλ€.
- μΉ νΈμλ₯Ό νμ©ν΄ μ¬μ©μκ° λ€μ΄ν°λΈ μ±μ μ¬μ©νλ κ²μ²λΌ λλ μ μλλ‘ κ΅¬ννμμ΅λλ€.
- ESLint & Prettier
- νμ μ μν΄ μ½λ ν¬λ§€ν κΈ°λ₯μ ESLintλ₯Ό, μ½λ μ€νμΌλ§μ Prettierλ₯Ό μ μ©νμ΅λλ€.
- Deploy
- Vercelμ μ΄μ©ν΄ https λ°°ν¬νμ΅λλ€.
- Github ActionμΌλ‘ CI/CDλ₯Ό λμ νμ΅λλ€.
- Spring boot
- Java κΈ°λ°μ μΉ μ ν리μΌμ΄μ μ κ°λ°νκΈ° μν΄ spring νλ μμν¬λ₯Ό μ¬μ©νμ΅λλ€.
- Spring Security
- μ¬μ©μ μΈμ¦κ³Ό κΆν λΆμ¬ κ·Έλ¦¬κ³ λ³΄μ ꡬμ±μ μν΄ μ¬μ©νμ΅λλ€.
- MySQL
- μ¬μ©μμ λ°μ΄ν°λ₯Ό λ΄μ μ μλ λ°μ΄ν°λ² μ΄μ€ μλ²λ₯Ό λ§λ€μ΄ MySQLλ‘ κ΅¬ννμ΅λλ€.
- Postman
- REST APIμ ν μ€νΈλ₯Ό μν΄ μ΄μ©νμ΅λλ€.
- Linux
- μ격 μλ² κ°λμ μν΄ μ¬μ©νμ΅λλ€.
- Gradle
- μΈλΆ λΌμ΄λΈλ¬λ¦¬ λ° νλ μμν¬λ₯Ό μ½κ² μ μ©νμ¬ νλ‘μ νΈλ₯Ό λΉλνκΈ° μν΄ μ¬μ©νμ΅λλ€.
- JPA
- DBλ₯Ό λ‘μ§ μμμ ꡬννκΈ° μν΄ RDSλ₯Ό μ΄μ©νμ¬ JPAλ‘ κ΅¬ννμ΅λλ€.
- Oauth2
- oauth2λ₯Ό μ¬μ©νμ¬ μ¬μ©μκ° νΈλ¦¬νκ² νμκ°μ κ³Ό λ‘κ·ΈμΈμ νλλ‘ μ§μνμ΅λλ€.
- AWS Web Service
- EC2, CodeDeploy, S3 Bucket, RDS λ₯Ό ν΅ν΄ μ΄νμ λ°°ν¬ λ° κ΄λ¦¬λ₯Ό νμμ΅λλ€. λν IAMμ ν΅ν΄ νμ ν μ μμμ΅λλ€.
- JWT
- 보μμ μν΄ μ¬μ©μμ κΆν μ 보λ₯Ό λ΄μ JWTλ₯Ό λ°κΈν΄ 리μμ€ μ κ·Όμ μ νμ λμμ΅λλ€.
- Github Action
- κΉνλΈ μμ‘΄μ±μ΄ λκ³ , λΉμ©μ νκ³κ° μλ νλ‘μ νΈμ μν©μ κ³ λ €νμ¬ CD/CIλ₯Ό μ μ νμμΌλ©° Gighub push / merger λ₯Ό ν΅ν΄ κ°νΈνκ² λ°°ν¬λ μ΄ν리μΌμ΄μ μ μ μ§/ 보μ ν μ μλλ‘ νμ΅λλ€.
- S3 imageBucket
- DBμ μ΄λ―Έμ§ μ μ₯ μ κ°ν΄μ§λ μ©λ λ° λΆνλ₯Ό μ€μ΄κΈ° μνμ¬ ν° μ€ν 리μ§μ©λμ μ§μνλ S3 imageBucket μ¬μ©νμ΅λλ€.
μ²μ§μΈ
- νλ‘μ νΈ μ΄κΈ° μΈν : Next13μ μ€νμ κΈ°λ₯μΈ app λλ ν 리 ν΄λ ꡬ쑰λ₯Ό μ΄μ©ν΄ νλ‘μ νΈλ₯Ό ꡬμΆνμμ΅λλ€.
- PWA: PC보λ€λ λͺ¨λ°μΌμ μ§μ€ν μ¬μ΄νΈμ νΉμ±μ κ³ λ €ν΄ ν νλ©΄μ μΆκ°νμ¬ μ¬μ©μκ° λ€μ΄ν°λΈ μ±μ²λΌ μ¬μ©ν μ μλλ‘ νμ΅λλ€.
- νμκ°μ : React-hook-formμ μ¬μ©ν΄ μ»΄ν¬λνΈ λ¦¬λ λλ§ μ΅μ νλ₯Ό μ§ννμ΅λλ€.
- νμμ 보 μμ : μ¬μ©μκ° νλ‘ν μ΄λ―Έμ§λ₯Ό λ±λ‘νλ©΄ λ―Έλ¦¬λ³΄κΈ°κ° λ λλκ³ , μλ²μ λ°λ‘ μ μ₯λ μ μλλ‘ κ΅¬ννμμ΅λλ€.
μ€μλ¦
- λ©μΈ νμ΄μ§
β λΉνμλ μ‘°νκ° κ°λ₯ν μ μΌν νμ΄μ§! λ©μΈ νμ΄μ§λ λͺ¨λκ° μ‘°νκ° κ°λ₯ν μ μΌν νμ΄μ§μ λλ€. λ°λΌμ κ°λ³ μ리μ¦λ μλ‘μ΄ μ¬μ©μμ κΆκΈμ¦μ μ λνμ¬ νμκ°μ μΌλ‘ μ°κ²°νλ μν μ ν΄μΌν©λλ€. μ΄λ₯Ό μν΄ μ리μ¦μ μ¬μ§ μμμ λκ² μ‘μ μκ°μ μΈ μ΄λͺ©μ λκ³ μ νμΌλ©°, βnλ² μ¬μ©βμ 보λ₯Ό λ ΈμΆνμμ΅λλ€. (λΉλλ΄μ§λ₯Ό 30λ² μ¬μ©ν μ리μ¦λΌλ©΄ κΆκΈνμ§ μμκΉμ? π)
β μ¬μ©μμ λΉ λ₯Έ νμμ μν΄ λ¬΄ν μ€ν¬λ‘€μ μ μ©νμ΅λλ€. λ§μ μ΄λ―Έμ§ λ‘λ©μ΄ νμν λ©μΈνμ΄μ§λ μ΅μ΄ λ λκ° λ리λ€λ λ¨μ μ΄ μμ΅λλ€. μ΄λ₯Ό ν΄κ²°νκΈ° μν΄ api μμ² 1νλΉ 12κ°μ λ°μ΄ν°λ§ λΆλ¬μ€λ 무ν μ€ν¬λ‘€μ μ μ©νμμ΅λλ€.
- μλ¦¬μ¦ μμΈ νμ΄μ§
β κΈ°λ₯λ³λ‘ μ»΄ν¬λνΈλ₯Ό λΆν νμ΅λλ€. μλ¦¬μ¦ μμΈνμ΄μ§λ λ€μν κΈ°λ₯(λ°μ΄λ‘κ·Έ μ‘°ν, λΆλ§ν¬, ν¬ν, λκΈ)μ΄ λ€μ΄κ°λ νμ΄μ§μ λλ€. κ° κΈ°λ₯μ κ°λ³ apiκ° μ‘΄μ¬νκΈ° λλ¬Έμ λΆνμν 리λ λλ§ λ°©μ§λ₯Ό μν΄ μ»΄ν¬λνΈλ₯Ό λΆν νμ΅λλ€.
β μ¬μ©μμ λΉ λ₯Έ νμμ μν΄ λ¬΄ν μ€ν¬λ‘€μ μ μ©νμ΅λλ€. λ°μ΄λ‘κ·Έλ λ§μ μ΄λ―Έμ§ λ‘λ©μ΄ νμν νμ΄μ§μ λλ€. λ°λΌμ 무ν μ€ν¬λ‘€μ ν΅ν΄ λ¨μ λ³λ‘ λ°μ΄ν°λ₯Ό νΈμΆνμ¬ λΉ λ₯Έ λ‘λ©μ μ£Όκ³ μ νμ΅λλ€.
- λ§μ΄ νμ΄μ§
β 쑰건μΌλ‘ UIλ₯Ό ꡬλΆνμ¬ μ»΄ν¬λνΈλ₯Ό μ¬μ¬μ©νμ΅λλ€. λ§μ΄νμ΄μ§λ "μμ "μ νμ΄μ§ μ μμ κ²½μ°μ "νμΈ"μ νμ΄μ§ μ μμ κ²½μ° UIκ° κ΅¬λΆλ©λλ€. UIμ κΈμ¨ νΉμ μ°κ²° λ§ν¬λ§ λ³κ²½λκΈ° λλ¬Έμ, νμ΄μ§λ₯Ό λλ μ€λ³΅ μ½λλ₯Ό μμ±νκΈ° 보λ€λ 쑰건문μ μ£Όμ΄ λ€λ₯Έ UIκ° λ λλλλ‘ νμμ΅λλ€.
β λ€μν μλ¦¬μ¦ μνμ ꡬλΆμ΄ νμνμ΅λλ€. μ리μ¦λ ν¬ν κ²°κ³Όμ λ°λΌ λ©λ¬μ λΆμ¬λ°μ μλ, μ¬μ¬μ©μ ν΄μΌν μλ μμ΅λλ€. μ΄λ¬ν μνκ° νΌλμ UIμμΌλ‘ ꡬλΆλμ΄ μ¬μ©μκ° μ¦κ°μ μΌλ‘ νμΈν μ μλλ‘ κ΅¬ννμ΅λλ€.
μ μν
- λ‘κ·ΈμΈ νμ΄μ§
- μ΄λ° μ΄μ λ‘ μ΄λ° μ΄λ° κΈ°μ μ μ μ©ν΄μ μ΄λ κ² λ§λ€μ΄ 보μμ΅λλ€.
- νμκ°μ
νμ΄μ§
- μ΄λ° μ΄μ λ‘ μ΄λ° μ΄λ° κΈ°μ μ μ μ©ν΄μ μ΄λ κ² λ§λ€μ΄ 보μμ΅λλ€.
- νμ μ 보 μμ νμ΄μ§
- μ΄λ° μ΄μ λ‘ μ΄λ° μ΄λ° κΈ°μ μ μ μ©ν΄μ μ΄λ κ² λ§λ€μ΄ 보μμ΅λλ€.
μ§νλ
- λ‘κ·ΈμΈ νμ΄μ§
- μ΄λ° μ΄μ λ‘ μ΄λ° μ΄λ° κΈ°μ μ μ μ©ν΄μ μ΄λ κ² λ§λ€μ΄ 보μμ΅λλ€.
- νμκ°μ
νμ΄μ§
- μ΄λ° μ΄μ λ‘ μ΄λ° μ΄λ° κΈ°μ μ μ μ©ν΄μ μ΄λ κ² λ§λ€μ΄ 보μμ΅λλ€.
- νμ μ 보 μμ νμ΄μ§
- μ΄λ° μ΄μ λ‘ μ΄λ° μ΄λ° κΈ°μ μ μ μ©ν΄μ μ΄λ κ² λ§λ€μ΄ 보μμ΅λλ€.
κΉλν
- λ‘κ·ΈμΈ νμ΄μ§
- μ΄λ° μ΄μ λ‘ μ΄λ° μ΄λ° κΈ°μ μ μ μ©ν΄μ μ΄λ κ² λ§λ€μ΄ 보μμ΅λλ€.
- νμκ°μ
νμ΄μ§
- μ΄λ° μ΄μ λ‘ μ΄λ° μ΄λ° κΈ°μ μ μ μ©ν΄μ μ΄λ κ² λ§λ€μ΄ 보μμ΅λλ€.
- νμ μ 보 μμ νμ΄μ§
- μ΄λ° μ΄μ λ‘ μ΄λ° μ΄λ° κΈ°μ μ μ μ©ν΄μ μ΄λ κ² λ§λ€μ΄ 보μμ΅λλ€.
μμ€μ
- λ‘κ·ΈμΈ νμ΄μ§
- μ΄λ° μ΄μ λ‘ μ΄λ° μ΄λ° κΈ°μ μ μ μ©ν΄μ μ΄λ κ² λ§λ€μ΄ 보μμ΅λλ€.
- νμκ°μ
νμ΄μ§
- μ΄λ° μ΄μ λ‘ μ΄λ° μ΄λ° κΈ°μ μ μ μ©ν΄μ μ΄λ κ² λ§λ€μ΄ 보μμ΅λλ€.
- νμ μ 보 μμ νμ΄μ§
- μ΄λ° μ΄μ λ‘ μ΄λ° μ΄λ° κΈ°μ μ μ μ©ν΄μ μ΄λ κ² λ§λ€μ΄ 보μμ΅λλ€.