์คํ๋ฅดํ ์ฝ๋ฉํด๋ฝ์์ ์งํํ๋ ๋ฌด๋ฃ ๊ฐ์์ธ "1์๊ฐ๋ง์ ๋๋ด๋ ์ง์ฅ์ธ ์ฝ๋ฉ์ฉ์ด ํด์ค"๋ฅผ ๋ฃ๊ณ ๋ด์ฉ์ ์ ๋ฆฌํ์ต๋๋ค.
๋ค์ ์์ ์ ์ด๋ค ๊ฒ์ ๋ค์ด์ผํ ์ง ์ ๋ฆฌํ๋ ์ค์ ์คํ๋ฅดํ ์ฝ๋ฉํด๋ฝ์ ์ ์ํ๊ฒ ๋์๊ณ , ๋ฌด๋ฃ ์์ ์ด๋ผ์ ๊ฐ๋จํ๊ฒ ํ์๊ฐ์ ์ ํ๊ณ ๊ฐ์๋ฅผ ๋ค์์ต๋๋ค. ์ด 1์๊ฐ ๊ฐ๋์ ๊ฐ์์ด๊ณ , ์ ๋ ๋ด์ฉ์ ์ ๋ฆฌํ๋ฉด์ ๋ค์ด์ ์๊ฐ์ ์ข ๋ ๊ฑธ๋ ธ์ต๋๋ค.
๋น์ ๊ณต์์ธ ์ ๊ฐ ๋๋ต์ ์ธ ์ฉ์ด์ ๋ํด ์ ์ ์์ด์ ์ ๋ง ์ข์๊ณ , ๋ฌด์๋ณด๋ค ์ง๋ฃจํ์ง ์๊ณ ๋นจ๋ฆฌ๋นจ๋ฆฌ ์งํ๋์ ์ข์์ต๋๋ค.
์์ดํฐ ํ์ฌ์ ์ฌ์งํ๊ณ ์๊ฑฐ๋, ๊ฐ๋ฐ์์ ์ํต์ด ๋ง์ผ์ ๋ถ๋ค๋ ๋ค์ผ๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
๊ท์ฌ์ด ๊ทธ๋ฆผ๊ณผ ํจ๊ปํด์ ์ข์์ด์! ใ ใ
์ด 8๊ฐ์ ๊ฐ์์ด๊ณ , ๋ถ๋ด์๋ ์๊ฐ์ด๋ผ์ ์ถํด๊ทผํ ๋ ๋ค์ผ๋ฉด ์ข์ ๊ฒ ๊ฐ์ต๋๋ค.
์ปดํจํฐ์ ์ธํฐ๋ท
์ปดํจํฐ๋ ๊ธฐ๋ณธ์ ์ผ๋ก ๊ธฐ๊ณ๋ฅผ ๋ชจ์๋ ๊ฒ.
ํ๋๋์คํฌ: ์ ์ด๋๊ธฐ
RAM: ๊ธฐ์ตํ๊ธฐ
CPU: ๊ณ์ฐํ๊ธฐ
๋ฉ์ธ๋ณด๋: ๊ฝ์๋๊ธฐ
์ฐ๋ฆฌ๋ ์ด์์ฒด์ ๋ฅผ ํตํด์ ์ปดํจํฐ๋ฅผ ์กฐ์ํ๋ค.
์ด์์ฒด์ OS: ์ธ๊ฐ์ด ๊ธฐ๊ณ(ํด๋ํฐ, ์ปดํจํฐ, tv)์ ์ํตํ ์ ์๊ฒ ๋ง๋๋ ๊ธฐ๋ฐ ํ๋ก๊ทธ๋จ
ex) android, ios, window, linux(์๋ ์คํ์์ค)
์ฝ๋ฉ์ด๋: OS์ ๋ช ๋ น์ ๋ด๋ฆฌ๋ ํ์
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด: ์ด๋ค ๋ง๋ก ์ฝ๋ฉํ ์ง ex) python, java, ruby, javascript, c++, php, scala, c#, node
ํ๋ก๊ทธ๋จ = ์ธ์ด๋ฅผ ํตํด ๋ฏธ๋ฆฌ ์ง๋ฌ์ ๋งค๋ฒ ๋๊ฐ์ด ์์ง์ด๋ ๊ฒ.์ฆ, ์ฝ๋ฉ์ ๋ ํ๋ก๊ทธ๋จ์ ๋ง๋๋ ๊ฒ.
์ปดํจํฐ๋ผ๋ฆฌ ๋ํ๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ค=> ์ธํฐ๋ท์ ํตํด์
๋ํ๋ฅผ ์ฃผ๊ณ ๋ฐ์ ๋๋ ๊ท์น์ด ํ์ํ๋ค! ๊ทธ ๊ท์น ์ค ํ๋๊ฐ ์น = http
์๊ตฌํธ ํ๋ฅผ ์๋ก ๊ฐ์ ธ์ ๊ฐ์ด๋ฐ์ ๋ชป ๋ฃ๊ฒ ํ๋ ๊ฒ = https (๋ณด์์ ๊ฐํํจ)
“์ ๋ฃ๊ณ ์๋ค๊ฐ ๋๊ฐ http ์์ฒญํ๋ฉด ์ด ํ์ผ์ ๋๋ ค์ค”๋ผ๊ณ ๋ช ๋ น์ ํ๋ค๋ฉด ‘์น ์๋ฒ’๋ฅผ ๋ง๋ค์๋ค๊ณ ํ๋ ๊ฒ์ด๋ค.
์๋ฒ๋? ์น์๋น์ค ๋์ ๋ฐฉ์
์๋ฒ๋ผ๋ ๊ฒ์ ์ฐ๋ฆฌ๊ฐ ์ฐ๋ ํ๋ก๊ทธ๋จ ์ค์ ํ๋๋ค.
๋ธ๋ผ์ฐ์ ์ ์ญํ : ์์ฒญ์ ๋ณด๋ด๊ณ , ์ฃผ๋ ๊ฑฐ ๋ฐ์์ ๋ณด์ฌ์ฃผ๊ธฐ.
HTML: ์ด ์์น์ ๋ฉ๋ด๋ฐ ๊ทธ๋ ค์ค, ๋ผ๋
CSS: ์์๊ฒ
Javascript: 1์ด๋ง๋ค ์ด๋ฏธ์ง ๋๊ธฐ๊ณ .., ์์ง์ผ ์ ์์.
๋ฐ์ดํฐ๋ฅผ ๋ด๋ ค์ค ๋ (ํต์ )์ ๊ท์น: {JSON} (ํค : ๋ฒจ๋ฅ ๋ผ๊ณ ํ๋ค. ) => ์ฑ์์ ๋ง์ด ์ด๋ค.
๊ป๋ฐ๊ธฐ๋ ๋ค ๊ฐ์ง๊ณ ์๋ค๊ฐ ๋ฐ์ดํฐ๋ฅผ ๋ฐ์์ ๋ถ์ฌ์ฃผ๋ ๊ฒ.
ex) ๋ฐฐ๋ฌ ์ดํ ์คํ์, ๊ฐ๋จ๊ตฌ ์ผ์ ๋ฐ์ดํฐ ์ค! -> ์, ์ฌ๊ธฐ ๋ฐ์.
ex) ์นดํก ์ ๋ฐ์ดํธ ์ํด์ ์นดํก์ฐฝ์ ๋ ์์ค๋ ์ฌ๋์ด ์๋๊ฑฐ๋ค.
but! ์น์์๋ ์ ๋ฐ์ดํธ๋ฅผ ์ํด์ ์ฟ ํก ํฌ๋ฆฌ์ค๋ง์ค ์ด๋ฒคํธ๊ฐ ์๋ณด์ด๋ ๊ฑฐ? ๋ง๋ ์๋๋ค!
์๋๋ฉด ์๋ฒ์์ ๊ป๋ฐ๊ธฐ๊น์ง ๋ค ๋ฐ์์ค๊ธฐ ๋๋ฌธ์ด๋ค.
์๋ฒ๋ผ๋ฆฌ๋ ์ด๋ป๊ฒ, ๋ฌด์จ ๊ท์น์ผ๋ก ํต์ ํ๋๊ฑธ๊น?
์ํ์ ์๋ฒ๋ผ๊ณ ํ๋ฉด (์ํ์๋ ์๋ง์ ๋ฐ์ดํฐ๊ฐ ์์ผ๋๊น) ๊ณ ๊ฐ์ ํด๋ผ์ด์ธํธ๋ค.
๊ณ ๊ฐ์ ์ํ๋ ‘๋ณธ์ธ์ ์๊ณ ’๋ฅผ ์ป์ผ๋ ค๋ฉด ๋ฏธ๋ฆฌ ์ฝ์ํด๋ ๊ณณ์ (์๋ง์ ์ฐฝ๊ตฌ) ์ฝ์ํด๋ ๋ฐ์ดํฐ๋ฅผ (์ ๋ถ์ฆ)๋ค๊ณ ๊ฐ์ผ ์๊ณ ๋ฅผ (์๋ต) ์ ์ ์๋ค.
ex) ๋ฐฐ๋ฌ์ ๋ฏผ์กฑ์์๋
์์ด๋ ๊ฐ๊ณ ์์ => ์ฃผ๋ฌธ๋ด์ญ ์๋ ค์ค๊ฒ์.
์ฃผ์ ๊ฐ๊ณ ์์ => ์์์ ์ ์๋ ค์ค๊ฒ์.
์ฃผ๋ฌธ๋ฒํธ ๊ฐ๊ณ ์์ => ๋ฐฐ๋ฌํํฉ ์๋ ค์ค๊ฒ์.
์ด ๊ฐ๊ฐ์ API๋ผ๊ณ ํ๋ค. API๋ ์๋ฒ์์ ๋ฏธ๋ฆฌ ๋ง๋ค์ด๋ ๊ธฐ๋ฅ์ด์, ํด๋ผ์ด์ธํธ ๊ฐ๋ฐ์์ ๋ฏธ๋ฆฌ ํ ์ฝ์์ด๋ค.
ex) ์์์ ๋ฆฌ์คํธ๋ฅผ ๋ถ๋ฅด์ค ๋๋ B๋ก ์์ฒญ ์ฃผ์๊ณ ์. ์ฃผ์๋ฅผ ๊ผญ ๊ฐ์ ธ์์ฃผ์ธ์. ๊ทธ๋ผ ์ ๊ฐ ์ ๋ณด๋ฅผ ๋๋ฆด๊ฒ์.
API๋ ์ด๋ป๊ฒ ์๊ฒผ๋์? ํํ ๋ณด๋ url์ฒ๋ผ ์๊ฒผ๋ค.
http:// ์ฐ๋ฆฌ์ํ ์ฉ์ฐ์ง์ / ์ ์ถ๊ธ์ฐฝ๊ตฌ ? ์ ๋ถ์ฆ = ์ฃผ๋ฏผ๋ฑ๋ก๋ฒํธ
์๋ฒ ์์น API ์ฃผ์ ๊ฐ์ ธ๊ฐ๊ธฐ๋ก ํ ๋ฐ์ดํฐ
“๋ ์ด๊ฑฐ ์ ๊ท ํผ์ณ๋ผ API ํ๋๋ง ๋ฐ์ฃผ์ธ์.” => ์๋ก์ด ๊ธฐ๋ฅ ์ฐฝ๊ตฌ๋ฅผ ํ๋ ๋ง๋ค์ด์ฃผ์ธ์. ๊ทธ ์ชฝ์ผ๋ก ์์ฒญํ ๊ฒ์.
“API ๊ฐ๋ฐ์ ๋๋ฌ๊ณ , ํด๋ผ์ด์ธํธ๋ ์์ง์ด์์.” => ์ฐฝ๊ตฌ๋ ๋ค ๋ง๋ค์๋๋ฐ, ์์ฒญํ๋ ์ชฝ์ด ์์ง ์์ ์ค์ด์์.
OPEN API = ๋๊ตฌ๋ ์์ฒญํ ์ ์๊ฒ ์ด์ด๋ API. ex) ๊ณต๊ณต๋ฐ์ดํฐ
(์ ๋ฆฌ)
์์ฒญํ๋ฉด ๊ทธ๊ฒ ๋ค ํด๋ผ์ด์ธํธ ex) ๋ธ๋ผ์ฐ์ , ํด๋ํฐ, IOT๊ฐ์ ๋ฑ๋ฑ
์๋ฒ๋ ์์ฒญ์ ๋ฐ๊ณ , ๋ฐ์ดํฐ๋ฅผ ์ฃผ๋ ์ชฝ์ด๋ค. ๊ทผ๋ฐ ์์ฒญ์ ๋ฐ์๋ ์ถ์ ๋ฌธ์ด ์๋ค. ๊ทธ๊ฒ ๋ฐ๋ก API.
๊ทธ ์์ฒญ์ ์ ๋ฐ๊ธฐ ์ํด์ ๋๊ธฐํ๊ณ ์๋๊ฒ ์น์๋ฒ์ ์ญํ ์ด๋ค.
๊ฐ๋ฐ ์ธ์ด, ํ๋ ์์ํฌ
ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ก ์๋ฒ๋ฅผ ์ฒ์๋ถํฐ ๋ค ๋ง๋ ๋ค๋ ๊ฒ์ ์์ฃผ ์ด๋ ค์ด ์ผ์ด๋ค.
๊ทธ๋์ ์กด์ฌํ๋ ๊ฒ์ด ํ๋ ์์ํฌ! (๋ฏธ๋ฆฌ ๋ง๋ค์ด๋์ ๋ธ๋ก ์ธํธ์ด๋ค. )
Java๋ก ๋ง๋ ํ๋ ์์ํฌ = ์ ์ผ ์ ๋ช ํ๊ฒ Spring
Node.js๋ก ๋ง๋ ํ๋ ์์ํฌ = ์ ์ผ ์ ๋ช ํ๊ฒ Express
Python์ผ๋ก ๋ง๋ ํ๋ ์์ํฌ = ์ ์ผ ์ ๋ช ํ๊ฒ Djanggo, Flask
์ด ํ๋ ์์ํฌ๋ฅผ ์ ์ฐ๋ ๊ฒ๋ ์์ฃผ ์ค์ํ๋ค!
[์น ํ๋ก ํธ์๋]: HTML, CSS, JAVASCRIPT ์ด๊ฒ๋ง ๊ฐ์ง๊ณ ๋ง๋ค๋ฉด ํ๋ ์์ํฌ ์์ด ๋ง๋๋ ๊ฒ. (์ด๊ฑด ๋ณ๋ก ์ ์ด๋ ค์.) ์์ฆ์๋ HTML, CSS, JAVASCRIPT๋ฅผ ๋ ์ ์ฐ๊ธฐ ์ํด์ ํ๋ ์์ํฌ๋ฅผ ์ด๋ค. ๋ฆฌ์กํธ(React.js) ๋ทฐ(Vue.js) ์จ๊ทค๋ฌ(Angular), ๊ทธ ์ค ๋ฆฌ์กํธ๊ฐ ๋์ธ.
์ด๊ฑธ ์ฐ๋ฉด ์ฉ๋์ ์ ๊ฒ ํด์ ๋ณด๋ผ ์ ์๋ค๋ ์ง, ํ์ด์ง ๊น๋นก๊ฑฐ๋ฆผ์ด ์ค์ด๋ค๊ฒ ํ ์ ์๋ค.
[์๋ฒ]: ๋๋ถ๋ถ์ ์ธ์ด๋ก ์๋ฒ๋ฅผ ๋ง๋ค ์ ์๋ค. (HTML, CSS, JAVASCRIPT ์ ์ธํ๊ณ )
JAVA: ์ด๋ ต๋ค. ํ์์ด ๋ง์. ํฐ ํ์ฌ์์ ๋ง์ด ์. (์ฟ ํก, ๋ฐฐ๋ฏผ)
PYTHON: ์ฝ๊ฒ ์ ๋ฌธ, ์์ ๋ก์, ๋ฐ์ดํฐ ๋ถ์์๋ ์.
NODE: JAVASCRIPT์ ๊ฑฐ์ ๊ฐ์. ์คํํธ์ ์์ ๋ง์ด ์. (๋ฐฑ/ํ๋ก ํธ์ธ์ด๊ฐ ๊ฐ์ผ๋ฉด ํธํ๋๊น)
C์ธ์ด (C++): ์๋ฒ ๋๋ ์นฉ, IOT์์. C๋ก ์๋ฒ ๋ง๋๋ ๊ณณ์ ๊ฑฐ์ ์์ (๊ฐ๋ ๊ฒ์ํ์ฌ?)
GO: ์ต๊ทผ ์ธ๊ธฐ ์์. ์ฌ์ด๋ฐ ์ ๋นํ ํ์์ด ์์.
TYPESCRIPT: (ํ๋ก ํธ/๋ฐฑ) JAVASCRIPT์ ํ์ ์ ๋ฃ์.
[์ฑ]
KOTLIN: ์๋๋ก์ด๋ ์ฑ์ ๋ง๋ค๋
SWIFT: ์์ดํฐ ์ฑ์ ๋ง๋ค๋
FLUTTER or REACT NATIVE ๋ผ๋ ํ๋ ์์ํฌ: ํ๋ฒ์ ๊ฐ๋ฐํ ๋
์ํคํ ์ณ & DB
์ํคํ ์ณ๋?
๋ณดํต ์ํคํ ์ณ๋ ๊ฑด์ถํ์ ์๋ฏธํ๋ค.
์ปดํจํฐ ์ํคํ ์ณ(Computer architecture)์ ๊ฒฝ์ฐ "์ปดํจํฐ ๊ตฌ์กฐ(computer architecture)๋ ์ปดํจํฐ ๊ณตํ์์ ๊ฐ๋ ์ ์ค๊ณ์, ์ปดํจํฐ ์์คํ ์ ๊ทผ๊ฐ์ด ๋๋ ์ด์ ๊ตฌ์กฐ์ด๋ค.
์ปดํจํฐ์ ์ฌ๋ฌ ๋ถ๋ถ์ ๋ํด ์ค๊ณ์ ์ผ๋ก ์ด์๋๋ ๊ฒ๋ค๊ณผ ์๊ตฌ ์ฌํญ๋ค(ํนํ ์๋์ ์ํธ ์ฐ๊ฒฐ)์ด ๋ฌด์์ธ์ง ๊ธฐ๋ฅ์ ์ผ๋ก ์ค๋ช ๋์ด ์๋ ์ฒญ์ฌ์ง์ด๋ค. ์ฃผ๋ก ์ค์ ์ฒ๋ฆฌ ์ฅ์น (CPU)๊ฐ ๋ฉ๋ชจ๋ฆฌ ์ฃผ์์ ๋ด๋ถ์ ์ผ๋ก ์ํํ๊ณ ์ ๊ทผํ๋ ๋ฐฉ๋ฒ์ด ์ง์ค์ ์ผ๋ก ์ค๋ช ๋๋ค.
ํฐ ํ์ฌ๋ ํด๋ผ์ฐ๋ ์๋น์ค๋ฅผ ์ด์ฉํด์ ์๊ฐ์ ๋ก ๋์ ๋ด๊ฑฐ๋ ํธ๋ํฝ ๋จ์๋ก ๋์ ๋ด๊ฑฐ๋ ํ๋ค.
์์๋ ์ด๋ฐ ํด๋ผ์ฐ๋ ํ๊ฒฝ์์ ์ ๊ณต๋๋ ์๋น์ค๋ฅผ ์ด๋ป๊ฒ ์ฎ์ ๊ฒ์ธ๊ฐ๋ ์ค์ํด์ก๋ค. => ์ด๊ฒ๋ ๊ฐ๋ฐ์์ ์์ง ์ค ํ๋. ๊ทธ๋ฆฌ๊ณ ํ์ ์์ฐ์ฑ์ ๊ฒฐ์ ์ง๋ ์ค๋ ฅ์ด๋ค.
DB(๋ฐ์ดํฐ๋ฒ ์ด์ค): ๋ฐ์ดํฐ๋ฅผ ์ ์ฐพ๊ฒ ํด์ฃผ๋ ํ๋ก๊ทธ๋จ.
์ ๋ฆฌ๋ ํญ๋ชฉ์ ‘์ธ๋ฑ์ค’๋ผ๊ณ ํ๊ณ , ์ธ๋ฑ์ค๋ฅผ ํ์ผ ๋น ๋ฅด๊ฒ ๊ฐ์ ธ์จ๋ค๊ณ ํ๋ค.
DB(๋ฐ์ดํฐ๋ฒ ์ด์ค)๋ ๋ ๊ฐ์ง ์ข ๋ฅ๊ฐ ์๋ค.
์ ํํ๋ SQL ex) oracle, postgreSQL, mySQL, SQL server, SQLite
๋น์ ํํ๋ Not-only SQL ex) redis, mongo, hbase, cassandra
๋ฐ์ด๋ฒ๋ถ์ ํ๊ธฐ ์ํด SQL์ ๋ฐฐ์ด๋ค = SQL DB์์ ๋ฐ์ดํฐ๋ฅผ ๋นผ๋ด๋ ๋ฐฉ๋ฒ์ ๋ฐฐ์ด๋ค.
ํ์ (git)
๋ถ๋ถ์ ๋๋ ์ ์์ ํ๊ณ , ํฉ์น๋ ๋ฐฉ๋ฒ => git ์ด๋ผ๋ ํ๋ก๊ทธ๋จ
git ์ด๋ผ๋ ํ๋ก๊ทธ๋จ์ ์์ ํ๋ ๊ฐ๋ฐ์์ ์ปดํจํฐ๋ง๋ค ํ๋์ฉ ์ค์นํ๊ณ , ์ฝ๋๋ฅผ ๋ชจ์์ ๊ด๋ฆฌํ ์ปดํจํฐ๋ ํ๋ ์ค์นํด์ค๋ค. ๊ทธ๊ฑธ ๋น๋ ค์ฃผ๋ ํ์ฌ๊ฐ GitHub! GitHub์๋ค๊ฐ ์ฝ๋๋ฅผ ๋ณด๊ดํด์ ํ๋๋ก ํฉ์น๋ค.
- ์ ๋ก๋ํ๊ณ ์ถ์ save point ์ธ์ด๋ธ ํฌ์ธํธ = commit ์ปค๋ฐ
- upload ์ ๋ก๋ = push
- download ๋ค์ด๋ก๋ = pull (์๋/์๋ ์ถฉ๋ ํด๊ฒฐ)
- ๋ด๊ฐ ๋ฐ๋ก ๋ง๋ค์ด๋ณผ๊ฒ = ๋ธ๋์น ๋ฐ๊ธฐ
- ๋ธ๋์นํ๊ฑฐ ์๋๋ฉด = ๋จธ์งํ๊ธฐ (ํฉ์น๊ธฐ)
์์ฃผ!
์์ผ๋ก๋ ์ฝ๋ฉ ์ค์ต๋ ํ๋ฉด์ ์ปดํจํฐ ๊ณผํ์ ๋ํด ๊ณต๋ถํด๋๊ฐ ๊ฒ์ด๋ค!