Content |
1. HTTP์ HTTPS |
HTTP(HyperText Transfer Protocol) |
HTTPS(HyperText Transfer Protocol over Secure Socket Layer) |
[๊ฐ๋ ] ์น์์์ ํด๋ผ์ด์ธํธ-์๋ฒ๊ฐ ์์ฒญ(request)-์๋ต(response) ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์ ์ ์๋ ์นํต์ ํ๋กํ ์ฝ [ํน์ง] ์ฃผ๋ก HTML๋ฌธ์๋ฅผ ์ฃผ๊ณ ๋ฐ๋๋ฐ ์ฌ์ฉ. TCP/UCP๋ฅผ ์ด์ฉํ๋ฉฐ 80๋ฒ ํฌํธ๋ฅผ ์ฌ์ฉ. ๋น์ฐ๊ฒฐ(Connectionless) : ์์ฒญ-์๋ต ํ ๋ฐ๋ก ์ฐ๊ฒฐ์ด ๋๊ธด๋ค. ๋ฌด์ํ(Stateless) : ์ฐ๊ฒฐ์ ๋๋์๊ฐ ํด๋ผ์ด์ธํธ-์๋ฒ์ ํต์ ์ ๋๋๋ฉฐ ์ํ์ ๋ณด๋ฅผ ์ ์งํ์ง ์๋๋ค. [์ฌ์ฉ์ฌ๋ก] ๋ณด์์ด ํ์์๋ ํ์ด์ง |
[๊ฐ๋ ] HTTP์ ๋ณด์์ด ๊ฐํ๋ ๋ฒ์ ์ ์นํต์ ํ๋กํ ์ฝ [ํน์ง] TCP/IP๋ฅผ ์ด์ฉํ๋ฉฐ 443๋ฒ ํฌํธ๋ฅผ ์ฌ์ฉ. SSL์ด๋ TLSํ๋กํ ์ฝ์ ํตํด ์ธ์ ๋ฐ์ดํฐ๋ฅผ ์ํธํ ํ๋ค. SSL,TLS์ ๋ชฉํ? ๊ธฐ๋ฐ์ฑ, ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ, ID ๋ฐ ๋์งํธ ์ธ์ฆ์๋ฅผ ์ฌ์ฉํ ์ธ์ฆ ์ ๊ณต ๋ณดํธ์ ์์ค์ ๊ฒฐ์ ํ๋ ์์? ์น๋ธ๋ผ์ฐ์ ์์์ ๊ตฌํ์ ํ๋, ์๋ฒSW, ์ํธํ ์๊ณ ๋ฆฌ์ฆ [์๋ฆฌ] ๊ณต๊ฐํค ์๊ณ ๋ฆฌ์ฆ ๋ฐฉ์(๊ณต๊ฐํค,๊ฐ์ธํค๋ฅผ ์ด์ฉํ ์ํธํ ๋ฐฉ๋ฒ) [์ฅ์ ] ๋คํธ์ํฌ ์์์ ์ด๋,์์ ์ด ๋ถ๊ฐ๋ฅํ๋ฏ๋ก ์์ ํ๋ค [๋จ์ ] HTTP์ ๋นํด ๋๋ฆฌ๋ค. ์ค์น ๋ฐ ์ธ์ฆ์๋ฅผ ์ ์งํ๋๋ฐ ๋น์ฉ์ด ๋ฐ์ํ๋ค. ์ํธํํ๋ ๊ณผ์ ์ด ์น์๋ฒ์ ๋ถํ๋ฅผ ์ค๋ค. ์ธํฐ๋ท์ฐ๊ฒฐ์ด ๋๊ธด๊ฒฝ์ฐ ์ฌ์ธ์ฆ ์๊ฐ์ด ์์๋๋ค. [์ฌ์ฉ์ฌ๋ก] ๊ธ์ต์ ๋ณด๋ ๋ฉ์ผ ๋ฑ ์ค์ํ ์ ๋ณด๋ฅผ ์ฃผ๊ณ ๋ฐ์๋ |
2. HTTP ์์ฒญ/์๋ต ํค๋ |
HTTP ์์ฒญ(request) ํค๋(์ด๋ฏธ์ง ํด๋ฆญ์ ์๋ณธ์ฌ์ด์ฆ) | |
Request ํค๋ : User-Agent, Accept-Type์ ๊ฐ์ ํค๋๋ ์์ฒญ์ ๋ด์ฉ์ ์ข ๋ ๊ตฌ์ฒดํ ์ํค๊ณ (Accept-Language), ์ปจํ ์ค๋ฅผ ์ ๊ณตํ๊ธฐ๋ ํ๋ฉฐ(Referer), ์กฐ๊ฑด์ ๋ฐ๋ฅธ ์ ์ฝ ์ฌํญ์ ๊ฐํ๊ธฐ๋ ํ๋ฉด์(If-None) ์์ฒญ ๋ด์ฉ์ ์์ ํฉ๋๋ค. General ํค๋ : Via์ ๊ฐ์ ํค๋๋ ๋ฉ์์ง ์ ์ฒด์ ์ ์ฉ๋ฉ๋๋ค. Entity ํค๋ : Content-Length์ ๊ฐ์ ํค๋๋ ์์ฒญ ๋ณธ๋ฌธ์ ์ ์ฉ๋ฉ๋๋ค. ๋น์ฐํ ์์ฒญ ๋ด์ ๋ณธ๋ฌธ์ด ์๋ ๊ฒฝ์ฐ entity ํค๋๋ ์ ์ก๋์ง ์์ต๋๋ค. |
|
HTTP ์์ฒญ(request) ํ๋ | |
HTTP ์๋ต(response) ํค๋(์ด๋ฏธ์ง ํด๋ฆญ์ ์๋ณธ์ฌ์ด์ฆ) | |
Response ํค๋ : Vary์ Accept-Ranges์ ๊ฐ์ ํค๋๋ ์ํ ์ค์ ๋ฏธ์ฒ ๋ค์ด๊ฐ์ง ๋ชปํ๋ ์๋ฒ์ ๋ํ ์ถ๊ฐ ์ ๋ณด๋ฅผ ์ ๊ณตํฉ๋๋ค. Entity ํค๋ : Content-Length์ ๊ฐ์ ํค๋๋ ์์ฒญ ๋ณธ๋ฌธ์ ์ ์ฉ๋ฉ๋๋ค. ๋น์ฐํ ์์ฒญ ๋ด์ ๋ณธ๋ฌธ์ด ์๋ ๊ฒฝ์ฐ entity ํค๋๋ ์ ์ก๋์ง ์์ต๋๋ค. General ํค๋ : Via์ ๊ฐ์ ํค๋๋ ๋ฉ์์ง ์ ์ฒด์ ์ ์ฉ๋ฉ๋๋ค. |
|
HTTP ์๋ต(response) ํ๋ | |
3. CORS(Cross Origin Resources Sharing)์ด๋? |
[๊ฐ๋ ]
์น ๋ธ๋ผ์ฐ์ ์์ ์ธ๋ถ๋๋ฉ์ธ ์๋ฒ์ ํต์ ํ๊ธฐ ์ํ ๋ฐฉ์์ ํ์คํํ ์ ์ฑ .(์๋ฒ์์ ์ธ๋ถ ์์ฒญ์ ํ์ฉํ ๊ฒฝ์ฐ ajax์์ฒญ์ด ๊ฐ๋ฅ)
[๋ฐฐ๊ฒฝ]
- ๋์ผ ์ถ์ฒ ์ ์ฑ (Same-Origin Policy) ๋๋ฌธ์, XMLHttpRequest๋ ์ธ๋ถ ๋๋ฉ์ธ ์๋ฒ์ ํต์ ์ด ๋ถ๊ฐ๋ฅํ์.
- ์ด๋, ์น์ดํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์๋ค์ด ๋ธ๋ผ์ฐ์ ๋ฒค๋์ฌ๋ค์๊ฒ XMLHttpRequest๊ฐ ์ธ๋ถ ๋๋ฉ์ธ ์๋ฒ์ ํต์ (cross-domain)์์ฒญ์ ํ ์ ์๋๋ก ์์ฒญํ๊ณ ์ด์๋ฐ๋ผ CORS๊ฐ ์๊น.
[๊ณผ์ ]
- CORS ์์ฒญ ์์๋ ๋ฏธ๋ฆฌ OPTIONS ์ฃผ์๋ก ์๋ฒ๊ฐ CORS๋ฅผ ํ์ฉํ๋์ง ๋ฌผ์ด๋ณธ๋ค.
- ์ด๋ Access-Control-Request-Method๋ก ์ค์ ๋ก ๋ณด๋ด๊ณ ์ ํ๋ ๋ฉ์๋๋ฅผ ์๋ฆฌ๊ณ ,
- Access-Control-Request-Headers๋ก ์ค์ ๋ก ๋ณด๋ด๊ณ ์ ํ๋ ํค๋๋ค์ ์๋ฆฐ๋ค.
- Allow ํญ๋ชฉ๋ค์ Request์ ๋์๋๋ ๊ฒ์ผ๋ก, ์๋ฒ๊ฐ ํ์ฉํ๋ ๋ฉ์๋์ ํค๋๋ฅผ ์๋ตํ๋๋ฐ ์ฌ์ฉ๋๋ค.
- Request๋ Allow๊ฐ ์ผ์นํ๋ฉด CORS ์์ฒญ์ด ์ด๋ฃจ์ด์ง๋ค.
4. GET ๋ฉ์๋์ POST ๋ฉ์๋ |
HTTP ํ๋กํ ์ฝ์ ์ด์ฉํ์ฌ ์๋ฒ์ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌํ ๋ ์ฌ์ฉํ๋ ๋ฐฉ์.
GET ๋ฉ์๋ ๋ฐฉ์ |
POST ๋ฉ์๋ ๋ฐฉ์ |
[๊ฐ๋ ] ์ ๋ณด๋ฅผ ์กฐํํ๊ธฐ ์ํ ๋ฉ์๋ ์๋ฒ์์ ์ด๋ค ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์์ ๋ณด์ฌ์ฃผ๊ธฐ ์ํ ๋ฉ์๋ ๊ฐ์ ธ์ค๋ ๊ฒ(Select) [์ฌ์ฉ๋ฐฉ๋ฒ] URL์ ๋์ ?๊ฐ ๋ถ๋๋ฐ, ์์ฒญ์ ๋ณด๊ฐ(key=value)ํํ์ ์์ ์ด๋ฃจ์ด ?๋ค์ ์ด์ด๋ถ์ด ์๋ฒ๋ก ์ ์กํ๋ค. ์์ฒญ์ ๋ณด๊ฐ ์ฌ๋ฌ๊ฐ์ผ ๊ฒฝ์ฐ &๋ก ๊ตฌ๋ถํ๋ค. ์) www.urladdress.xyz?name1=value1&name2=value2 [ํน์ง] URL๋ค์ ๋ถ๊ธฐ๋๋ฌธ์ ๋์ฉ๋์ ๋ฐ์ดํฐ๋ฅผ ์ ์กํ๊ธฐ ์ด๋ ต๋ค. POST ๋ฐฉ์๋ณด๋ค ๋ณด์์ ์ทจ์ฝ.(์์ฒญ์ ๋ณด๋ฅผ ์ฝ๊ฒ ๋์ผ๋ก ํ์ธํ ์ ์๊ธฐ ๋๋ฌธ) POST๋ฐฉ์๋ณด๋ค ๋น ๋ฅด๋ค.(GET๋ฐฉ์์ ์บ์ฑ์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ) | [๊ฐ๋ ] ์๋ฒ์ ๊ฐ์ด๋ ์ํ๋ฅผ ๋ฐ๊พธ๊ธฐ ์ํ ์ฉ๋์ ๋ฉ์๋ ์ํํ๋ ๊ฒ(Insert,Update,Delete) [์ฌ์ฉ๋ฐฉ๋ฒ] ์์ฒญ์ ๋ณด๋ฅผ HTTPํจํท์ Body์์ ์จ๊ฒจ์ ์๋ฒ๋ก ์ ์ก๋จ. ์ ์กํ๋ ค๋ ๋ฐ์ดํฐํ์ ์ ์ ์ด์ฃผ์ด์ผ ํจ.(Request Header์ Content-Type์ ํด๋น) ์) ๋ํดํธ : application/octet-stream ๋จ์txt : text/plain ํ์ผ : multipart/form-date [ํน์ง] Body์์ ๋ฐ์ดํฐ๋ฅผ ์จ๊ฒจ์ ์ ์กํ๋ฏ๋ก ๋์ฉ๋ ๋ฐ์ดํฐ ์ ์ก์ ์ ํฉ. ํด๋ผ์ด์ธํธ(๋ฐ์ดํฐ ์ธ์ฝ๋ฉ)->์ ์ก->์๋ฒ(๋ฐ์ดํฐ ๋์ฝ๋ฉ) GET๋ฐฉ์๋ณด๋ค ์์ ํ๋ค. |
Q. ์กฐํํ๊ธฐ ์ํ ์ฉ๋ POST๊ฐ ์๋ GET ๋ฐฉ์์ ์ฌ์ฉํ๋ ์ด์ ?
5. ์ฟ ํค(Cookie)์ ์ธ์ (Session) |
1. ์ฟ ํค์ ์ธ์ ์ ํ์์ฑ
HTTP๋ ๋น์ฐ๊ฒฐ์ฑ์ด๋ผ๋ ํน์ง์ด ์์ด ์ฌ์ฉ์์ ์ํ๋ฅผ ์ ์งํ ์ ์๋๋ฐ, ์ด๋ฅผ ๋ณด์ํ๊ธฐ ์ํ ๊ธฐ์ .
2. ์ฟ ํค๋?
๊ฐ๋ : ํด๋ผ์ด์ธํธ์ ์ํ์ ๋ณด๋ฅผ ๋ธ๋ผ์ฐ์ ์ ์ ์ฅํ์ฌ ์ฐธ์กฐํ ์์๊ฒ ํ๋ ํ์ผ.(key-value๋ก ํด๋ผ์ด์ธํธ ๋ก์ปฌ์ ์ ์ฅ.)
๊ตฌ์ฑ์์ : ์ด๋ฆ,๊ฐ,๋ง๋ฃ์๊ฐ,์ฟ ํค๋ฅผ์ ์กํ ๋๋ฉ์ธ ์ด๋ฆ, ์ฟ ํค๋ฅผ ์ ์ฅํ ๊ฒฝ๋ก, ๋ณด์ ์ฐ๊ฒฐ ์ฌ๋ถ, HttpOnly์ฌ๋ถ(HttpOnly)
๋์๋ฐฉ์ :
์ฟ ํค ์ฌ์ฉ ์ :
๋ก๊ทธ์ธ,๋น๋ฐ๋ฒํธ ์ ์ฅ / ์ผํ๋ชฐ ์ฅ๋ฐ๊ตฌ๋
3. ์ธ์ ์ด๋?
๊ฐ๋ : ์ผ์ ์๊ฐ๋์ ๊ฐ์ ๋ธ๋ผ์ฐ์ ๋ก๋ถํฐ ๋ค์ด์ค๋ ์์ฒญ์ ํ๋์ ์ํ๋ก ๋ณด๊ณ , ๊ทธ ์ํ๋ฅผ ์ ์งํ๋ ๊ธฐ์ .(์ฆ, ์น ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ์๋ฒ์ ์ ์ํ ์ดํ๋ถํฐ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ข ๋ฃํ ๋ ๊น์ง ์ ์ง๋๋ ์ํ)
๋์๋ฐฉ์ :
์ธ์ ์ฌ์ฉ ์ : ๋ก๊ทธ์ธ
4. ์ฟ ํค์ ์ธ์ ์ ์ฐจ์ด์
์ฟ ํค |
์ธ์ |
[์ ์ฅ์์น] : ํด๋ผ์ด์ธํธ. [๋ณด์] : ํด๋ผ์ด์ธํธ์ ์ ์ฅ๋๋ฏ๋ก ์ทจ์ฝ. [๋ผ์ดํ์ฌ์ดํด] : ๋ง๋ฃ์๊ฐ์ ๋ฐ๋ผ ๋ธ๋ผ์ฐ์ ๋ฅผ ์ข ๋ฃํด๋ ๊ณ์ํด์ ๋จ์์์ ์ ์๋ค [์๋] : ํด๋ผ์ด์ธํธ์ ์ ์ฅ๋๊ธฐ์, ์๋ฒ ์์ฒญ์ ๋น ๋ฅด๋ค. |
[์ ์ฅ์์น] : ์๋ฒ. [๋ณด์] : ์ฟ ํค๋ฅผ ์ด์ฉํด SessionID๋ง ์ ์ฅํ๊ณ ์ด ๊ฐ์ผ๋ก ๊ตฌ๋ถํด์ ์๋ฒ์์ ์ฒ๋ฆฌํ๋ฏ๋ก ๋น๊ต์ ๋ณด์์ฑ์ด ์ข๋ค. [๋ผ์ดํ์ฌ์ดํด] : ๋ง๋ฃ์๊ฐ์ ์ ํ ์ ์์ง๋ง, ๋ธ๋ผ์ฐ์ ๊ฐ ์ข ๋ฃ๋๋ฉด ๋ง๋ฃ์๊ฐ์ ์๊ด์์ด ์ญ์ ๋๋ค. [์๋] : ์ค์ ์ ์ฅ๋ ์ ๋ณด๊ฐ ์๋ฒ์ ์์ผ๋ฏ๋ก, ์ฟ ํค๋ณด๋ค๋ ๋๋๋ค. |
6. DNS(Domain name system) |
DNS์๋ฒ
์ด๋ฌํ ๋๋ฉ์ธ์ ์ ๋ณด๋ฅผ ๋ด๊ณ ์๋ ์๋ฒ
<์ถ์ฒ ๋ฐ ์ฐธ๊ณ : https://preamtree.tistory.com/35>
7. REST์ RESTful์ ๊ฐ๋ |
REST(Representational State Transfer)๋?
-๋คํธ์ํฌ ์์์ Client์ Server์ฌ์ด์ ํต์ ๋ฐฉ์์ค ํ๋์ธ๋ฐ,
์น์ ๊ธฐ์กด๊ธฐ์ ๊ณผ HTTPํ๋กํ ์ฝ์ ๊ทธ๋๋ก ํ์ฉํ์ฌ ์น์ ์ฅ์ ์ ์ต๋ํ ํ์ฉํ ์ ์๋ ์ํคํ ์ณ ์คํ์ผ.
-HTTP URL๋ฅผ ํตํด ์์์ ๋ช ์ํ๊ณ , HTTP Method(Get,Post,Put,Delete,Head)(ํ์)๋ฅผ ํตํ์ฌ ํด๋น ์์์ ๋ํ CRUD(Create,Read,Update,Delete)(ํํ)๋ฅผ ์ํํ๋ ๊ฒ.
์ฅ์ : ํ์ดํผ๋ฏธ๋์ดAPI์ ๊ธฐ๋ณธ์ ์งํค๋ฉด์ ๋ฒ์ฉ์ฑ ๋ณด์ฅ
๋จ์ : ๋ธ๋ผ์ฐ์ ๋ฅผ ํตํด ํ ์คํธํ ์ผ์ด ๋ง๋ค๋ฉด URL๋ณด๋ค ํค๋๊ฐ์ด ๋ ์ด๋ ต๊ฒ ๋๊ปด์ง/๊ตฌํ ๋ธ๋ผ์ฐ์ ๋ ์ง์X ๋ถ๋ถ ์กด์ฌ
ํ์ํ ์ด์ : ๋ค์ํ ํด๋ผ์ด์ธํธ์ ๋ฑ์ฅ, ์ดํ๋ฆฌ์ผ์ด์ ์ ๋ถํ ๋ฐ ํตํฉ
ํน์ง :
-Server-Client(์๋ฒ-ํด๋ผ์ด์ธํธ ๊ตฌ์กฐ)
-Stateless(๋ฌด์ํ)
-Cacheable(์บ์ ์ฒ๋ฆฌ ๊ฐ๋ฅ)
-Layered System(๊ณ์ธตํ)
-Code-On-Demand(optional)
-Uniform Interface(์ธํฐํ์ด์ค ์ผ๊ด์ฑ)
RESTful์ด๋?
-REST์ ์๋ฆฌ๋ฅผ ๋ฐ๋ฅด๋ ์์คํ .
-RESTful์ REST๋ฅผ REST๋ต๊ฒ ์ฐ๊ธฐ ์ํ ๋ฐฉ๋ฒ์ผ๋ก, ๋๊ตฐ๊ฐ๊ฐ ๊ณต์์ ์ผ๋ก ๋ฐํํ ๊ฒ์ดX
RESTful์ ๋ชฉ์ :
-์ดํดํ๊ธฐ ์ฝ๊ณ , ์ฌ์ฉํ๊ธฐ ์ฌ์ด REST API๋ฅผ ๋ง๋๋๊ฒ.
-ํผํฌ๋จผ์ค ํฅ์๋ณด๋จ API์ ์ดํด๋ ๋ฐ ํธํ์ฑ์ ๋์ด๊ธฐ ์ํจ.
RESTfulํ์ง ๋ชปํ ๊ฒฝ์ฐ :
-CRUD๊ธฐ๋ฅ์ ๋ชจ๋ POST๋ก๋ง ์ฒ๋ฆฌํ๋ API
-route์ ์์,id์ธ์ ์ ๋ณด๊ฐ ๋ค์ด๊ฐ๋ ๊ฒฝ์ฐ(์ : /students/updateName)
8. ์์ผ(Socket)์ด๋ |
์์ผ์ด๋?
-์ํํธ์จ์ด๋ก ์์ฑ๋ ํต์ ์ ์์ .
-๋ ํ๋ก๊ทธ๋จ์ด ๋คํธ์ํฌ๋ฅผ ํตํด ์๋ก ํต์ ์ ์ํํ ์ ์๋๋ก ์์ชฝ์์ ์์ฑ๋๋ ๋งํฌ์ ๋จ์.
-๋ ์์ผ์ด ์ฐ๊ฒฐ๋๋ฉด ๋ค๋ฅธ ํ๋ก์ธ์ค๋ผ๋ฆฌ ๋ฐ์ดํฐ๋ฅผ ์ ๋ฌ ํ ์ ์์.
-์์ผํจ์๋ ๋๊ธฐ๋ชจ๋(๋ธ๋กํน)/๋น๋๊ธฐ๋ชจ๋,(๋ ผ๋ธ๋กํน)์ผ๋ก ๋์.
์์ผ์ ์ข ๋ฅ
1. ์คํธ๋ฆผ(TCP)
-์ฐ๊ฒฐ ์งํฅํ ์์ผ(์๋ฐฉํฅ์ผ๋ก ๋ฐ์ดํธ ์คํธ๋ฆผ ์ ์ก ๊ฐ๋ฅ, ์์ชฝ ์ดํ๋ฆฌ์ผ์ด์ ์ด ๋ชจ๋ ๋ฐ์ดํฐ๋ฅผ ์ฃผ๊ณ ๋ฐ์์ ์์)
-TCP๋ฅผ ์ฌ์ฉ
-๋๋์ ๋ฐ์ดํฐ๋ฅผ ๋ณด๋ด๋ ๊ฒฝ์ฐ์ ์ ๋น
2. ๋ฐ์ดํฐ๊ทธ๋จ(UDP)
-๋น ์ฐ๊ฒฐํ ์์ผ
-UDP
-ํต์ ์ค ๋ฐ์ดํฐ๋ฅผ ์์ด๋ฒ๋ ค๋ ์ค๋ฅ๊ฐ ๋ฐ์ํ์ง ์์
<์ฐธ๊ณ ์ฌ์ดํธ>
1. https://zetawiki.com/wiki/HTTP_%ED%97%A4%EB%8D%94
2. https://developer.mozilla.org/ko/docs/Web/HTTP/Messages
3. https://zamezzz.tistory.com/137
'โ๏ธ ์ด๋ก > ์ด๋ก , ์ค๊ณ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[์๊ธฐ์ฉ์์ฝ/๊ฐ์ธ์ ๋ฆฌ] ๋คํธ์ํฌ(OSI7๊ณ์ธต~TCP/IP) (0) | 2019.07.28 |
---|---|
[์๊ธฐ์ฉ ์์ฝ] ์ ๊ทผ ํ๊ธฐ๋ฒ(Big-O) (0) | 2019.07.27 |