1 of 66

2 of 66

๋ชฉ์ฐจ

  1. OT
  2. ์„ธ๋ฏธ๋‚˜
  3. ๊ฐœ๋ฐœ ๊ฐœ์š”
  4. Git
  5. ๊ณผ์ œ ๋ฐ ๊ณต์ง€์‚ฌํ•ญ

์ค‘์š”

3 of 66

OT

4 of 66

์šด์˜ํŒ€ ์†Œ๊ฐœ

๊น€์ง€ํ˜ธ

  • 22-23 ์™€์žฅ
  • 20๊ธฐ
  • ์ „๊ธฐ์ •๋ณด๊ณตํ•™๋ถ€ & ๋ฒค์ฒ˜๊ฒฝ์˜ ์—ฐํ•ฉ์ „๊ณต
  • 19๋…„๋„ 2ํ•™๊ธฐ ~ 21๋…„๋„ 1ํ•™๊ธฐ๊นŒ์ง€ ์‚ฐ์—…๊ธฐ๋Šฅ์š”์›
  • iOS ๊ฐœ๋ฐœ์ž

5 of 66

์šด์˜ํŒ€ ์†Œ๊ฐœ

๋ฐ•์ค€์˜

22-23 ๋ถ€์™€์žฅ

19.5๊ธฐ

ํ”„๋ก ํŠธ(React) ๊ฐœ๋ฐœ์ž

์•ˆ๋ฏผ๊ทœ

19.5๊ธฐ

ํ”„๋ก ํŠธ(React) ๊ฐœ๋ฐœ์ž

๊ณ ์˜ํ˜„

18.5๊ธฐ

์„œ๋ฒ„(Django) & ๋ชจ๋ฐ”์ผ(Flutter) ๊ฐœ๋ฐœ์ž

์ด๋ฏผ๊ทœ

19.5๊ธฐ

์„œ๋ฒ„(Django) ๊ฐœ๋ฐœ์ž

๋ฐ•์‹ ํ™

19.5๊ธฐ

iOS ๊ฐœ๋ฐœ์ž

์ •๋Œ€์šฉ

18.5๊ธฐ

์„œ๋ฒ„(Django) ๊ฐœ๋ฐœ์ž

6 of 66

์ง„ํ–‰ ๊ณ„ํš

8์›”

9์›”

10์›”

11์›”

1์›”

12์›”

Seminar 0

8์›” ๋งˆ์ง€๋ง‰ ์ฃผ

Seminar 1

9์›” ์ฒซ์งธ ์ฃผ

Seminar 2

9์›” ๋‘˜์งธ ์ฃผ

Seminar 3

9์›” ๋„ท์งธ ์ฃผ

Seminar 4

10์›” ๋‘˜์งธ ์ฃผ

Seminar 5

11์›” ์ฒซ์งธ ์ฃผ

ํ† ์ด ํ”„๋กœ์ ํŠธ

ํ”„๋กœ์ ํŠธ ํŒ€๋นŒ๋”ฉ

* ํ˜„์žฌ ๋Œ€๋ฉด ์„ธ๋ฏธ๋‚˜๋ฅผ ์œ„ํ•œ ์ค€๋น„๊ฐ€ ์ง„ํ–‰๋˜๊ณ  ์žˆ์–ด, ๊ตฌ์ฒด์ ์ธ ์ผ์ •์€ ๊ฐœ๊ฐ• ์ „์— ๋‹ค์‹œ ๊ณต์ง€๋“œ๋ฆด ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

7 of 66

์ง„ํ–‰ ๊ณ„ํš โ€“ Programmars ์Šน๊ฒฉ

์ฐธ์—ฌ

    • ๋ชจ๋“  ์„ธ๋ฏธ๋‚˜์— ์ฐธ์—ฌํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ณผ์ œ

    • ๊ฐ ์„ธ๋ฏธ๋‚˜๊ฐ€ ๋๋‚œ ํ›„ due date๊นŒ์ง€ ๊ณผ์ œ๋ฅผ ์ŠคํŽ™์— ๋งž์ถ”์–ด ์ œ์ถœํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ฐ ์„ธ๋ฏธ๋‚˜์˜ ์ตœ์ข… ๊ณผ์ œ๋ฅผ ํ†ต๊ณผํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

ํ† ์ด ํ”„๋กœ์ ํŠธ

    • ํ† ์ด ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.
    • ์ด๋•Œ ์šด์˜ํŒ€์—์„œ ์ฐธ์—ฌ๋„ ๋ฐ ํ˜‘์—… ๋Šฅ๋ ฅ์„ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.

8 of 66

Programmars ์Šน๊ฒฉ ์ดํ›„

ํ”„๋กœ์ ํŠธ ์ฐธ์—ฌ

    • ๊ธฐ์กด ํ”„๋กœ์ ํŠธ์— ์ฐธ์—ฌ
      • SNUTT, ์‹์ƒค, ์Šค๋ˆ„๋ณด๋“œ โ€ฆ
      • ์ฃฝ์€ ํ”„๋กœ์ ํŠธ ๋˜์‚ด๋ฆฌ๊ธฐ
    • ์‹ ๊ทœ ํ”„๋กœ์ ํŠธ
      • ํŒ€๋นŒ๋”ฉ, ์•„์ด๋””์–ด ํšŒ์˜๋ฅผ ํ†ตํ•œ ์ƒˆ๋กœ์šด ํ”„๋กœ์ ํŠธ

