CS/Machine Learning
์์์!!! ์ ๋ฒ์ ๋ฐ์ดํฐ ๋ถ๋ฌ์ค๋๊ฒ ์๋์ด๊ฐ์ง๊ณ ๋จธ๋ฆฌ ์ํ ์๋๋ฐ ์ค๋ ์คํฐ๋ ์ค์ต์๊ฐ์ ์ ๋๋ก ๋ฐฐ์ ๋ค. ๊ธฐ๋กํด๋ฌ์ผ์ง! ์ผ๋จ ๋ด ๊ตฌ๊ธ ๊ณ์ ๋๋ผ์ด๋ธ์๋ค๊ฐ ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ ค๋๋๋ค. ๊ทธ๋ฆฌ๊ณ ์ผ์ชฝ์ ํ์ผ ๋ฒํผ์ ๋๋ฅด๋ฉด ๋์ค๋ ์ธ๊ฐ ์์ด์ฝ ์ค์ 3๋ฒ์งธ๊บผ๋ฅผ ๋๋ฅด๋ฉด ๊ณ์ ์ ์ฐ๊ฒฐํ๊ฒ ๋๊ณ ๋ฌผ์ด๋ณธ๋ค. OK ๋๋ฌ์ฃผ๋ฉด ์ ๋ ๊ฒ ๋ถ๋ฌ์จ๋ค. โ โ ์ผ๋จ ๋งจ ์์ from google.colab import drive drive.mount('/content/drive') โ ์ด ์ฝ๋๋ฅผ ์์ฑํด์ฃผ๊ณ โ path๋ผ๊ณ ๊ฒฝ๋ก ๋ฃ์ด์ค ๋ณ์๋ฅผ ํ๋ ๋ง๋ค์ด ์ค๋ค์ ์ค๋ฅธ์ชฝ ๋ง์ฐ์ค๋ฅผ ํด๋ฆญํด์ ๊ฒฝ๋ก๋ณต์ฌ๋ฅผ ํด์ค๋ค ๊ทธ๋ฆฌ๊ณ path์ ๋ฃ์ด์ฃผ๊ณ ๋ฐ์ดํฐ์ธ xy ์ path๋ฅผ ๋ฃ์ด์ค๋ค. ๊ทธ๋ฌ๋ฉด ๋! โ ์ ๋์๋๋ค. # lab 05 Logistic Classifi..
CS/Machine Learning
์ฐธ๊ณ ์์ https://www.youtube.com/watch?v=2FeWGgnyLSw&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=13&ab_channel=SungKim logistic regression ์ tensorflow๋ฅผ ํตํด ๊ตฌํํด๋ณด๋ ์๊ฐ โ ๋งจ ์ฒ์๋ถํฐ! ์ผ๋จ ์ฐ๋ฆฌ๊ฐ ๊ฐ์ง๊ณ ์๋ ๋ฐ์ดํฐ๋? x_data ์์ ๋ค์ด๊ฐ์๋ ๊ฐ๊ฐ ๋ฆฌ์คํธ๋ค์ ํ๋์ ์ธ์คํด์ค๋ฅผ ๋งํ ๊ฑฐ๋ค ๊ทธ๋ฆฌ๊ณ y_data์ ๊ฒฐ๊ณผ๊ฐ์ 0 ์๋๋ฉด 1๋ก๋ง ๋์จ๋ค๊ณ ํ์. โ ๊ทธ ๋ค์ feed-dict ๋ฅผ ์ฌ์ฉํ๊ธฐ ์ํด์ placeholder๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. X ์ Y๋ฅผ ๋ง๋ค์๋ค. shape์ ์ฃผ์ ํด์ผ ํ๋ค. ๋ ๋ง์ x_data , y_data๋ฅผ ์ค์๋ ์์ผ๋ None(n)์ผ๋ก ์ค์ ํด ๋๊ฑฐ๊ณ X..
CS/Machine Learning
์ฐธ๊ณ ์์ https://www.youtube.com/watch?v=6vzchGYEJBc&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=13&ab_channel=SungKim ์ด๋ฒ์ cost function๊ณผ cost ๋ฅผ ์ต์ํํ๋ gradient decent ์ ๋ํด ์ ๋ฆฌํ๋ ค๊ณ ํ๋ค. ์ ๋ฒ์ linear hypothesis ์ผ๋์๋ ์ ๋ฐ๋ชจ์์ผ๋ก ๊ทธ๋ํ๊ฐ ๋ํ๋ฌ์๋ค ์ด๊ฒ์ ์ฅ์ ์ ์ด๋๊ณณ์์ ์์ํ๋์ง ์ต์๊ฐ์ ๊ฐ๋ w(weight)์ ์์๋ผ ์ ์๋ค๋ ๊ฒ! โ ๊ทผ๋ฐ ์ด์ ์ฐ๋ฆฌ์ H(x) ๊ผด์ด ์ข ๋ณํํ๋ค!(sigmoid ํจ์๋ฅผ ์ด์ฉํ๊ธฐ๋ก ํ์๋ค) โ ์ฐ๋ฆฌ๋ 0๊ณผ 1์ฌ์ด์ ๊ฒฐ๊ณผ๋ง ๋์ค๊ธธ ๋ฐ๋๊ธฐ ๋๋ฌธ์ ์ค๋ฅธ์ชฝ ์ฒ๋ผ H(x)๋ฅผ ์ ์ด์คฌ์๋ค. ๊ทธ๋ฐ๋ฐ ์ด๊ฑด cost function..
CS/Machine Learning
์ฐธ๊ณ ์์ https://www.youtube.com/watch?v=PIjno6paszY&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=12&ab_channel=SungKim โ โ ์ด์ ์ ๋ฐฐ์ ๋ linear regression ์ ๋ํด ์ง๊ณ ๋์ด๊ฐ์ cost ๋ ๊ฐ์ค๊ณผ ์ค์ ๊ฐ์ ์ฐจ์ด๋ฅผ ํ๊ท ์ ๋ด๋๊ฒ cost ๋ฅผ ์ต์ํ ํ๋ weight์ ์ฐพ์๋ด๊ธฐ -> ๊ฒฝ์ฌํ๊ณ ๋ด๋ ค๊ฐ๋ ์๊ณ ๋ฆฌ์ฆ โ ํ๋ฐ์ง์ ์ผ๋ง๋ ์์ง์ผ๊น = ์ํ (๋ฌ๋ rate) โ classification๋ ์ ์ฌํ๋ค โ โ ์ด์ ์ regression์ ๊ทธ๋ฅ ์ซ์๋ฅผ ์์ธกํ๋๊ฑฐ๋ผ๋ฉด classification์ ๋์ค์ ํ๋๋ฅผ ๊ณจ๋ผ์ฃผ๋ ๊ฑฐ๋ค. โ -์คํธ์ธ์ง ์๋์ง๋ฅผ ์๋ ค์ฃผ๋ ๊ฒ -ํ์ด์ค๋ถ์ ํผ๋์์ ๋ณด์ฌ์ค๊ฒ๋ง ๋ณด์ฌ์ฃผ๋..
CS/Machine Learning
์ฐธ๊ณ ์์ https://www.youtube.com/watch?v=o2q4QNnoShY&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=10&ab_channel=SungKim ์ด๋ฒ์ ๋ฐ์ดํฐ๋ค์ ์ค์ ํ์ผ์์ ์ฝ์ด์ค๋๊ฑธ ํด๋ณด๋ ค๊ณ ํ๋ค. ๋ฐ์ดํฐ๊ฐ ๋ง์์ง๋ฉด์ ๋ฐ์ดํฐ๋ค์ ์์ค์ฝ๋์ ์ผ์ผ์ด ๋ค ์จ๋ฃ๊ธฐ๊ฐ ๋ณต์กํด์ง๋ค. ์ฝ์ด์ค๋ ค๋ฉด ์ด๋ป๊ฒ ํ ๊น? numpy์ ์๋ loadtxt๋ผ๋ ํจ์๋ฅผ ์ด์ฉํ๋ฉด ๋๋ค. loadtxt(ํ์ผ์ด๋ฆ, ','๋ก ๋๋๊ฒ ๋ค, ๋ฐ์ดํฐ ํ์
) โ ๋จ์ ์ด ์๋ค๋ฉด ์ด ๋ฐ์ดํฐ๋ค์ ํ์
์ด ๋ค ๊ฐ์์ผ ํ๊ฒ ๋ค. ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ฌ๋ ๋ณด๋๊น ์ฌ๋ผ์ด์ฑ์ ์ด์ฉํ๋ค. โ ์ฌ๋ผ์ด์ฑ์ ํ์ด์ฌ ๋ฆฌ์คํธ์ ๊ฐ๋ ฅํ ๊ธฐ๋ฅ์ด๋ค. ์ด๋ฏธ ์๊ณ ์์ง! ์ ์์๋ฌ์ผํ๋ค. numpy๋ก ๊ฐ๋ฉด์ ๋ ๋ง๊ฐํ ์ธ๋ฑ์ฑ์..
CS/Machine Learning
multi-variable ์ ์ฌ์ฉํ ์ ์์ผ๋ฉด ์ค์ ๋ก ๊ฐ์ง๊ณ ์๋ ๋ฐ์ดํฐ์ ์ ์ฉํด๋ณผ์ ์๋ค. โ ๋ค์๊ณผ ๊ฐ์ ๋ฐ์ดํฐ๊ฐ ์๋ค. ๋ง์ง๋ง ๊ธฐ๋ง๊ณ ์ฌ ์ํ์ธ Y๋ฅผ ์์ธกํ๋ ๋ชจ๋ธ์ ๋ง๋ค ๊ฑฐ๋ค x๊ฐ ๋ง์ ์๋ก ์์ธก์ ์ํ ์ ์๊ฒ ์ง? โ hypothesis๋ฅผ ์์ฐ์ค๋ฝ๊ฒ ์ธ์๋ณด์ ๊ทธ๋ฌ๋ฉด ๋ง์ฐฌ๊ฐ์ง๋ก cost๋ ์ค๋ฅธ์ชฝ์ ๊ฒฐ๊ณผ๋ฅผ ๋ณด๋ฉด cost๊ฐ ์๋นํ ๋๋ค๊ฐ 4๋ก ๋ฎ๊ฒ ๋จ์ด์ง๋ ๊ฑธ ๋ณผ ์ ์๋ค 2000 Cost ์ผ๋๋ฅผ ๋ณด๋ฉด prediction์ ๊ฐ์ด ์ผ์ชฝ ์์ ์๋ y_data(๊ธฐ๋ํ๋ ๊ฐ)์ ์ ์ฌํ๋ค. ์๋ ดํ๋ค๊ณ ๋ณผ ์ ์๊ฒ ๋ค. ๊ทผ๋ฐ ์ ๋ถ๋ถ์ด ๋๋ฌด ๋ณต์กํ๋ค. ์ด๋ฐ๋ฐฉ๋ฒ์ ์ด์ ์ฌ์ฉํ์ง ์๋๋ค. ์ด๊ฑธ ๋์ฒดํ ๊ฒ์ด matrix์ด๋ค. matrix๋ฅผ ๊ตฌํํด๋ณด์ x_data๋ฅผ ์์ฒ๋ผ ๋ฌถ์ด์ ์จ์ค๋ ๋๋ค. ๊ทธ๋ด์ placehold..
CS/Machine Learning
https://www.youtube.com/watch?v=kPxpJY6fRkY&list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm&index=8&ab_channel=SungKim ์ ๋์์ ์ฐธ๊ณ ์ง๋๋ฒ ๊ฑฐ ๋ณต์ต ์ผ์ชฝ์ ์์๋์๋ ์ค๋ฅธ์ชฝ์ผ๋ก ์ ์ ์ด๋ํ๋๋ก, ์ค๋ฅธ์ชฝ์ ์์ ๋์๋ ์ผ์ชฝ์ผ๋ก ์ ์ ์ด๋ํ๋๋ก ํ๋ค. โ ์ด๋ฒ์ ์ฌ๋ฌ๊ฐ์ ๋ณ์ ๊ฐ์ง๊ณ ์์ธกํด๋ณด๋ ค๊ณ ํ๋ค. ์ด์ ๊ณผ ๋๊ฐ์ ๋ฐฉ๋ฒ์ ์๋๊ฒ ๋ค. ์ด๋ป๊ฒ ํ๋ฉด ๋ ๊น? ์๊ฐ๋ณด๋ค ๊ฐ๋จํ๊ฒ ์ด๋ ๊ฒ ํด์ฃผ๋ฉด ๋๋ค. ๊ทธ๋ฌ๋ฉด cost function์? ๋ ๋ง์ ๋๋ ์ด๋ป๊ฒ ํด์ผํ ๊น? ์ด๋ ๊ฒ ํ๋ฉด ๋๊ฒ ๋ค. ๊ทผ๋ฐ ์ด๋ ๊ฒ ๋ณด๋ ํญ์ด ์์ฒญ ๋ง์์ง๋ฉด ์์ฒญ ๊ธธ์ด์ง๊ฒ ๋ค. ๋ ์ ์ฒ๋ฆฌํ ์ ์๋ ๋ฐฉ๋ฒ์ด ์์๊น? matrix๋ผ๋ ๊ฑธ ์ด์ฉํ๋ฉด ๋๋ค. matrix์ ๊ณฑ์
..
CS/Machine Learning
์ฐธ๊ณ : https://www.youtube.com/playlist?list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm ๋ชจ๋๋ฅผ ์ํ ๋ฅ๋ฌ๋ ๊ฐ์ข ์์ฆ 1 www.youtube.com ๋ชจ๋๋ฅผ ์ํ ๋ฅ๋ฌ๋ ๊ฐ์ข ์์ฆ 1 www.youtube.com โ ์ด๋ฒ์๋ ์ ๋ฒ์ ๋ฐฐ์ด๊ฑธ tensorflow๋ก ๊ตฌํํด๋ณด๋ ์๊ฐ ์๋๋ Wx ๋ค์ +b ๊ฐ ์์ ์ ์์ง๋ง ์ฌ๊ธฐ์ ์๋ตํ๊ณ ์๊ฐํด๋ณด์ ๋ฒ์๋ -30์์ 50์ผ๋ก ๋ณ๊ฒฝํ๋ฉด์ ๊ฒฐ๊ณผ๋ฅผ ๋ณธ๋ค plt ๋ผ๋ ๊ฑฐ๋ import ํ๋ฉด ๊ทธ๋ํ๋ฅผ ๊ทธ๋ฆด ์ ์๋ค. ์ ๋ฐ์์ผ๋ก! ๊ทธ๋ํ ๋ชจ์์ด ๋ํ๋๊ฒ ์ง. cost๋ฅผ ์ต์ํ ํ๋ W๋ 1์ด๊ฒ ๋ค. โ ๊ทธ๋ํ๋ฅผ ๋ ์์ธํ ์ดํด๋ณด์. ์ ๋ฒ ์๊ฐ์ ๋ดค๋ ๊ฒ ์ฒ๋ผ ๊ธฐ์ธ๊ธฐ๊ฐ ์์ ์ผ๋์๋ w๋ฅผ -๋ฐฉํฅ์ผ๋ก ์ด๋ํ๋ฉด์ cost ๊ฐ์..
CS/Machine Learning
์ฐธ๊ณ : https://www.youtube.com/playlist?list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm ๋ชจ๋๋ฅผ ์ํ ๋ฅ๋ฌ๋ ๊ฐ์ข ์์ฆ 1 www.youtube.com ์ ๋ฒ๊บผ ๋ณต์ต. ๊ฐ๋จํ๊ฒ ํ๊ธฐ์ํด b๋ ์ง์ ๋ค โ W๊ฐ 1์ผ๋ cost๋ 0์ด ๋๋๊ตฌ๋ W๊ฐ 0์ผ๋ cost๋ ๋๊ฐ 4.67 W๊ฐ 2์ผ๋ cost๋ 4.67์ ๋.. โ ๊ทธ๋ฌ๋ฉด ์ด๊ฑธ ํจ์๋ก ํ๋ฒ ๊ทธ๋ ค๋ณด๋ฉด ์ด๋ฐ ํํ๊ฐ ๋์ค๊ฒ ๋๋ค. ์ฐ๋ฆฌ์ ๋ชฉํ๋ cost๋ฅผ ์ต์ํ ์ํค๋ W๋ฅผ ์ฐพ์๋ด๋ ๊ฑฐ์๋ค. โ gradient descent algorithm ๊ฒฝ์ฌ ๋ด๋ ค๊ฐ ์๊ณ ๋ฆฌ์ฆ โ ์ด๋ฌํ ์๊ณ ๋ฆฌ์ฆ์ ๋ค์๊ณผ ๊ฐ์ด ๋ถ๋ฅธ๋ค! ์ ์ผ ๋ฎ์ ์ง์ ์ ์ฐพ๋ ๋ฐฉ๋ฒ์? ๊ฒฝ์ฌ๋๋ฅผ ๋ฐ๋ผ์ ํ์นธ์ฉ ๋ด๋ ค๊ฐ๋ณธ๋ค. w๋ฅผ ์กฐ๊ธ์ฉ ์กฐ๊ธ์ฉ ๋ฐ๊พธ์ด๊ฐ๋ฉด์ co..
CS/Machine Learning
์ฐธ๊ณ : https://www.youtube.com/playlist?list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm ๋ชจ๋๋ฅผ ์ํ ๋ฅ๋ฌ๋ ๊ฐ์ข ์์ฆ 1 www.youtube.com ๋ชจ๋๋ฅผ ์ํ ๋ฅ๋ฌ๋ ๊ฐ์ข ์์ฆ 1 www.youtube.com โ ์ด์ ์ ๋ฐฐ์ ๋ hypothesis ์ cost function ๊ธฐ์ตํ๊ธฐ~ โ cost function์ W์ b์ ๋ฐ๋ผ์ ์์์ง์๋ ์ปค์ง์๋ ์๋๋ฐ ํ์ต์ ํด์ cost ๋ฅผ ์ต์ํ ์ํจ๋ค๊ณ ํ ์ ์๋ค. tensorflow์ ๊ธฐ๋ณธ 3๊ฐ์ง ์์ โ tensorflow๋ฅผ ํตํด ๊ทธ๋ํ๋ฅผ ๋น๋ฉํ๊ณ sess.run์ ํตํด ๊ทธ๋ํ๋ฅผ ์คํ์ํค๊ณ ์คํ ๊ฒฐ๊ณผ๊ฐ ๊ฐ์ ๋๋ ค์ฃผ๋.. ๊ทธ๋ฐ ์์! โ x์ y์ ๋ฐ์ดํฐ๊ฐ ์ฃผ์ด์ง๋ค. variable ์ด๋ผ๋ ๋
ธ๋๋ฅผ ์ฌ..
CS/Machine Learning
์ฐธ๊ณ : https://www.youtube.com/playlist?list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm ๋ชจ๋๋ฅผ ์ํ ๋ฅ๋ฌ๋ ๊ฐ์ข ์์ฆ 1 www.youtube.com ๋ชจ๋๋ฅผ ์ํ ๋ฅ๋ฌ๋ ๊ฐ์ข ์์ฆ 1 www.youtube.com โ Predicting exam score : regression โ 10์๊ฐ ๊ณต๋ถํ๋๋ 90์ ์ ๋ง์๋ค 9์๊ฐ์ ๊ณต๋ถํ๋๋ 80์ ์ ๋ง์๋ค .... ๋ฑ๋ฑ์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ง๊ณ ํ์ต์ ํ๋ ๊ฑธ training ์ด๋ผ๊ณ ํ๋ค โ 7์๊ฐํ๋ค๋ฉด -> regression ์ด ์์ธกํด์ค๋ค โ(Linear) Hypothesis ํ๋ฒ ๊ทธ๋ํ๋ฅผ ๋ง๋ค์ด๋ณธ๋ค. ๋ฐ์ดํฐ๋ฅผ ๋ฐํ์ผ๋ก. ์ ๋ ๊ฒ ์ผ์ฐจ๋ฐฉ์ ์์ด ๋๊ฒ ๊ตฌ๋ ํ๊ณ ๊ฐ์ค์ ์ธ์ด๋ค. ์ ์ค์ ์ด๋ค ์ ์ด ์ ์ผ ์ข์๊ฐ? Whi..
CS/Machine Learning
์ฐธ๊ณ : https://www.youtube.com/playlist?list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm ๋ชจ๋๋ฅผ ์ํ ๋ฅ๋ฌ๋ ๊ฐ์ข ์์ฆ 1 www.youtube.com ๋ชจ๋๋ฅผ ์ํ ๋ฅ๋ฌ๋ ๊ฐ์ข ์์ฆ 1 www.youtube.com โ TensorFlow! ๊ตฌ๊ธ์์ ๋ง๋ ๋จธ์ ๋ฌ๋ ์คํ์์ค ํ๋ ์ ์ํฌ python ์ ์ธ ์ ์๋ค. โ What is a Data Flow Graph? ๋
ธ๋๋ค์ ์ฐ์ฐ ๋ฐ ๋ฐ์ดํฐ ์ฃ์ง๋ค์ data arrays, ๋ฐ์ดํฐ๋ฅผ ์ฐ๊ฒฐํ๋ ์ โ โ ๊ทธ๋ฆฌ๊ณ tensorflow ๊น๋ ๊ฑด ์ฌ๊ธธ๋ณด๊ณ ํ๋คํ๋ค https://blog.naver.com/33sea2020/222248477322 [๋ชจ๋๋ฅผ ์ํ ๋ฅ๋ฌ๋ 01] anaconda๋ก tensorflow ์ค์นํ๊ธฐ..
CS/Machine Learning
์ฐธ๊ณ : https://www.youtube.com/playlist?list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm ๋ชจ๋๋ฅผ ์ํ ๋ฅ๋ฌ๋ ๊ฐ์ข ์์ฆ 1 www.youtube.com ๋ชจ๋๋ฅผ ์ํ ๋ฅ๋ฌ๋ ๊ฐ์ข ์์ฆ 1 www.youtube.com โ What is ML? ์คํธํํฐ... rule ์ด ์ ๋ง ๋ง์. -> ์ ํํ๊ฒ ๋ถ๋ฅ ์ด๋ ค์ ๊ทธ๋์ 1959๋
Arthur Samuel ์ด๋ผ๋ ์ฌ๋์ด ํ๋ก๊ทธ๋จ ์์ฒด๊ฐ ํ์ต์ ํด์ ์ํํ๋ ๊ฑธ ์๊ฐํด๋ โ Supervised / Unsupervised Learning ์ผ๋ก ๋๋จ training set (๋ฐ์ดํฐ๋ค..) ์ด ์๋ ๊ฒ์ Supervised learning (๊ทธ ์๋ก ๊ฐ์์ง ์ฌ์ง์ด ์ด๋ฏธ ์ฃผ์ด์ก๋ค๋์ง..) ์๋์ ์ผ๋ก ๋น์ทํ๊ฑธ ๊ทธ๋ฃนํํ๋ ๊ฒ์..
CS/Machine Learning
ํํ์ ํ ์ ๋ฐฐ๋์ด ๋ฅ๋ฌ๋ ์คํฐ๋/์ธ๋ฏธ๋๋ฅผ ์ด์ด์ฃผ์
จ๋ค ๊ทธ๋์ ์ฐธ์ฌํ๊ฒ ๋์๋๋ฐ... ์์ผ๋ก ํ ํ๊ธฐ๋์ ์ ํตํด ๊ณต๋ถ๋ฅผ ํด๋ณด๋ ค๊ณ ํ๋ค. https://www.youtube.com/playlist?list=PLlMkM4tgfjnLSOjrEJN31gZATbcj_MpUm ๋ชจ๋๋ฅผ ์ํ ๋ฅ๋ฌ๋ ๊ฐ์ข ์์ฆ 1 www.youtube.com ๋นก์
๊ฒ ๊ฐ์ง๋ง...ใ
ใ
์ธ์ ๋ ๊ทธ๋ฌ๋ฏ ๋ธ๋ก๊ทธ์ ์ ์ ๋ฆฌํด๋๋ ค๊ณ ํ๋ค. ์ด ๋ถ์ผ๊ฐ ๋ด ์ง๋ก๊ฐ ๋ ์ง ์๋ ์ง๋ ๋ชจ๋ฅด๊ฒ ์ง๋ง(์์ฆ ์ ๋ง ๋ค ์ฐ๋ฌ๋ณด๊ณ ์๋ค. ์น, ์ฑ...) ํ ๋ฒ ํด๋ณด๊ธฐ๋ก ํ ์ด์ ์ ํด๋ณด์! (21.3.22 ์์) ๋น ์ด๋ง
Develop/React.js
scss ์ฒ์ ์ฐ๋๋ฐ ์ด๋ฐ ์ค๋ฅ๊ฐ ๋ฌ๋ค. ๊ตฌ๊ธ๋งํ๋๋ $ npm uninstall node-sass โ $ npm install node-sass@4.14.1 ๋ฅผ ํ ํ โ $ yarn start [์ถ์ฒ] [React] Error: node sass version 5.0.0 is incompatible with ^4.0.0. ๋ฐ ๋|์์ฑ์ ๋ฐ๋ โ ์ด๋ ๊ฒ ํ๋ผ์
์ ํ๋๋ ํด๊ฒฐ
Develop/React.js
์ด ๊ธ์ [๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์ ](์ ์ ๊น๋ฏผ์ค, ์ถํ์ฌ ๊ธธ๋ฒ) ๊ต์ฌ๋ฅผ ๋ณด๊ณ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์. ๋ฒํผ์ ๋๋ฅด๋ฉด ์์๋๋ก ์ด๋ํ๊ฒ๋ ์์ฉ โ ScrollBox.js import React, {Component} from 'react'; class ScrollBox extends Component { scrollChange = (param)=> { const {scrollHeight, clientHeight} = this.box; if(param === 'u'){ this.box.scrollTop = scrollHeight - clientHeight; } else{ this.box.scrollTop =0; } } /* //๋น๊ตฌ์กฐํ ํ ๋น ๋ฌธ๋ฒ scrollToBottom=()=>{ const{scrollHei..
Develop/React.js
์ด ๊ธ์ [๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์ ](์ ์ ๊น๋ฏผ์ค, ์ถํ์ฌ ๊ธธ๋ฒ) ๊ต์ฌ๋ฅผ ๋ณด๊ณ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์. Counter.js import React, {useState} from 'react'; const Counter= () => { const[value, setValue]= useState(0); return ( ํ์ฌ ์นด์ดํฐ ๊ฐ์ {value}์
๋๋ค. setValue(value + 1)}>+1 setValue(value -1)}>-1 ); }; export default Counter; Info.js import React, {useState}from 'react'; const Info =()=>{ const [name, setName]= useState(''); const [nickname, setNick..
Develop/React.js
์ด ๊ธ์ [๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์ ](์ ์ ๊น๋ฏผ์ค, ์ถํ์ฌ ๊ธธ๋ฒ) ๊ต์ฌ๋ฅผ ๋ณด๊ณ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์. Will ์ ๋์ฌ๊ฐ ๋ถ์ ๋ฉ์๋๋ ์ด๋ค ์์
์ ์๋ํ๊ธฐ ์ ์ ์คํ๋๋ ๋ฉ์๋ Did ์ ๋์ฌ๊ฐ ๋ถ์ ๋ฉ์๋๋ ์ด๋ค ์์
์ ์๋ํ ํ์ ์คํ๋๋ ๋ฉ์๋ ------------------------ ๋ง์ดํธ: DOM ์ด ์์ฑ๋๊ณ ์น ๋ธ๋ผ์ฐ์ ์์ ๋ํ๋๋ ๊ฒ โ constructor : ์ปดํฌ๋ํธ๋ฅผ ์๋ก ๋ง๋ค๋๋ง๋ค ํธ์ถ๋๋ ํด๋์ค ์์ฑ์ ๋ฉ์๋ ์
๋๋ค getDerivedStateFromDrops: props์ ์๋ ๊ฐ์ state์ ๋ฃ์ ๋ ์ฌ์ฉํ๋ ๋ฉ์๋ render: ์ฐ๋ฆฌ๊ฐ ์ค๋นํ UI๋ฅผ ๋ ๋๋ง ํ๋ ๋ฉ์๋ componentDidMount: ์ปดํฌ๋ํธ๊ฐ ์น ๋ธ๋ผ์ฐ์ ์์ ๋ํ๋ ํ ํธ์ถํ๋ ๋ฉ์๋ -----------..
Develop/React.js
์ด ๊ธ์ [๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์ ](์ ์ ๊น๋ฏผ์ค, ์ถํ์ฌ ๊ธธ๋ฒ) ๊ต์ฌ๋ฅผ ๋ณด๊ณ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์. IterationSample.js import React from 'react'; const IterationSample =()=> { return( ๋์ฌ๋ ์ผ์ ๋ ๋ฐ๋ ); }; ์ฝ๋๊ฐ ๋ณต์กํด์ง๋ฉด ์ด๋ ๊ฒ ๋ฐ๋ณต๋๋๊ฑด ๋ญ๋น ์๋ฐ ์คํฌ๋ฆฝํธ ๋ฐฐ์ด ๊ฐ์ฒด์ ๋ด์ฅํจ์์ธ mapํจ์๋ฅผ ์ฌ์ฉํ๋ฉด ๋ฐ๋ณต๋๋ ์ปดํฌ๋ํธ ๋ ๋๋ง ๊ฐ๋ฅ key๋ ์ปดํฌ๋ํธ ๋ฐฐ์ด์ ๋ ๋๋ง ํ์ ๋ ์ด๋ค ์์์ ๋ณ๋์ด ์์๋์ง ์์๋ด๋ ค๊ณ ์ฌ์ฉ โ IterationSample.js import React from 'react'; const IterationSample =()=> { const names = ['๋์ฌ๋', '์ผ์', '๋', '๋ฐ๋']; co..
Develop/React.js
์ด ๊ธ์ [๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์ ](์ ์ ๊น๋ฏผ์ค, ์ถํ์ฌ ๊ธธ๋ฒ) ๊ต์ฌ๋ฅผ ๋ณด๊ณ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์. html ์์ id๋ฅผ ์ฌ์ฉํ์ฌ DOM์ ์ด๋ฆ์ ๋ค๋ ๊ฒ์ฒ๋ผ ๋ฆฌ์กํธ ํ๋ก์ ํธ ๋ด๋ถ์์ DOM์ ์ด๋ฆ์ ๋ค๋ ๋ฐฉ๋ฒ -> ref โ DOM์ด ๋ญ๋๋ผ? Document Object Model์ ์ฝ์ด ๊ฐ์ฒด๋ก ๋ฌธ์ ๊ตฌ์กฐ๋ฅผ ํํํ๋ ๋ฐฉ๋ฒ โ ref๋ ์ธ์ ์ฌ์ฉํด์ผํ ๊น? -> DOM์ ์ง์ ์ ์ผ๋ก ๊ฑด๋๋ ค์ผ ํ ๋ โ ํจ์ํ ์ปดํฌ๋ํธ์์ ref๋ฅผ ์ฌ์ฉํ๋ ค๋ฉด Hooks๋ฅผ ์ฌ์ฉํด์ผ ํจ(๋ค์์ ๋์ด) ์์ ์ปดํฌ๋ํธ ValidationSample.css .success{ background-color: lightgreen; } .failure{ background-color: lightcoral; } ValidationSample.j..
Develop/Django
HUFS Team ๋ฉค๋ฒ๋ค๊ณผ 'ํ๋ฅด์๋'๋ผ๋ ์ฌ์ดํธ๋ฅผ ๋ง๋ค๊ธฐ๋ก ํ๋ค. ์ํ. ๋๋ผ๋ง. ์์ค. ๋งํ ๊ฐ์ ์นดํ
๊ณ ๋ฆฌ๋ฅผ ์ ํํ๊ณ ์๊ธฐ๊ฐ ์ํ๋ ์ํ์ ์ ํํด์ ์ฐ๋ฆฌ๊ฐ ํํ ์๋ mbti ํ
์คํธ๋ฅผ ํ ์ ์๋ ์ฌ์ดํธ์ด๋ค. ๋๋ Django๋ก ๋ฐฑ์๋๋ฅผ ๋ด๋นํ๊ธฐ๋ก ํ๋ค. ์ง๊ธ๊น์ง ํ ๊ฑฐ๋ผ๋ฉด, ๋
ธ์
๊ณผ slack์ ์ด์ฉํด ํ์
๊ณต๊ฐ์ ๋ง๋ จํ ๊ฒ. erd๋ฅผ ์์ฑํ ๊ฒ. ํ๋ฉด ๊ตฌ์ฑ์ ์ง ๊ฒ(์ด๊ฑด pm์ด ํ๋ก์ ํธ ๊ธฐํํ ๋ ํ์
จ๋ค) ์ผ๋จ ๋ฐฑ์๋ ํ๋ผ๋ฆฌ ๊ตฌ๊ธ ์คํ๋ ๋์ํธ๋ฅผ ์ด์ฉํด์ api ๋ฌธ์๋ฅผ ์์ฑํ๊ณ , ํ๋ก ํธ ํ์๊ณผ pm๊ณผ ํผ๋๋ฐฑ์ ์งํํ๋ค. api ์ ๋ํ ๊ฐ๋
์ด ํ์คํ ์กํ์์ง๊ฐ ์์์ ์์ ์ ๋ง์ด ํ์ง๋ง ๊ทธ๋๋ api๊ฐ ํ๋ฉด์ ๊ธฐ์ค์ผ๋ก ๋๋๋ ๊ฑฐ๋ผ๋ ๊ฒ ์ด์ ์ข ์๋ฟ๋๋ค. ๋ณธ๊ฒฉ์ ์ผ๋ก ํ
์ด๋ธ ๋ง๋ค๊ธฐ์ ์ ํ๋ก์ ํธ ๋ผ๋๋ง ..
Develop/Django
์ด ๊ธ์ [ํ์ด์ฌ ์น ํ๋ก๊ทธ๋๋ฐ](์ ์ ๊น์ํ, ์ถํ์ฌ ํ๋น๋ฏธ๋์ด) ๊ต์ฌ๋ฅผ ๋ณด๊ณ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์. 4.1 Admin ์ฌ์ดํธ ๊พธ๋ฏธ๊ธฐ ์ฅ๊ณ ์ Admin ๊ธฐ๋ฅ -> ๋ฐ์ดํฐ ๊ด๋ฆฌ๊ฐ ์ฝ๊ณ ์ ๋๋ ๋ฃฉ์คํ Admin ๋ฅผ ํตํด ๋ฐ์ดํฐ์ CRUD ๊ธฐ๋ฅ์ ์ตํ๋ณด๊ธฐ ์ผ๋จ runserver๋ฅผ ์๋์ํจ๋ค ์น๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด Admin ์ฌ์ดํธ์ ์ ์ํด๋ณด์ (Admin ์ฌ์ดํธ๊ฐ ์ฃ๋ค ๊นจ์ ธ์ ๋์์ ํ์ฐธ ์ค๋ฅ๋ฅผ ๊ตฌ๊ธ๋ง ํ๋๋ฐ DEBUG = False๋ก ํด๋๊ณ ํ๋ฉด ๊ทธ๋ด ์ ์๋ค๊ณ ํด์ True ๋ก ๋ฐ๊พธ๊ณ ํ๋ ๋ค์ ์ ๋์จ๋ค ์ฐธ๊ณ https://stackoverflow.com/questions/59688135/css-static-file-is-not-loading-in-django CSS static file is not loa..
Develop/React.js
์ด ๊ธ์ [๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์ ](์ ์ ๊น๋ฏผ์ค, ์ถํ์ฌ ๊ธธ๋ฒ) ๊ต์ฌ๋ฅผ ๋ณด๊ณ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์. ์ผ๋จ html ํ์ผ์์๋ ์ด๋ฒคํธ๋ฅผ ์คํํ๋ฉด " " ์ฌ์ด์ ์๋ ์๋ฐ ์คํฌ๋ฆฝํธ๋ฅผ ์คํํ๋๋ก ํจ Click Me ๊ทธ๋ผ ๋ฆฌ์กํธ ์์๋? โ EventPractice.js import React, {Component}from 'react'; class EventPractice extends Component{ render(){ return ( ์ด๋ฒคํธ ์ฐ์ต ); } } export default EventPractice; App.js import React from 'react'; import EventPractice from './EventPractice'; const App =() => { return ; }; ..
Develop/React.js
์ด ๊ธ์ [๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์ ](์ ์ ๊น๋ฏผ์ค, ์ถํ์ฌ ๊ธธ๋ฒ) ๊ต์ฌ๋ฅผ ๋ณด๊ณ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์. ์ ์ ๋ณด์๋ App ์ปดํฌ๋ํธ๋ ํจ์ํ ์ปดํฌ๋ํธ ์ปดํฌ๋ํธ๋ฅผ ์ ์ธํ๋ ๋ฐฉ์์ ๋๊ฐ์ง โ ํจ์ํ ์ปดํฌ๋ํธ์ ํด๋์ค ์ปดํฌ๋ํธ โ ์ฐจ์ด์ ์ ํด๋์คํ ์ปดํฌ๋ํธ์ ๊ฒฝ์ฐ ์ดํ ๋ฐฐ์ธ state ๊ธฐ๋ฅ ๋ฐ ๋ผ์ดํ์ฌ์ดํด ๊ธฐ๋ฅ์ ์ฌ์ฉํ ์ ์๋ค๋ ๊ฒ๊ณผ ์์ ๋ฉ์๋๋ฅผ ์ ์ํ ์ ์๋ค๋ ๊ฒ ํด๋์คํ ์ปดํฌ๋ํธ์์๋ render ํจ์๊ฐ ๊ผญ ์์ด์ผ ํ๊ณ ๊ทธ ์์์ ๋ณด์ฌ์ค JSX ๋ฅผ ๋ฐํํด์ผํจ โ ํ์ง๋ง ํจ์ํ ์ปดํฌ๋ํธ์ ๋จ์ ์ Hooks๋ผ๋ ๊ธฐ๋ฅ์ด ๋์
๋๋ฉด์ ํด๊ฒฐ๋์์ ์ด์ ํจ์ํ ์ปดํฌ๋ํธ์ Hooks๋ฅผ ์ฌ์ฉํ๋๋ก ๊ถ์ฅํจ โ ์ฒซ ์ปดํฌ๋ํธ ์์ฑ โ src์ MyComponent๋ผ๋ js ํ์ผ ๋ง๋ค์ด ์ฃผ๊ณ import React from 'r..
Develop/React.js
์ด ๊ธ์ [๋ฆฌ์กํธ๋ฅผ ๋ค๋ฃจ๋ ๊ธฐ์ ](์ ์ ๊น๋ฏผ์ค, ์ถํ์ฌ ๊ธธ๋ฒ) ๊ต์ฌ๋ฅผ ๋ณด๊ณ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์. ์กฐ๊ฑด๋ถ ์ฐ์ฐ์(src/App.js) function App() { const name = '๋ฆฌ์กํธ'; return ( {name === '๋ฆฌ์กํธ'?( ๋ฆฌ์กํธ ์
๋๋ค. ):( ๋ฆฌ์กํธ๊ฐ ์๋๋๋ค. )} ); } export default App; AND ์ฐ์ฐ์(&&) ์ด์ฉ import React from 'react'; function App() { const name = '๋ฆฌ์กํธ'; return ( {name === '๋ฆฌ์กํธ'&&๋ฆฌ์กํธ ์
๋๋ค} ); } export default App; //name์ ๋ญ์ฐ๋์ง์ ๋ฐ๋ผ์ h1 ๋ด์ฉ์ด ๋์ค๊ณ ๋ง๊ณ ๊ฐ ๊ฒฐ์ ๋จ undefined๋ฅผ ๋ ๋๋งํ์ง ์๊ธฐ import Reac..
Develop/Django
Django์์ Model ์ ์ ์ํ๋ฉด ORM์ ํตํด ๋ฐ์ดํฐ ๋ฒ ์ด์ค์ ์ํตํ ์ ์๋ API๋ฅผ ์ ๊ณตํจ. API๋? ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ฅผ ์กฐ์ํ ๋ ์ฌ์ฉํ๋ ๋ชจ๋ ๋ช
๋ น์ด๋ค ex) .objects.all() #์ ๋ชจ๋ ๋ฐ์ดํฐ Queryset ๊ฐ์ ธ์ค๊ธฐ .objects.get() Queryset ์ด๋? Django Model ์ ๋ฐ์ดํฐ๊ฐ ๋ด๊ฒจ์๋ ๋ชฉ๋ก (ํ์ด์ฌ์ ๋ฆฌ์คํธ์ ๋น์ทํ ํํ) ๋ฐ์ดํฐ ๋ฒ ์ด์ค๋ก๋ถํฐ ๊ฐ์ ธ์จ ์ฌ๋ฌ๊ฐ์ model ๋ฐ์ดํฐ Queryset์ ๋ฐํํ๋ API ํ๋์ ๋ฐ์ดํฐ ๊ฐ์ฒด๋ฅผ ๋ฐํํ๋ API ๊ทธ ์ธ API... ํ๋ ์กฐ๊ฑด ์ต์
(Field Lookups) Queryset ์ฐ์ฐ์ ํ ๋ ์ฌ์ฉํ ์ ์๋ ์ฌ๋ฌ ํ๋ ์กฐ๊ฑด ์ต์
ํ๋๋ช
๋ค์ __์ ์ฐ๊ณ ์ฌ์ฉํ ์ต์
์ธ์๋ฅผ ์ ์ด์ฃผ์. (์๋ ๋ฌธ์ ์ฐธ๊ณ ) htt..
Develop/Django
render์ redirect๋ Django์์ ์ ๊ณตํ๋ shortcuts ํจ์์. render(request, template_name, context=None, content_type=None, status=None, using=None) ๋ถ๋ฌ์ฌ ํ
ํ๋ฆฟ์ ์จ์ฃผ๊ธฐ -> ํ๋ฉด์ html ๋์ฐ๊ธฐ ํ
ํ๋ฆฟ๊ณผ context๋ฅผ ๊ฒฐํฉํ๊ณ HttpResponse ๊ฐ์ฒด๋ฅผ ๋ฐํ context๋ ๋์
๋๋ฆฌํ์ผ๋ก! (key : ํ
ํ๋ฆฟ์์ ์ฌ์ฉํ๋ ๋ณ์, value : ๋ณ์) redirect(to, args, permanent=False, kwargs) ex) redirect('/blog/detail/1/') ์ด๋ url๋ก ์ด๋ํ ์ง urls.py์ ์ ์๋ url pattern์ name์ ๋ง์ด ์ด๋ค. ์๋๊ฒฝ๋ก ์ ๋๊ฒฝ๋ก ๋ ๋ค ..
Develop/Django
์ด ๊ธ์ [ํ์ด์ฌ ์น ํ๋ก๊ทธ๋๋ฐ](์ ์ ๊น์ํ, ์ถํ์ฌ ํ๋น๋ฏธ๋์ด) ๊ต์ฌ๋ฅผ ๋ณด๊ณ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์. 3.7 ์ ํ๋ฆฌ์ผ์ด์
๊ฐ๋ฐํ๊ธฐ - View ๋ฐ Template ์ฝ๋ฉ ๋ง๋ค๊ธฐ๋ก ํ๋ polls๋ผ๋ ์ ํ๋ฆฌ์ผ์ด์
์๋ 3๊ฐ ํ์ด์ง๊ฐ ํ์ํ๋ค.3๊ฐ์ ํ์ด์ง๊ฐ ํ์ํ๋ฏ๋ก 3๊ฐ์ ํ
ํ๋ฆฟ ํ์ผ์ด ํ์ํ๊ณ URL๊ณผ ๋ทฐ๋ 4๊ฐ์ฉ ํ์ํ๋ค๊ณ ํ๋จํ๊ณ ์ค๊ณํ๋ค. ->URL๊ณผ ๋ทฐ๋ 1:1๋ก ๋งคํ(URLconf ๋ผ๊ณ ํจ. urls.py์ ์์ฑ) ์ฝ๋ฉ ์์ URLconf ์ฝ๋ฉ ๋ทฐ/ํ
ํ๋ฆฟ ์ฝ๋ฉ 3.7.1 URLconf ์ฝ๋ฉ Admin ์ฌ์ดํธ๊ฐ์งํด์ URL๊ณผ ๋ทฐ๊ฐ 5๊ฐ ํ์ path() ํจ์ route : URL ํจํด ํํ ๋ฌธ์์ด(URL ์คํธ๋ง) ํ์ view : URL ์คํธ๋ง์ด ๋งค์นญ๋๋ฉด ํธ์ถ๋๋ ๋ทฐํจ์ ํ์ kwargs : ์ถ๊ฐ..
Develop/Django
์ด ๊ธ์ [ํ์ด์ฌ ์น ํ๋ก๊ทธ๋๋ฐ](์ ์ ๊น์ํ, ์ถํ์ฌ ํ๋น๋ฏธ๋์ด) ๊ต์ฌ๋ฅผ ๋ณด๊ณ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์. 3.1 ์ผ๋ฐ์ ์ธ ํน์ง ์ฅ๊ณ : ํ์ฌ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ ํ์ด์ฌ ์น ํ๋ ์ ์ํฌ 1. MVC(Model-View-Controller) ํจํด ๊ธฐ๋ฐ MVT(Model-View-Template) View : Template Controller : View Model : ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ก์ธ์คํ๋ ์ปดํฌ๋ํธ View : ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ณ ๋ณํํ๋ ์ปดํฌ๋ํธ Template : ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉ์์๊ฒ ๋ณด์ฌ์ฃผ๋ ์ปดํฌ๋ํธ 2. ๊ฐ์ฒด ๊ด๊ณ ๋งคํ ๋ฐ์ดํฐ ๋ฒ ์ด์ค ์์คํ
& ๋ฐ์ดํฐ ๋ชจ๋ธ ํด๋์ค๋ฅผ ์ฐ๊ฒฐ์ํค๋ ๋ค๋ฆฌ์ ๊ฐ์ ์ญํ 3. ์๋์ผ๋ก ๊ตฌ์ฑ๋๋ ๊ด๋ฆฌ์ ํ๋ฉด 4. ์ฐ์ํ URL ์ค๊ณ 5. ์์ฒด ํ
ํ๋ฆฟ ์์คํ
6. ์บ์ ์์คํ
7. ..
Develop/Django
์ด ๊ธ์ [ํ์ด์ฌ ์น ํ๋ก๊ทธ๋๋ฐ](์ ์ ๊น์ํ, ์ถํ์ฌ ํ๋น๋ฏธ๋์ด) ๊ต์ฌ๋ฅผ ๋ณด๊ณ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๊ธ์. ์น ํ๋ก๊ทธ๋จ์ ํด๋ผ์ด์ธํธ + ์๋ฒ ๋ก ๊ตฌ์ฑ๋จ. 1.1 ์น ํ๋ก๊ทธ๋๋ฐ์ด๋? ์น ํ๋ก๊ทธ๋๋ฐ : HTTP(S) ํ๋กํ ์ฝ๋ก ํต์ ํ๋, ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ฅผ ๊ฐ๋ฐํ๋ ๊ฒ ์น ํด๋ผ์ด์ธํธ์ ์๋ฒ๋ฅผ ๊ฐ์ด ๊ฐ๋ฐํ ์๋ ์๊ณ ๋ ์ค ํ๋๋ง ๊ฐ๋ฐํ ์๋ ์๋ค. ์ฅ๊ณ ๋ ์๋ฒ๋ฅผ ๊ฐ๋ฐํ ๋ ์ฐ๋ ์น ํ๋ ์์ํฌ! ex) ๋ค์ด๋ฒ์ ์ ์ํ ๋ ์น ๋ธ๋ผ์ฐ์ = ์น ํด๋ผ์ด์ธํธ ๋ค์ด๋ฒ ์๋ฒ = ์น ์๋ฒ ์ฆ, ์น ํด๋ผ์ด์ธํธ = ์์ฒญ ์น ์๋ฒ = ์๋ต -> ๋์! ์น ํด๋ผ์ด์ธํธ๋ ๋ค์ํ๊ฒ ๋ง๋ค ์์๋ค(์๋ 4๊ฐ์ง). ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ์ฌ์ฉ ๋ฆฌ๋
์ค curl ๋ช
๋ น ์ฌ์ฉํด ์์ฒญ Telnet์ ์ฌ์ฉํ์ฌ ์์ฒญ ์ง์ ๋ง๋ ํด๋ผ์ด์ธํธ๋ก ์์ฒญ 1.2 ๋ค์ํ ์น ํด..