๋ฐ˜์‘ํ˜•

๐ŸŽˆ ๋‚ด์žฅํ•จ์ˆ˜

ํŒŒ์ด์ฌ์—๋Š” ๊ธฐ๋ณธ์ ์œผ๋กœ ์ œ๊ณต๋˜๋Š” ๋‚ด์žฅ ํ•จ์ˆ˜๋“ค์ด ์žˆ์–ด ๋ณ„๋„์˜ ์„ค์น˜ ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‚ด์žฅ ํ•จ์ˆ˜๋Š” ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ, ์ž…๋ ฅ/์ถœ๋ ฅ, ์ˆ˜ํ•™ ๊ณ„์‚ฐ ๋“ฑ ๋‹ค์–‘ํ•œ ์ž‘์—…์„ ์‰ฝ๊ฒŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค.

 

 

- abs(): ์ˆซ์ž์˜ ์ ˆ๋Œ€๊ฐ’์„ ๋ฐ˜ํ•˜๋Š” ํ•จ์ˆ˜.

    print(abs(-5)) # ์ถœ๋ ฅ: 5

 

- all(): ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด(๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ ๋“ฑ) ์•ˆ์˜ ๋ชจ๋“  ๊ฐ’์ด ์ฐธ์ด๋ฉด True๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

    print(all([True, 1, "hello"])) # ์ถœ๋ ฅ: True

 

- any(): ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด ์•ˆ์˜ ๊ฐ’ ์ค‘ ํ•˜๋‚˜๋ผ๋„ ์ฐธ์ด๋ฉด True๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

    print(any([False, 0, None, "text"])) # ์ถœ๋ ฅ: True

 

- chr(): ์œ ๋‹ˆ์ฝ”๋“œ ๊ฐ’์„ ๋ฌธ์ž๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  print(chr(65))  # ์ถœ๋ ฅ: 'A'

 

- ord(): ๋ฌธ์ž์˜ ์œ ๋‹ˆ์ฝ”๋“œ ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  print(ord('A'))  # ์ถœ๋ ฅ: 65

 

- divmod(): ๋‘ ์ˆ˜๋ฅผ ๋‚˜๋ˆˆ ๋ชซ๊ณผ ๋‚˜๋จธ์ง€๋ฅผ ํŠœํ”Œ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  print(divmod(10, 3))  # ์ถœ๋ ฅ: (3, 1)

 

- enumerate(): ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด(๋ฆฌ์ŠคํŠธ ๋“ฑ)์—์„œ ์ธ๋ฑ์Šค์™€ ๊ฐ’์„ ํ•จ๊ป˜ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  fruits = ['apple', 'banana']
  for index, fruit in enumerate(fruits):
      print(index, fruit)
  # ์ถœ๋ ฅ:
  # 0 apple
  # 1 banana

 

- eval(): ๋ฌธ์ž์—ด ํ˜•ํƒœ์˜ ํ‘œํ˜„์‹์„ ์‹คํ–‰ํ•˜๋Š” ํ•จ์ˆ˜.

  print(eval("3 + 5"))  # ์ถœ๋ ฅ: 8

 

- filter(): ํ•จ์ˆ˜์˜ ์กฐ๊ฑด์„ ๋งŒ์กฑํ•˜๋Š” ์š”์†Œ๋งŒ ๊ฑธ๋Ÿฌ๋‚ด๋Š” ํ•จ์ˆ˜.

  numbers = [1, 2, 3, 4, 5]
  even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
  print(even_numbers)  # ์ถœ๋ ฅ: [2, 4]

 

- hex(): ์ •์ˆ˜๋ฅผ 16์ง„์ˆ˜ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  print(hex(255))  # ์ถœ๋ ฅ: '0xff'

 

- id(): ๊ฐ์ฒด์˜ ๊ณ ์œ ํ•œ ID ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  a = 3
  print(id(a))  # ์ถœ๋ ฅ: ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ๊ฐ’ (์˜ˆ: 140722945015568)

 

- int(): ๋ฌธ์ž์—ด์ด๋‚˜ ์‹ค์ˆ˜๋ฅผ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  print(int("10"))  # ์ถœ๋ ฅ: 10
  print(int(3.14))  # ์ถœ๋ ฅ: 3

 

- isinstance(): ์ธ์Šคํ„ด์Šค๊ฐ€ ํŠน์ • ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค์ธ์ง€ ํ™•์ธํ•˜๋Š” ํ•จ์ˆ˜.

  print(isinstance(5, int))  # ์ถœ๋ ฅ: True

 

- len(): ๊ฐ์ฒด(๋ฌธ์ž์—ด, ๋ฆฌ์ŠคํŠธ ๋“ฑ)์˜ ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  print(len("hello"))  # ์ถœ๋ ฅ: 5

 

- list(): ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฅผ ๋ฆฌ์ŠคํŠธ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  print(list("hello"))  # ์ถœ๋ ฅ: ['h', 'e', 'l', 'l', 'o']

 

- map(): ๋ฆฌ์ŠคํŠธ ๋“ฑ์˜ ๊ฐ ์š”์†Œ์— ํ•จ์ˆ˜๋ฅผ ์ ์šฉํ•˜๋Š” ํ•จ์ˆ˜.

  numbers = [1, 2, 3]
  print(list(map(str, numbers)))  # ์ถœ๋ ฅ: ['1', '2', '3']

 

- max(): ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด์˜ ์ตœ๋Œ“๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  numbers = [10, 20, 30]
  print(max(numbers))  # ์ถœ๋ ฅ: 30

 

- min(): ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด์˜ ์ตœ์†Ÿ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  numbers = [10, 20, 30]
  print(min(numbers))  # ์ถœ๋ ฅ: 10

 

- pow(): x์˜ y ์ œ๊ณฑ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  print(pow(2, 3))  # ์ถœ๋ ฅ: 8

 

- range(): ์ •์ˆ˜ ๋ฒ”์œ„๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ•จ์ˆ˜.

  print(list(range(5)))  # ์ถœ๋ ฅ: [0, 1, 2, 3, 4]

 

- round(): ์ˆซ์ž๋ฅผ ๋ฐ˜์˜ฌ๋ฆผํ•˜๋Š” ํ•จ์ˆ˜.

  print(round(3.14159, 2))  # ์ถœ๋ ฅ: 3.14

 

- sorted(): ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฅผ ์ •๋ ฌ๋œ ๋ฆฌ์ŠคํŠธ๋กœ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  numbers = [5, 2, 9, 1]
  print(sorted(numbers))  # ์ถœ๋ ฅ: [1, 2, 5, 9]

 

- str(): ๊ฐ์ฒด๋ฅผ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  num = 100
  print(str(num))  # ์ถœ๋ ฅ: '100'

 

- sum(): ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด์˜ ํ•ฉ์„ ๋ฐ˜ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  numbers = [1, 2, 3, 4, 5]
  print(sum(numbers))  # ์ถœ๋ ฅ: 15

 

- tuple(): ๋ฐ˜๋ณต ๊ฐ€๋Šฅํ•œ ๊ฐ์ฒด๋ฅผ ํŠœํ”Œ๋กœ ๋ณ€ํ™˜ํ•˜๋Š” ํ•จ์ˆ˜.

  print(tuple("hello"))  # ์ถœ๋ ฅ: ('h', 'e', 'l', 'l', 'o')

 

- zip(): ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ฆฌ์ŠคํŠธ๋‚˜ ํŠœํ”Œ์„ ์ง์ง€์–ด์ฃผ๋Š” ํ•จ์ˆ˜.

  names = ["Alice", "Bob"]
  scores = [90, 85]
  print(list(zip(names, scores)))  # ์ถœ๋ ฅ: [('Alice', 90), ('Bob', 85)]
๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

์˜ˆ์™ธ ์ฒ˜๋ฆฌ (Exception Handling)

์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋Š” ์ฝ”๋“œ ์‹คํ–‰ ์ค‘ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ์˜ค๋ฅ˜ ์ƒํ™ฉ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.