9 of 66

๋ฃจํ‚ค Repository

https://github.com/wafflestudio/seminar-2022

    • ์ผ์ •, ์ˆ˜์—… ์ž๋ฃŒ, ๊ณผ์ œ ๋“ฑ ์Šน๊ฒฉ ์ „๊นŒ์ง€ ์ง„ํ–‰์— ํ•„์š”ํ•œ ๋ชจ๋“  ์ •๋ณด๊ฐ€ ์ด Repository์— ์—…๋กœ๋“œ๋ฉ๋‹ˆ๋‹ค.
    • ๋ชจ๋“  ์งˆ์˜์‘๋‹ต๋„ ์ด Repository์—์„œ ์ง„ํ–‰๋ฉ๋‹ˆ๋‹ค.

10 of 66

์งˆ๋ฌธ ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ๋ฒ•

https://github.com/wafflestudio/seminar-2022/issues/1

    • ์œ„ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ•˜์—ฌ, ์งˆ๋ฌธ์€ ์ด์Šˆ๋กœ ์˜ฌ๋ ค์ฃผ์„ธ์š”.
    • ์ œ์ถœํ•ด์ฃผ์‹  Github ID์— ํ•ด๋‹นํ•˜๋Š” ๊ณ„์ •์„ triage ๊ถŒํ•œ์˜ outside collaborator๋กœ ์ดˆ๋Œ€๋“œ๋ ธ์Šต๋‹ˆ๋‹ค.

    • Issue ๋“ฑ๋ก live tutorial

11 of 66

๋ชฉ์ฐจ

  1. OT
  2. ์„ธ๋ฏธ๋‚˜
  3. ๊ฐœ๋ฐœ ๊ฐœ์š”
  4. Git
  5. ๊ณผ์ œ ๋ฐ ๊ณต์ง€์‚ฌํ•ญ

์ค‘์š”

12 of 66

์„ธ๋ฏธ๋‚˜

13 of 66

Frontend ์„ธ๋ฏธ๋‚˜์žฅ ์†Œ๊ฐœ

์•ˆ์ค‘์›

  • ์ปดํ“จํ„ฐ๊ณตํ•™๋ถ€ ์žฌํ•™
  • ์™€ํ”Œ์ŠคํŠœ๋””์˜ค 19.5๊ธฐ

14 of 66

Frontend ์„ธ๋ฏธ๋‚˜ ์†Œ๊ฐœ

React

  • HTML, CSS, Javascript ๊ธฐ์ดˆ
  • React ํ•จ์ˆ˜ํ˜• ์ปดํฌ๋„ŒํŠธ์™€ ์„ ์–ธํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  • ๋น„๋™๊ธฐ์™€ HTTP

15 of 66

Backend(Django) ์„ธ๋ฏธ๋‚˜์žฅ ์†Œ๊ฐœ

๊น€์ฐฌ์šฑ

  • 2018-2021 ํ† ์Šค
  • 2021-2022 ๋ฐ๋ธŒ์‹œ์Šคํ„ฐ์ฆˆ
  • ์ฃผ๋กœ Django, React.js ์‚ฌ์šฉ
  • ์™€ํ”Œ์ŠคํŠœ๋””์˜ค 17-18 ์™€์žฅ

16 of 66

Backend(Django) ์„ธ๋ฏธ๋‚˜ ์†Œ๊ฐœ

Django

  • Python ๊ธฐ๋ฐ˜ ๊ฐ€์žฅ ์„ฑ์ˆ™ํ•œ Full-stack framework
  • Backend ์ผ๋ฐ˜์ ์ธ ๊ตฌ์กฐ์— ๋Œ€ํ•ด ์ต์ˆ™ํ•ด์งˆ ์ˆ˜ ์žˆ๋Š” ๊ฐ•์˜ (ORM, MVC, workers โ€ฆ)
  • ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœํ•˜๋ฉด์„œ๋„ ์•ˆ์ •์ ์ธ CRUD API๋ฅผ ๋ฝ‘์•„๋‚ด๋Š” ๋ฐ์— ๊ฐ•์  (startups)

17 of 66

Backend(Spring) ์„ธ๋ฏธ๋‚˜์žฅ ์†Œ๊ฐœ

๊ฐ•์ง€ํ˜

  • ์™€ํ”Œ์ŠคํŠœ๋””์˜ค 17.5๊ธฐ
  • ์™€ํ”Œ์ŠคํŠœ๋””์˜ค 21-22 ๋ถ€์™€์žฅ
  • ๋ณ‘ํŠน ์ค‘ (์…€๋ ‰ํŠธ์Šคํƒ€)
  • ์Šคํ”„๋ง ์„œ๋ฒ„ ๊ฐœ๋ฐœ ์ค‘

18 of 66

Backend(Spring) ์„ธ๋ฏธ๋‚˜ ์†Œ๊ฐœ

์ฝ”ํ‹€๋ฆฐ ์Šคํ”„๋ง MVC + JPA

  • Kotlin ์‚ฌ์šฉ
  • ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋ ˆ์ž„์›Œํฌ (DI, PSA, IoC)
  • ORM (JPA)

19 of 66

Android ์„ธ๋ฏธ๋‚˜์žฅ ์†Œ๊ฐœ

