๐Ÿ ํŒŒ์ด์ฌ ์ฑŒ๋ฆฐ์ง€ DAY+01

yhwaยท2023๋…„ 2์›” 14์ผ
0
post-thumbnail

๐Ÿ“ Python์œผ๋กœ ์›น ์Šคํฌ๋ž˜ํผ ๋งŒ๋“ค๊ธฐ: From #1.2 to #2.3

python์ด ์‚ฌ์šฉ๋˜๋Š” ์ด์œ 

python์ด ์‚ฌ์šฉ๋˜๋Š” ์ด์œ 

- ํฐ ์ƒํƒœ๊ณ„, ์ปค๋ฎค๋‹ˆํ‹ฐ๊ฐ€ ๋„“์Šต๋‹ˆ๋‹ค.
- ์ฝ”๋“œ๊ฐ€ ๊ฐ€๋…์„ฑ์ด ์ข‹์Šต๋‹ˆ๋‹ค.
- high-level ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ์„œ ์ธ๊ฐ„์˜ ๋ง๊ณผ ์•„์ฃผ ํก์‚ฌํ•ฉ๋‹ˆ๋‹ค.
- python์„ ์ฝ๊ณ  ์“ฐ๊ธฐ ์‰ฌ์šด ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋กœ ๋งŒ๋“ค์–ด์ค๋‹ˆ๋‹ค.
- (low-level > ๊ธฐ๊ณ„์˜ ์–ธ์–ด์™€ ๊ฐ€๊น์Šต๋‹ˆ๋‹ค.)
- ์›น ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜, ์„œ๋ฒ„, ๋ฐฑ์—”๋“œ, ์ธ๊ณต์ง€๋Šฅ
- model์„ ํ•™์Šต์‹œํ‚ค๋Š” ์ธ๊ณต์ง€๋Šฅ ์˜์—ญ, AI
- ๋ฐ์ดํ„ฐ ๊ณผํ•™, ๋ถ„์„, ํ†ต๊ณ„, ๋ฐ์ดํ„ฐ ๋งˆ์ด๋‹, ๋ฐ์ดํ„ฐ ์ •ํ™”, ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ
- ๋ฐ์ดํ„ฐ ์‹œ๊ฐํ™” -> ์ด๋ฅผ ์œ„ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ํŒจํ‚ค์ง€๋ฅผ ๋งŽ์ด ๊ฐ€์ง€๊ณ ์žˆ์Šต๋‹ˆ๋‹ค.
- ํ•ดํ‚น, ์ž‘์€ ๋ฐ”์ด๋Ÿฌ์Šค, exploit, pentesting ๊ด€๋ จํ•ด์„œ๋„ ํฐ ์ปค๋ฎค๋‹ˆํ‹ฐ๋ฅผ ๊ฐ€์ง€๊ณ ์žˆ์Šต๋‹ˆ๋‹ค.
- ์ธ๊ณต์ง€๋Šฅ, pentesting, ํ•ดํ‚น, ๋ฐฑ์—”๋“œ, ์›น์Šคํฌ๋ž˜ํ•‘, ๋ฐ์ดํ„ฐ์‹œ๊ฐํ™”
- ๊ธˆ์œต ์•ฑ > ๊ฑฐ๋ž˜๋ฅผ ์œ„ํ•ด python์„ ๋งŽ์ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
- ex) ์ธ์Šคํƒ€๊ทธ๋žจ(python), admin, database ...

python์œผ๋กœ hello world

print("Hello, Python")

๋ณ€์ˆ˜ (variables)