try, except, finally ๊ตฌ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ์˜ˆ์™ธ ๋ฐœ์ƒ ์‹œ ์ฝ”๋“œ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ข…๋ฃŒํ•˜๊ฑฐ๋‚˜ ํŠน์ • ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

1. ๊ธฐ๋ณธ์ ์ธ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๊ตฌ์กฐ

try:
    # ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์ฝ”๋“œ
except ExceptionType:
    # ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ
else:
    # ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์„ ๋•Œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ
finally:
    # ์˜ˆ์™ธ ๋ฐœ์ƒ ์—ฌ๋ถ€์™€ ์ƒ๊ด€์—†์ด ํ•ญ์ƒ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ

 

  • try: ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•  ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ. ์˜ˆ๋ฅผ ๋“ค์–ด ํŒŒ์ผ์„ ์—ด๊ฑฐ๋‚˜, ์ˆซ์ž๋ฅผ 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ๋“ฑ์˜ ์ž‘์—…์ด ํฌํ•จ๋  ์ˆ˜ ์žˆ๋‹ค.
  • except: ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ–ˆ์„ ๋•Œ ์‹คํ–‰ํ•  ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ. ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ ์œ ํ˜•์— ๋”ฐ๋ผ ์—ฌ๋Ÿฌ ๊ฐœ์˜ except ๋ธ”๋ก์„ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.
  • else: ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜์ง€ ์•Š์•˜์„ ๋•Œ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ. else๋Š” ์„ ํƒ ์‚ฌํ•ญ์œผ๋กœ, try ๋ธ”๋ก์ด ์„ฑ๊ณต์ ์œผ๋กœ ์™„๋ฃŒ๋œ ๊ฒฝ์šฐ์—๋งŒ ์‹คํ–‰๋œ๋‹ค.
  • finally: ์˜ˆ์™ธ ๋ฐœ์ƒ ์—ฌ๋ถ€์™€ ์ƒ๊ด€์—†์ด ํ•ญ์ƒ ์‹คํ–‰๋˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑ. ํŒŒ์ผ์„ ์—ด์—ˆ๋‹ค๋ฉด ๋‹ซ๋Š” ์ž‘์—…์„ ์—ฌ๊ธฐ์— ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

# ์˜ˆ์ œ ์ฝ”๋“œ 

์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ์ˆซ์ž๋ฅผ 100์œผ๋กœ ๋‚˜๋ˆ„๋Š” ํ”„๋กœ๊ทธ๋žจ์œผ๋กœ,์—ฌ๊ธฐ์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ValueError์™€ ZeroDivisionError ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์ฝ”๋“œ

try:
    num = int(input("์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”: "))
    result = 100 / num
except ValueError:
    print("์œ ํšจํ•œ ์ˆซ์ž๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค. ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•ด์ฃผ์„ธ์š”.")
except ZeroDivisionError:
    print("0์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.")
else:
    print(f"๊ฒฐ๊ณผ: {result}")
finally:
    print("ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.")
  • try ๋ธ”๋ก์—์„œ๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๊ฐ’์„ ์ •์ˆ˜๋กœ ๋ณ€ํ™˜ํ•œ ํ›„, 100์„ ๊ทธ ๊ฐ’์œผ๋กœ ๋‚˜๋ˆ„๋Š” ์—ฐ์‚ฐ์„ ์ˆ˜ํ–‰.
  • except ValueError ๋ธ”๋ก์€ ์‚ฌ์šฉ์ž๊ฐ€ ์ˆซ์ž๊ฐ€ ์•„๋‹Œ ๊ฐ’์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ์‹คํ–‰๋˜๋ฉฐ, "์œ ํšจํ•œ ์ˆซ์ž๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค"๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅ.
  • except ZeroDivisionError ๋ธ”๋ก์€ ์‚ฌ์šฉ์ž๊ฐ€ 0์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ์‹คํ–‰๋˜๋ฉฐ, "0์œผ๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅ.
  • else ๋ธ”๋ก์€ ์˜ˆ์™ธ๊ฐ€ ์—†์„ ๊ฒฝ์šฐ ์‹คํ–‰๋˜๋ฉฐ, ๋‚˜๋ˆ—์…ˆ ๊ฒฐ๊ณผ๋ฅผ ์ถœ๋ ฅ.
  • finally ๋ธ”๋ก์€ ์˜ˆ์™ธ ๋ฐœ์ƒ ์—ฌ๋ถ€์™€ ๊ด€๊ณ„์—†์ด ํ•ญ์ƒ ์‹คํ–‰๋˜๋ฉฐ, "ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋˜์—ˆ์Šต๋‹ˆ๋‹ค"๋ผ๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ถœ๋ ฅ.

์ด์™€ ๊ฐ™์€ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ๋ฐฉ์‹์œผ๋กœ ํ”„๋กœ๊ทธ๋žจ์€ ์˜ค๋ฅ˜ ์ƒํ™ฉ์—์„œ๋„ ์•ˆ์ „ํ•˜๊ฒŒ ์ž‘๋™ํ•  ์ˆ˜ ์žˆ๋‹ค.

 

 

 

 

๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

1. ๋ชจ๋“ˆ (Modules)

๋ชจ๋“ˆ์€ Python ์ฝ”๋“œ๊ฐ€ ํฌํ•จ๋œ ํŒŒ์ผ๋กœ, ๋‹ค๋ฅธ Python ํŒŒ์ผ์—์„œ ์ด๋ฅผ ๋ถˆ๋Ÿฌ์™€ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋ชจ๋“ˆ์€ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๊ณ , ์ฝ”๋“œ๋ฅผ ๊ตฌ์กฐํ™”ํ•˜์—ฌ ์œ ์ง€๋ณด์ˆ˜์— ์šฉ์ดํ•˜๊ฒŒ ํ•œ๋‹ค. ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด import ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ๋ถˆ๋Ÿฌ์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

# example_module.py ํŒŒ์ผ

def greet(name):  
print(f"Hello, {name}!")

๋‹ค๋ฅธ ํŒŒ์ผ์—์„œ ๋ถˆ๋Ÿฌ์˜ค๊ธฐ:

import example_module
example_module.greet("Cheolsu")  # Output: Hello, Cheolsu!

 

2. ํŒจํ‚ค์ง€ (Packages)

ํŒจํ‚ค์ง€๋Š” ๋ชจ๋“ˆ๋“ค์„ ๋””๋ ‰ํ† ๋ฆฌ๋กœ ๋ฌถ์–ด ๊ด€๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ํŒจํ‚ค์ง€์˜ ๊ฐ ๋””๋ ‰ํ† ๋ฆฌ์—๋Š” __init__.py ํŒŒ์ผ์ด ํฌํ•จ๋˜์–ด ์žˆ์–ด Python์ด ์ด ๋””๋ ‰ํ† ๋ฆฌ๋ฅผ ํŒจํ‚ค์ง€๋กœ ์ธ์‹ํ•˜๊ฒŒ ํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ณ„์ธต ๊ตฌ์กฐ์˜ ์ฝ”๋“œ ๋ชจ๋“ˆ์„ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค.

my_package/
โ”œโ”€โ”€ __init__.py
โ”œโ”€โ”€ module1.py
โ””โ”€โ”€ module2.py

 

๋ถˆ๋Ÿฌ์˜ค๊ธฐ ์˜ˆ์‹œ:

from my_package import module1
module1.some_function()

 

๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•
d = Dog("Buddy")
d.bark()  # Output: Buddy says woof!

1. ํด๋ž˜์Šค์˜ ์ •์˜

ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•œ ๊ตฌ์กฐ์ด๋‹ค. ํด๋ž˜์Šค๋Š” ํŠน์ • ๊ธฐ๋Šฅ์„ ๊ฐ€์ง„ ๋ฐ์ดํ„ฐ์™€ ํ•จ์ˆ˜๋ฅผ ํฌํ•จํ•˜๋ฉฐ, ์ƒˆ๋กœ์šด ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š” ํ‹€๋กœ ํ™œ์šฉ๋œ๋‹ค. Python์—์„œ ํด๋ž˜์Šค๋Š” class ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

class Person:
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def greet(self):
        print(f"Hello, {self.name}!")