๊น€์ƒ๋ฏผ

  • 2020-2022 VCNC (ํƒ€๋‹ค)
  • ์™€ํ”Œ์ŠคํŠœ๋””์˜ค 19-20 ์™€์žฅ, 16.5๊ธฐ
  • Android / iOS / Web Frontend / Server ์žก๋ถ€ ๊ฐœ๋ฐœ์ž

20 of 66

Android ์„ธ๋ฏธ๋‚˜ ์†Œ๊ฐœ

Android

  • ์•ˆ๋“œ๋กœ์ด๋“œ UI ์™€ ์‚ฌ์šฉ์ž ์ธํ„ฐ๋ž™์…˜์€ ์–ด๋–ป๊ฒŒ ๋งŒ๋“œ๋‚˜์š”
  • ์•ˆ๋“œ๋กœ์ด๋“œ ๋ฐ์ดํ„ฐ๋Š” ์–ด๋–ป๊ฒŒ ์ €์žฅํ•˜๋‚˜์š”
  • ์•ˆ๋“œ๋กœ์ด๋“œ ์–ด๋–ป๊ฒŒ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๋‚˜์š”
  • ์•ˆ๋“œ๋กœ์ด๋“œ ์–ด๋–ป๊ฒŒ ๋ชจ๋“ˆํ™” ํ•˜๊ธฐ ์ข‹์€ ์ฝ”๋“œ๋ฅผ ์งœ๋‚˜์š”

21 of 66

iOS ์„ธ๋ฏธ๋‚˜์žฅ ์†Œ๊ฐœ

ํ•œ์ƒํ˜„

  • ์™€ํ”Œ 15๊ธฐ
  • ์ปดํ“จํ„ฐ๊ณตํ•™๋ถ€ 17ํ•™๋ฒˆ
  • 2020.09 ~ ํ˜„์žฌ : ๋‘๋‚˜๋ฌด (์—…๋น„ํŠธ) iOS ๊ฐœ๋ฐœ์ž

22 of 66

iOS ์„ธ๋ฏธ๋‚˜ ์†Œ๊ฐœ

iOS

  • Swift + UIKit์„ ์ด์šฉํ•œ iOS ์•ฑ๊ฐœ๋ฐœ
  • AutoLayout์— ๋Œ€ํ•œ ์ดํ•ด
  • RxSwift๋ฅผ ์ด์šฉํ•œ ๋น„๋™๊ธฐ, ํ•จ์ˆ˜ํ˜• ํ”„๋กœ๊ทธ๋ž˜๋ฐ
  • MVVM ๊ธฐ๋ฐ˜ ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ ์žก๊ธฐ
  • ์„œ๋ฒ„ API์™€ ํ†ต์‹ ํ•˜๋Š” ๋ฒ•
  • ์ข‹์€ ์ฝ”๋“œ๋ฅผ ์งœ๋Š” ๋ฐฉ๋ฒ•๋ก ์— ๋Œ€ํ•˜์—ฌ

23 of 66

์„ธ๋ฏธ๋‚˜ ์ฐธ์—ฌํ•˜๊ธฐ

OT ๊ฐ€์žฅ ์•„๋ž˜์ชฝ์˜ ๊ณผ์ œ ์„น์…˜์„ ์ฐธ๊ณ ํ•˜์—ฌ,

8์›” 24์ผ ์ˆ˜์š”์ผ 18:00๊นŒ์ง€ ์ฐธ์—ฌํ•˜๊ณ  ์‹ถ์€ ์„ธ๋ฏธ๋‚˜ 3์ง€๋ง์„ ์„ ํƒํ•ด์ฃผ์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

24 of 66

์ฒซ ์„ธ๋ฏธ๋‚˜ ์‹œ๊ฐ„ ๊ณต์ง€

์„ธ๋ฏธ๋‚˜

๋‚ ์งœ ๋ฐ ์‹œ๊ฐ„

๋Œ€๋ฉด/๋น„๋Œ€๋ฉด ์—ฌ๋ถ€

React

8.27 (ํ† ) ์˜คํ›„ 1์‹œ

๋Œ€๋ฉด

Django

9.6 (ํ™”) ์˜คํ›„ 7์‹œ

๋Œ€๋ฉด

Spring

9.6 (ํ™”) ์˜คํ›„ 7์‹œ 30๋ถ„

๋Œ€๋ฉด

Android

8.25 (๋ชฉ) ์˜คํ›„ 8์‹œ

๋Œ€๋ฉด

iOS

9.6 (ํ™”) ์˜คํ›„ 7์‹œ 30๋ถ„

๋Œ€๋ฉด

  • ๋ชจ๋“  ๋Œ€๋ฉด ์„ธ๋ฏธ๋‚˜๋Š” ๋น„๋Œ€๋ฉด ํˆฌํŠธ๋ž™์œผ๋กœ ์ง„ํ–‰๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
  • ๋‹ค๋งŒ, ์ƒํ™ฉ์— ๋”ฐ๋ผ ๋ณ€๋™๋  ์ˆ˜ ์žˆ๋‹ค๋Š” ์  ์•ˆ๋‚ด ๋“œ๋ฆฝ๋‹ˆ๋‹ค.
  • ์žฅ์†Œ๋Š” ๊ฐ•๋‚จ๊ถŒ์˜ ์„ธ๋ฏธ๋‚˜์‹ค์„ ๋Œ€์—ฌํ•  ์˜ˆ์ •์ด๋ฉฐ, ์ถ”ํ›„์— ์•ˆ๋‚ด๋“œ๋ฆด ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

