๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

๊ธ€์“ฐ๋Š” ๊ฟ€๋ฒŒ ๐Ÿ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.