Person ํด๋ž˜์Šค๋Š” ์ด๋ฆ„๊ณผ ๋‚˜์ด๋ฅผ ์†์„ฑ์œผ๋กœ ๊ฐ€์ง€๋ฉฐ, greet ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด ์ธ์‚ฌ๋ง์„ ์ถœ๋ ฅํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ์ฒด๋Š” ํด๋ž˜์Šค๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์„ฑ๋˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ํด๋ž˜์Šค๋ฅผ ํ˜ธ์ถœํ•˜์—ฌ ์ƒˆ๋กœ์šด ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.

* self๋Š” Python์—์„œ ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค ์ž์‹ ์„ ์ฐธ์กฐํ•˜๊ธฐ ์œ„ํ•œ ํŠน๋ณ„ํ•œ ๋ณ€์ˆ˜๋‹ค. ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์ •์˜ํ•  ๋•Œ ํ•ญ์ƒ ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ self๋ฅผ ์ ์–ด์•ผ ํ•˜๋ฉฐ, ์ด๋ฅผ ํ†ตํ•ด ํ•ด๋‹น ์ธ์Šคํ„ด์Šค์˜ ์†์„ฑ์ด๋‚˜ ๋ฉ”์„œ๋“œ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. JavaScript์—์„œ๋Š” ์ผ๋ฐ˜์ ์œผ๋กœ this๋ฅผ ํ†ตํ•ด ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ํ”„๋กœํผํ‹ฐ์— ์ ‘๊ทผํ•˜๋Š”๋ฐ, Python์—์„œ๋Š” self๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ์ „๋‹ฌํ•ด์•ผ ํ•œ๋‹ค.

p = Person("Cheolsu", 20)
p.greet()  # Output: Hello, Cheolsu!

2. __init__ ๋ฉ”์„œ๋“œ (Initializer)

__init__ ๋ฉ”์„œ๋“œ๋Š” ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ๋œ ๊ฐ์ฒด์˜ ์ดˆ๊ธฐ๊ฐ’์„ ์„ค์ •ํ•˜๋Š” ํŠน๋ณ„ํ•œ ๋ฉ”์„œ๋“œ์ด๋‹ค. ๊ฐ์ฒด ์ƒ์„ฑ ์‹œ ์ž๋™์œผ๋กœ ํ˜ธ์ถœ๋˜๋ฉฐ, ์†์„ฑ์„ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜ self๋Š” ํ•ด๋‹น ์ธ์Šคํ„ด์Šค๋ฅผ ๋‚˜ํƒ€๋‚ด๋ฉฐ, Python ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ์—์„œ ํ•ญ์ƒ ์ฒซ ๋ฒˆ์งธ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ์‚ฌ์šฉ๋œ๋‹ค.

class Animal:
    def __init__(self, species, sound):
        self.species = species
        self.sound = sound

    def make_sound(self):
        print(f"{self.species} makes {self.sound}")
a = Animal("Cat", "meow")
a.make_sound()  # Output: Cat makes meow

3. ํด๋ž˜์Šค ์†์„ฑ๊ณผ ์ธ์Šคํ„ด์Šค ์†์„ฑ

ํด๋ž˜์Šค ์†์„ฑ์€ ํด๋ž˜์Šค ์ž์ฒด์— ์†ํ•˜๋Š” ๋ฐ˜๋ฉด, ์ธ์Šคํ„ด์Šค ์†์„ฑ์€ ํŠน์ • ์ธ์Šคํ„ด์Šค์— ์†ํ•œ๋‹ค. ํด๋ž˜์Šค ์†์„ฑ์€ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค์—์„œ ๊ณต์œ ๋˜๋ฉฐ, ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š๊ณ  ํด๋ž˜์Šค๋ช…์œผ๋กœ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

class Car:
    wheels = 4  # ํด๋ž˜์Šค ์†์„ฑ

    def __init__(self, color):
        self.color = color  # ์ธ์Šคํ„ด์Šค ์†์„ฑ
print(Car.wheels)  # Output: 4
car1 = Car("Red")
print(car1.color)  # Output: Red

4. ๋ฉ”์„œ๋“œ(Method)

ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ ์ •์˜๋œ ํ•จ์ˆ˜๋Š” ๋ฉ”์„œ๋“œ๋ผ ๋ถˆ๋ฆฌ๋ฉฐ, ๊ฐ์ฒด์˜ ๋™์ž‘์„ ์ •์˜ํ•œ๋‹ค. ๋ฉ”์„œ๋“œ๋Š” ๊ฐ์ฒด๋ฅผ ํ†ตํ•ด ํ˜ธ์ถœ๋˜๋ฉฐ, ๋ฉ”์„œ๋“œ ๋‚ด๋ถ€์—์„œ ์ธ์Šคํ„ด์Šค ์†์„ฑ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

class Dog:
    def __init__(self, name):
        self.name = name

    def bark(self):
        print(f"{self.name} says woof!")

5. ์ƒ์†(Inheritance)

์ƒ์†์€ ๊ธฐ์กด ํด๋ž˜์Šค๋ฅผ ํ™•์žฅํ•˜์—ฌ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๋ฅผ ๋งŒ๋“œ๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์ƒ์†์„ ํ†ตํ•ด ์ฝ”๋“œ ์ค‘๋ณต์„ ์ค„์ผ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์ƒ์œ„ ํด๋ž˜์Šค์˜ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ํ•˜์œ„ ํด๋ž˜์Šค๊ฐ€ ๋ฌผ๋ ค๋ฐ›๋Š”๋‹ค.

class Animal:
    def __init__(self, species):
        self.species = species

    def speak(self):
        return "Sound"

class Dog(Animal):
    def speak(self):
        return "Bark"
d = Dog("Dog")
print(d.speak())  # Output: Bark

6. super() ํ•จ์ˆ˜

ํ•˜์œ„ ํด๋ž˜์Šค์—์„œ ์ƒ์œ„ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ super() ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์ƒ์œ„ ํด๋ž˜์Šค์˜ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๋‹ค.

class Bird(Animal):
    def __init__(self, species, can_fly):
        super().__init__(species)
        self.can_fly = can_fly        

7. ๋งค์ง ๋ฉ”์„œ๋“œ (Magic Method)

๋งค์ง ๋ฉ”์„œ๋“œ๋Š” ํŠน๋ณ„ํ•œ ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋กœ, ๋‘ ์–ธ๋”์Šค์ฝ”์–ด(__)๋กœ ์‹œ์ž‘ํ•˜๊ณ  ๋๋‚˜๋Š” ๋ฉ”์„œ๋“œ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, __str__์€ ๊ฐ์ฒด๋ฅผ ๋ฌธ์ž์—ด๋กœ ํ‘œํ˜„ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋ฉฐ, __len__์€ ๊ฐ์ฒด์˜ ๊ธธ์ด๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

class Book:
    def __init__(self, title, pages):
        self.title = title
        self.pages = pages

    def __str__(self):
        return f"{self.title} ({self.pages} pages)"
b = Book("Python Basics", 250)
print(b)  # Output: Python Basics (250 pages)

8. ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ

ํด๋ž˜์Šค ๋ฉ”์„œ๋“œ๋Š” @classmethod ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋กœ ์ •์˜ํ•˜๋ฉฐ, ํด๋ž˜์Šค ์ž์ฒด์— ๋Œ€ํ•œ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ๋ฐ˜๋ฉด, ์ธ์Šคํ„ด์Šค ๋ฉ”์„œ๋“œ๋Š” ํŠน์ • ์ธ์Šคํ„ด์Šค์— ๋Œ€ํ•œ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•œ๋‹ค.

class MyClass:
    @classmethod
    def class_method(cls):
        print("Class method called")

9. ์ •์  ๋ฉ”์„œ๋“œ (Static Method)