25 of 66

์„ธ์…˜ ๋ณ„ ํŠน์ง• ๋ฐ ์œ ์˜์‚ฌํ•ญ

๊ฐ ์„ธ๋ฏธ๋‚˜์˜ ์ •์›์€ 40๋ช…์ž…๋‹ˆ๋‹ค.

์„ธ๋ฏธ๋‚˜๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ๋Œ€๋ฉด + ๋น„๋Œ€๋ฉด ํˆฌ ํŠธ๋ž™์ด๋ฉฐ, ์žฅ์†Œ ๋Œ€์—ฌ ๋“ฑ์˜ ์ƒํ™ฉ์— ๋”ฐ๋ผ ์ผ๋ถ€ ๋น„๋Œ€๋ฉด์œผ๋กœ ์ „ํ™˜๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐ€์ˆ˜์š”์กฐ์‚ฌ ๊ฒฐ๊ณผ, ์„œ๋ฒ„(๋ฐฑ์—”๋“œ)์— ์ˆ˜์š”๊ฐ€ ์ •์›์„ ์ดˆ๊ณผํ•˜์˜€์œผ๋ฉฐ, ๋”ฐ๋ผ์„œ ์„ ์ฐฉ์ˆœ์— ์˜ํ•ด ๋ฐฐ์ •์ด ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.๏ฟฝ์ธ์›์ด ์ ์€ ์„ธ๋ฏธ๋‚˜์ผ์ˆ˜๋ก ์„ธ๋ฏธ๋‚˜์žฅ ๋ถ„๋“ค์ด ์ง์ ‘ ํ”ผ๋“œ๋ฐฑ์„ ํ•ด์ฃผ์‹œ๋Š” ๋“ฑ ์ˆ˜์—…์˜ ์งˆ์ด ๋†’์„ ์ˆ˜ ์žˆ๋‹ค๋Š” ์  ์ฐธ๊ณ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์„œ๋ฒ„(๋ฐฑ์—”๋“œ)๋Š” ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค ๋ฐ (์ผ๋ถ€) ์šด์˜์ฒด์ œ๊นŒ์ง€ ์•Œ์•„์•ผ ํ•˜๊ธฐ ๋•Œ๋ฌธ์—, ๊ณผ์ œ ์ฑ„์  ๋ฐ Programmers ์Šน๊ฒฉ ๊ธฐ์ค€์ด ๋‹ค๋ฅธ ์„ธ์…˜๋“ค์— ๋น„ํ•ด ๊นŒ๋‹ค๋กญ๊ฒŒ ์ง„ํ–‰๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

iOS ์„ธ๋ฏธ๋‚˜๋Š” mac OS๋ฅผ ํ•„์š”๋กœ ํ•ฉ๋‹ˆ๋‹ค. (๋งฅ๋ถ, ์•„์ด๋งฅ ๋“ฑ)

๋กœ๋“œ๊ฐ€ ๊ฝค ์žˆ๋Š” ๋งŒํผ, ๋ณธ์ธ์ด ๊ฐ€์žฅ ์ฆ๊ฒ๊ฒŒ ํ•  ์ˆ˜ ์žˆ๋Š” ์„ธ๋ฏธ๋‚˜๋ฅผ ์„ ํƒํ•˜๋Š” ๊ฒƒ์ด ์ œ์ผ ์ข‹์Šต๋‹ˆ๋‹ค.

26 of 66

Q&A

27 of 66

๋ชฉ์ฐจ

  1. OT
  2. ์„ธ๋ฏธ๋‚˜
  3. ๊ฐœ๋ฐœ ๊ฐœ์š”
  4. Git
  5. ๊ณผ์ œ ๋ฐ ๊ณต์ง€์‚ฌํ•ญ

์ค‘์š”

28 of 66

๊ฐœ๋ฐœ ๊ฐœ์š”

- ์„ค๋ช… ํŽธ์˜๋ฅผ ์œ„ํ•ด ์•ฝ๊ฐ„์˜ ์™œ๊ณก์ด ๋“ค์–ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋Š” ์  ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

29 of 66

๊ฐœ๋ฐœ์ž ๋ž€?

30 of 66

์ปดํ“จํ„ฐ ํ•˜๋‚˜๋งŒ ์žˆ์œผ๋ฉด ์„œ๋น„์Šค๋ฅผ ๋งŒ๋“ค์–ด ๋‚ผ ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ๋“ค

31 of 66

์›น / ์•ฑ ๊ฐœ๋ฐœ

32 of 66

Client(Frontend)

์‚ฌ์šฉ์ž์™€ ์ง์ ‘ ์†Œํ†ต

์œ ์ €์˜ ์ง€์‹œ์— ๋”ฐ๋ผ ์„œ๋ฒ„์— ๋ฐ์ดํ„ฐ๋ฅผ ์š”์ฒญํ•˜๋ฉฐ, ์ด๋ฅผ ๊ฐ€๊ณตํ•˜์—ฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ์ „๋‹ฌ

๋ธŒ๋ผ์šฐ์ €, ๋ชจ๋ฐ”์ผ ์•ฑ ๋“ฑ

33 of 66

Server(Backend)

ํด๋ผ์ด์–ธํŠธ์˜ ์š”์ฒญ์„ ๋ฐ›์•„์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€๊ณตํ•˜๋Š” ๋“ฑ์˜ ์ฒ˜๋ฆฌ

