๋ชฉ์ฐจ
์ค์
OT
์ด์ํ ์๊ฐ
๊น์งํธ
์ด์ํ ์๊ฐ
๋ฐ์ค์
22-23 ๋ถ์์ฅ
19.5๊ธฐ
ํ๋ก ํธ(React) ๊ฐ๋ฐ์
์๋ฏผ๊ท
19.5๊ธฐ
ํ๋ก ํธ(React) ๊ฐ๋ฐ์
๊ณ ์ํ
18.5๊ธฐ
์๋ฒ(Django) & ๋ชจ๋ฐ์ผ(Flutter) ๊ฐ๋ฐ์
์ด๋ฏผ๊ท
19.5๊ธฐ
์๋ฒ(Django) ๊ฐ๋ฐ์
๋ฐ์ ํ
19.5๊ธฐ
iOS ๊ฐ๋ฐ์
์ ๋์ฉ
18.5๊ธฐ
์๋ฒ(Django) ๊ฐ๋ฐ์
์งํ ๊ณํ
8์
9์
10์
11์
1์
12์
Seminar 0
8์ ๋ง์ง๋ง ์ฃผ
Seminar 1
9์ ์ฒซ์งธ ์ฃผ
Seminar 2
9์ ๋์งธ ์ฃผ
Seminar 3
9์ ๋ท์งธ ์ฃผ
Seminar 4
10์ ๋์งธ ์ฃผ
Seminar 5
11์ ์ฒซ์งธ ์ฃผ
ํ ์ด ํ๋ก์ ํธ
ํ๋ก์ ํธ ํ๋น๋ฉ
* ํ์ฌ ๋๋ฉด ์ธ๋ฏธ๋๋ฅผ ์ํ ์ค๋น๊ฐ ์งํ๋๊ณ ์์ด, ๊ตฌ์ฒด์ ์ธ ์ผ์ ์ ๊ฐ๊ฐ ์ ์ ๋ค์ ๊ณต์ง๋๋ฆด ์์ ์ ๋๋ค.
์งํ ๊ณํ โ Programmars ์น๊ฒฉ
์ฐธ์ฌ
๊ณผ์
ํ ์ด ํ๋ก์ ํธ
Programmars ์น๊ฒฉ ์ดํ
ํ๋ก์ ํธ ์ฐธ์ฌ
๋ฃจํค Repository
https://github.com/wafflestudio/seminar-2022
์ง๋ฌธ ์ฌ๋ฆฌ๋ ๋ฐฉ๋ฒ
https://github.com/wafflestudio/seminar-2022/issues/1
๋ชฉ์ฐจ
์ค์
์ธ๋ฏธ๋
Frontend ์ธ๋ฏธ๋์ฅ ์๊ฐ
์์ค์
Frontend ์ธ๋ฏธ๋ ์๊ฐ
React
Backend(Django) ์ธ๋ฏธ๋์ฅ ์๊ฐ
๊น์ฐฌ์ฑ
Backend(Django) ์ธ๋ฏธ๋ ์๊ฐ
Django
Backend(Spring) ์ธ๋ฏธ๋์ฅ ์๊ฐ
๊ฐ์งํ
Backend(Spring) ์ธ๋ฏธ๋ ์๊ฐ
์ฝํ๋ฆฐ ์คํ๋ง MVC + JPA
Android ์ธ๋ฏธ๋์ฅ ์๊ฐ
๊น์๋ฏผ
Android ์ธ๋ฏธ๋ ์๊ฐ
Android
iOS ์ธ๋ฏธ๋์ฅ ์๊ฐ
ํ์ํ
iOS ์ธ๋ฏธ๋ ์๊ฐ
iOS
์ธ๋ฏธ๋ ์ฐธ์ฌํ๊ธฐ
OT ๊ฐ์ฅ ์๋์ชฝ์ ๊ณผ์ ์น์ ์ ์ฐธ๊ณ ํ์ฌ,
8์ 24์ผ ์์์ผ 18:00๊น์ง ์ฐธ์ฌํ๊ณ ์ถ์ ์ธ๋ฏธ๋ 3์ง๋ง์ ์ ํํด์ฃผ์๋ฉด ๋ฉ๋๋ค.
์ฒซ ์ธ๋ฏธ๋ ์๊ฐ ๊ณต์ง
์ธ๋ฏธ๋ | ๋ ์ง ๋ฐ ์๊ฐ | ๋๋ฉด/๋น๋๋ฉด ์ฌ๋ถ |
React | 8.27 (ํ ) ์คํ 1์ | ๋๋ฉด |
Django | 9.6 (ํ) ์คํ 7์ | ๋๋ฉด |
Spring | 9.6 (ํ) ์คํ 7์ 30๋ถ | ๋๋ฉด |
Android | 8.25 (๋ชฉ) ์คํ 8์ | ๋๋ฉด |
iOS | 9.6 (ํ) ์คํ 7์ 30๋ถ | ๋๋ฉด |
์ธ์ ๋ณ ํน์ง ๋ฐ ์ ์์ฌํญ
๊ฐ ์ธ๋ฏธ๋์ ์ ์์ 40๋ช ์ ๋๋ค.
์ธ๋ฏธ๋๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๋๋ฉด + ๋น๋๋ฉด ํฌ ํธ๋์ด๋ฉฐ, ์ฅ์ ๋์ฌ ๋ฑ์ ์ํฉ์ ๋ฐ๋ผ ์ผ๋ถ ๋น๋๋ฉด์ผ๋ก ์ ํ๋ ์ ์์ต๋๋ค.
๊ฐ์์์กฐ์ฌ ๊ฒฐ๊ณผ, ์๋ฒ(๋ฐฑ์๋)์ ์์๊ฐ ์ ์์ ์ด๊ณผํ์์ผ๋ฉฐ, ๋ฐ๋ผ์ ์ ์ฐฉ์์ ์ํด ๋ฐฐ์ ์ด ๋ ์์ ์ ๋๋ค.๏ฟฝ์ธ์์ด ์ ์ ์ธ๋ฏธ๋์ผ์๋ก ์ธ๋ฏธ๋์ฅ ๋ถ๋ค์ด ์ง์ ํผ๋๋ฐฑ์ ํด์ฃผ์๋ ๋ฑ ์์ ์ ์ง์ด ๋์ ์ ์๋ค๋ ์ ์ฐธ๊ณ ๋ฐ๋๋๋ค.
์๋ฒ(๋ฐฑ์๋)๋ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ๋ฐ (์ผ๋ถ) ์ด์์ฒด์ ๊น์ง ์์์ผ ํ๊ธฐ ๋๋ฌธ์, ๊ณผ์ ์ฑ์ ๋ฐ Programmers ์น๊ฒฉ ๊ธฐ์ค์ด ๋ค๋ฅธ ์ธ์ ๋ค์ ๋นํด ๊น๋ค๋กญ๊ฒ ์งํ๋ ์์ ์ ๋๋ค.
iOS ์ธ๋ฏธ๋๋ mac OS๋ฅผ ํ์๋ก ํฉ๋๋ค. (๋งฅ๋ถ, ์์ด๋งฅ ๋ฑ)
๋ก๋๊ฐ ๊ฝค ์๋ ๋งํผ, ๋ณธ์ธ์ด ๊ฐ์ฅ ์ฆ๊ฒ๊ฒ ํ ์ ์๋ ์ธ๋ฏธ๋๋ฅผ ์ ํํ๋ ๊ฒ์ด ์ ์ผ ์ข์ต๋๋ค.
Q&A
๋ชฉ์ฐจ
์ค์
๊ฐ๋ฐ ๊ฐ์
- ์ค๋ช ํธ์๋ฅผ ์ํด ์ฝ๊ฐ์ ์๊ณก์ด ๋ค์ด๊ฐ ์์ ์ ์๋ ์ ์ฐธ๊ณ ํด์ฃผ์ธ์.
๊ฐ๋ฐ์ ๋?
์ปดํจํฐ ํ๋๋ง ์์ผ๋ฉด ์๋น์ค๋ฅผ ๋ง๋ค์ด ๋ผ ์ ์๋ ์ฌ๋๋ค
์น / ์ฑ ๊ฐ๋ฐ
Client(Frontend)
์ฌ์ฉ์์ ์ง์ ์ํต
์ ์ ์ ์ง์์ ๋ฐ๋ผ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์์ฒญํ๋ฉฐ, ์ด๋ฅผ ๊ฐ๊ณตํ์ฌ ์ฌ์ฉ์์๊ฒ ์ ๋ฌ
๋ธ๋ผ์ฐ์ , ๋ชจ๋ฐ์ผ ์ฑ ๋ฑ
Server(Backend)
ํด๋ผ์ด์ธํธ์ ์์ฒญ์ ๋ฐ์์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ๊ณตํ๋ ๋ฑ์ ์ฒ๋ฆฌ
์ฌ๋ฌ ํด๋ผ์ด์ธํธ์ ํต์ ์ด ์ด๋ฃจ์ด์ง
Database
์ค์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์ ์ฅ์
์ ์ฅ์์ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ๊น์ง ํฌํจํ๋ ์ฉ์ด
์์
๋๊ธ ์ ๋ ฅ ์
์ ์ -> ํด๋ผ์ด์ธํธ: ๋๊ธ์ฐฝ์ ๋๊ธ์ ๋ฌ๊ณ ์ ๋ ฅ ๋ฒํผ์ ๋๋ฆ
ํด๋ผ์ด์ธํธ -> ์๋ฒ: 123๋ฒ ์ ์ ๊ฐ 10292๋ฒ ๊ธ์ ~~๋ผ๋ ๋๊ธ ์์ฑ ์์ฒญ
์๋ฒ -> DB : ๋๊ธ ํ ์ด๋ธ์ ์ด ๋๊ธ ๋ฐ์ดํฐ๋ฅผ ์ถ๊ฐ
๊ฒ์๊ธ ํ์ธ ์
์ ์ -> ํด๋ผ์ด์ธํธ: ๊ฒ์๊ธ์ ํด๋ฆญ
ํด๋ผ์ด์ธํธ -> ์๋ฒ: ํด๋น ๊ฒ์๊ธ์ ํ์ํด์ผ ํ
๋ฐ์ดํฐ ์์ฒญ(๋๊ธ, ์ข์์ ์ ๋ฑ)
์๋ฒ -> DB -> ์๋ฒ: ์์ฒญ์ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ๊ฐ๊ณต
์๋ฒ -> ํด๋ผ์ด์ธํธ: ์์ฒญ๋ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ
HTTP
HyperText Transfer Protocol
์๋ฒ์ ํด๋ผ์ด์ธํธ๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ๊ธฐ ์ํด ์ ์ํ ๊ท์น
Http์ ์ํด ์๋ฒ๋ ํด๋ผ์ด์ธํธ๊ฐ ์์ฒญํ ๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์ก
Response: Status code + header + body
Request : request method + URL + header + body
API
Application Programming Interface
๋ฐ์ดํฐ๋ฅผ ์ด๋ค ์์ผ๋ก ์์ฒญํด์ผ ํ๋์ง, ์์ฒญํ ๋ฐ์ดํฐ๊ฐ ์ด๋ค ์์ผ๋ก ์ ๊ณต๋๋์ง์ ๋ํ ๊ท๊ฒฉ
ํ๋ก๊ทธ๋จ๋ค์ด ์๋ก์ ๋ํด ์์ง ๋ชปํด๋ ์ํตํ ์ ์๊ฒ ํ๋ค
Ex) ๋ฐฐ๋ฌ ์ฑ์์ ์์์ ์ฃผ๋ฌธ
์๋ฒ ๊ฐ๋ฐ์: ํ์๋ api๋ฅผ ๊ตฌํ
ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ์: ์ ๊ณต๋๋ api๋ฅผ ์ฌ์ฉ
Q&A
๋ชฉ์ฐจ
์ค์
Git
- ์ค๋ช ํธ์๋ฅผ ์ํด ์ฝ๊ฐ์ ์๊ณก์ด ๋ค์ด๊ฐ ์์ ์ ์๋ ์ ์ฐธ๊ณ ํด์ฃผ์ธ์.
Git์ด๋
๋ถ์ฐ ๋ฒ์ ๊ด๋ฆฌ ์์คํ
ํจ์จ์ ์ธ ํ์ ์ ์ํด์ ๋ฐ๋์ ํ์
์ด๋ ต์ง๋ง, ํ๋์ฉ ํ๋์ฉ ์์๋ณด์
๋ฒ์ ๊ด๋ฆฌ์ ํ์์ฑ
ํ์ผ ์ด๋ฆ ๊ด๋ฆฌ์ ์ด๋ ค์
ํ์ผ์ด ๋ฐ๋์ด ์จ ์ญ์ฌ๋ฅผ ๊ธฐ๋กํด ๋๋ค๋ฉด?
Repository & Commit
Commit: ์ฝ๋ ์์ ๋ด์ญ ๋ฌถ์
ํ๋์ ํน์ง, ๊ธฐ๋ฅ์ ํ๋ ๋ณํ๋ฅผ ๋ฌถ๊ธฐ
git commit โm โRevise bug report syntaxโ
Repository: ํ๋์ ํ๋ก์ ํธ์ ๋ํ ์ ์ฅ์
Add
test1.py
test2.py
test3.py
Add: ์ญ์ฌ๋ฅผ ๊ธฐ๋กํ ํ์ผ์ ์ ํํ๋ ๊ณผ์
git add test1.py๏ฟฝgit add test2.py
Stage
Add ์์
๋ถ์ฐ?
๋ถ์ฐ ์ํค๋ ค๋ฉด? ์๊ฒฉ ์ ์ฅ์!
๋ถ์ฐ์ ์ํค๋ฉด?๏ฟฝ์๋ฒ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํด๋, ํด๋ผ์ด์ธํธ์์ ์์ ๋ณต๊ตฌ๊ฐ ๊ฐ๋ฅํ๋ค.
์ฌ๋ฌ ๋ช ์ด ๋์์ ๊ฐ๋ฐ์ ํ ์ ์๋ค.
๋ก์ปฌ ์คํ๋ผ์ธ ํ๊ฒฝ์์๋ ์์ ์ด ๊ฐ๋ฅํ๋ค.
server
๋ถ์ฐ?
server
Push:
commit๋ ๋ณ๊ฒฝ์ฌํญ๋ค์ ์๊ฒฉ ์ ์ฅ์์ ์ ๋ก๋
git push (origin master)
Pull:
์๊ฒฉ์ ์ฅ์์ commit๋ค์ ๋ก์ปฌ๋ก ๋ฐ์ ์ด
git pull (origin master)
์๊ฒฉ ์ ์ฅ์
์๊ฒฉ ์ ์ฅ์๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ? GitHub, GitLab โฆ
์๊ฒฉ ์ ์ฅ์์์๋ ๋ง์ฐฌ๊ฐ์ง๋ก ๋ ํฌ์งํ ๋ฆฌ๋ฅผ ์์ฑํ ์ ์๋ค.
branch
ํ์ ์ ํ ๋ ์ญ์ฌ๊ฐ ์ ๋๋ก ๊ธฐ๋ก์ด ๋๋ ค๋ฉด?
์ฌ๋ฌ ์ฌ๋์ด ๋์ผํ ์์ค์ฝ๋๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์๋ก ๋ค๋ฅธ ์์ ์ ํ ๋์ ๊ฐ๊ฐ ์๋ก ๋ค๋ฅธ ๋ฒ์ ์ ์ฝ๋๋ฅผ ์์ฑ
๋ธ๋์น๋ฅผ ๋ง๋ค์ด ๋ ๋ฆฝ์ ์ธ ์์ ์์ญ ์์ฑ
๋ค๋ฅธ ์ฌ๋์ ์์ ์ ์ํฅ์ ๋ฐ์ง ์๊ณ ๋ ๋ฆฝ์ ์ผ๋ก ํน์ ์์ ์ ์ํ
๋ค์ํ ์์ - 1
My GitHub
My Computer
test1.py
ABC Repository
๋ค์ํ ์์ โ 1 : Clone
My GitHub
My Computer
git clone https://github.com/wafflestudio/waffle-recruit.git
test1.py
ABC Repository
๋ค์ํ ์์ - 2
My GitHub
My Computer
test1.py
ABC Repository
๋ค์ํ ์์ โ 2 : remote
My GitHub
My Computer
git remote add origin https://github.com/wafflestudio/waffle-recruit.git
test1.py
ABC Repository
๋ค์ํ ์์ - 3
Waffle Studio GitHub
My GitHub
test1.py
ABC Repository
๋ค์ํ ์์ โ 3 : Fork
Waffle Studio GitHub
My GitHub
test1.py
ABC Repository
๋ค์ํ ์์ - 4
Waffle Studio GitHub
My GitHub
test1.py
test1.py (updated)
ABC Repository
ABC Repository
๋ค์ํ ์์ โ 4 : Pull Request
Waffle Studio GitHub
My GitHub
test1.py
test1.py (updated)
- ์์ ์ด ๋ง๋ branch๋ฅผ mergeํ๊ธฐ ์ ์ ๋ณ๊ฒฝ์ฌํญ์ ํ์ธ ๋ฐ๋ ๊ณผ์
- ํ ํ๋ก์ ํธ์์๋ master branch์ ๋ฐ๋ก mergeํ๋ ๊ฒ์ ์ง์ํ๊ณ PR์ ํตํด ๋ณ๊ฒฝ์ ์ ๊ณต์ ํด์ผ ํจ
ABC Repository
ABC Repository
๋ง์ง๋ง ์์ โ ๊ณผ์ ์ ์ถํ๊ธฐ
Waffle Studio GitHub
My GitHub
seminar-list.md
My Computer
1
2
4
5
3
Seminar-2022 Repository
Q&A
๋ชฉ์ฐจ
์ค์
๊ณผ์ : ์ฐธ์ฌํ ์ธ๋ฏธ๋ ๊ฒฐ์ ํ๊ธฐ
์์ ์ค๋ช ๋๋ฆฐ pull request๋ฅผ ์ด์ฉํ์ฌ, ์ฐธ์ฌํ์ค ์ธ๋ฏธ๋๋ฅผ ์ํฉํ ์์ ์ ๋๋ค.
๊ณผ์ : ์ฐธ์ฌํ ์ธ๋ฏธ๋ ๊ฒฐ์ ํ๊ธฐ
์คํ
์ฃผ์
Live Tutorial
๊ณต์ง์ฌํญ
์ธ๋ฏธ๋๊ฐ ๊ฒฐ์ ๋๋ ๋๋ก, ๋ฃจํค๋ถ๋ค์ ์ํ์คํ๋์ค 20.5๊ธฐ ์ธ๋ฏธ๋ Slack์ ์ด๋ํ ์์ ์ ๋๋ค.
Rookies ํ๋น๋ฅผ ๋ฉ๋ถํด์ฃผ์ธ์!
Q&A
์๋ฃ ์ ์
v1: by @Hank-Choi
v2: by @woohm402
v3: by @hanan-nana, @shp7724