Stack์ด๋? LIFO(Last in First Out, ํ์ ์ ์ถ), ์ ๋ ฅ๊ณผ ์ถ๋ ฅ์ด ํ๊ณณ์ผ๋ก ์ ํ๋๋ ์๋ฃ๊ตฌ์กฐ Stack ์์ ์ผ๋ฐ์ ์ธ ํจ์์ ์ฝ์คํ, ์คํ์ด ๋์น๊ฒ ๋๋ฉด StackOverFlow๊ฐ ๋ฐ์ํ๋ค. ๋ฌธ์์ด ์ญ์ ์ถ๋ ฅ, ์ฐ์ฐ์ ํ์ํ๊ธฐ๋ฒ๊ณผ ๊ฐ์ ์ํฉ์์ ์ฌ์ฉํ๋ค. ์ฝ๋๋ก ์ดํดํ๋ Stack class Stack { List list = new ArrayList(); private final int STACK_MAX_SIZE; private int top = 0; public Stack(int STACK_MAX_SIZE) { this.STACK_MAX_SIZE = STACK_MAX_SIZE; } void push(int data) { if(isFull()) return ; list.add(to..
์น ์ดํ๋ฆฌ์ผ์ด์ ์์ ์ฌ์ฉ์์ ์ฌ์ฉ์ฑ์ ์ฆ์ง์ํค๊ธฐ ์ํด์๋ ์์ฒญํ ์ฌ์ฉ์ ์ ๋ณด๋ฅผ ์๋ฒ์์ ๊ด๋ฆฌํ๋ ๊ณผ์ ์ด ํ์ํ ์๋ ์๋ค. ๊ทธ๋ฐ๋ฐ HTTP ํ๋กํ ์ฝ์ statelessํ ์ฑ์ง์ ๊ฐ์ง๊ณ ์๊ธฐ ๋๋ฌธ์ ์์ฒญ์์ ์ํ๋ฅผ ์ ์ง์ํค์ง ์๋๋ค. ๊ทธ๋ ๋ค๋ฉด ์ด๋ป๊ฒ ์์ฒญ์์ ์ ๋ณด๋ฅผ ์ ์ง์ํฌ ์ ์์๊น? ์ฟ ํค๋ง ์ฌ์ฉํ์ฌ ์ ์ ์ ์ ๋ณด๋ฅผ ์ ์งํ๋ ๋ฐฉ๋ฒ ์๋ฒ์ ํด๋ผ์ด์ธํธ์ ๋ํ ํด๋ผ์ด์ธํธ : ๋ก๊ทธ์ธ ํ ๋ ์๋ฒ : OK, Cookie ์ ์ฅ์์ Member ํค๊ฐ ์ ์ฅํด. ๋ค์๋ถํฐ ์์ฒญํ ๋ ํฌํจํด์ ์ ์กํด์ค. ํด๋ผ์ด์ธํธ : GET, Cookie ํฌํจ, ์ ๋ณด ๋ณด์ฌ์ค ์๋ฒ : OK, ์ ์ ์ ๋ณด ํ์ธ, ์ ๋ณด ๋ณด์ฌ์ค๊ฒ. ํด๋ผ์ด์ธํธ : ๋ธ๋ผ์ฐ์ ์ข ๋ฃ, ๋ง๋ฃ ๋ ์ง๊ฐ ์๋ค? ์ธ์ ์ฟ ํค๋๊น ์ญ์ or ๋ง๋ฃ ๋ ์ง๊ฐ ์๋ค ์ญ์ ์ํด! ๋ง๋ฃ ๋ ์ง์ผ ๋ ..
์ธํฐ์ ํฐ๋? ํํฐ์ ๋์ผํ๊ฒ ๊ณตํต ๊ด์ฌ ์ฌํญ์ ํจ๊ณผ์ ์ผ๋ก ํด๊ฒฐํ ์ ์๋ ๊ธฐ์ ์ด๋ค. ์ธํฐ์ ํฐ๋ ์๋ธ๋ฆฟ์ด ์ ๊ณตํ๋ ํํฐ์ ๋ค๋ฅด๊ฒ ์คํ๋ง MVC์์ ์ ๊ณตํ๋ ๊ธฐ์ ์ด๋ฉฐ ํํฐ๋ณด๋ค ์ข ๋ ํธ๋ฆฌํ ๊ธฐ๋ฅ์ ํฌํจํ๊ณ ์๋ค. ์ธํฐ์ ํฐ๋ ์คํ๋ง MVC๊ฐ ์ ๊ณตํ๊ธฐ ๋๋ฌธ์ ๋์คํจ์ณ ์๋ธ๋ฆฟ ์ดํ์ ํธ์ถ๋๊ฒ ๋๋ค. ์คํ๋ง MVC์ ์์์ ์ด ๋์คํจ์ฒ ์๋ธ๋ฆฟ์ด๋ผ๊ณ ๋ณด๋ฉด ๋๋ค. ์ํคํ ์ฒ ํํฐ VS ์ธํฐ์ ํฐ ํฐ ํ์๋ ์ฐจ์ด๊ฐ ์๋ค. ์ฐ์ ํํฐ์ ์ธํฐ์ ํฐ์ ์ ์ฒด์ ์ธ ๊ธฐ๋ฅ์๋ ํฐ ์ฐจ์ด๊ฐ ์๋ค. ํํฐ ์ธํฐ์ ํฐ ๋๋ค ์์ฒญ์ ๋ํ ์ ํ ์ฒ๋ฆฌ ์ญํ ์ ์ํํ์ฌ ๋ํ URL Pattern์ ์ด์ฉํ์ฌ ์ด๋ ํ ์์ฒญ์ ๋ํด ์ญํ ์ ์ํํ ๊ฒ์ธ์ง ์ง์ ์ด ๊ฐ๋ฅํ๋ค. ๋ํ request, response ๊ฐ์ฒด๋ฅผ ๋ฐ์์ ๋ถ๊ฐ์ ์ธ ๋ก์ง ๋ํ ๊ฐ๋ฐ์๊ฐ ์ง์ ๊ตฌํ์ด ..
์ธ์ ์ธ์ ์ ๊ด๋ฆฌํ๊ธฐ ์ํด์๋ ์๋ฒ์ชฝ์ ์ ์ ์ ๋ณด๋ฅผ ์ ์ฅ ํด์ผํ๊ธฐ ๋๋ฌธ์ ์๋ฌด๋๋ ์ถ๊ฐ์ ์ธ ์ ์ฅ์๊ฐ ํ์ํ๋ค. ๋ง์ฝ ๋ด์ฅ ํฐ์บฃ ๋ฉ๋ชจ๋ฆฌ์ ์ธ์ ์ ์ ์ฅํ๊ฒ ๋๋ฉด ๋ฐฐํฌํ ๋๋ง๋ค ์ธ์ ์ด ์ด๊ธฐํ ๋๊ธฐ ๋๋ฌธ์ ๋ค์๊ณผ ๊ฐ์ ๋ฐฉ๋ฒ๋ค์ ํ์ฉํ๋ ํธ์ด๋ค. ํฐ์บฃ ์์ฒด ๋ฉ๋ชจ๋ฆฌ๋ฅผ ํ์ฉํ๋ค. - ๊ฐ์ฅ ๊ธฐ๋ณธ ์ค์ - ๋ ๋์ด์์ WAS๊ฐ ๊ตฌ๋๋๋ ํ๊ฒฝ์์๋ ๋ถ๊ฐ์ ์ธ ์ค์ ์ด ํ์ํ๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ํ์ฉํ๋ค. - ๊ฐ์ฅ ์ฌ์ด ๋ฐฉ๋ฒ์ด๋ค. - ๋ถ๊ฐ์ ์ธ ์ค์ ์ ํ์ ์์ง๋ง ์ธ์ฆ ์์ฒญ๋ง๋ค DB์ IO๊ฐ ๋ฐ์ํ๋ค. Redis, Memcached ๋ฉ๋ชจ๋ฆฌ DB ํ์ฉ - B2C ์๋น์ค์์ ๊ฐ์ฅ ๋ง์ด ์ฌ์ฉ๋๋ค. JWT ํ ํฐ์ ์ธ์ ๊ณผ ๋ค๋ฅด๊ฒ ์์ ์์์ ๊ฐ์ด ์๋ฒ๊ฐ ๋ฐ๋ก ๋ฉ๋ชจ๋ฆฌ์ ์ฌ์ฉ์์ ์ ๋ณด๋ฅผ ๊ด๋ฆฌํ ํ์๊ฐ ์๋ค(Stateless). JWT ํ ํฐ ์..
OAuth๋? ๋ค์ํ ํ๋ซํผ(Google, Facebook, Naver...)์ ํน์ ์ฌ์ฉ์ ๋ฐ์ดํฐ์ ์ ๊ทผํ๊ธฐ ์ํด ์ 3์์ ํด๋ผ์ด์ธํธ๊ฐ ์ฌ์ฉ์์ ์ ๊ทผ ๊ถํ์ ์์ ๋ฐ์ ์ ์๋ ํ์ค ํ๋กํ ์ฝ์ ๋งํ๋ค. OAuth์ ํ์ OAuth๊ฐ ์กด์ฌํ๊ธฐ ์ ์๋ ์ธ์ฆ ๋ฐฉ์์ ํ์ค์ด ์์๊ธฐ์ ๊ธฐ๋ณธ์ธ์ฆ์ธ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ์ฌ์ฉํ์๋๋ฐ ์ด๋ ๊ต์ฅํ ๋ณด์์ ์น๋ช ์ ์ธ ๊ตฌ์กฐ์ด๋ค. ๋ง์ฝ ์ ์์ ์ธ ์ฌ์ฉ์๊ฐ ์ธ์ฆ ๊ณผ์ ์ค์ ์์ด๋์ ๋น๋ฐ๋ฒํธ๋ฅผ ํ์ทจํ๊ฒ ๋๋ค๋ฉด ํด๋น ํ๋ซํผ์ ์กด์ฌํ๋ ์ฌ์ฉ์์ ๋ชจ๋ ์ ๋ณด๋ค์ด ๊ฐ์ ธ๊ฐ ์ ์๊ธฐ ๋๋ฌธ์ด๋ค. ์ฆ, ์ฌ์ฉ์์ ๊ณ์ ์ ๋ณด๋ง ํ์ทจํ๋ฉด ํ๋ซํผ์ ์กด์ฌํ๋ ๋ชจ๋ ์๋น์ค์ ๋ํ ์ ๊ทผ ๊ถํ์ ์ป์ ์ ์๋ค๋ ์๋ฏธ์ด๋ค. ๋ ๋ณดํต ์ฌ์ฉ์๋ค์ ํ๋ซํผ๋ค ๋ง๋ค ๋ค๋ฅธ ๊ณ์ ์ ๋ณด๋ฅผ ์ฌ์ฉํ๋ ๊ฒ๋ณด๋ค๋ ๋์ผ ๊ณ์ ์ ๋ณด๋ฅผ ..