CS (6) ์ธ๋ค์ผํ ๋ฆฌ์คํธํ ํฌ ํฌ์ธํฐ ์๊ณ ๋ฆฌ์ฆ ์ ์ํฌ ํฌ์ธํฐ(Two Pointer) ์๊ณ ๋ฆฌ์ฆ์ด๋, ๋ฐฐ์ด์ด๋ ์ปฌ๋ ์ ์์ ๋ ๊ฐ์ ํฌ์ธํฐ๋ฅผ ์ด์ฉํ์ฌ ๋ฒ์๋ฅผ ์กฐ์ ํด๊ฐ๋ฉฐ ํน์ ํ ์กฐ๊ฑด์ ๋ง์กฑํ๋ ๋ถ๋ถ์ ์ฐพ๋ ๊ธฐ๋ฒ์ด๋ค.ํนํ ์ ๋ ฌ๋ ๋ฐฐ์ด์ด๋ ์ปฌ๋ ์ ๊ณผ ๊ด๋ จ๋ ๋ฌธ์ ์์ ํจ๊ณผ์ ์ผ๋ก ์ฌ์ฉ๋๋ค.ํต์ฌ ์์ด๋์ด๋ ๋ฐฐ์ด์ ์๋ก ๋ค๋ฅธ ๋ ๋ถ๋ถ์ ๋์์ ๋ฐ๋ณตํ๋ ๊ฒ์ด๋ค.์ผ๋ฐ์ ์ผ๋ก ์๊ฐ ๋ณต์ก๋๋ O(n), ๊ณต๊ฐ ๋ณต์ก๋๋ O(1)์ด ๋๋ค.๋ฐํ์์ ์ต์ ํํ๊ณ ๊ณต๊ฐ์ ์ ์ฝํ๊ณ ์ถ์ ๋ ์ฌ์ฉํ๋ค.๊ณ ๋ คํด์ผ ํ ์ ํฌ์ธํฐ์ ์ด๊ธฐ ์์น ์ค์ ํฌ์ธํฐ๋ฅผ ์ด๋์ ์์ํ๊ณ ์ด๋ค ์ธ๋ฑ์ค๋ฅผ ๋น๊ตํ ๊ฒ์ธ๊ฐ?ํฌ์ธํฐ์ ์ด๋ ๋ฐฉํฅ๊ณผ ์กฐ๊ฑด๊ฐ์ ๋ฐฉํฅ์ผ๋ก ์ด๋ํ ๊ฒ์ธ๊ฐ, ๋ค๋ฅธ ๋ฐฉํฅ์ผ๋ก ์ด๋ํ ๊ฒ์ธ๊ฐ?ํฌ์ธํฐ๋ฅผ ์ธ์ ์์ง์ผ ๊ฒ์ธ๊ฐ?ํฌ์ธํฐ์ ์ค์ง ์กฐ๊ฑดํฌ์ธํฐ๋ฅผ ์ธ์ ๋ฉ์ถ ๊ฒ์ธ๊ฐ?์ผ๋ฐ์ ์ผ๋ก ๋ฐฐ์ด์ ๋ฐ๋ณต์ด ๋๋ ๋๋ ๋ ํฌ์ธํฐ๊ฐ .. ์ธ์ ๊ธฐ๋ฐ ์ธ์ฆ vs ํ ํฐ ๊ธฐ๋ฐ ์ธ์ฆ, ๊ทธ๋ฆฌ๊ณ ์ฟ ํค๐ช ์ธ์ ? ํ ํฐ? ์ฟ ํค? ์ธ์ฆ ๋ฐฉ์์ ๋ํด ์ด์ผ๊ธฐํ ๋ ํท๊ฐ๋ฆฌ๋ ๊ฐ๋ ๋ค์ ์ ๋ฆฌํด๋ณด๊ณ ์ ํฉ๋๋ค. HTTP๋ ๋ฌด์ํ!์ฐ์ HTTP ํ๋กํ ์ฝ์ด ๋ฌด์ํ(stateless)๋ผ๋ ๊ฒ์ ์ดํดํด์ผ ํฉ๋๋ค.HTTP ํ๋กํ ์ฝ๋ก ์น์ ํตํด ํต์ ํด์ผ ํ ๋, ์ฐ๋ฆฌ๊ฐ ๋ณด๋ด๋ ๊ฐ๊ฐ์ ์์ฒญ์ ๋ ๋ฆฝ์ ์ ๋๋ค.์์ฒญ์ด ๋๋๋ฉด ์๋ฒ๋ ํด๋ผ์ด์ธํธ์ ์ ๋ณด๋ฅผ ์์ด๋ฒ๋ฆฌ๊ณ , ์์ฒญ์ ๋ณด๋ผ ๋๋ง๋ค ํด๋ผ์ด์ธํธ๊ฐ ๋๊ตฐ์ง ์๋ ค์ค์ผ ํฉ๋๋ค. ์๋ฒ์๊ฒ ์์ฒญ์ ๋ณด๋ผ ๋ ํด๋ผ์ด์ธํธ๊ฐ ๋๊ตฐ์ง ์๋ ค์ฃผ๋ ๋ฐฉ์์ผ๋ก ๋ํ์ ์ผ๋ก ์ธ์ ๊ณผ ํ ํฐ์ด ์๋ ๊ฒ์ ๋๋ค.์ธ์ ์ธ์ฆ ๋ฐฉ์๊ณผ ํ ํฐ ์ธ์ฆ ๋ฐฉ์์ ๋ก๊ทธ์ธ ๋ฐฉ๋ฒ์ ๋ํด ์ด์ผ๊ธฐ ํด๋ณด๊ฒ ์ต๋๋ค. ์ธ์ (session)์ธ์ ์ธ์ฆ ๋ฐฉ์์ผ๋ก ๋ก๊ทธ์ธ์ ํ๋ ๊ณผ์ ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.ํด๋ผ์ด์ธํธ๋ ์ฌ์ฉ์ ์ธ์ฆ ์ ๋ณด(์๋ฅผ ๋ค๋ฉด ์ ์ ๋ช , ๋น๋ฐ๋ฒํธ)๋ฅผ ๋ด์์ .. Boyer-Moore ๊ณผ๋ฐ์ ํฌํ ์๊ณ ๋ฆฌ์ฆ Boyer-Moore ๊ณผ๋ฐ์ ํฌํ ์๊ณ ๋ฆฌ์ฆ (Boyer-Moore majority vote algorithm)์ฃผ์ด์ง ํ๋ณด์ ๋ชฉ๋ก์์ ๊ณผ๋ฐ์๋ฅผ ์ฐจ์งํ๋ ํ๋ณด๋ฅผ ์ฐพ๋ ์๊ณ ๋ฆฌ์ฆ์ด๋ค.๋ฐฐ์ด ๋ด ๊ณผ๋ฐ์์ ํด๋นํ๋ ์์๊ฐ ํญ์ ์กด์ฌํ๋ค๊ณ ๊ฐ์ ํ๋ฉด, ๊ฒฐ๊ณผ๊ฐ์ ํญ์ ๊ณผ๋ฐ์ ์์๊ฐ ๋๋ค.ํต์ฌ ์์ด๋์ด๋ ์ฃผ์ด์ง ํ๋ณด์ ๋ชฉ๋ก์ ๋ ๊ฐ์ง์ ์๋ก ๋ค๋ฅธ ํ๋ณด๋ฅผ ์ง์ ํ๊ณ , ์ด๋ค์ ์๋ก ์์์์ผ๊ฐ๋ฉฐ ์ต์ข ํ๋ณด๋ฅผ ๊ฒฐ์ ํ๋ ๊ฒ์ด๋ค.์๊ฐ ๋ณต์ก๋๋ O(N), ๊ณต๊ฐ ๋ณต์ก๋๋ O(1) ์ด๋ค. ๋์ ๋ฐฉ์ ์ ๋ ฅ ์ํ์ค ์์ m๊ณผ ์นด์ดํฐ c๋ฅผ 0์ผ๋ก ์ด๊ธฐํํ๋ค.์ ๋ ฅ ์ํ์ค์์ ๊ฐ๊ฐ์ ์์ x์ ๋ํด์c == 0 ์ด๋ฉด m = x, c = 1 ๋์ ํ๋ค.m == x ์ด๋ฉด c = c + 1 ๋์ ํ๋ค.m != x ์ด๋ฉด c = c -1 ๋์ ํ๋ค.m์ ๋ฐํํ๋ค... ์๊ณ ๋ฆฌ์ฆ ๋ณต์ก๋ ์๊ฐ ๋ณต์ก๋ & ๊ณต๊ฐ ๋ณต์ก๋ ์๊ณ ๋ฆฌ์ฆ์ ๋ณต์ก๋๋ ์๊ฐ ๋ณต์ก๋์ ๊ณต๊ฐ ๋ณต์ก๋๋ก ๋๋๋ค. ์ต๊ทผ์๋ ํ๋์จ์ด ๋ฉ๋ชจ๋ฆฌ ์ฉ๋์ด ์ปค์ก๊ธฐ ๋๋ฌธ์, ์๊ณ ๋ฆฌ์ฆ ์ฑ๋ฅ ์ธก์ ์์๋ ์๊ฐ ๋ณต์ก๋๊ฐ ์ข ๋ ์ฐ์ ์๋๋ค. 1. ์๊ฐ ๋ณต์ก๋์๊ณ ๋ฆฌ์ฆ์ ํ์ํ ๋จ๊ณ ์๋ง ๊ณ ๋ คํ๋ค.๋ฐ์ดํฐ๊ฐ ์ฆ๊ฐํ ์๋ก ๋จ๊ณ ์๊ฐ ์ด๋ป๊ฒ ๋ณํ๋์ง๋ฅผ ๋งํด์ค๋ค.2. ๊ณต๊ฐ๋ณต์ก๋ํ๋ก๊ทธ๋จ์ ์คํ์์ผฐ์ ๋ ํ์๋ก ํ๋ ์์ ๊ณต๊ฐ์ ์์ด๋ค.์ ์ ์ผ๋ก ์ ์ธ๋ ๋ณ์, ์ฌ๊ทํจ์์ ๊ฐ์ด ๋์ ์ผ๋ก ๊ณต๊ฐ์ ๊ณ์ํด์ ํ์๋ก ํ๋ ๊ฒฝ์ฐ๋ ํฌํจํ๋ค. ๋น ์ค ํ๊ธฐ๋ฒ์๋ฃ๊ตฌ์กฐ์ ์๊ณ ๋ฆฌ์ฆ์ ํจ์จ์ฑ์ ๊ฐ๊ฒฐํ๊ณ ์ผ๊ด๋ ์ธ์ด๋ก ์ค๋ช ํ๊ธฐ ์ํด ๋ฑ์ฅํ๋ค.์ ๋์ ์ธ ์คํ ์๊ฐ๊ณผ ํ์ํ ์์ ๊ณต๊ฐ์ ์์ ํ์ ํ๊ธฐ๋ ์ด๋ ค์ฐ๋ฏ๋ก, ๋น ์ค ํ๊ธฐ๋ฒ์ผ๋ก ์๊ณ ๋ฆฌ์ฆ์ ํจ์จ์ฑ์ ์ ๋ํํ ์ ์๋ค.์ ๋ ฅ ํฌ๊ธฐ N์ ๋ฐ๋ผ ์ฐ์ฐ์ด.. [๋คํธ์ํฌ] HTTP Methods ์ฐจ์ด์ ์ ๋ฆฌ HTTP ๋ฉ์๋HTTP ํ๋กํ ์ฝ์์ ์ฌ์ฉ๋๋ ์์ฒญ ๋ฉ์๋๋ก, ์์์ ๋ํด ์๋ฒ๊ฐ ์ํํ ๋์์ ์ง์ ํฉ๋๋ค.์ด 9๊ฐ์ง๊ฐ ์์ผ๋ฉฐ REST API๋ฅผ ์ค๊ณํ ๋ ์ฃผ๋ก ์ฌ์ฉ๋๋ ๋ฉ์๋๋ 5๊ฐ์ง์ ๋๋ค. ์ฃผ์ ๋ฉ์๋ 5๊ฐ์งGET : ์๋ฒ๋ก๋ถํฐ ์์์ ์์ฒญํ๋ ๋์POST : ์๋ฒ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์กํ์ฌ ์์์ ์์ฑํ๊ฑฐ๋ ์ ๋ฐ์ดํธ ํ๋ ๋์PUT : ์๋ฒ์ ์์์ ์์ฑํ๊ฑฐ๋ ๊ธฐ์กด ์์์ ๋์ฒดํ๋ ๋์PATCH : ์๋ฒ ์์์ ์ผ๋ถ๋ง ์์ ํ๋ ๋์DELETE : ์๋ฒ์์ ์์์ ์ญ์ ํ๋ ๋์ GET vs POST1. GET๋ชฉ์ ์๋ฒ๋ก๋ถํฐ ์์์ ์์ฒญํ๋ ๋์๋ฐ์ดํฐ ์ ์ก ๋ฐฉ์์์ฒญ ๋ณธ๋ฌธ์ ์ฌ์ฉํ์ง ์๊ณ , ์์ฒญ URI์ Path Variable ์ด๋ Query String ์ ์ฌ์ฉํ ๊ฒ์ ๊ถ์ฅํฉ๋๋ค.๋ณด์๋ฐ์ดํฐ๊ฐ URL์ ํฌํจ๋๋ฏ๋ก.. [์๋ฃ๊ตฌ์กฐ] ํด์ ํ ์ด๋ธ ํด์ ํ ์ด๋ธ์ด๋?ํค(key)์ ๊ฐ(value)์ ์์ผ๋ก ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ์๋ฃ๊ตฌ์กฐ.ํด์ ํ ์ด๋ธ์์ ์ฝ์ /์ญ์ /ํ์ ์ ํ๊ท ์ ์ธ ์๊ฐ๋ณต์ก๋๋ O(1)๋ก, ์ด๋ค ๊ฐ์ ์ฐพ๋๋ผ๋ ํ ๋จ๊ณ๋ง ์์๋๋ค.์ฌ์ฉ ์ฌ๋ก๊ฒ์์ด๋ ์ ์ฅ์ด ๋น๋ฒํ ๋ ์ฌ์ฉํ๋ฉด ์ข์๋ฐ, ํนํ ์บ์๋ฅผ ๊ตฌํํ ๋ ํด์ ํ ์ด๋ธ์ ์ฌ์ฉํ ์ ์๋ค.์บ์๋ ์ด์ ์ ๊ณ์ฐ๋ ๊ฒฐ๊ณผ๋ฅผ ์์๋ก ์ ์ฅํ๋ ์ฅ์๋ก, ์บ์์ ์ ๊ทผ ์๊ฐ์ ๋นํด ์๋ ๋ฐ์ดํฐ๋ฅผ ์ ๊ทผํ๋ ์๊ฐ์ด ์ค๋ ๊ฑธ๋ฆฌ๋ ๊ฒฝ์ฐ๋ ๊ฐ์ ๋ค์ ๊ณ์ฐํ๋ ์๊ฐ์ ์ ์ฝํ๊ณ ์ถ์ ๊ฒฝ์ฐ์ ์ฌ์ฉ๋๋ค.์๋ ์๋ฆฌํด์ ํ ์ด๋ธ ๋ด๋ถ์์๋ index์ value๋ก ์ด๋ฃจ์ด์ง ๋ฐฐ์ด ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํ๋ค.ํค(key)๋ฅผ ํด์ ํจ์๋ฅผ ์ฌ์ฉํ์ฌ ๋ฐฐ์ด์ ์ธ๋ฑ์ค๋ก ๋ณํํ ํ ํด๋น ์ธ๋ฑ์ค์ ๊ฐ(value)์ ์ ์ฅํ๋ค. ํด์ ํจ์ํด์ ํ ์ด๋ธ์์์ ํด์ ํจ.. ์ด์ 1 ๋ค์