์ •์  ๋ฉ”์„œ๋“œ๋Š” ํŠน์ • ์ธ์Šคํ„ด์Šค๋‚˜ ํด๋ž˜์Šค์— ์˜์กดํ•˜์ง€ ์•Š๋Š” ๋ฉ”์„œ๋“œ์ด๋‹ค. @staticmethod ๋ฐ์ฝ”๋ ˆ์ดํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด ์ •์˜ํ•˜๋ฉฐ, ๋…๋ฆฝ์ ์œผ๋กœ ๋™์ž‘ํ•˜๋Š” ํ•จ์ˆ˜๋ฅผ ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

class Math:
    @staticmethod
    def add(a, b):
        return a + b
print(Math.add(3, 5))  # Output: 8

10. ๊ฐ์ฒด์ง€ํ–ฅ์˜ ํŠน์ง•: ์บก์Šํ™”, ์ƒ์†, ๋‹คํ˜•์„ฑ

  • ์บก์Šํ™”๋Š” ๊ฐ์ฒด์˜ ์„ธ๋ถ€ ๊ตฌํ˜„์„ ๊ฐ์ถ”๊ณ , ์™ธ๋ถ€์—๋Š” ์ธํ„ฐํŽ˜์ด์Šค๋งŒ ์ œ๊ณตํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ์™ธ๋ถ€์—์„œ๋Š” ๊ฐ์ฒด ๋‚ด๋ถ€์˜ ๋ณต์žกํ•œ ๋กœ์ง์„ ์•Œ ํ•„์š” ์—†์ด ํ•„์š”ํ•œ ์ •๋ณด์—๋งŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.
  • ์ƒ์†์€ ๊ธฐ์กด ํด๋ž˜์Šค์˜ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๋ฅผ ์ƒˆ๋กœ์šด ํด๋ž˜์Šค๊ฐ€ ๋ฌผ๋ ค๋ฐ›์•„ ์žฌ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•œ๋‹ค. ์ฝ”๋“œ์˜ ์ค‘๋ณต์„ ์ค„์ด๊ณ  ์œ ์ง€๋ณด์ˆ˜๋ฅผ ์šฉ์ดํ•˜๊ฒŒ ํ•œ๋‹ค.
  • ๋‹คํ˜•์„ฑ์€ ๋™์ผํ•œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‹ค๋ฅธ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ํŠน์ง•์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด, ์—ฌ๋Ÿฌ ํด๋ž˜์Šค๊ฐ€ ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ์–ด๋„ ๊ฐ ํด๋ž˜์Šค์˜ ๋™์ž‘์— ๋งž๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

React์™€ Vite ํ”„๋กœ์ ํŠธ๋ฅผ ์‹œ์ž‘์„ ์œ„ํ•œ ์…‹ํŒ…ํ•˜๊ธฐ

 

1.  React + Vite ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

npm create vite@latest ํ”„๋กœ์ ํŠธ๋ช… --template react


* * React + Typescript + Vite ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ

npm create vite@latest ํ”„๋กœ์ ํŠธ๋ช… --template react-ts

 

2. ํ”„๋กœ์ ํŠธ ํด๋”๋กœ ์ด๋™

 
cd ํ”„๋กœ์ ํŠธ๋ช…

 

3. ํ•„์š”ํ•œ ํŒจํ‚ค์ง€ ์„ค์น˜

npm install

 

4. ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹คํ–‰

npm run dev

 

 

๐ŸŽˆ Vite๋ฅผ ์‚ฌ์šฉํ•œ ์ด์œ 

Vite๋ฅผ ํ”„๋กœ์ ํŠธ์— ์‚ฌ์šฉํ•œ ์ด์œ ๋Š” ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์ œ๊ณตํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. Vite๋Š” ํŠนํžˆ ์ดˆ๊ธฐ ๋กœ๋”ฉ๊ณผ ์‹ค์‹œ๊ฐ„ ๊ฐœ๋ฐœ์—์„œ ํƒ์›”ํ•œ ์„ฑ๋Šฅ์„ ๋ณด์ด๋ฉฐ, ์ด๋Ÿฌํ•œ ์žฅ์ ์ด ํ”„๋กœ์ ํŠธ ์ง„ํ–‰์„  ์›ํ™œํ•˜๊ฒŒ ๋งŒ๋“ค์–ด์ค€๋‹ค. ๊ตฌ์ฒด์ ์œผ๋กœ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ด์œ ์—์„œ Vite๋ฅผ ์„ ํƒํ–ˆ๋‹ค.

  1. ๋น ๋ฅธ ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹œ์ž‘: Vite๋Š” ๋ชจ๋“ˆ ๊ธฐ๋ฐ˜์œผ๋กœ ํ•„์š”ํ•œ ํŒŒ์ผ๋งŒ ๋กœ๋”ฉํ•˜๋ฏ€๋กœ, ๊ฐœ๋ฐœ ์„œ๋ฒ„๊ฐ€ ์ฆ‰์‹œ ์‹œ์ž‘๋œ๋‹ค. ํŠนํžˆ ํ”„๋กœ์ ํŠธ ๊ทœ๋ชจ๊ฐ€ ์ปค์งˆ์ˆ˜๋ก ์ด๋Ÿฌํ•œ ๋น ๋ฅธ ๋กœ๋”ฉ ์†๋„๋Š” ํฐ ์ฐจ์ด๋ฅผ ๋งŒ๋“ ๋‹ค. ๊ฐœ๋ฐœ ์ดˆ๊ธฐ๋ถ€ํ„ฐ ๋น ๋ฅด๊ฒŒ ํ…Œ์ŠคํŠธํ•˜๊ณ  ํ”ผ๋“œ๋ฐฑ์„ ๋ฐ›์„ ์ˆ˜ ์žˆ์–ด ๊ฐœ๋ฐœ ์†๋„๊ฐ€ ํ–ฅ์ƒ๋œ๋‹ค.
  2. ํšจ์œจ์ ์ธ Hot Module Replacement (HMR): Vite๋Š” ๋ณ€๊ฒฝ๋œ ๋ชจ๋“ˆ๋งŒ ๊ฐฑ์‹ ํ•˜๋Š” ๋ฐฉ์‹์˜ HMR์„ ์ง€์›ํ•˜์—ฌ, ์ฝ”๋“œ ์ˆ˜์ • ํ›„ ์ฆ‰๊ฐ์ ์œผ๋กœ ํ™”๋ฉด์— ๋ฐ˜์˜๋œ๋‹ค. ์ด๋กœ ์ธํ•ด ์ฝ”๋“œ ์ˆ˜์ • ์‚ฌํ•ญ์„ ์‹ค์‹œ๊ฐ„์œผ๋กœ ํ™•์ธํ•˜๋ฉฐ ๊ฐœ๋ฐœํ•  ์ˆ˜ ์žˆ์–ด ์ž‘์—… ํšจ์œจ์„ฑ์ด ๋†’์•„์ง„๋‹ค.
  3. ์ตœ์ ํ™”๋œ ๋นŒ๋“œ: Vite๋Š” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ๊ณผ ๋นŒ๋“œ ํ™˜๊ฒฝ์„ ๊ฐ๊ฐ ์ตœ์ ํ™”ํ•˜์—ฌ ์‚ฌ์šฉํ•œ๋‹ค. ๊ฐœ๋ฐœ ์ค‘์—๋Š” ESM(ES ๋ชจ๋“ˆ)์„ ์‚ฌ์šฉํ•˜๊ณ , ์ตœ์ข… ๋นŒ๋“œ ์‹œ์—๋Š” Rollup์„ ํ†ตํ•ด ๋ฒˆ๋“ค๋ง์„ ์ตœ์ ํ™”ํ•˜์—ฌ ์„ฑ๋Šฅ ์ข‹์€ ๊ฒฐ๊ณผ๋ฌผ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค.
  4. ์„ค์ •์˜ ๊ฐ„๋‹จํ•จ๊ณผ ์œ ์—ฐ์„ฑ: Vite๋Š” ์„ค์ •์ด ๊ฐ„๋‹จํ•ด ๋น ๋ฅด๊ฒŒ ๊ฐœ๋ฐœ์„ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๋•๋Š”๋‹ค. vite.config.js๋ฅผ ํ†ตํ•ด ํ•„์š”ํ•œ ์„ค์ •์„ ์‰ฝ๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, React์™€ ๊ฐ™์€ ํ”„๋ ˆ์ž„์›Œํฌ์™€๋„ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ํ†ตํ•ฉ๋˜์–ด ์ถ”๊ฐ€ ์„ค์ • ์—†์ด๋„ ๊ฐœ๋ฐœ์„ ์ง„ํ–‰ํ•˜๊ธฐ ์šฉ์ดํ•˜๋‹ค.