- ํŒŒ์ด์ฌ์€ ์ˆซ์ž 2์™€ 3 ๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋ฅผ ์ปดํ“จํ„ฐ ๋ฉ”๋ชจ๋ฆฌ ์•ˆ์— ๋„ฃ๊ณ ์žˆ์Šต๋‹ˆ๋‹ค. 
- ํ• ๋‹น๋˜๋Š” ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ์— ์ด๋ฆ„์„ ๋ถ™์ด๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค.
- ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•ด ๋‹ค๋ฅธ ๋ณ€์ˆ˜๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
- ์ด๋ฆ„์„ ํ†ตํ•ด ํŒŒ์ด์ฌ์ด ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.
- ํŒŒ์ด์ฌ ์ฝ”๋“œ๋Š” ์œ„ > ์•„๋ž˜ ๋กœ ์ฝ์Šต๋‹ˆ๋‹ค.
- ๋ณ€์ˆ˜ ์ด๋ฆ„์— ๊ณต๋ฐฑ์€ ํ—ˆ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
- JS์—์„œ ์นด๋ฉœ์ผ€์ด์Šค๊ฐ€ ์ž์ฃผ ์“ฐ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ, ํŒŒ์ด์ฌ์€ ์–ธ๋”๋ฐ”๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
- ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์—์„œ๋Š” ์นด๋ฉœ์ผ€์ด์Šค, ํŒŒ์ด์ฌ์€ ์Šค๋„ค์ดํฌ ์ผ€์ด์Šค๊ฐ€ ์ž์ฃผ ์“ฐ์ž…๋‹ˆ๋‹ค.
- ํŒŒ์ด์ฌ์˜ ๋ณ€์ˆ˜๋Š” ์ˆซ์ž๋‚˜ ํŠน์ˆ˜๋ฌธ์ž๋กœ ์‹œ์ž‘ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.
- ํ”„๋กœ๊ทธ๋žจ์— ๋ฐ์ดํ„ฐ๋ฅผ ๋„ฃ๊ธฐ์œ„ํ•ด ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
- ์ธ๊ฐ„์ด ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋Š” ์ด๋ฆ„์œผ๋กœ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
a = 2
b = 3
c = a+b
print(c)

์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ์˜ ์ข…๋ฅ˜

- ํŒŒ์ด์ฌ์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ ํƒ€์ž… (string, boolean, number...)
- boolean์€ ์ฒซ๊ธ€์ž๋ฅผ ๋Œ€๋ฌธ์ž๋กœ ์ž‘์„ฑํ•ฉ๋‹ˆ๋‹ค.ex) True/False
- True๋Š” ์ด์ง„๋ฒ•์œผ๋กœ ๋ณ€ํ™˜ํ•˜๋ฉด 1 = on / False๋Š” ์ด์ง„๋ฒ•์œผ๋กœ 0 = off
my_job = "developer"
print(my_job)

dead = True
print(dead)

ํ•จ์ˆ˜ (Functions)

- ํ•จ์ˆ˜๋ž€ ์ฝ”๋“œ ์กฐ๊ฐ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค, ํ•œ๋ฒˆ ์ž‘์„ฑํ•˜๊ณ  ์žฌ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค.
- def ๋ผ๋Š” ๋‹จ์–ด๋ฅผ ์‚ฌ์šฉํ•ด์„œ function์„ ์ •์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
- def ๋ž€ ํ•จ์ˆ˜๋ฅผ ์ƒ์„ฑํ•œ๋‹ค๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.
## ํ•จ์ˆ˜ ์ •์˜
def say_hello():
	print("hello")

## ํ•จ์ˆ˜ ํ˜ธ์ถœ (์‹คํ–‰)
say_hello()

ํŒŒ์ด์ฌ์—์„œ์˜ ๊ณต๋ฐฑ

- ํŒŒ์ด์ฌ์—์„œ ๋นˆ ๊ณต๋ฐฑ์€ ์ฝ”๋“œ์— ์˜ํ–ฅ์„ ๋ผ์น˜๋Š” ์•„์ฃผ ์ค‘์š”ํ•œ ์š”์†Œ์ž…๋‹ˆ๋‹ค.
- ํŒŒ์ด์ฌ์€ ๋นˆ ๊ณต๋ฐฑ์„ ์ด์šฉํ•ด ๊ทธ ์•ˆ์— ์–ด๋–ค ๊ฒƒ์ด ์žˆ๋Š”์ง€ ์ดํ•ดํ•ฉ๋‹ˆ๋‹ค.
- ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋Š” ๋นˆ ๊ณต๋ฐฑ์„ ์‹ ๊ฒฝ์“ฐ์ง€์•Š์ง€๋งŒ, 
- ํŒŒ์ด์ฌ์€ ๊ณต๋ฐฑ์„ ์ธ์‹ํ•˜์—ฌ ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ์„ ๋†’์ž…๋‹ˆ๋‹ค.
def say_bye():
	print("bye, bye")

say_bye()

ํŒŒ๋ผ๋ฏธํ„ฐ (Parameters) & ์ธ์ž (Argument)

