Skip to content

Latest commit

ย 

History

History
196 lines (118 loc) ยท 5.26 KB

File metadata and controls

196 lines (118 loc) ยท 5.26 KB

์•Œ์•„์•ผ ํ•˜๋Š” ๊ฒƒ

  • ๋‚ด ์ƒ๊ฐ

๊ฐœ๋ฐœ

๊ฐœ๋ฐœ์€ ํ•™๋ฌธ์ด ์•„๋‹ˆ๋ผ ์šด๋™๊ณผ๋„ ๊ฐ™์€ ๊ฒƒ์ด๋‹ค.

ํ•œ ๋ฒˆ์— ๋งŽ์€ ๊ฒƒ์„ ๋ฐฐ์šด๋‹ค๊ณ  ํ•ด๋„, ๊ต์žฌ๋ฅผ ์—ด์‹ฌํžˆ ๋ณธ๋‹ค ํ•ด๋„ ๊พธ์ค€ํžˆ, ์‹ค์ œ๋กœ ์•ˆํ•ด๋ณด๋ฉด ์‹ค๋ ฅ์ด ๋Š˜ ์ˆ˜ ์—†๋Š” ๊ฒƒ์ด ์šด๋™๊ณผ ๊ฐ™๋‹ค.

  • ์‚ฌ์šฉ์ž์˜ ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ฐ์ดํ„ฐ์˜ ๊ด€์ ์—์„œ ์ธ์‹ํ•˜๊ณ  ์ฒ˜๋ฆฌํ•œ๋‹ค.

  • ์ ์ ˆํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ์„ ํƒํ•œ๋‹ค.

๋ฉด์ ‘

  • ๋‘๊ด„์‹์œผ๋กœ ๋‹ตํ•ด๋ผ

์ฃผ์ œ๋‚˜ ๊ฒฐ๋ก ์„ ๋จผ์ € ๋งํ•˜๊ณ  ๋’ค์— ๋ถ€์—ฐ์„ค๋ช…

  • ์•ฝ์ ์€ 'ํ•˜์ง€๋งŒ'์œผ๋กœ ๋ฐฉํ–ฅ์„ ๋ฐ”๊พธ์–ด ๊ฐ•์ ์œผ๋กœ ์–ดํ•„ํ•œ๋‹ค.

  • '์ง์žฅ์ธ ์ฒ˜๋Ÿผ'์ด ์•„๋‹Œ '์ด๋ฏธ ์ง์žฅ์ธ'์ด๋ž€ ๋งˆ์Œ๊ฐ€์ง

  • ๋ฉด๊นŒ๋ชฐ

๋ฉด์ ‘์€ ๊นŒ๋ณด๊ธฐ ์ „๊นŒ์ง€ ๋ชจ๋ฅธ๋‹ค ใ…‹ใ…‹

I/O Extended 2023 Seoul

  • ์•”๋ฌต์ง€ ์—†์• ๊ธฐ
  • ๊ธฐ์ˆ ๋กœ๋งŒ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ•˜์ง€ ์•Š๋Š”๋‹ค
  • "์•ˆ๋œ๋‹ค"๊ณ  ํ•˜์ง€ ์•Š๋Š”๋‹ค ์ •๋ง ๊ฐœ๋ฐœ์ ์œผ๋กœ ์•ˆ๋˜๋Š” ๊ธฐํš ๋‚ด์šฉ์ด ์žˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ "์•ˆ๋œ๋‹ค"๋Š” ๋ง ๋Œ€์‹  ๋Œ€์•ˆ์„ ์ œ์‹œํ•œ๋‹ค. ์„ ํƒํ•  ์ˆ˜ ์žˆ๋Š” ๋Œ€์•ˆ์„ ์—ฌ๋Ÿฌ๊ฐœ ์ œ์‹œํ•˜๊ณ  ๊ฐ ๋Œ€์•ˆ๋“ค์— ๋Œ€ํ•œ ์žฅ์ ๊ณผ ๋‹จ์ ์„ ๋ช…ํ™•ํžˆ ์ •๋ฆฌํ•ด์„œ ๊ณต์œ ํ•œ๋‹ค.
  • ์ตœ์ ์˜ ํ”ผ์ณ ๊ฐœ๋ฐœ๋ฐฉํ–ฅ์„ ์ฐพ๋Š”๋‹ค
  • ๋ชจ๋“  ๊ฒƒ์„ ๊ธฐ๋กํ•œ๋‹ค
  • ํ•˜๋ผ๋Š” ๋Œ€๋กœ ํ•˜์ง€ ์•Š๋Š”๋‹ค
  • ์ผ์ • ๊ณต์œ 
  • ํ˜ผ์ž์„œ ๋‹ค ํ•˜๋ ค๊ณ  ํ•˜์ง€ ์•Š๊ธฐ
  • ์ธ์ •ํ•  ์ค„ ์•ˆ๋‹ค
  • ๋ช…ํ™•ํ•œ ๋‹จ์–ด์™€ ๋ฌธ์žฅ ์‚ฌ์šฉ
  • TODO/ Reminder
  • ์•Œ์•„์„œ ์ž˜ํ•œ๋‹ค
  • ๊ท€์ฐฎ์•„ ํ•œ๋‹ค (์ž๋™ํ™” ํ•˜๊ธฐ ๋“ฑ)
  • ํšŒ๊ณ 