์ด๋Ÿฌํ•œ ์ด์œ ๋กœ Vite๋Š” ํ”„๋กœ์ ํŠธ์—์„œ ๋น ๋ฅด๊ณ  ํšจ์œจ์ ์ธ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์„ ์ง€์›ํ•˜๋ฉฐ, ์ดˆ๊ธฐ ๋กœ๋”ฉ๋ถ€ํ„ฐ ๋นŒ๋“œ๊นŒ์ง€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์›ํ•˜๋Š” ์„ฑ๋Šฅ๊ณผ ์œ ์—ฐ์„ฑ์„ ์ œ๊ณตํ•œ๋‹ค. Vite๋ฅผ ํ†ตํ•ด ์ƒ์‚ฐ์„ฑ์„ ๋†’์ด๊ณ  ๊ฐœ๋ฐœ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ„์†Œํ™”ํ•˜๋Š” ๊ฒƒ์ด ์ฃผ์š” ๋ชฉ์ ์ด์—ˆ๋‹ค.

 

 

๐ŸŽˆ ๊ธฐํƒ€ ๋‹ค๋ฅธ ๋ฒˆ๋“ค๋Ÿฌ ๋„๊ตฌ๋“ค

  1. Webpack:
    • ์„ค๋ช…: JavaScript ์ƒํƒœ๊ณ„์—์„œ ๊ฐ€์žฅ ๋„๋ฆฌ ์‚ฌ์šฉ๋˜๋Š” ๋ฒˆ๋“ค๋Ÿฌ๋กœ, ๋‹ค์–‘ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ์„ค์ • ์˜ต์…˜์„ ์ œ๊ณตํ•ด ์ปค์Šคํ„ฐ๋งˆ์ด์ง•์ด ์šฉ์ดํ•˜๋‹ค.
    • ์žฅ์ : ๋ฐฉ๋Œ€ํ•œ ํ”Œ๋Ÿฌ๊ทธ์ธ ์ƒํƒœ๊ณ„, ๋†’์€ ํ˜ธํ™˜์„ฑ, ์œ ์—ฐํ•œ ์„ค์ •. ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉํ•˜๋‹ค.
    • ๋‹จ์ : ์„ค์ •์ด ๋ณต์žกํ•˜๊ณ , ์ดˆ๊ธฐ ๋กœ๋”ฉ ์†๋„๊ฐ€ ๋Š๋ฆฌ๋ฉฐ, HMR ์†๋„๊ฐ€ Vite๋ณด๋‹ค ๋‹ค์†Œ ๋Š๋ฆด ์ˆ˜ ์žˆ๋‹ค.
    • ์ถ”์ฒœ ์ƒํ™ฉ: ์ปค์Šคํ…€ ์„ค์ •์ด ๋ณต์žกํ•˜๊ฒŒ ํ•„์š”ํ•œ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ์— ์œ ๋ฆฌํ•˜๋‹ค.
  2. Parcel:
    • ์„ค๋ช…: Parcel์€ ์„ค์ •์ด ๊ฑฐ์˜ ํ•„์š”ํ•˜์ง€ ์•Š์€ ๋ฒˆ๋“ค๋Ÿฌ๋กœ, ‘์ œ๋กœ ์„ค์ •’์„ ๊ฐ•์กฐํ•˜๋ฉฐ ์ž๋™ ์ตœ์ ํ™” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•œ๋‹ค.
    • ์žฅ์ : ์ดˆ๋ณด์ž๋„ ์‰ฝ๊ฒŒ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋น ๋ฅธ ๋นŒ๋“œ ๋ฐ HMR์„ ์ง€์›ํ•ด ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ์„ ๋†’์ธ๋‹ค.
    • ๋‹จ์ : ํ”Œ๋Ÿฌ๊ทธ์ธ๊ณผ ์„ค์ • ๋ฉด์—์„œ๋Š” Webpack์ด๋‚˜ Vite์— ๋น„ํ•ด ํ•œ๊ณ„๊ฐ€ ์žˆ์„ ์ˆ˜ ์žˆ๋‹ค.
    • ์ถ”์ฒœ ์ƒํ™ฉ: ์„ค์ • ์—†์ด ๋น ๋ฅด๊ฒŒ ์‹œ์ž‘ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐœ๋ฐœ ํ™˜๊ฒฝ์ด ํ•„์š”ํ•œ ํ”„๋กœ์ ํŠธ์— ์ ํ•ฉํ•˜๋‹ค.
  3. Snowpack:
    • ์„ค๋ช…: Snowpack์€ Vite์™€ ์œ ์‚ฌํ•˜๊ฒŒ ESM์„ ํ™œ์šฉํ•ด ํ•„์š”ํ•œ ๋ชจ๋“ˆ๋งŒ ๋กœ๋“œํ•˜์—ฌ ๊ฐœ๋ฐœ ์†๋„๋ฅผ ๋†’์ธ๋‹ค.
    • ์žฅ์ : ๋น ๋ฅธ ๊ฐœ๋ฐœ ์„œ๋ฒ„ ์‹œ์ž‘ ๋ฐ HMR, ๋ชจ๋“ˆ ์บ์‹ฑ ๊ธฐ๋Šฅ์ด ๋›ฐ์–ด๋‚˜๋‹ค. Vite์™€ ๋น„์Šทํ•œ ๋ชจ๋“ˆ ๊ธฐ๋ฐ˜ ๋ฐฉ์‹์ด๋ผ ๋กœ๋”ฉ ์†๋„๊ฐ€ ๋น ๋ฅด๋‹ค.
    • ๋‹จ์ : ์ตœ๊ทผ ์—…๋ฐ์ดํŠธ ๋นˆ๋„๊ฐ€ ์ค„์–ด๋“ค๋ฉด์„œ Vite๋งŒํผ ํ™œ๋ฐœํžˆ ์‚ฌ์šฉ๋˜์ง€ ์•Š๋Š” ํŽธ์ด๋‹ค.
    • ์ถ”์ฒœ ์ƒํ™ฉ: Vite์˜ ๋Œ€์ฒด๋กœ ๊ณ ๋ คํ•  ๋งŒํ•˜์ง€๋งŒ, ์ƒํƒœ๊ณ„์™€ ์—…๋ฐ์ดํŠธ๊ฐ€ ํ™œ๋ฐœํ•œ ์ตœ์‹  ํ”„๋กœ์ ํŠธ์—์„œ๋Š” Vite๊ฐ€ ๋” ๋‚˜์€ ์„ ํƒ์ผ ์ˆ˜ ์žˆ๋‹ค.
  4. esbuild:
    • ์„ค๋ช…: esbuild๋Š” ์ดˆ๊ณ ์† JavaScript ๋ฒˆ๋“ค๋Ÿฌ๋กœ, Go ์–ธ์–ด๋กœ ์ž‘์„ฑ๋˜์–ด ๋งค์šฐ ๋น ๋ฅธ ๋นŒ๋“œ ์†๋„๋ฅผ ์ œ๊ณตํ•œ๋‹ค.
    • ์žฅ์ : ๋นŒ๋“œ ์†๋„๊ฐ€ ๋งค์šฐ ๋น ๋ฅด๋ฉฐ, ๋งŽ์€ ํ”„๋กœ์ ํŠธ์—์„œ ๋ฏธ๋“ค์›จ์–ด๋‚˜ ํ”Œ๋Ÿฌ๊ทธ์ธ์œผ๋กœ ์‚ฌ์šฉ๋œ๋‹ค.
    • ๋‹จ์ : ๊ธฐ๋Šฅ์ด ๊ธฐ๋ณธ์ ์ธ ๋ฒˆ๋“ค๋ง์— ์ง‘์ค‘๋˜์–ด ์žˆ์–ด, ๋ณต์žกํ•œ ์„ค์ •์„ ๋‹ค๋ฃจ๊ธฐ์—๋Š” ๋‹ค์†Œ ํ•œ๊ณ„๊ฐ€ ์žˆ๋‹ค.
    • ์ถ”์ฒœ ์ƒํ™ฉ: ๋นŒ๋“œ ์†๋„๊ฐ€ ๋งค์šฐ ์ค‘์š”ํ•œ ํ”„๋กœ์ ํŠธ์—์„œ, ๋ฒˆ๋“ค๋ง ๋ฐ ํŠธ๋žœ์ŠคํŒŒ์ผ๋ง๋งŒ ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹๋‹ค.