- ์ถœ๋ ฅ ๊ฒฐ๊ณผ๋ฅผ ์ˆ˜์ •ํ•˜๊ฑฐ๋‚˜ ๋ฐ”๊พธ๊ธฐ ์œ„ํ•ด ํ•จ์ˆ˜์— ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด๋‚ด๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. 
- ๋‹ค๋ฅธ ๋ง๋กœ ๋งค๊ฐœ๋ณ€์ˆ˜๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
- ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐˆ ๊ณต๊ฐ„์„ ์ œ๊ณตํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.
- ํ•จ์ˆ˜๋ฅผ ๋งŒ๋“ค๋•Œ๋Š”, ๋ฐ์ดํ„ฐ๊ฐ€ ๋“ค์–ด๊ฐ€๋Š” placeholder์™€ ๊ฐ™์€ ๊ณต๊ฐ„์„ ์ œ๊ณตํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค.
- ๋งค๊ฐœ๋ณ€์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ์ง์ ‘ ๋ฐ์ดํ„ฐ๋ฅผ ํ•จ์ˆ˜์— ๋„ฃ๊ณ , ํ•จ์ˆ˜๋Š” ์ด ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์•„์„œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
- ์ฆ‰ ํ•จ์ˆ˜๊ฐ€ ์‚ฌ์šฉํ•  ๋ฐ์ดํ„ฐ์˜ placeholder๋ฅผ ํŒŒ๋ผ๋ฏธํ„ฐ ๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
- ์‹ค์ œ๋กœ ํ•จ์ˆ˜์‹คํ–‰๋ถ€์—์„œ ์ „๋‹ฌ๋˜๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ธ์ž๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.
- ๋‘ ๊ฐ€์ง€ ๋ชจ๋‘ ํ•จ์ˆ˜๊ฐ€ ๋ฐ›๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋งํ•ฉ๋‹ˆ๋‹ค.
- ํŒŒ๋ผ๋ฏธํ„ฐ๋Š” ํ”„๋กœ๊ทธ๋žจ๊ณผ ์†Œํ†ตํ•˜๊ธฐ ์œ„ํ•œ ์ˆ˜๋‹จ์ž…๋‹ˆ๋‹ค.
### ํŒŒ๋ผ๋ฏธํ„ฐ (parameter : name)
def say_hello(name):
	print("Hello, ", name)

### ์ธ์ž (argument : "developer")
say_hello("developer")

ํ•จ์ˆ˜๊ฐ€ ๋ฐ›๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ๊ฐœ์ผ ๊ฒฝ์šฐ

- ํŒŒ๋ผ๋ฏธํ„ฐ ์ž๋ฆฌ์— ์‰ผํ‘œ๋ฅผ ํ•˜๊ณ  ๋˜ ๋‹ค๋ฅธ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ์ถ”๊ฐ€ํ•˜์—ฌ ์ž…๋ ฅํ•ฉ๋‹ˆ๋‹ค.
- ํŒŒ๋ผ๋ฏธํ„ฐ์˜ ์ˆœ์„œ์— ๊ฐ ์œ„์น˜์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ๋Œ€์ž…๋ฉ๋‹ˆ๋‹ค.
- ex) user_name์€ 1๋ฒˆ์งธ ์ธ์ž, user_age๋Š” 2๋ฒˆ์งธ ์ธ์ž
def say_hello(user_name, user_age):
	print("Hello", user_name, "I'm ", user_age, "year old.")
    
say_hello("John", 30)
def tax_calculator(salary):
	print(salary * 0.1)

tax_calculator(3000000)

๊ธฐ๋ณธ ํŒŒ๋ผ๋ฏธํ„ฐ (Default Parameter)

- ํ•จ์ˆ˜์—์„œ ๋ฐ›์€ ํŒŒ๋ผ๋ฏธํ„ฐ๊ฐ€ ์—†์„๋•Œ๋„, ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋ณด๋‚ด์ฃผ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
- say_hello ํ•จ์ˆ˜๋Š” use_name์ด๋ผ๋Š” ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๋ฐ›์ง€๋งŒ, ๋งŒ์•ฝ ์•„๋ฌด๊ฒƒ๋„ ์—†๋‹ค๋ฉด 
์—๋Ÿฌ๋ฅผ ๋ณด์—ฌ์ฃผ์ง€ ์•Š๊ณ , user_name๋ฅผ anonymous๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
- ์ด๋Ÿฐ ๋ฐฉ๋ฒ•์œผ๋กœ ์‚ฌ์šฉ์ž์—๊ฒŒ ์—๋Ÿฌ๋ฅผ ๋ณด์—ฌ์ฃผ์ง€ ์•Š์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
def say_hello(user_name="anonymous"):
	print("I'm ", user_name)