์—ฌ๋Ÿฌ ํด๋ผ์ด์–ธํŠธ์™€ ํ†ต์‹ ์ด ์ด๋ฃจ์–ด์ง

34 of 66

Database

์‹ค์ œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ์ €์žฅ์†Œ

์ €์žฅ์†Œ์— ์ ‘๊ทผํ•˜๋Š” ๋ฐฉ๋ฒ•๊นŒ์ง€ ํฌํ•จํ•˜๋Š” ์šฉ์–ด

35 of 66

์˜ˆ์‹œ

๋Œ“๊ธ€ ์ž…๋ ฅ ์‹œ

์œ ์ € -> ํด๋ผ์ด์–ธํŠธ: ๋Œ“๊ธ€์ฐฝ์— ๋Œ“๊ธ€์„ ๋‹ฌ๊ณ  ์ž…๋ ฅ ๋ฒ„ํŠผ์„ ๋ˆ„๋ฆ„

ํด๋ผ์ด์–ธํŠธ -> ์„œ๋ฒ„: 123๋ฒˆ ์œ ์ €๊ฐ€ 10292๋ฒˆ ๊ธ€์— ~~๋ผ๋Š” ๋Œ“๊ธ€ ์ž‘์„ฑ ์š”์ฒญ

์„œ๋ฒ„ -> DB : ๋Œ“๊ธ€ ํ…Œ์ด๋ธ”์— ์ด ๋Œ“๊ธ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ถ”๊ฐ€

๊ฒŒ์‹œ๊ธ€ ํ™•์ธ ์‹œ

์œ ์ € -> ํด๋ผ์ด์–ธํŠธ: ๊ฒŒ์‹œ๊ธ€์„ ํด๋ฆญ

ํด๋ผ์ด์–ธํŠธ -> ์„œ๋ฒ„: ํ•ด๋‹น ๊ฒŒ์‹œ๊ธ€์— ํ‘œ์‹œํ•ด์•ผ ํ• 

๋ฐ์ดํ„ฐ ์š”์ฒญ(๋Œ“๊ธ€, ์ข‹์•„์š” ์ˆ˜ ๋“ฑ)

์„œ๋ฒ„ -> DB -> ์„œ๋ฒ„: ์š”์ฒญ์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์™€์„œ ๊ฐ€๊ณต

์„œ๋ฒ„ -> ํด๋ผ์ด์–ธํŠธ: ์š”์ฒญ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌ

36 of 66

HTTP

HyperText Transfer Protocol

์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ ๋ฐ›๊ธฐ ์œ„ํ•ด ์ •์˜ํ•œ ๊ทœ์น™

Http์— ์˜ํ•ด ์„œ๋ฒ„๋Š” ํด๋ผ์ด์–ธํŠธ๊ฐ€ ์š”์ฒญํ•  ๋•Œ์— ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†ก

Response: Status code + header + body

Request : request method + URL + header + body

37 of 66

API

Application Programming Interface

๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋–ค ์‹์œผ๋กœ ์š”์ฒญํ•ด์•ผ ํ•˜๋Š”์ง€, ์š”์ฒญํ•œ ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ค ์‹์œผ๋กœ ์ œ๊ณต๋˜๋Š”์ง€์— ๋Œ€ํ•œ ๊ทœ๊ฒฉ

ํ”„๋กœ๊ทธ๋žจ๋“ค์ด ์„œ๋กœ์— ๋Œ€ํ•ด ์•Œ์ง€ ๋ชปํ•ด๋„ ์†Œํ†ตํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค

Ex) ๋ฐฐ๋‹ฌ ์•ฑ์—์„œ ์Œ์‹์„ ์ฃผ๋ฌธ

  • ๋ฉ”๋‰ด์— ์žˆ๋Š” ์Œ์‹๋งŒ ์ฃผ๋ฌธํ•  ์ˆ˜ ์žˆ๋‹ค
  • ์ง‘์ฃผ์†Œ์™€ ์ฃผ๋ฌธ์ž ์ „ํ™”๋ฒˆํ˜ธ, ๋ˆ์„ ์ง€๋ถˆํ•˜๋ฉด ์ฃผ๋ฌธ ์š”์ฒญ์ด ๋“ค์–ด๊ฐ„๋‹ค
  • ์ฃผ๋ฌธ์ด ์™„๋ฃŒ๋˜๋ฉด ์Œ์‹์ด ์ง‘์ฃผ์†Œ๋กœ ๋ฐฐ๋‹ฌ๋œ๋‹ค

์„œ๋ฒ„ ๊ฐœ๋ฐœ์ž: ํ˜‘์˜๋œ api๋ฅผ ๊ตฌํ˜„

ํด๋ผ์ด์–ธํŠธ ๊ฐœ๋ฐœ์ž: ์ œ๊ณต๋˜๋Š” api๋ฅผ ์‚ฌ์šฉ

38 of 66

Q&A

39 of 66

๋ชฉ์ฐจ

  1. OT
  2. ์„ธ๋ฏธ๋‚˜
  3. ๊ฐœ๋ฐœ ๊ฐœ์š”
  4. Git
  5. ๊ณผ์ œ ๋ฐ ๊ณต์ง€์‚ฌํ•ญ

์ค‘์š”

40 of 66

Git