์ด์™ธ์—๋„ ํ”„๋กœ์ ํŠธ์˜ ํŠน์„ฑ๊ณผ ์š”๊ตฌ ์‚ฌํ•ญ์— ๋”ฐ๋ผ Rollup๊ณผ ๊ฐ™์€ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

 

๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

๐ŸŒผ ํ”ผ๊ทธ๋งˆ ๋‹จ์ถ•ํ‚ค

๊ธฐ๋Šฅ Windows ๋‹จ์ถ•ํ‚ค Mac ๋‹จ์ถ•ํ‚ค
๊ทธ๋ฃน ๋งŒ๋“ค๊ธฐ Ctrl + G โŒ˜ + G
๊ทธ๋ฃน ํ•ด์ œ Ctrl + Shift + G โŒ˜ + Shift + G
๋ณต์ œ Ctrl + D โŒ˜ + D
์„ ํƒ ํ•ด์ œ Esc Esc
์‚ญ์ œ Delete Delete
๋’ค๋กœ ๋ณด๋‚ด๊ธฐ Ctrl + [ โŒ˜ + [
์•ž์œผ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ Ctrl + ] โŒ˜ + ]
๋งจ ๋’ค๋กœ ๋ณด๋‚ด๊ธฐ Ctrl + Alt + [ โŒ˜ + Option + [
๋งจ ์•ž์œผ๋กœ ๊ฐ€์ ธ์˜ค๊ธฐ Ctrl + Alt + ] โŒ˜ + Option + ]
์ •๋ ฌ(์ˆ˜ํ‰ ์ค‘์•™) Ctrl + Alt + H โŒ˜ + Option + H
์ •๋ ฌ(์ˆ˜์ง ์ค‘์•™) Ctrl + Alt + V โŒ˜ + Option + V
ํ™•๋Œ€ Ctrl + + โŒ˜ + +
์ถ•์†Œ Ctrl + - โŒ˜ + -
์‹ค์ œ ํฌ๊ธฐ๋กœ ๋ณด๊ธฐ Ctrl + 0 โŒ˜ + 0
๋งž์ถค ๋ณด๊ธฐ Ctrl + 1 โŒ˜ + 1
๋ชจ๋‘ ์„ ํƒ Ctrl + A โŒ˜ + A
์š”์†Œ ์ด๋™(10px ๋‹จ์œ„) Shift + ๋ฐฉํ–ฅํ‚ค Shift + ๋ฐฉํ–ฅํ‚ค
์š”์†Œ ์ด๋™(1px ๋‹จ์œ„) ๋ฐฉํ–ฅํ‚ค ๋ฐฉํ–ฅํ‚ค
ํ”„๋ ˆ์ž„ ๋งŒ๋“ค๊ธฐ Ctrl + Alt + G โŒ˜ + Option + G
์ž ๊ธˆ Ctrl + Shift + L โŒ˜ + Shift + L
๋ ˆ์ด์–ด ๊ฒ€์ƒ‰ Ctrl + P โŒ˜ + P
๋ ˆ์ด์–ด ์ˆจ๊ธฐ๊ธฐ Ctrl + Shift + H โŒ˜ + Shift + H
์‚ฌ๊ฐํ˜• ๋„๊ตฌ R R
์›ํ˜• ๋„๊ตฌ O O
ํŽœ ๋„๊ตฌ P P
ํ…์ŠคํŠธ ๋„๊ตฌ T T
๋ณต์ œ ๋ฐ ๋“œ๋ž˜๊ทธ Alt + ๋“œ๋ž˜๊ทธ Option + ๋“œ๋ž˜๊ทธ
๊ทธ๋ฆฌ๋“œ/๋ ˆ์ด์•„์›ƒ ํ‘œ์‹œ/์ˆจ๊ธฐ๊ธฐ Ctrl + ' โŒ˜ + '
๋ฐฐ์œจ ํˆด K K
์ปดํฌ๋„ŒํŠธ ๋งŒ๋“ค๊ธฐ Ctrl + Alt + K โŒ˜ + Option + K
์ธ์Šคํ„ด์Šค ๋ถ„๋ฆฌ Ctrl + Alt + B โŒ˜ + Option + B
๋Œ“๊ธ€ ์ถ”๊ฐ€ C C
ํ† ๊ธ€ ๋ ˆ์ด์•„์›ƒ ๊ทธ๋ฆฌ๋“œ Shift + G Shift + G
๊ฐ€์ด๋“œ ํ† ๊ธ€ Shift + R Shift + R
๋น ๋ฅธ ์ž‘์—… Ctrl + / โŒ˜ + /
๋‚ด๋ณด๋‚ด๊ธฐ Ctrl + Shift + E โŒ˜ + Shift + E

 

 

# ํ”ผ๊ทธ๋งˆ ์ธ๋„ค์ผ ์„ค์ •

ํ”„๋ ˆ์ž„ ๊ธฐ๋ณธ ์‚ฌ์ด์ฆˆ : 1920*1080

๋ณดํ˜ธ์˜์—ญ : 1600*1080

 