say_hello() //์‹คํ–‰ : "I'm anonymous"

๊ณ„์‚ฐ๊ธฐ ์ฑŒ๋ฆฐ์ง€

- ๋”ํ•˜๊ธฐ, ๋นผ๊ธฐ, ๋‚˜๋ˆ„๊ธฐ, ๊ณฑํ•˜๊ธฐ, ์ œ๊ณฑ ์„ ์—๋Ÿฌ์—†์ด ํ•จ์ˆ˜๋กœ ๊ตฌํ˜„ํ•˜๊ธฐ
def Plus(a=0,b=0):
	print(a+b)

def Minus(a=0,b=0):
	print(a-b)
    
def Divide(a=0,b=0):
	print(a/b)
    
def MultiPlus(a=0,b=0):
	print(a*b)

def Square(a=0,b=0):
	print(a**b)

ํ•จ์ˆ˜์˜ return๊ฐ’ ์‚ฌ์šฉํ•˜๊ธฐ

- ํ•จ์ˆ˜๋กœ๋ถ€ํ„ฐ ํŠน์ • ๊ฐ’์„ ๋ฐ›์•„์˜ค๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค.
- return์œผ๋กœ ํ•จ์ˆ˜ ๋ฐ”๊นฅ์œผ๋กœ ๊ฐ’์„ ๋‚ด๋ณด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
- to_pay๋Š” tax_calc์˜ ๋ฆฌํ„ด๊ฐ’๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค.
- return์€ ํ•จ์ˆ˜๋ฅผ ๋๋ƒ…๋‹ˆ๋‹ค, ํ•ด๋‹น ์ค„ ์ดํ›„์˜ ์ฝ”๋“œ๋Š” ์‹คํ–‰์‹œํ‚ค์ง€ ์•Š์Šต๋‹ˆ๋‹ค.
- return์€ python์ด ์‹คํ–‰์‹œํ‚ฌ ๋งˆ์ง€๋ง‰ ์ฝ”๋“œ๋กœ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.
- ๊ฐ’์„ ์ฃผ๊ณ  ํ•จ์ˆ˜๋ฅผ ๋๋‚ด๋ฉฐ, ๊ทธ๋Ÿฌ๋ฉด ํ•จ์ˆ˜๋Š” ์ž‘๋™์„ ๋ฉˆ์ถฅ๋‹ˆ๋‹ค.

return ์ฑŒ๋ฆฐ์ง€ : Tax Calculator

def tax_calc(salary):
	return salary*0.1

def pay_tax(tax):
	return print("Your tax is", tax)

to_pay = tax_calc(300)
pay_tax(to_pay)

๋ฌธ์ž์—ด ์•ˆ์— ๋ณ€์ˆ˜ ๋„ฃ๊ธฐ : f"Hello, {...}"

- format์œผ๋กœ ๋ฌธ์ž์—ด ์•ˆ์— ๋ณ€์ˆ˜๋ฅผ ๋„ฃ์„ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
my_name = "John"
my_age = 20

print(f"Hello, My name is {my_name}, I'm {my_age} years old.")

return ์ฑŒ๋ฆฐ์ง€ : Hamberger Set Maker

def make_basic_set(coke):
	return f"๐Ÿ” + {coke}"
    
def add_fries(basic_set):
	return f"{basic_set} + ๐ŸŸ"
    
def add_pizza(fries_set):
	return f"{fries_set} + ๐Ÿ•"
    
basic_set = make_basic_set("๐Ÿฅค")
fries_set = add_fries(basic_set)
complete_set = add_pizza(fries_set)

print(complete_set) ๐Ÿ” + ๐Ÿฅค + ๐ŸŸ + ๐Ÿ•
profile
๐Ÿ“Œ FE ๊ณต๋ถ€ ์ •๋ฆฌ ๊ณต๊ฐ„์ž…๋‹ˆ๋‹ค.

0๊ฐœ์˜ ๋Œ“๊ธ€