- ์„ค๋ช… ํŽธ์˜๋ฅผ ์œ„ํ•ด ์•ฝ๊ฐ„์˜ ์™œ๊ณก์ด ๋“ค์–ด๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋Š” ์  ์ฐธ๊ณ ํ•ด์ฃผ์„ธ์š”.

41 of 66

Git์ด๋ž€

๋ถ„์‚ฐ ๋ฒ„์ „ ๊ด€๋ฆฌ ์‹œ์Šคํ…œ

ํšจ์œจ์ ์ธ ํ˜‘์—…์„ ์œ„ํ•ด์„œ ๋ฐ˜๋“œ์‹œ ํ•„์š”

์–ด๋ ต์ง€๋งŒ, ํ•˜๋‚˜์”ฉ ํ•˜๋‚˜์”ฉ ์•Œ์•„๋ณด์ž

42 of 66

๋ฒ„์ „ ๊ด€๋ฆฌ์˜ ํ•„์š”์„ฑ

ํŒŒ์ผ ์ด๋ฆ„ ๊ด€๋ฆฌ์˜ ์–ด๋ ค์›€

ํŒŒ์ผ์ด ๋ฐ”๋€Œ์–ด ์˜จ ์—ญ์‚ฌ๋ฅผ ๊ธฐ๋กํ•ด ๋‘”๋‹ค๋ฉด?

43 of 66

Repository & Commit

Commit: ์ฝ”๋“œ ์ˆ˜์ • ๋‚ด์—ญ ๋ฌถ์Œ

ํ•˜๋‚˜์˜ ํŠน์ง•, ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ๋ณ€ํ™”๋ฅผ ๋ฌถ๊ธฐ

git commit โ€“m โ€œRevise bug report syntaxโ€

Repository: ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ์— ๋Œ€ํ•œ ์ €์žฅ์†Œ

44 of 66

Add

test1.py

test2.py

test3.py

Add: ์—ญ์‚ฌ๋ฅผ ๊ธฐ๋กํ•  ํŒŒ์ผ์„ ์„ ํƒํ•˜๋Š” ๊ณผ์ •

git add test1.py๏ฟฝgit add test2.py

Stage

45 of 66

Add ์˜ˆ์‹œ

46 of 66

๋ถ„์‚ฐ?

๋ถ„์‚ฐ ์‹œํ‚ค๋ ค๋ฉด? ์›๊ฒฉ ์ €์žฅ์†Œ!

๋ถ„์‚ฐ์„ ์‹œํ‚ค๋ฉด?๏ฟฝ์„œ๋ฒ„์—์„œ ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ด๋„, ํด๋ผ์ด์–ธํŠธ์—์„œ ์›์ƒ ๋ณต๊ตฌ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.

์—ฌ๋Ÿฌ ๋ช…์ด ๋™์‹œ์— ๊ฐœ๋ฐœ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค.

๋กœ์ปฌ ์˜คํ”„๋ผ์ธ ํ™˜๊ฒฝ์—์„œ๋„ ์ž‘์—…์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

server

47 of 66

๋ถ„์‚ฐ?

server

Push:

commit๋œ ๋ณ€๊ฒฝ์‚ฌํ•ญ๋“ค์„ ์›๊ฒฉ ์ €์žฅ์†Œ์— ์—…๋กœ๋“œ

git push (origin master)

Pull:

์›๊ฒฉ์ €์žฅ์†Œ์˜ commit๋“ค์„ ๋กœ์ปฌ๋กœ ๋ฐ›์•„ ์˜ด

git pull (origin master)

48 of 66

์›๊ฒฉ ์ €์žฅ์†Œ

์›๊ฒฉ ์ €์žฅ์†Œ๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•? GitHub, GitLab โ€ฆ

์›๊ฒฉ ์ €์žฅ์†Œ์—์„œ๋„ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค.

49 of 66

branch

ํ˜‘์—…์„ ํ•  ๋•Œ ์—ญ์‚ฌ๊ฐ€ ์ œ๋Œ€๋กœ ๊ธฐ๋ก์ด ๋˜๋ ค๋ฉด?

์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ๋™์ผํ•œ ์†Œ์Šค์ฝ”๋“œ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์„œ๋กœ ๋‹ค๋ฅธ ์ž‘์—…์„ ํ•  ๋•Œ์— ๊ฐ๊ฐ ์„œ๋กœ ๋‹ค๋ฅธ ๋ฒ„์ „์˜ ์ฝ”๋“œ๋ฅผ ์ƒ์„ฑ

๋ธŒ๋žœ์น˜๋ฅผ ๋งŒ๋“ค์–ด ๋…๋ฆฝ์ ์ธ ์ž‘์—… ์˜์—ญ ์ƒ์„ฑ

๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์ž‘์—…์— ์˜ํ–ฅ์„ ๋ฐ›์ง€ ์•Š๊ณ  ๋…๋ฆฝ์ ์œผ๋กœ ํŠน์ • ์ž‘์—…์„ ์ˆ˜ํ–‰

50 of 66

๋‹ค์–‘ํ•œ ์˜ˆ์‹œ - 1

My GitHub

My Computer

test1.py

ABC Repository

51 of 66

๋‹ค์–‘ํ•œ ์˜ˆ์‹œ โ€“ 1 : Clone

My GitHub

My Computer

git clone https://github.com/wafflestudio/waffle-recruit.git

test1.py

ABC Repository

52 of 66

๋‹ค์–‘ํ•œ ์˜ˆ์‹œ - 2