# ์†์„ฑ ํ”ผ๊ทธ๋งˆ

  • ์ž‘์—…์€ ์ค‘์•™ ์บ”๋ฒ„์Šค์—์„œ
  • ๋””์ž์ธ ์†์„ฑ ์„ค์ •์€ ์˜ค๋ฅธ์ชฝ ๋””์ž์ธ ํƒญ์—์„œ (์ถ”๊ฐ€+, ๋นผ๊ธฐ-)
  • ์บ”๋ฒ„์Šค ํ™•๋Œ€ ์ถ•์†Œ๋Š” ctrl +/- , ctrl ๋งˆ์šฐ์Šค ํœ  โฌ†/โฌ‡ 
  • ํ™”๋ฉด ์ด๋™์€ ์ŠคํŽ˜์ด์Šค๋ฐ” ๋ˆ„๋ฅด๋ฉฐ ์ด๋™
  • ์š”์†Œ๋ฅผ ๋งจ ์•ž์œผ๋กœ ๊ฐ€์ ธ์˜ฌ๋•Œ๋Š” ]  / ๋งจ ๋’ค๋กœ ๋ณด๋‚ผ๋•Œ๋Š” [
  • ๋ ˆ์ด์–ด ๋ณต์ œ : alt ๋ˆ„๋ฅธ์ฑ„๋กœ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ or ctrl + d

 

๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

ํ•จ์ˆ˜ (Functions)

1. ํ•จ์ˆ˜ ์ •์˜ (Defining a Function)

ํ•จ์ˆ˜๋Š” ๋ฐ˜๋ณต์ ์ธ ์ž‘์—…์„ ๋ชจ๋“ˆํ™”ํ•˜์—ฌ ์ฝ”๋“œ ์žฌ์‚ฌ์šฉ์„ฑ์„ ๋†’์ด๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. def ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•˜๋ฉฐ, ํ•จ์ˆ˜ ์ด๋ฆ„๊ณผ ๊ด„ํ˜ธ ์•ˆ์— ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ž‘์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•จ์ˆ˜๋Š” ํ˜ธ์ถœ๋˜์—ˆ์„ ๋•Œ์—๋งŒ ์‹คํ–‰๋œ๋‹ค.

def greet(name):
    print(f"์•ˆ๋…•ํ•˜์„ธ์š”, {name}๋‹˜!")

greet("์ฒ ์ˆ˜")  # ์ถœ๋ ฅ: ์•ˆ๋…•ํ•˜์„ธ์š”, ์ฒ ์ˆ˜๋‹˜!

2. ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ์ธ์ž (Parameters and Arguments)

ํ•จ์ˆ˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ด ์™ธ๋ถ€์—์„œ ๊ฐ’์„ ์ „๋‹ฌ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค. ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ์ „๋‹ฌ๋˜๋Š” ๊ฐ’์„ ์ธ์ž๋ผ๊ณ  ํ•œ๋‹ค. ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ํ•จ์ˆ˜ ๋‚ด๋ถ€์—์„œ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•œ ๊ฒƒ๊ณผ ๊ฐ™์€ ์—ญํ• ์„ ํ•œ๋‹ค.

def add(a, b):
    return a + b

result = add(3, 4)
print(result)  # ์ถœ๋ ฅ: 7

3. ๊ธฐ๋ณธ ๋งค๊ฐœ๋ณ€์ˆ˜ (Default Parameters)

ํ•จ์ˆ˜๋ฅผ ์ •์˜ํ•  ๋•Œ ๊ธฐ๋ณธ๊ฐ’์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ํ•ด๋‹น ์ธ์ž๊ฐ€ ์ „๋‹ฌ๋˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์ด ์‚ฌ์šฉ๋œ๋‹ค.

๊ธฐ๋ณธ ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ์ˆœ์„œ๊ฐ€ ์ค‘์š”ํ•˜๋ฉฐ, ๊ธฐ๋ณธ๊ฐ’์ด ์—†๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ณด๋‹ค ๋’ค์— ์œ„์น˜ํ•ด์•ผ ํ•œ๋‹ค.

def greet(name="์นœ๊ตฌ"):
    print(f"์•ˆ๋…•ํ•˜์„ธ์š”, {name}๋‹˜!")

greet()  # ์ถœ๋ ฅ: ์•ˆ๋…•ํ•˜์„ธ์š”, ์นœ๊ตฌ๋‹˜!
greet("์˜ํฌ")  # ์ถœ๋ ฅ: ์•ˆ๋…•ํ•˜์„ธ์š”, ์˜ํฌ๋‹˜!

1. ๊ธฐ๋ณธ ๋งค๊ฐœ๋ณ€์ˆ˜ ์ •์˜ ๋ฐ ๊ทœ์น™

๊ธฐ๋ณธ๊ฐ’์ด ์—†๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋จผ์ € ์ž‘์„ฑ๋˜๊ณ , ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋’ค์— ์ž‘์„ฑํ•ด์•ผ ํ•œ๋‹ค.

๊ธฐ๋ณธ๊ฐ’์ด ์—†๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ณด๋‹ค ์•ž์— ์œ„์น˜ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

def add(a, b=3):
    return a + b
    
# a ๊ฐ’๋งŒ ์ „๋‹ฌํ•˜๋ฉด b๋Š” ๊ธฐ๋ณธ๊ฐ’ 3์„ ์‚ฌ์šฉ
print(add(2))  # ์ถœ๋ ฅ: 5

์ด ํ•จ์ˆ˜๋Š” a๋Š” ํ•„์ˆ˜ ๋งค๊ฐœ๋ณ€์ˆ˜๋กœ ๋ฐ›๊ณ , b๋Š” ๊ธฐ๋ณธ๊ฐ’ 3์„ ๊ฐ€์ง„๋‹ค. ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ b ๊ฐ’์„ ์ œ๊ณตํ•˜์ง€ ์•Š์œผ๋ฉด ๊ธฐ๋ณธ๊ฐ’์ด ์‚ฌ์šฉ๋œ๋‹ค.

 

์ž˜๋ชป๋œ ๋งค๊ฐœ๋ณ€์ˆ˜ ์‚ฌ์šฉ ์˜ˆ์‹œ:: ๊ธฐ๋ณธ๊ฐ’์ด ์—†๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋Š” ๋ฐ˜๋“œ์‹œ ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜๋ณด๋‹ค ์•ž์— ์œ„์น˜ํ•ด์•ผ ํ•œ๋‹ค.

def add(a=1, b):
    return a + b

print(add(b=3))  
# ์˜ค๋ฅ˜ ๋ฐœ์ƒ: ๊ธฐ๋ณธ๊ฐ’์ด ์—†๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ b๊ฐ€ ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ a ๋’ค์— ์œ„์น˜ํ•ด ์žˆ์–ด ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ.
# ๊ธฐ๋ณธ๊ฐ’์ด ์—†๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ b๋Š” ๊ธฐ๋ณธ๊ฐ’์ด ์žˆ๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜ a ์•ž์— ์œ„์น˜ํ•ด์•ผ ํ•จ.

# ์ˆ˜์ •๋œ ํ•จ์ˆ˜
def add(b, a=1):
    return a + b

print(add(b=3))  # ์ถœ๋ ฅ: 4

 

4. ๋ฐ˜ํ™˜๊ฐ’ (Return Value)

ํ•จ์ˆ˜๋Š” return ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•ด ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ๋‹ค. return์„ ๋งŒ๋‚˜๋ฉด ํ•จ์ˆ˜๋Š” ์‹คํ–‰์„ ์ข…๋ฃŒํ•˜๊ณ , ๊ฐ’์„ ๋ฐ˜ํ™˜ํ•œ๋‹ค. ๋ฐ˜ํ™˜๋œ ๊ฐ’์€ ํ•จ์ˆ˜ ํ˜ธ์ถœ ์‹œ ๋ณ€์ˆ˜์— ์ €์žฅ๋˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ๊ณ„์‚ฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.

def multiply(a, b):
    return a * b

result = multiply(5, 6)
print(result)  # ์ถœ๋ ฅ: 30

5. ๊ฐ€๋ณ€ ์ธ์ž (Variable-length Arguments)

 

๊ฐ€๋ณ€ ์ธ์ž๋Š” ํ•จ์ˆ˜๊ฐ€ ๋ช‡ ๊ฐœ์˜ ์ธ์ž๋ฅผ ๋ฐ›์„์ง€ ๋ฏธ๋ฆฌ ์•Œ ์ˆ˜ ์—†์„ ๋•Œ ์‚ฌ์šฉ๋œ๋‹ค.

*args๋Š” ์œ„์น˜ ๊ธฐ๋ฐ˜์˜ ๊ฐ€๋ณ€ ์ธ์ž๋ฅผ, **kwargs๋Š” ํ‚ค์›Œ๋“œ ๊ธฐ๋ฐ˜์˜ ๊ฐ€๋ณ€ ์ธ์ž๋ฅผ ์˜๋ฏธํ•œ๋‹ค.

ํ•˜๋‚˜์˜ ํ•จ์ˆ˜์—์„œ ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ธ์ž๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค.

 

*args

  • *args๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ์œ„์น˜ ์ธ์ž๋ฅผ ํ•˜๋‚˜์˜ ํŠœํ”Œ๋กœ ๋ฐ›๋Š”๋‹ค.
  • ์ธ์ž ๊ฐœ์ˆ˜๊ฐ€ ์ •ํ•ด์ ธ ์žˆ์ง€ ์•Š์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
def sum_all(*args):
    return sum(args)

result = sum_all(1, 2, 3, 4, 5)
print(result)  # ์ถœ๋ ฅ: 15

 

**kwargs

  • **kwargs๋Š” ์—ฌ๋Ÿฌ ๊ฐœ์˜ ํ‚ค์›Œ๋“œ ์ธ์ž๋ฅผ ํ•˜๋‚˜์˜ ๋”•์…”๋„ˆ๋ฆฌ๋กœ ๋ฐ›๋Š”๋‹ค.
  • kwargs.items()๋Š” ๋”•์…”๋„ˆ๋ฆฌ์˜ ํ‚ค์™€ ๊ฐ’์„ ๊ฐ€์ ธ์˜ฌ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค.
def print_info(**kwargs):
    for key, value in kwargs.items():
        print(f"{key}: {value}")

print_info(name="์˜ํฌ", age=30)  
# ์ถœ๋ ฅ:
# name: ์˜ํฌ
# age: 30

 

+) JavaScript์—์„œ๋„ ์œ ์‚ฌํ•˜๊ฒŒ ๊ฐ€๋ณ€ ์ธ์ž๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 

