๐ป ํ๋ก์ ํธ ์ฃผ์
- ์ ํ ์ ์
- ์ ํ์ ์ ์ธ๊ณต์ง๋ฅ ๊ธฐ์ (NST)๋ฅผ ์ฌ์ฉํด์ ์ฌ์ฉ์๊ฐ ์ด๋ฏธ์ง๋ฅผ ๋ฃ์ผ๋ฉด ์ ํ ์คํ์ผ์ด ์ ์ฉ๋ ์ด๋ฏธ์ง๋ก ๋ณํ๋์ด ์ถ๋ ฅ๋๋ ์๋น์ค
- ์ด๋ฏธ์ง ์์ฑ ๊ธฐ์ (Generative models)์ ์ด์ฉํด์ ์ฌ์ฉ์๊ฐ ํฅ๋ฏธ๋ฅผ ๋๋ ์ ์๋ ์๋น์ค
๐ป ํ์ ๊ตฌํ ๊ธฐ์
- Django Rest-framework
- ์ ํ์ ์ ์ธ๊ณต์ง๋ฅ ๊ธฐ์ (NST)
- CRUD
- ํ์๊ฐ์ /๋ก๊ทธ์ธ ๊ธฐ๋ฅ - JWT
- AWS EC2 ๋ฐฐํฌ
๐ป ์ด๋ฒ ํ๋ก์ ํธ ๋ชฉํ
- ์ ๊ธฐ์ ์ธ ์ํธ ํผ๋๋ฐฑ ๋ฐ ์ฝ๋ ๋ฆฌ๋ทฐ ์๊ฐ
- git hub
- branch ํ์ฉ๋ฒ ๊ณต๋ถ ( ๋ฐฑ์ ๋ฐ ๋กค๋ฐฑ๊ธฐ๋ฅ ์ฌ์ฉ,๋ค๋ฅธ ํ์๋ ์ ์์๋ณด๋๋ก ํ์ )
- Issues / Projects / Wiki ํญ ํ์ฉ
- pull & push
- merge ๋ฐฉ๋ฒ 3 ๊ฐ์ง์ ๋ํ ์๋ฏธ ์์ง
- ํ๋ก ํธ์๋์ ๋ฐฑ์๋๋ฅผ ๋ถ๋ฆฌํ๋ RESTful API ์์ฑ
- ๊ณต๋ถ
- DRF
- mySQL
- ๋จธ์ ๋ฌ๋
- ๋ถ๋งํฌ, ์ข์์ ๊ธฐ๋ฅ ์ถ๊ฐ
๐ป ํ์ ํฌํจ ์ฌํญ
๐ ํ์ ๊ธฐ๋ฅ
- DRF ์ฌ์ฉ
- ํ์ ๊ธฐ๋ฅ ํฌํจ (JWT ํ ํฐ์ ์ด์ฉ)
- ํ๋ก ํธ์๋์ ๋ฐฑ์๋๋ฅผ ๋ณ๋์ ๋ ํฌ์งํ ๋ฆฌ์์ ๊ธฐ๋ฅ๋ณ ๊ด๋ฆฌ
- CRUD ๊ธฐ๋ฅ
- ์ ํ์ ์ ์ธ๊ณต์ง๋ฅ ๊ธฐ์ (NST)
- AWS EC2 ๋ฐฐํฌ
๐ ์ถ๊ฐ ๊ธฐ๋ฅ
- ์์ฑ๋ ์ด๋ฏธ์ง๋ S3์ ์ฌ๋ ค์ ๊ด๋ฆฌ
- ์์ฑ๋ ๊ฒฐ๊ณผ๋ฌผ์ ์ฌ์ดํธ์ ๊ฒ์ํ ์ ์๊ฒ ์ค์ (๋ ธ์ถ ์๊ฐ, ๊ณต๊ฐ ์ฌ๋ถ ์ ํ ๊ฐ๋ฅ)
- ๊ฒ์๋ฌผ์ ๋ํด ๋๊ธ ๊ธฐ๋ฅ ์ถ๊ฐ
- ๊ฒ์๋ฌผ์ ๋ํด ์ข์์ ๊ธฐ๋ฅ ์ถ๊ฐ
- ๋ง์ดํ์ด์ง์ ๋ณธ์ธ์ด ์์ฑํ ์ด๋ฏธ์ง/๊ฒ์๊ธ์ ํ์ธํ ์ ์๋ ๊ธฐ๋ฅ ์ถ๊ฐ
- ์์ฑ๋ ๊ฒ์๋ฌผ์ ๋ํ ๊ณต์ ๊ธฐ๋ฅ(๋ฉ์ผ ๋ณด๋ด๊ธฐ ๋ฑ) ์ถ๊ฐ
- ์์ ๋ก๊ทธ์ธ ํ์๊ฐ์ /๋ก๊ทธ์ธ ๊ธฐ๋ฅ ์ถ๊ฐ
๐ป MOCKUP
๐ป DB
user {
"user_id(pk)" : "Primary Key",
"username" : "์ฌ์ฉ์ ์์ด๋",
"password" : "๋น๋ฐ๋ฒํธ",
"email" : "์ด๋ฉ์ผ",
"fullname": "์ด๋ฆ",
"join_date": "์์ฑ์๊ฐ",
}
style {
"style_id(pk)": "Primary Key",
"style_image": "ํ๊ฒฝ ์ฌ์ง",
"category": "์นดํ
๊ณ ๋ฆฌ"
}
image {
"image_id(pk)": "Primary Key",
"style_id(fk)": "Foreign Key",
"article_id(fk)": "Foreign Key",
"user_id(fk)": "Foreign Key",
"input": "์ฌ์ฉ์๊ฐ ์
๋ ฅํ ์ฌ์ง",
"output": "๊ฒฐ๊ณผ ์ฌ์ง"
}
article {
"article_id(pk)" : "Primary Key",
"user_id(fk)" : "Foreign Key",
"image_id(fk)": "Foreign Key",
"title" : "์ ๋ชฉ",
"content" : "๋ด์ฉ",
"created_at" : "๋ฑ๋ก ์ผ์",
"modlfied_at" : "์์ ์ผ์"
}
comment {
"comment_id(pk)" : "Primary Key",
"article_id(fk)": "Foreign Key",
"user_id(fk)" : "Foreign Key",
"content" : "๋ด์ฉ"
}
like {
"like_id(pk)" : "Primary Key",
"user_id(fk)" : "Foreign Key",
"article(fk)" : "Foreign Key",
}
bookmark {
"bookmark_id(pk)" : "Primary Key",
"user_id(fk)" : "Foreign Key",
"article_id(fk)" : "Foreign Key",
}
๐ป ์ปจ๋ฒค์
๐ GitHub
- ํ๋ก ํธ์๋
- ๋ธ๋์น (app ๋ณ๋ก )
- ๋ฐฑ์๋
- ๋ธ๋์น (app ๋ณ๋ก )
- ์ปค๋ฐ ๋ฉ์ธ์ง
Commit Type
- Feat : ์๋ก์ด ๊ธฐ๋ฅ ์ถ๊ฐ/์์ /์ญ์
- Fix : ๋ฒ๊ทธ ์์
- Docs : ๋ฌธ์ ์์
- Design : CSS ๋ฑ ์ฌ์ฉ์ UI ๋์์ธ ๋ณ๊ฒฝ
- Style: ์ฝ๋์ ์ํฅ์ ์ฃผ์ง ์๋ ๋ณ๊ฒฝ์ฌํญ / ์ฝ๋ ํฌ๋งท ๋ณ๊ฒฝ, ์๋ฏธ ์ฝ๋ก ๋๋ฝ, ์ฝ๋ ์์ ์ด ์๋ ๊ฒฝ์ฐ
- Refactor: ์ฝ๋ ๋ฆฌํฉํ ๋ง
- Test: ํ
์คํธ ์ฝ๋/๊ธฐ๋ฅ ์ถ๊ฐ
- Rename : ํ์ผ ํน์ ํด๋๋ช
์ ์์ ํ๊ฑฐ๋ ์ฎ๊ธฐ๋ ์์
๋ง์ธ ๊ฒฝ์ฐ
- Remove : ํ์ผ์ ์ญ์ ํ๋ ์์
๋ง ์ํํ ๊ฒฝ์ฐ
Subject
- 50์๋ฅผ ๋๊ธฐ์ง ์๊ณ , ์ปค๋ฐ ํ์
์ ์ค์ํจ.
Body
- 72์๋ฅผ ๋๊ธฐ์ง ์๊ณ , ๋ชจ๋ ์ปค๋ฐ์ ๋ณธ๋ฌธ ๋ด์ฉ์ ์์ฑํ ํ์๋ ์์.
๐ป ๊ธฐ๋ฅ ๋ช ์ธ์
๐ ํ์๊ฐ์ /๋ก๊ทธ์ธ
- ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์
๋ ฅํด ํ์๊ฐ์
๋๋ ๋ก๊ทธ์ธ์ ํ ์ ์์ต๋๋ค.
- ํ์๊ฐ์ ์ ์์ด๋์ ํจ์ค์๋๊ฐ 6์๋ฆฌ ์ด์ ์ด์ฌ์ผ ๊ฐ๋ฅํฉ๋๋ค.
- ์์ด๋๊ฐ ์ค๋ณต๋๋ฉด ํ์๊ฐ์ ์ด ๋ถ๊ฐํฉ๋๋ค.
- ๋ก๊ทธ์ธ์ด ๋ ์ํ์์ ํ์๊ฐ์ /๋ก๊ทธ์ธ ํ์ด์ง์ ์ ์์ด ๋ถ๊ฐํฉ๋๋ค.
- ์ถ๊ฐ : ์์ ๋ก๊ทธ์ธ ํ์๊ฐ์ /๋ก๊ทธ์ธ ๊ธฐ๋ฅ
- ์ถ๊ฐ : ๋น๋ฐ๋ฒํธ ์ฐพ๊ธฐ
๐ ๋ฉ์ธ ํ์ด์ง
- ์ฌ๋ฌ ์ฌ์ฉ์๊ฐ ์ ๋ก๋ํ ๊ฒ์๋ฌผ์ ํ ๋์ ํ์ธํ ์ ์์ต๋๋ค. (์ญ์)
- ๊ฐ ๊ฒ์๋ฌผ์ ์ข์์์ ๋ถ๋งํฌ๋ฅผ ๋๋ฅผ ์ ์์ต๋๋ค.
- ์ ๋ก๋ ๋ฒํผ์ ๋๋ฅด๋ฉด ์ ๋ก๋ ํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- ํ์ด์ง ๋ค์ด์ ์ ํตํด 2 x 3 ์ด ๋์ด๊ฐ๋ฉด ํ์ด์ง๊ฐ ์๊น๋๋ค.
- ๊ฒ์๋ฌผ์ ํด๋ฆญ ์ ๊ฒ์๊ธ์ ์์ธํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
๐ ์ ๋ก๋ ํ์ด์ง
- ์ฌ์ง์ ์ ํํ์ฌ ์ ๋ก๋ ํ๋ฉด ๋จธ์ ๋ฌ๋์ ํตํด ์ฌ์ง์ ์คํ์ผ์ ๋ณํํฉ๋๋ค.
- ์ฌ์ฉ์๋ ์์ ์ด ์ํ๋ ๊ณ์ ๊ฐ์ ์ฌ์ง์ ์ ํํฉ๋๋ค.
- ๋จธ์ ๋ฌ๋์ ๊ฒฐ๊ณผ๋ฌผ์ด ๋์ค๋ฉด ์ฌ์ง์ ๋ง๋ ์ฝ๋ฉํธ๋ฅผ ์์ฑํ ๋ค ์ฌ์ง์ ๊ฒ์ํฉ๋๋ค.
- ์ ๋ชฉ์ 30์, ์ค๋ช ์ 100์ ์ดํ๋ก๋ง ์์ฑํ ์ ์์ต๋๋ค.
- ์ ๋ก๋ ๋ฒํผ์ ํด๋ฆญ ์ ๋ฉ์ธํ์ด์ง๋ก ๋ณด๋ด์ง๋๋ค.
๐ ๋ง์ด ํ์ด์ง
- ํ์ฌ ๋ก๊ทธ์ธํ ์ฌ์ฉ์๊ฐ ์ฌ๋ฆฐ ์ฌ์ง ๋ฐ ๋ถ๋งํฌํ ์ฌ์ง์ ํ์ธํ ์ ์์ต๋๋ค.
- ๊ธฐ๋ณธ๊ฐ์ผ๋ก๋ ์ฌ์ฉ์๊ฐ ์ฌ๋ฆฐ ์ฌ์ง๋ค์ด ๋ณด์ฌ์ง๋๋ค.
- ๋ฌดํ ์คํฌ๋กค์ ์ด์ฉํ์ฌ ๋ณด์ฌ์ง๋๋ค.
- ๊ฒ์๋ฌผ์ ํด๋ฆญ ์ ๊ฒ์๊ธ์ ์์ธํ์ด์ง๋ก ์ด๋ํฉ๋๋ค.
- ์ฌ์ฉ์๊ฐ ์ฌ๋ฆฐ ์ฌ์ง์ ๋ํ ์์ ๋ฐ ์ญ์ ๊ฐ ๊ฐ๋ฅํฉ๋๋ค.
๐ ๊ฒ์๊ธ ์์ธ ํ์ด์ง
- ๋ค๋ฅธ ์ฌ์ฉ์๊ฐ ๋๊ธ์ ์์ฑํ ์ ์์ต๋๋ค.
- ๋ค๋ฅธ ์ฌ์ฉ์์ ๊ธ์ ๋ถ๋งํฌ๋ฅผ ๋จ๊ฒจ ๋ง์ด ํ์ด์ง์ ๋ถ๋งํฌ ํญ์์ ํ์ธํ ์ ์์ต๋๋ค.
- ์ข์์ ์นด์ดํธ ์ซ์๋ฅผ ๋ณด์ฌ์ฃผ๊ณ ๋๋ฆ ๋๋ค.
๐ ๊ฒ์๊ธ ์์ ํ์ด์ง
- ๋ก๊ทธ์ธํ ์ฌ์ฉ์๊ฐ ์์ฑํ ์ฌ์ง ์ค ์์ ํ ์ฌ์ง์ ์ ํํ๋ฉด ํด๋น ํ๋ฉด์ผ๋ก ๋ค์ด์
- ์ฌ์ฉ์๊ฐ ์์ ์ ์งํํ ์ ์์ต๋๋ค.
- ์ทจ์ ๋ฒํผ์ ๋๋ฅด๋ฉด ๋ง์ดํ์ด์ง๋ก ๋ค์ ๋์๊ฐ๋๋ค.
- ์์ ํ ์ ์๋ ๋ด์ฉ์ ์๋์ ๊ฐ์ต๋๋ค.
- ๊ฒ์๊ธ์ ์ ๋ชฉ
- ๊ฒ์๊ธ์ ์ค๋ช
- ์ฐ์๋จ์ ์ญ์ ๋ฒํผ์ ๋๋ฌ ํด๋น ๊ฒ์๊ธ์ ์ญ์ ํ ์ ์์ต๋๋ค
๐ป API
๐ป ํ์๋ค์ ์ญํ ๋ฐ ์ฝ์
๐ ํ์๋ณ ์ญํ
- ๊น๊ฒฝ์, ์ ์ฃผํ
- ๋ฐฐํฌ
- ๋ฉ์ธ ํ์ด์ง : ์ ์ฉ๋ ๋์ ์ด๋ฏธ์ง๋ฅผ ๋ณด์ฌ์ฃผ๋ ํ์ด์ง
- ๊ฒ์๊ธ ์ ๋ก๋ ํ์ด์ง :์ด๋ฏธ์ง ์ ๋ก๋ํ์ฌ ๋ณด์ฌ์ฃผ๋ ํ์ด์ง
- ๋๊ธ
- ์ข์์
- ๋ถ๋งํฌ
- ์ ๋๊ทผ, ์ค์ฌ๊ธฐ
- ์ ํ์ ์ ์ธ๊ณต์ง๋ฅ ๊ธฐ์
- ํ์๊ฐ์
- ๋ก๊ทธ์ธ
- ๋ง์ด ํ์ด์ง
- ๋ถ๋งํฌ ๋ชจ์ ํ์ด์ง
- ๊ฒ์๊ธ ์์ ๋ฐ ์ญ์
๐ ์ฐ๋ฆฌ ํ์ ์ฝ์
- ์๋ก์ ์๊ฒฌ์ ์กด์คํด ์ฃผ๊ธฐ
- ํ๋ก์ ํธ๊ฐ ์ด๋ ต๊ณ ํ๋ค์ด๋ ์๊ธฐ
- ํด์ผ์๋ ํ๋ก์ ํธ์ ์๊ฐ์ ์ต๋ํ ํ ์ ํ๊ธฐ
- ํจ๊ป ์ฑ์ฅํ๋ฉฐ ์๋ก๊ฐ ์๋ก์ ๋ฉํ ๊ฐ ๋์ด์ฃผ๊ธฐ
๋ฐ์ํ
'PROJECTS' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
DRF์์ JWT ์ฌ์ฉํ๊ธฐ (0) | 2022.06.30 |
---|---|
Team Project 5 | 6์ 29์ผ |The season of N.11 ์ ํ ์ ์ ์๋น์ค (0) | 2022.06.30 |
Team Project 5 | ์ ํ ์ ์ ์๋น์ค ํ๋ก์ ํธ ๋ฐ์ | 6์28์ผ - 7์6์ผ (0) | 2022.06.28 |
post๋ฉ์๋์์ FK ๊ฐ์ด is_valid()๋ฅผ ํต๊ณผํ์ง ๋ชปํ ๋ (0) | 2022.06.28 |
Django [๊ฒ์๊ธ ์กฐํ, ์์ฑ, ์์ , ์ญ์ ] ์ด๊ฐ๋จ ์ฝ๋ (0) | 2022.06.25 |