์˜จ๋ณด๋”ฉ

  • ๊ฐœ๋ฐœ ํ™˜๊ฒฝ, ์‹œ์Šคํ…œ ์ ‘๊ทผ ๊ถŒํ•œ ์…‹์—…

  • ๋ณดํŽธ์ ์ธ ํŒ€์˜ ์ ˆ์ฐจ๋“ค๊ณผ ํšŒ์˜ ์ผ์ • ํŒŒ์•…

  • ์˜จ๋ณด๋”ฉ ๊ณผ์ •์—์„œ ๋ฐœ๊ฒฌํ•œ ๋ฌธ์„œ์˜ ์˜ค๋ฅ˜๋ฅผ ์ˆ˜์ •ํ•˜๋ฉด์„œ ํŒ€์— ๊ธฐ์—ฌ

์ข‹์€ ์ฝ”๋“œ๋ž€ ๋ฌด์—‡์ธ๊ฐ€

  • ์ฝ๊ธฐ ์‰ฌ์šด ์ฝ”๋“œ

  • ์ค‘๋ณต์ด ์—†๋Š” ์ฝ”๋“œ

  • ์ผ๊ด€์„ฑ ์žˆ๋Š” ์ฝ”๋“œ

์—ฌ๊ธฐ์„œ ๋งํ•˜๋Š” ์ผ๊ด€์„ฑ์€ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ํ•ฉ์˜๋œ ๊ทœ์น™ (= ๊ทธ๋ผ์šด๋“œ ๋ฃฐ)์„ ์–˜๊ธฐํ•œ๋‹ค.

  1. ๋„ค์ด๋ฐ (ํ•จ์ˆ˜๋‚˜ ๋ณ€์ˆ˜ ๋“ฑ)
  2. ๋””๋ ‰ํ„ฐ๋ฆฌ ๊ตฌ์กฐ

์ง€์—ญ์„ฑ์„ ๊ณ ๋ คํ•œ ํŒจํ‚ค์ง€ ๊ตฌ์กฐ

์ง€์—ญ์„ฑ์˜ ์›์น™

๊ณต๊ฐ„์  ์ง€์—ญ์„ฑ

ํŠน์ • ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•œ ๋ฒˆ ์ฐธ์กฐ๋˜์—ˆ๋‹ค๋ฉด ๊ทธ ๋ฉ”๋ชจ๋ฆฌ์˜ ๊ทผ์ฒ˜์— ์žˆ๋Š” ๋ฉ”๋ชจ๋ฆฌ๋„ ์กฐ๋งŒ๊ฐ„ ์ฐธ์กฐ๋  ํ™•๋ฅ ์ด ๋†’๋‹ค.

์‹œ๊ฐ„์  ์ง€์—ญ์„ฑ

