Java Web Application Server 2023
์ด ํ๋ก์ ํธ๋ ์ฐ์ํ ํ ํฌ์ฝ์ค ๋ฐ์ฌ์ฑ๋์ ํ๊ฐ๋ฅผ ๋ฐ์ https://github.com/woowacourse/jwp-was ๋ฅผ ์ฐธ๊ณ ํ์ฌ ์์ฑ๋์์ต๋๋ค.
- ์๋ฐ1.0
- Threadํด๋์ค์ Runnable ์ธํฐํ์ด์ค ์ฌ์ฉ
- synchronized ํค์๋ ์ฌ์ฉ
- ์๋ฐ5.0
- ReentrantLockํด๋์ค์ Condition์ธํฐํ์ด์ค
- volatile ํค์๋
- concurrentํจํค์ง
- ์๋ฐ8
- Stream API
- CompletableFutureํด๋์ค
- ์๋ฐ9
- ๋ฆฌ์กํฐ๋ธ ํ๋ก๊ทธ๋๋ฐ
- Flow API
- ์ค๋ ๋ ํ
- ๋ธ๋กํน ํ
- ๋์์ฑ ์ปฌ๋ ์
- Atomic Variables
- ๋๊ธฐํ ์ ํธ๋ฆฌํฐ
- ๋์์ฑ ์ ํธ๋ฆฌํฐ
- ๋์์ : ์ฌ๋ฌ๊ฐ์ ๋ ผ๋ฆฌ์ ์ธ ํต์ ํ๋ฆ
- ๋ณ๋ ฌ์ : ๋ฌผ๋ฆฌ์ ์ธ ๋ณ๋ ฌ๊ณ์ฐ
- keyword
- ๋น๊ฒฐ์ ์ฑ
- ๋ฉ๋ชจ๋ฆฌ ๊ฐ์์ฑ
- ๊ณต์ ๋ฉ๋ชจ๋ฆฌ
-
์ฌ๋ฌ๊ฐ์ ์ค๋ ๋๊ฐ ๊ณต์ ๋ ๋ฉ๋ชจ๋ฆฌ์ ์ ๊ทผํ ๋ ๋ฌธ์ ๊ฐ ๋ฐ์ํ๋ค.
-
์ด๋ฅผ ํด๊ฒฐํ๋ ค๋ฉด ๋ฉ๋ชจ๋ฆฌ์ ๋ํ ์ ๊ทผ์ ๋๊ธฐํ ํด์ผ ํ๋ค.
-
์ฌ๋ฌ ๋ฐฉ๋ฒ ์ค ํ๋๋ ๊ฐ์ฒด ๋ด๋ถ์ ์ ๊ธ์ฅ์น(๋ฎคํ ์ค, ๋ชจ๋ํฐ ํน์ ์๊ณ์์ญ)๋ฅผ ์ด์ฉํ๋ ๊ฒ
-
์ค๋ ๋ ์์๋ฅผ ๊ณ ๋ คํ ๊ฒฐ๊ณผ ์ธ์๋ ์์์น ๋ชปํ ๊ฒฐ๊ณผ๊ฐ ๋์ฌ ์ ์๋ค.
- ์ปดํ์ผ๋ฌ๋ ์ฝ๋๊ฐ ์คํ๋๋ ์์๋ฅผ ๋ฐ๊ฟ์ผ๋ก์จ ์ ์ ์ต์ ํ๋ฅผ ์ํํ ์ ์๋ค.
- JVM์ ์ฝ๋๊ฐ ์คํ๋๋ ์์๋ฅผ ๋ฐ๊ฟ์ผ๋ก์จ ๋์ ์ต์ ํ๋ฅผ ์ํํ ์ ์๋ค.
- ์ฝ๋๋ฅผ ์คํํ๋ ํ๋์จ์ด๋ ์ฝ๋์ ์์๋ฅผ ๋ฐ๊พธ๋ ๊ฒ์ด ๊ฐ๋ฅํ๋ค.
-
์ค๋ ๋๊ฐ ๋์ํ ๊ฒฐ๊ณผ๊ฐ ๋ค๋ฅธ ์ค๋ ๋์ ๋ณด์ด์ง ์๋ ๊ฒฝ์ฐ๋ ์กด์ฌํ๋ค.
-
์ฌ๋ฌ๊ฐ์ ์ ๊ธ์ฅ์น
- ๋ชจ๋ ์ค๋ ๋๊ฐ ํ์ํ ์ ๊ธ์ฅ์น๋ฅผ ์ป์ ์ ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค.
- ์ ๊ธ์ฅ์น์ ์์๋ฅผ ๋งค๊ธด๋ค.
- ์ปค๋ค๋ ํ๋ก๊ทธ๋จ์์๋ ๋ชจ๋ ์ ๊ธ์ฅ์น์ ์์๋ฅผ ๋งค๊ธฐ๋ ๊ฒ์ด ์ด๋ ต๋ค.
-
keyword
- ๋ด์ฌ๋ ์ ๊ธ์ฅ์น
- ๊ฒฝ์์กฐ๊ฑด
- ๋ฉ๋ชจ๋ฆฌ ๊ฐ์์ฑ
- ๋ฐ๋๋ฝ(์ฌ๋ฌ๊ฐ์ ์ ๊ธ์ฅ์น)
- ์๋ฐ ๋ฉ๋ชจ๋ฆฌ ๋ชจ๋ธ
- ๋ค์ด๋ ํ๋ก์ํผ ๋ฌธ์
- double-checked locking ์ํฐํจํด
- ์๋ฒ์์ผ์ ์ด๊ณ ํด๋ผ์ด์ธํธ๋ฅผ ๊ธฐ๋ค๋ฆฐ๋ค.
- ํด๋ผ์ด์ธํธ๊ฐ ์ฐ๊ฒฐ๋๋ฉด Runnable ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํ RequestHandler๋ก ์ค๋ ๋๋ฅผ ๋ง๋ ๋ค.
- ์ค๋ ๋๋ ์ค๋ ๋ ํ์ ํตํด ๊ด๋ฆฌํ๋ค.
- Handler์์๋ http get์์ฒญ์ ๋ฐ์ ์ด๋ฅผ ํด์ํ๊ณ response๋ฅผ ์์ฑํ์ฌ ํด๋ผ์ด์ธํธ์ ๋ณด๋ธ๋ค.