์Šคํ”„๋ ˆ๋“œ ์—ฐ์‚ฐ์ž(...)๋Š” Python์˜ *args์™€ ์œ ์‚ฌํ•˜๊ฒŒ ๋™์ž‘ํ•˜๋ฉฐ, ๊ฐ์ฒด๋กœ ๋ฐ›์€ ์ธ์ž๋Š” kwargs์™€ ๋น„์Šทํ•˜๋‹ค.

// JavaScript์—์„œ ๊ฐ€๋ณ€ ์ธ์ž
function sumAll(...args) {
    return args.reduce((acc, cur) => acc + cur, 0);
}

console.log(sumAll(1, 2, 3, 4, 5));  // ์ถœ๋ ฅ: 15

// JavaScript์—์„œ ๊ฐ์ฒด ํ‚ค-๊ฐ’ ๋ฐ›๊ธฐ
function printInfo(obj) {
    for (let key in obj) {
        console.log(`${key}: ${obj[key]}`);
    }
}

printInfo({ name: "์˜ํฌ", age: 30 });
// ์ถœ๋ ฅ:// name: ์˜ํฌ// age: 30

6. ๋žŒ๋‹ค ํ•จ์ˆ˜ (Lambda Functions)

๋žŒ๋‹ค ํ•จ์ˆ˜๋Š” ์ต๋ช… ํ•จ์ˆ˜๋กœ, ์ด๋ฆ„ ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ„๋‹จํ•œ ํ•จ์ˆ˜์ด๋‹ค. ์ฃผ๋กœ ์ผํšŒ์„ฑ ํ•จ์ˆ˜๋‚˜ ์ฝ”๋“œ๊ฐ€ ์งง์„ ๋•Œ ์‚ฌ์šฉํ•œ๋‹ค. lambda ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉฐ, ํ•จ์ˆ˜์˜ ๋งค๊ฐœ๋ณ€์ˆ˜์™€ ๋ฐ˜ํ™˜๊ฐ’์„ ๊ฐ„๋‹จํžˆ ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

# ๋žŒ๋‹ค ํ•จ์ˆ˜ ์˜ˆ์‹œ
square = lambda x: x ** 2
print(square(5))  # ์ถœ๋ ฅ: 25

# ์ผ๋ฐ˜ ํ•จ์ˆ˜๋กœ ์ž‘์„ฑํ•œ ๊ฒฝ์šฐ
def square_fn(x):
    return x ** 2

print(square_fn(5))  # ์ถœ๋ ฅ: 25
  • lambda x : x๋Š” ๋งค๊ฐœ๋ณ€์ˆ˜. ํ•จ์ˆ˜์˜ ์ธ์ž๋ฅผ ์˜๋ฏธํ•œ๋‹ค.
  • x ** 2 : **๋Š” ์ œ๊ณฑ ์—ฐ์‚ฐ์ž๋กœ, x์˜ ์ œ๊ณฑ์„ ๊ณ„์‚ฐํ•œ๋‹ค. ๋”ฐ๋ผ์„œ x๊ฐ€ 5๋ผ๋ฉด x ** 2๋Š” 5 ** 2๊ฐ€ ๋˜์–ด 25๊ฐ€ ๋œ๋‹ค.
  • x ** 3์€ x์˜ ์„ธ์ œ๊ณฑ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, x๋ฅผ 3๋ฒˆ ๊ณฑํ•œ ๊ฒฐ๊ณผ๋ฅผ ๋ฐ˜ํ™˜ํ•ฉ๋‹ˆ๋‹ค. x**3์€ 125(5์˜ ์„ธ์ œ๊ณฑ)๊ฐ€ ๋œ๋‹ค.
๋ฐ˜์‘ํ˜•
๋ฐ˜์‘ํ˜•

1. If๋ฌธ

if๋ฌธ์€ ์ฃผ์–ด์ง„ ์กฐ๊ฑด์ด ์ฐธ์ผ ๊ฒฝ์šฐ์—๋งŒ ์ฝ”๋“œ ๋ธ”๋ก์„ ์‹คํ–‰ํ•œ๋‹ค. ์กฐ๊ฑด์ด True์ผ ๋•Œ๋งŒ ๋“ค์—ฌ์“ฐ๊ธฐ๋œ ์ฝ”๋“œ๊ฐ€ ์‹คํ–‰๋œ๋‹ค.

x = 10
if x > 5:
    print("x๋Š” 5๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค.")  # ์ถœ๋ ฅ: x๋Š” 5๋ณด๋‹ค ํฝ๋‹ˆ๋‹ค.
else:
    print("x๋Š” 5 ์ดํ•˜์ž…๋‹ˆ๋‹ค.")

 

2. For๋ฌธ

for๋ฌธ์€ ๋ฆฌ์ŠคํŠธ, ํŠœํ”Œ, ๋”•์…”๋„ˆ๋ฆฌ, ๋ฌธ์ž์—ด ๋“ฑ ์ˆœ์„œ๊ฐ€ ์žˆ๋Š” ์‹œํ€€์Šค์˜ ๊ฐ ํ•ญ๋ชฉ์„ ๋ฐ˜๋ณตํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋œ๋‹ค.

fruits = ["์‚ฌ๊ณผ", "๋ฐ”๋‚˜๋‚˜", "์ฒด๋ฆฌ"]
for fruit in fruits:
    print(fruit)  # ์ถœ๋ ฅ: ์‚ฌ๊ณผ, ๋ฐ”๋‚˜๋‚˜, ์ฒด๋ฆฌ
# range()๋ฅผ ์‚ฌ์šฉํ•ด ์ˆซ์ž ์‹œํ€€์Šค๋ฅผ ๋ฐ˜๋ณต
for i in range(3):
    print(i)  # ์ถœ๋ ฅ: 0, 1, 2

3. While๋ฌธ 

while๋ฌธ์€ ์กฐ๊ฑด์ด ์ฐธ์ธ ๋™์•ˆ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณต ์‹คํ–‰ํ•œ๋‹ค. ์กฐ๊ฑด์ด False๊ฐ€ ๋˜๊ฑฐ๋‚˜ break๋ฅผ ๋งŒ๋‚˜๋ฉด ๋ฐ˜๋ณต์ด ์ข…๋ฃŒ๋œ๋‹ค.

x = 0
while x < 5:
    print(x)  # ์ถœ๋ ฅ: 0, 1, 2, 3, 4
    x += 1
import random

target = random.randint(1, 10)  # 1๋ถ€ํ„ฐ 10 ์‚ฌ์ด์˜ ๋žœ๋ค ์ˆซ์ž๋ฅผ ์ƒ์„ฑ

while True:
    guess = int(input("1-10 ์‚ฌ์ด์˜ ์ˆซ์ž๋ฅผ ์ž…๋ ฅํ•˜์„ธ์š”: "))  # ์‚ฌ์šฉ์ž ์ž…๋ ฅ์„ ๋ฐ›์Œ
    if guess == target:
        print("์ •๋‹ต๐Ÿ˜†")
        break  # ์ •๋‹ต์„ ๋งž์ท„์œผ๋ฏ€๋กœ ๋ฐ˜๋ณต ์ข…๋ฃŒ
    elif guess < target:
        print("up๐Ÿ˜‰") # ์ž…๋ ฅํ•œ ์ˆซ์ž๊ฐ€ ๋ชฉํ‘œ ์ˆซ์ž๋ณด๋‹ค ์ž‘์„ ๋•Œ
    elif guess > target:
        print("down๐Ÿ˜‰") # ์ž…๋ ฅํ•œ ์ˆซ์ž๊ฐ€ ๋ชฉํ‘œ ์ˆซ์ž๋ณด๋‹ค ํด ๋•Œ
๋ฐ˜์‘ํ˜•

+ Recent posts