ํŠน์ • ๋ฉ”๋ชจ๋ฆฌ๊ฐ€ ํ•œ ๋ฒˆ ์ฐธ์กฐ๋˜์—ˆ๋‹ค๋ฉด ๊ทธ ๋ฉ”๋ชจ๋ฆฌ๋Š” ์กฐ๋งŒ๊ฐ„ ๋‹ค์‹œ ์ฐธ์กฐ๋  ํ™•๋ฅ ์ด ๋†’๋‹ค.

๊ณ„์ธต๋ณ„๋กœ ์ฝ”๋“œ๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์ด ๋ฌด์กฐ๊ฑด ์•ˆ์ข‹์€ ๊ฒƒ์€ ์•„๋‹ˆ์ง€๋งŒ ์ƒ์œ„ ๋ ˆ๋ฒจ์—์„œ ๊ธฐ๋Šฅ๋ณ„๋กœ ๋‚˜๋ˆ„๊ณ  ๋‚ด๋ถ€์ ์œผ๋กœ๋Š” ๋งˆ์น˜ ์ž‘์€ ํ•˜๋‚˜์˜ ํ”„๋กœ์ ํŠธ์ฒ˜๋Ÿผ ๋™์ž‘ํ•˜๋Š” ํŠน์ • ๊ธฐ๋Šฅ ํด๋”๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ๋„ ๋ฐฉ๋ฒ•์ด๋‹ค.

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

ํ”„๋กœ๊ทธ๋žจ์„ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋…๋ฆฝ๋œ ๊ฐ์ฒด๋“ค๊ณผ ๊ทธ ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ์ƒํ˜ธ์ž‘์šฉ์œผ๋กœ ํŒŒ์•…ํ•˜๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ ‘๊ทผ๋ฒ•์ด๋‹ค.

-> ํ”„๋กœ๊ทธ๋žจ์„ ๊ฐ์ฒด๋“ค๊ณผ ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ์†Œํ†ต์œผ๋กœ ๋ฐ”๋ผ๋ณด๋Š” ๊ฒƒ

๊ฐ์ฒด์ง€ํ–ฅ์ ์œผ๋กœ ์„ค๊ณ„ -> ๋ชจ๋ธ๋ง ํ–ˆ๋‹ค.

๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค๋ ค๋ฉด

  1. ํ”„๋กœ๊ทธ๋žจ์— ์–ด๋–ค ๊ฐ์ฒด๋“ค์ด ํ•„์š”ํ•  ์ง€ ์ •ํ•œ๋‹ค.
  2. ๊ฐ์ฒด๋“ค์˜ ์†์„ฑ๊ณผ ํ–‰๋™์„ ์ •ํ•œ๋‹ค.
  3. ๊ฐ์ฒด๋“ค์ด ์„œ๋กœ ์–ด๋–ป๊ฒŒ ์†Œํ†ตํ•  ์ง€ ์ •ํ•œ๋‹ค.

๊ฐ์ฒด

์†์„ฑ๊ณผ ํ–‰๋™์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ์กด์žฌ

์‚ด์•„๊ฐ€๋ฉด์„œ ๋ณด๋Š” ๋ชจ๋“  ์กด์žฌ -> ๊ฐ์ฒด

ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค

User ๊ฐ์ฒด์˜ ํ‹€

instagram User ๊ฐ์ฒด

์†์„ฑ - ์ด๋ฆ„, ์ด๋ฉ”์ผ, ๋น„๋ฒˆ, ํŒ”๋กœ์šฐ ํŒ”๋กœ์›Œ ๋ชฉ๋ก ๋“ฑ

ํ–‰๋™ - ์ž๊ธฐ์†Œ๊ฐœํ•˜๊ธฐ, ํŒ”๋กœ์šฐํ•˜๊ธฐ

์ด๋Ÿฌํ•œ ๊ฐ์ฒด์˜ ํ‹€์„ ํด๋ž˜์Šค ๋ผ๊ณ  ํ•œ๋‹ค.

ํด๋ž˜์Šค๋กœ ์ธ์Šคํ„ด์Šค(= ๊ฐ์ฒด)๋ฅผ ๋งŒ๋“ ๋‹ค.

class User:
  pass

# ๊ฐ™์€ ํด๋ž˜์Šค๋กœ ๋งŒ๋“ค์—ˆ์ง€๋งŒ ์„œ๋กœ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค์ž„
user1 = User()
user2 = User()
user3 = User()

