๊ธ์ฐ๋ ๊ฟ๋ฒ ๐5 Dev Study #4 (feat. Design Pattern) Guarded Suspension ์ฐ๋ ๋๋ฅผ ๊ธฐ๋ค๋ฆฌ๊ฒ ํ์ฌ ์ธ์คํด์ค์ ์์ ์ฑ์ ์งํจ๋ค. Request : ํ๋์ ๋ฆฌํ์คํธ๋ฅผ ํํํ ํด๋์ค RequestQueue : ๋ฆฌํ์คํธ๋ฅผ ์์๋๋ก ๋น์ถํด๋๋ ํด๋์ค ClientThread : ๋ฆฌํ์คํธ๋ฅผ ๋ด์ฃผ๋ ํด๋์ค ServerThread : ๋ฆฌํ์คํธ๋ฅผ ๋ฐ์ ํด์ํ๋ ํด๋์ค Main : ๋์ ํ ์คํธ์ฉ ํด๋์ค Request ํด๋์ค ClientThread ์์ ServerThread ์ ๊ฑด๋ค์ง ์ธ์คํด์ค name ํ๋๋ฅผ ๊ฐ์ง๋ค. // Request ํด๋์ค public class Request { private final String name; public Request(String name) { this.name = name; } public String getName() .. 2022. 2. 21. Dev Study #3 (feat. Design Pattern) [์๋ฐ ์ธ์ด๋ก ๋ฐฐ์ฐ๋ ๋์์ธ ํจํด ์ ๋ฌธ] ๋์๋ฅผ ์ฝ๊ณ ๊ณต๋ถํ ๋ด์ฉ์ ๋๋ค. Single Threaded Execution ํจํด ํ๋์ ์ฐ๋ ๋๋ง์ด ์ฒ๋ฆฌ๋ฅผ ์คํํ ์ ์๋๋ก ์ ํ์ ๋ ํจํด (ํ๋์ ์ฐ๋ ๋๊ฐ ์ธ์คํด์ค์ ์ํ๋ฅผ ๋ณํ์ํค๊ณ ์๋ ๋์ค์๋ ๋ค๋ฅธ ์ฐ๋ ๋๊ฐ ์ธ์คํด์ค์ ์ ๊ทผํ์ง ๋ชปํ๋๋ก ํ๋ ํจํด) ๋ฐ๋๋ฝ (deadlock) ๋ ๊ฐ์ ์ฐ๋ ๋๊ฐ ๋ ๊ฐ์ ๋ฝ์ ์ฐจ์งํ์ฌ ์๋ก ์๋์ ์ฐ๋ ๋๊ฐ ๋ฝ์ ํด์ ํ๋ ๊ฒ์ ๊ธฐ๋ค๋ฆฌ๋ ํ์ ๋ฐ๋๋ฝ์ ์ผ์ผํจ ์ฐ๋ ๋๋ ์ด๋ป๊ฒ ํด๋ ์์ง์ด์ง ์๊ฒ ๋๋ฏ๋ก ์์กด์ฑ์ ์๋๋ค. ๋ฐ๋๋ฝ ์กฐ๊ฑด ๋ณต์์ SharedResource (๊ณต์ ์์) ์ญํ ์ ํ๋ ์ธ์คํด์ค๊ฐ ์์ ๋ ์ฐ๋ ๋๊ฐ ์ด๋ค SharedResource ์ญํ ์ ๋ฝ์ ๊ฐ์ง ์ฑ ๋ค๋ฅธ SharedResource ์ญํ ์ ๋ฝ์ ๊ฐ์ง๋ฌ ๊ฐ .. 2022. 2. 18. Dev Study #2 (feat. JAVA) [์๋ฐ ์ธ์ด๋ก ๋ฐฐ์ฐ๋ ๋์์ธ ํจํด ์ ๋ฌธ] ๋์๋ฅผ ์ฝ๊ณ ๊ณต๋ถํ ๋ด์ฉ์ ๋๋ค. UML (Undefined Modeling Language) ์์คํ ์ ์์ํํ๋ ๋ฐฉ๋ฒ์ด๋ ์ค๊ณ๋ฅผ ๋ฌธ์ํํ๊ธฐ ์ํ ํํ ๋ฐฉ๋ฒ (ex. ํด๋์ค ๋ค์ด์ด๊ทธ๋จ) ์ฐ๋ ๋ (Thread) ํ๋ก๊ทธ๋จ์ ์คํํ๊ณ ์๋ ์ฃผ์ฒด ์ฑ๊ธ ์ฐ๋ ๋ ํ๋ก๊ทธ๋จ (Single Thread Program) ํ๋ก๊ทธ๋จ ์ฒ๋ฆฌ๊ฐ ํ๋์ ํ๋ฆ์ผ๋ก ์ด์ด์ง๋ ํ๋ก๊ทธ๋จ ์ด๋ค ์์ ์ ์คํ๋๊ณ ์๋ ์ฒ๋ฆฌ๋ ํ๋์ด๋ค. ๋ฉ์ธ ์ฐ๋ ๋ (Main Thread) ๋ช ๋ น์ด ์ค์์ ์ง์ ํ ํด๋์ค์ main ๋ฉ์๋๋ฅผ ์คํ ๋ฉํฐ ์ฐ๋ ๋ ํ๋ก๊ทธ๋จ (Multithreaded Program) ๋ณต์์ ์ฐ๋ ๋๊ฐ ๋์ํ๋ ํ๋ก๊ทธ๋จ (์๋ฐ๋ default ๋ก ๋ฉํฐ ์ฐ๋ ๋ ์ ์ฉ๋์ด ์๋ค.) Thread ํด๋์ค run .. 2022. 2. 18. Dev Study #1 BackEnd Web Server ์ WAS ์ ์ฐจ์ด์ Web Server => ์ํํธ์จ์ด + ํ๋์จ์ด 1) ์ ์ ์ธ ์ปจํ ์ธ ์ ๊ณตํ๋ฉฐ WAS ๋ฅผ ๊ฑฐ์น์ง ์๊ณ ๋ฐ๋ก ์์์ ์ ๊ณตํ๋ค. 2) ์น ๋ธ๋ผ์ฐ์ ํด๋ผ์ด์ธํธ๋ก๋ถํฐ http ์์ฒญ(Request) ์ ๋ฐ์ WAS ์ ๋ณด๋ด๊ณ WAS ๊ฐ ์ฒ๋ฆฌํ ๊ฒฐ๊ณผ๋ฅผ ํด๋ผ์ด์ธํธ์๊ฒ ์ ๋ฌ (Response) Apache Server, NginX ๋ฑ WAS (Web Application Server) => Web Server + Web Container (์ํํธ์จ์ด ์์ง) 1) ๋์ ์ธ ์ปจํ ์ธ ์ ๊ณต์ ์ํด ๋ง๋ค์ด์ง Application Server 2) JSP, Servlet ๊ตฌ๋ ํ๊ฒฝ์ ์ ๊ณตํ๋ค. 3) Web Server ๊ธฐ๋ฅ์ ๊ตฌ์กฐ์ ์ผ๋ก ๋ถ๋ฆฌํ์ฌ ์ฒ๋ฆฌํ๊ณ ์ ํ๋ ๋ชฉ์ ex) ๋ถ์ฐ.. 2022. 2. 16. [Book Review] ์ธ์์ ์ค์ ์ด๋ค ์ฑ ์ ์ ์ฝ์์ง ๋๋ฌด ์ค๋๋๋ค. ์ถํด๊ทผํ ๋ ํธ๋ 1์๊ฐ ์ ๋ ๊ฑธ๋ฆฌ๋๋ฐ ์ด๋ ๊ทธ๋ ํ๋ฃจ์ ๋ด์ค๋ฅผ ๋ณด๊ณ ๋๋ฉด ๋ฑํ ํ ๊ฒ ์์ด์ ์ฑ ์ ์ฝ์ด๋ณผ๊น ํ๋ ์๊ฐ์ด ๋ค์๋ค. ๊ทธ๋ ๋ค๋ฉด ์ญ์ e๋ถ์ด ํธํ๊ธฐ์ ๋ด๊ฐ ์ ์ฉํ๋ ๊ต๋ณด๋ฌธ๊ณ ์ฌ์ดํธ์ ๋ค์ด๊ฐ์ e๋ถ์ ๊ตฌ๊ฒฝํ๋ค. ์ฝ๊ณ ์ถ์ ์ฑ ์ ๋ง์๋๋ฐ ๋ญ ์ฝ์ผ๋ฉด ์ข์์ง ๊ณ ๋ฏผํ๋ค๊ฐ ๋ฒ ์คํธ์ ๋ฌ 1์์ ์ธ์์ ์ค์ ์ด๋ค ์ฑ ์ด ์๋ ๊ฑธ ๋ณด๊ณ "๋ฒ ์คํธ์ ๋ฌ๋ฅผ ํ๋ฒ ๋ฏฟ์ด๋ณด์!!" ํด์ e๋ถ์ ๊ตฌ๋งคํ๋ค๐ ๋๋ ๋ฒ ์คํธ์ ๋ฌ ๋ณด๋ค๋ ์คํ ๋์ ๋ฌ๋ฅผ ์ ๋ขฐํ๋ ํธ์ด๊ธด ํ์ง๋ง "์ ์ฑ ์ด ๋ฒ ์คํธ์ ๋ฌ๊ฐ ๋ ์ด์ ๊ฐ ์๊ฒ ์ง.." ํ๋ ์๊ฐ์ผ๋ก ๋ ์๋ฅผ ์์ํ๋ค. ์ด์ ์ฌํ ์ด๋ ์์ด ๋ ๋งํผ ์ธ์์ ์ค์ ์ด๋ค ์ฑ ์ ์ ๋ชฉ๋ถํฐ ๋ง์์ ์๋ฟ์๋ค. ์ฑ ์ ์ฝ๊ธฐ ์ ์ด์์ง๋ง ๋ญ๊ฐ ๋ฐฐ์ธ๊ฒ ๋ง์ ๊ฒ ๊ฐ๋ค๋ ์๊ฐ์ด ๋ค์๋ค. ํ ์ฑํฐ์ฉ ์ฝ์ผ.. 2021. 10. 7. ์ด์ 1 ๋ค์