My GitHub

My Computer

test1.py

ABC Repository

53 of 66

๋‹ค์–‘ํ•œ ์˜ˆ์‹œ โ€“ 2 : remote

My GitHub

My Computer

git remote add origin https://github.com/wafflestudio/waffle-recruit.git

test1.py

ABC Repository

54 of 66

๋‹ค์–‘ํ•œ ์˜ˆ์‹œ - 3

Waffle Studio GitHub

My GitHub

test1.py

ABC Repository

55 of 66

๋‹ค์–‘ํ•œ ์˜ˆ์‹œ โ€“ 3 : Fork

Waffle Studio GitHub

My GitHub

test1.py

ABC Repository

56 of 66

๋‹ค์–‘ํ•œ ์˜ˆ์‹œ - 4

Waffle Studio GitHub

My GitHub

test1.py

test1.py (updated)

ABC Repository

ABC Repository

57 of 66

๋‹ค์–‘ํ•œ ์˜ˆ์‹œ โ€“ 4 : Pull Request

Waffle Studio GitHub

My GitHub

test1.py

test1.py (updated)

- ์ž์‹ ์ด ๋งŒ๋“  branch๋ฅผ mergeํ•˜๊ธฐ ์ „์— ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ํ™•์ธ ๋ฐ›๋Š” ๊ณผ์ •

- ํŒ€ ํ”„๋กœ์ ํŠธ์—์„œ๋Š” master branch์— ๋ฐ”๋กœ mergeํ•˜๋Š” ๊ฒƒ์„ ์ง€์–‘ํ•˜๊ณ  PR์„ ํ†ตํ•ด ๋ณ€๊ฒฝ์ ์„ ๊ณต์œ ํ•ด์•ผ ํ•จ

ABC Repository

ABC Repository

58 of 66

๋งˆ์ง€๋ง‰ ์˜ˆ์‹œ โ€“ ๊ณผ์ œ ์ œ์ถœํ•˜๊ธฐ

Waffle Studio GitHub

My GitHub

seminar-list.md

My Computer

1

2

4

5

3

Seminar-2022 Repository

59 of 66

Q&A

60 of 66

๋ชฉ์ฐจ

  1. OT
  2. ์„ธ๋ฏธ๋‚˜
  3. ๊ฐœ๋ฐœ ๊ฐœ์š”
  4. Git
  5. ๊ณผ์ œ ๋ฐ ๊ณต์ง€์‚ฌํ•ญ

์ค‘์š”

61 of 66

๊ณผ์ œ : ์ฐธ์—ฌํ•  ์„ธ๋ฏธ๋‚˜ ๊ฒฐ์ •ํ•˜๊ธฐ

์•ž์„œ ์„ค๋ช…๋“œ๋ฆฐ pull request๋ฅผ ์ด์šฉํ•˜์—ฌ, ์ฐธ์—ฌํ•˜์‹ค ์„ธ๋ฏธ๋‚˜๋ฅผ ์ˆ˜ํ•ฉํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

62 of 66

๊ณผ์ œ : ์ฐธ์—ฌํ•  ์„ธ๋ฏธ๋‚˜ ๊ฒฐ์ •ํ•˜๊ธฐ

์ŠคํŽ™

  • ๊ณผ์ œ ๋งํฌ: https://github.com/wafflestudio/seminar-2022/blob/main/seminar-list.md
  • ๋ณธ์ธ์˜ ์ด๋ฆ„ ๋ฐ github id์— ํ•ด๋‹นํ•˜๋Š” line์„ ๋ณ€๊ฒฝํ•œ๋‹ค.
  • Seminar-2022 repository์— ์ž์‹ ์ด ์ฐธ์—ฌํ•  ์„ธ๋ฏธ๋‚˜์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ์ถ”๊ฐ€ํ•œ Pull Request๋ฅผ ์˜ฌ๋ฆฐ๋‹ค.
  • repository๋ฅผ forkํ•˜์—ฌ ์ˆ˜์ •ํ•˜๊ณ  pull request๋ฅผ ์˜ฌ๋ฆฌ๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•œ๋‹ค.
  • Pull Request์˜ ์ œ๋ชฉ์€ (๋ณธ์ธ ์ด๋ฆ„) (1์ง€๋ง ์„ธ๋ฏธ๋‚˜) ์‹ ์ฒญํ•ฉ๋‹ˆ๋‹ค ๋กœ ํ•œ๋‹ค. (์˜ˆ: ๊น€์ง€ํ˜ธ react ์„ธ๋ฏธ๋‚˜ ์‹ ์ฒญํ•ฉ๋‹ˆ๋‹ค)
    • ์‹ ์ฒญํ•˜์‹ค ์„ธ๋ฏธ๋‚˜๋Š” โ€˜reactโ€™ | โ€˜Djangoโ€™ | โ€˜Springโ€™ | โ€˜androidโ€™ | โ€˜iOSโ€™ ์ž…๋‹ˆ๋‹ค.
  • ์ฐธ์—ฌํ•˜์‹ค ์„ธ๋ฏธ๋‚˜์˜ Label์„ ๋‹ฌ์•„ ์ฃผ์„ธ์š”.
  • Due date: 8/24 18:00:00