์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜

์ธ์Šคํ„ด์Šค ์ด๋ฆ„.์†์„ฑ์ด๋ฆ„(์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜) = "์†์„ฑ์— ๋„ฃ์„ ๊ฐ’"

user1.name = "์Šฌํฌ"
user1.email = "3021062@gmail.com"

user2.name = "์Šฌ"
user2.email = "1234.gmail.com"

์ธ์Šคํ„ด์Šค๊ฐ€ ๊ฐœ์ธ์ ์œผ๋กœ ๊ฐ–๊ณ ์žˆ๋Š” ๊ฒƒ์„ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ๋ผ ํ•œ๋‹ค.

์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์‚ฌ์šฉํ•˜๊ธฐ

์ธ์Šคํ„ด์Šค ์ด๋ฆ„.์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ์ด๋ฆ„

print(user1.name) # ์Šฌํฌ
print(user1.age) # error

๋ฉ”์†Œ๋“œ

  • ์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ
  • ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ
  • ์ •์  ๋ฉ”์†Œ๋“œ

์ธ์Šคํ„ด์Šค ๋ฉ”์†Œ๋“œ

์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ฑฐ๋‚˜ ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์— ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ๋ฉ”์†Œ๋“œ

class User:
  def say_hello(user):
    print("์•ˆ๋…•ํ•˜์„ธ์š” ์ €๋Š” {}์ž…๋‹ˆ๋‹ค.".format(user.name))

user1 = User()
user1.name = "์Šฌํฌ"

User.say_hello(user1) # ์•ˆ๋…•ํ•˜์„ธ์š” ์ €๋Š” ์Šฌํฌ์ž…๋‹ˆ๋‹ค.

์•„๋ž˜ ๋‘๊ฐœ๋Š” ๊ฐ™๋‹ค.

User.say_hello(user1)

user1.say_hello()

๊ด€์‹ฌ์‚ฌ์˜ ๋ถ„๋ฆฌ

์ปดํ“จํ„ฐ ํ”„๋กœ๊ทธ๋žจ์„ ๊ด€์‹ฌ์‚ฌ ๋ณ„๋กœ ๊ตฌ๋ณ„ํ•ด ๋ถ„๋ฆฌํ•˜๋Š” ์„ค๊ณ„ ์›์น™์ด๋‹ค.

์ˆ˜ํ‰์ ์ธ ๋ถ„๋ฆฌ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๋‚ด์— ๋™์ผํ•œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ธฐ๋Šฅ์˜ ๋…ผ๋ฆฌ์  ๋‹จ์œ„๋กœ ๋ถ„๋ฆฌํ•œ๋‹ค.

Presentation Layer: ๋ณด์ด๋Š” ์š”์†Œ์ธ HTML, CSS, UI์— ํ•„์š”ํ•œ ์ƒํƒœ๊ด€๋ฆฌ๋กœ ์ด๋ฃจ์–ด์ง„ UI ์ปดํฌ๋„ŒํŠธ

Business Layer: ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง๊ณผ ๋„๋ฉ”์ธ ๊ด€๋ จ๋œ ์ปดํฌ๋„ŒํŠธ

Resource Access Layer: ์œ ์ €์—๊ฒŒ ์ œ๊ณตํ•  ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด ๋ฐฑ์—”๋“œ ์„œ๋ฒ„์— ์š”์ฒญ, ๋กœ์ปฌ ์Šคํ† ๋ฆฌ์ง€ ์ ‘๊ทผ, ์™ธ๋ถ€ api ์„œ๋ฒ„ ์š”์ฒญ ๋“ฑ ์™ธ๋ถ€ ์ •๋ณด ์ ‘๊ทผ๊ณผ ๊ด€๋ จ๋œ ํ›… ๋˜๋Š” ํ•จ์ˆ˜

Presentational & Container ํŒจํ„ด

์ˆ˜์ง์ ์ธ ๋ถ„๋ฆฌ

์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๋™์ผํ•œ ํ”ผ์ณ๋ฅผ ๋ชจ๋“ˆ๋กœ ๋ฌถ์–ด์„œ ๋ถ„๋ฆฌํ•œ๋‹ค.