์ฃผ์˜

  • ๊ฐ ์„ธ๋ฏธ๋‚˜์˜ ์ •์›์ด ์ •ํ•ด์ ธ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์ •์› ์ด๋‚ด์—์„œ PR ์˜ฌ๋ฆฐ ์ˆœ์„œ๋กœ ์„ ์ฐฉ์ˆœ ๋ชจ์ง‘์„ ํ•ฉ๋‹ˆ๋‹ค.
  • ๊ณต์ •์„ฑ์„ ์œ„ํ•ด PR์€ 22์ผ ์›”์š”์ผ ์ •์˜ค(12:00)~25์ผ ์ˆ˜์š”์ผ ์˜คํ›„ 6์‹œ(18:00) ์‚ฌ์ด์— ์ƒ์„ฑํ•œ ๊ฒƒ๋งŒ ํ™•์ธํ•ฉ๋‹ˆ๋‹ค.
  • ํ•ด๋‹น md ํŒŒ์ผ์•ˆ์— ๋ณธ์ธ์˜ ํ–‰์ด ์žˆ๋Š”์ง€ ํ™•์ธํ•ด์ฃผ์„ธ์š”. ๋งŒ์•ฝ ์—†๋‹ค๋ฉด ์˜ค๋Š˜ ์ž์ •์ „๊นŒ์ง€ ๋ฃจํ‚ค ์นดํ†ก๋ฐฉ์— ๋ง์”€ํ•ด์ฃผ์…”์•ผ ํ•ฉ๋‹ˆ๋‹ค.
  • ์ž˜๋ชป๋œ PR์€ ๋ฐ›์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ณธ์ธ์˜ ํ–‰๋งŒ ์ˆ˜์ •ํ–ˆ๋Š”์ง€, ๋‚จ๋“ค์˜ ํ–‰์€ ์ˆ˜์ •ํ•˜์ง€ ์•Š์•˜๋Š”์ง€ ํ™•์ธํ•ด์ฃผ์„ธ์š”!
  • ์งˆ๋ฌธ์ด ์žˆ์œผ์‹œ๋‹ค๋ฉด, ์ด๋ฒˆ ๊ณผ์ œ์— ํ•œํ•ด์„œ๋Š” ๋ฃจํ‚ค ์นดํ†ก๋ฐฉ์—์„œ ์ง„ํ–‰ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. ํ˜„์žฌ ๊นƒํ—ˆ๋ธŒ ๋ ˆํฌ ์ดˆ๋Œ€๊ฐ€ ์ง„ํ–‰๋˜๊ณ  ์žˆ์œผ๋‹ˆ๏ฟฝ์ด์Šˆ๋Š” ์„ธ๋ฏธ๋‚˜๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค!

63 of 66

Live Tutorial

64 of 66

๊ณต์ง€์‚ฌํ•ญ

์„ธ๋ฏธ๋‚˜๊ฐ€ ๊ฒฐ์ •๋˜๋Š” ๋Œ€๋กœ, ๋ฃจํ‚ค๋ถ„๋“ค์„ ์™€ํ”Œ์ŠคํŠœ๋””์˜ค 20.5๊ธฐ ์„ธ๋ฏธ๋‚˜ Slack์— ์ดˆ๋Œ€ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.

  • ์™€ํ”Œ์ŠคํŠœ๋””์˜ค๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ธํ”„๋ผ๊ฐ€ Slack์„ ๋ฐ”ํƒ•์œผ๋กœ ์ด๋ฃจ์–ด์ง€๊ธฐ ๋•Œ๋ฌธ์—, Slack์— ๋ฏธ๋ฆฌ ์ต์ˆ™ํ•ด์ง€์‹ค ํ•„์š”๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค.

Rookies ํšŒ๋น„๋ฅผ ๋‚ฉ๋ถ€ํ•ด์ฃผ์„ธ์š”!

  • ํšŒ๋น„๋Š” ์„œ๋ฒ„ ๋น„์šฉ, ๋Œ€๋ฉด ๊ฐ•์˜์‹ค ๋Œ€์—ฌ ๋น„์šฉ ๋“ฑ ์™€ํ”Œ์ŠคํŠœ๋””์˜ค์˜ ํ™œ๋™ ์ง€์›๋น„๋กœ ์‚ฌ์šฉ๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.
  • ํšŒ๋น„ ์‚ฌ์šฉ ๋‚ด์—ญ์€ ๊ณต๊ฐœ ๊ตฌ๊ธ€ ์Šคํ”„๋ ˆ๋“œ ์‹œํŠธ๋ฅผ ํ†ตํ•ด ํˆฌ๋ช…ํ•˜๊ฒŒ ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.
  • ์•„๋ž˜ ์™€ํ”Œ์ŠคํŠœ๋””์˜ค ๊ณ„์ขŒ๋กœ ํšŒ๋น„ 20,000์›์„ ์†ก๊ธˆ ํ›„, ์†ก๊ธˆ ํ™•์ธ์šฉ ๊ตฌ๊ธ€ ํผ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”. (๊ตฌ๊ธ€ ํผ ๋งํฌ๋Š” ๋ฃจํ‚ค ์นดํ†ก๋ฐฉ์— ๊ณต์ง€๋  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค.)
  • ์šฐ๋ฆฌ์€ํ–‰ 1005-404-194527 ์™€ํ”Œ์ŠคํŠœ๋””์˜ค

65 of 66

Q&A

66 of 66

์ž๋ฃŒ ์ œ์ž‘

v1: by @Hank-Choi

v2: by @woohm402

v3: by @hanan-nana, @shp7724