2021/06 10

F021 - Web Server, WAS, CGI

โœ๏ธ ์ž๋ฐ”์˜ ์‹ ์„ ๋(?)๋‚ด๊ณ  ์ด์ œ JSP ๊ณต๋ถ€๋ฅผ ์‹œ์ž‘ํ•˜๊ฒŒ ๋˜๋ฉด์„œ ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ Web Server์™€ WAS ์— ๋Œ€ํ•ด์„œ ๊ณต๋ถ€ํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ์ด ๋‘ ์„œ๋ฒ„ ๊ฐœ๋…์— ๋Œ€ํ•ด ์‚ดํŽด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ง€๊ณ ์ž ํ•œ๋‹ค. Web Server Web Server(์ดํ•˜ ์›น ์„œ๋ฒ„)๋Š” ๋ง ๊ทธ๋Œ€๋กœ HTTP ํ†ต์‹ ์„ ํ•˜๊ธฐ ์œ„ํ•œ ์„œ๋ฒ„์ด๋‹ค. ํด๋ผ์ด์–ธํŠธ์—์„œ HTTP ํ”„๋กœํ† ์ฝœ์— ๋Œ€ํ•œ ์š”์ฒญ์„ ์›น ์„œ๋ฒ„์—์„œ ๋ฐ›์œผ๋ฉด ์ด์— ๋Œ€ํ•œ ์‘๋‹ต์œผ๋กœ ์ •์  ์ปดํฌ๋„ŒํŠธ ํŒŒ์ผ์„ ํด๋ผ์ด์–ธํŠธ์—๊ฒŒ ์‘๋‹ตํ•œ๋‹ค. ์ด ๋•Œ, ์ •์  ์ปดํฌ๋„ŒํŠธ ํŒŒ์ผ๋กœ๋Š” ๋Œ€ํ‘œ์ ์œผ๋กœ HTML, CSS, ์Šคํฌ๋ฆฝํŠธ ํŒŒ์ผ ๋“ฑ์ด ์กด์žฌํ•œ๋‹ค. ์›น ์„œ๋ฒ„๋Š” ํ•˜๋“œ์›จ์–ด์™€ ์†Œํ”„ํŠธ์›จ์–ด ๊ด€์ ์œผ๋กœ ๋‚˜๋ˆ„์–ด ๋ฐ”๋ผ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ“ Hardware : ์š”์ฒญ์— ๋Œ€ํ•ด์„œ ์ „๋‹ฌํ•˜๊ณ ์ž ํ•˜๋Š” ์ปดํฌ๋„ŒํŠธ ํŒŒ์ผ์„ ์ €์žฅํ•˜๋Š” ์ปดํ“จํ„ฐ์ด๋‹ค. ์›น ์„œ๋ฒ„ ์ปดํ“จํ„ฐ๋Š”..

Network 2021.06.29

F020 - L4 Switch

โœ๏ธ ์†Œ์ผ“ ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ OSI 7 Layer, TCP/IP ๋ชจ๋ธ์— ๋Œ€ํ•ด ๋ฉ˜ํ† ๋ง ์‹œ๊ฐ„์— ์ž์—ฐ์Šค๋Ÿฝ๊ฒŒ ๋กœ๋“œ ๋ฐธ๋Ÿฐ์‹ฑ๊ณผ ์„œ๋ฒ„ ๊ณผ๋ถ€ํ•˜๋ฅผ ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐฉ๋ฒ•์— ๋Œ€ํ•œ ์ฃผ์ œ๊ฐ€ ๋‚˜์™”๋‹ค. ํ•˜์ง€๋งŒ ํ•ด๋‹น ์ฃผ์ œ๋กœ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ„๋ฉด์„œ ๋Œ€๋ถ€๋ถ„์˜ ์šฉ์–ด๋ฅผ ์ดํ•ดํ•˜์ง€ ๋ชปํ–ˆ๊ธฐ์— ์ด๋ฒˆ ์‹œ๊ฐ„์„ ํ†ตํ•ด์„œ L4 ์Šค์œ„์น˜์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค! ๊ฐ ๊ณ„์ธต ๋ณ„ ์‚ฌ์šฉ๋˜๋Š” ์žฅ๋น„ ๐Ÿ“ L1 - ํ—ˆ๋ธŒ, ๋ฆฌํ”ผํ„ฐ : ๋น„ํŠธ ์‹ ํ˜ธ๋ฅผ ์ „๊ธฐ ์‹ ํ˜ธ ๋ฐ”๊ฟ” ์†ก์‹ ํ•˜๊ฑฐ๋‚˜ ๊ทธ ๋ฐ˜๋Œ€๋กœ ์ „๊ธฐ ์‹ ํ˜ธ๋ฅผ ๋ฐ์ดํ„ฐ ๋งํฌ ๊ณ„์ธต์— ์†ก์‹ ํ•˜๊ธฐ ์œ„ํ•ด ๋น„ํŠธ ์‹ ํ˜ธ๋กœ ๋””์ฝ”๋”ฉ ํ•˜๋Š” ๊ณผ์ •์„ ์ˆ˜ํ–‰ํ•œ๋‹ค. ์ด์— ์†ํ•˜๋Š” ์žฅ๋น„๋กœ๋Š” ํ—ˆ๋ธŒ, ๋ฆฌํ”ผํ„ฐ ๋“ฑ์ด ์žˆ์œผ๋ฉฐ ๊ณผ๊ฑฐ์˜ ํ—ˆ๋ธŒ(๋”๋ฏธ ํ—ˆ๋ธŒ)๋Š” ์—ฐ๊ฒฐ๋œ ๋ชจ๋“  ์žฅ๋น„์—๊ฒŒ ๋ฐ์ดํ„ฐ๋ฅผ ์ „์†กํ•˜๊ณ , ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์‹ ํ•œ ์žฅ๋น„๋Š” ํ—ค๋”๋ฅผ ํ•ด์ฒดํ•˜์—ฌ MAC ์ฃผ์†Œ๋ฅผ ํ™•์ธํ•˜๊ณ  ํ•ด๋‹น ์ฃผ์†Œ์™€ ์ž์‹ ์˜ ์ฃผ์†Œ๊ฐ€ ๋‹ค๋ฅด๋‹ค๋ฉด ..

Network 2021.06.28

Week 8

Week 8 : ์Šคํ„ฐ๋””์Šคํ„ฐ๋””์Šคํ„ฐ๋”” โœ๏ธ 6์›” ๋„ท์งธ ์ฃผ ๋ฉ˜ํ† ๋ง! ์ด๋ฒˆ ์ฃผ์—๋Š” ํ•จ๊ป˜ํ•˜๋Š” ๋ฉ˜ํ‹ฐ๋‹˜๊ณผ ์ž์นญ ๋ชจ๊ฐ์—ช ์Šคํ„ฐ๋””๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๊ณผ์ œ๋กœ ์ฃผ์–ด์ง„ ์ฃผ์ œ๋ฅผ ๊ณต๋ถ€ํ–ˆ๋‹ค. ์˜จ๋ผ์ธ์œผ๋กœ ๋ชจ์—ฌ์„œ ์ฃผ์ œ๋ฅผ ์ •ํ•˜๊ณ  ํ•ด๋‹น ์ฃผ์ œ๋ฅผ ๊ฐ์ž ์ฃผ์–ด์ง„ ์‹œ๊ฐ„๋งŒํผ ๊ณต๋ถ€ํ•œ ๋‹ค์Œ ๊ฐ์ž ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ๋‚˜๋ˆ„๋Š” ๋ฐฉ์‹์œผ๋กœ ์ง„ํ–‰ํ–ˆ๋Š”๋ฐ, ์ฒ˜์Œ ํ•ด๋ณด๋Š” ๋ฐฉ์‹์ด์˜€์ง€๋งŒ ํ˜ผ์ž ๊ณต๋ถ€ํ•˜๊ฑฐ๋‚˜ ๋‹ค๋ฅธ ์Šคํ„ฐ๋”” ๋ฐฉ๋ฒ•๋ณด๋‹ค ํ›จ์”ฌ ์ง‘์ค‘๋„ ์ž˜๋˜๊ณ  ๋ฌด์—‡๋ณด๋‹ค ์„œ๋กœ ์ด์•ผ๊ธฐ๋ฅผ ๋‚˜๋ˆ„๋ฉด์„œ ์ •๋ฆฌ๋˜๋Š” ๊ณผ์ •์ด ์žˆ์–ด์„œ ์ •๋ง ์ข‹์•˜๋‹ค! ๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ์˜ค๋Š˜ ๋ฉ˜ํ† ๋ง ์‹œ๊ฐ„์—๋„ ๋ชจ๋ฅด๋Š” ๋‚ด์šฉ์ด ๋‚˜์™€์„œ ์ ์ž–ํžˆ ๋‹นํ™ฉํ–ˆ์ง€๋งŒ.. ๋ชจ๋ฅด๋Š” ๋‚ด์šฉ์€ ๊ณต๋ถ€ํ•˜๋ฉด ๋˜๋‹ˆ๊นŒ! ์ด์ œ ์˜ค๋Š˜ ๋ฉ˜ํ† ๋ง ํ•œ ๋‚ด์šฉ๋“ค์„ ์ •๋ฆฌํ•ด๋ณด์ž! 1. OSI 7 Layer ๋„คํŠธ์›Œํฌ ํ†ต์‹ ์ด ์ผ์–ด๋‚˜๋Š” ๊ณผ์ •์„ ๊ณ„์ธต ๋ณ„๋กœ ๋‚˜๋‰˜์–ด ๋†“์€ ๋„คํŠธ์›Œํฌ ๋ชจ๋ธ ์ค‘ ํ•˜๋‚˜์ด๋‹ค. OSI ..

์‚ถ/F-Lab 2021.06.25

F019 - Socket

โœ๏ธ ์ด์ „ ์‹œ๊ฐ„์— IO์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๋ฉด์„œ ํŒŒ์ผ์„ ์ €์žฅํ•˜๋Š” ๊ฒƒ๊ณผ ๋„คํŠธ์›Œํฌ ํ†ต์‹ ๊ณผ๋Š” ์ „ํ˜€ ๊ด€๋ จ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๋Š”๋ฐ, ํ•˜๋‚˜ ๋‘˜ ์”ฉ ๊ณต๋ถ€ํ•˜๋‹ค ๋ณด๋‹ˆ ํ•˜๋‚˜์˜ ๋ฟŒ๋ฆฌ์—์„œ ์‹œ์ž‘๋˜์—ˆ๋‹ค๋Š” ๊ฒƒ์„ ์•Œ๊ฒŒ๋˜์—ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ๊ทธ ์—ฐ์žฅ์œผ๋กœ Socket ํ†ต์‹ ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด๋ ค๊ณ  ํ•œ๋‹ค. Socket Socket(์ดํ•˜ ์†Œ์ผ“)์€ ๋ฌด์—‡์ผ๊นŒ? ์ผ์ƒ์—์„œ ๋ณผ ์ˆ˜ ์žˆ๋Š” ์ฝ˜์„ผํŠธ ์†Œ์ผ“์ผ ์ˆ˜๋„ ์žˆ๊ณ , ์ „๊ตฌ๋ฅผ ๋ผ์šฐ๋Š” ์†Œ์ผ“์ผ ์ˆ˜๋„ ์žˆ๊ณ , ์šฐ๋ฆฌ๊ฐ€ ์ง€๊ธˆ ๊ณต๋ถ€ํ•˜๋ ค๊ณ  ํ•˜๋Š” ์†Œ์ผ“์ด๋ผ๋Š” ํ”„๋กœํ† ์ฝœ์ผ ์ˆ˜๋„ ์žˆ๋‹ค. ์ด๋“ค์˜ ๊ณตํ†ต์ ์€ A์™€ B๋ฅผ ์—ฐ๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ํ•„์š”ํ•œ ์กด์žฌ๋ผ๋Š” ๊ฒƒ์ด๋‹ค. A socket is an endpoint for communication between two machines. ์†Œ์ผ“์€ ๋‘ ๊ธฐ๊ธฐ ๊ฐ„์˜ ํ†ต์‹ ์„ ์œ„ํ•œ ์—”๋“œํฌ์ธํŠธ์ด๋‹ค. - Java 8 Referenc..

Programming/Java 2021.06.22

Week 7

Week 7 : ๋” ๊ผผ๊ผผํžˆ ์ •๋ฆฌํ•˜๊ธฐ โœ๏ธ 6์›” ์…‹์งธ ์ฃผ ๋ฉ˜ํ† ๋ง! ์ง€๋‚œ ๋ช‡ ์ฃผ ๋™์•ˆ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ๋ธ”๋กœ๊ทธ์— ์ž‘์„ฑํ•˜์ง€ ๋ชปํ•ด์„œ ์ด๋ฒˆ ์ฃผ๋Š” ์ •๋ฆฌ๋ฅผ ๋ชฉํ‘œ๋กœ ํ•œ ์ฃผ๋ฅผ ๋ณด๋ƒˆ๋‹ค. ์ด๋ฒˆ ์ฃผ๋Š” IO์™€ NIO์— ๊ด€๋ จํ•œ ๋‚ด์šฉ๋“ค์„ ๊ณต๋ถ€ํ–ˆ๋Š”๋‹ค. ์ •๋ฆฌํ•  ๋•Œ๋Š” ์ด์ œ ์ข€ ์ดํ•ด๊ฐ€ ๋˜๋Š”๊ตฌ๋‚˜ ํ–ˆ๋Š”๋ฐ, ๋ง‰์ƒ ๋ฉ˜ํ† ๋ง ์‹œ๊ฐ„์— ์ง์ ‘ ์„ค๋ช…ํ•˜๋ ค๊ณ  ํ•˜๋‹ค๋ณด๋‹ˆ ์–ด๋ฒ„๋ฒ„ ๊ฑฐ๋ฆฌ๋ฉด์„œ ์š”์ ์„ ๋ฒ—์–ด๋‚œ ์ด์•ผ๊ธฐ๋งŒ ํ–ˆ๋‹ค. ์™œ ๊ทธ๋Ÿด๊นŒ ์ƒ๊ฐํ•ด๋ณด๋‹ˆ ์ง์ ‘ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด์„œ ๋Š๋ผ๋Š” ์‹œ๊ฐ„๋ณด๋‹ค ๋ธ”๋กœ๊ทธ ์„œ์น˜ํ•˜๋ฉด์„œ ๊ธ€๋กœ ์ •๋ฆฌํ•˜๋Š” ์‹œ๊ฐ„์ด ๋” ๋งŽ์•„ ํฌ๊ฒŒ ์™€๋‹ฟ์ง€ ์•Š์•˜๋˜๊ฒŒ ๊ฐ€์žฅ ํฐ ์ด์œ ๊ณ  ๋‘ ๋ฒˆ์งธ ์ด์œ ๋Š” CS์— ๋Œ€ํ•œ ์ „๋ฐ˜์ ์ธ ์ดํ•ด๊ฐ€ ๋ถ€์กฑํ•ด์„œ ์ดํ•ด์— ๋Œ€ํ•œ ์†๋„๊ฐ€ ๋Šฆ์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๋งŽ์€ ๋ฐ˜์„ฑ์˜ ์‹œ๊ฐ„์„ ๊ฐ€์ง€๋Š” ๋ฉ˜ํ† ๋ง ์‹œ๊ฐ„์ด์˜€๋‹ค..๐Ÿ˜ฟ ๊ทธ๋Ÿผ์—๋„ ๊ธฐ๋กํ•˜์ง€ ์•Š์œผ๋ฉด ๊นŒ๋จน์œผ๋‹ˆ๊นŒ ๋ฉ˜ํ† ๋ง ๋‚ด์šฉ์„ ๊ธฐ๋กํ•ด๋ณด์ž! 1. ..

์‚ถ/F-Lab 2021.06.18

F018 - Serializable (์ง๋ ฌํ™”, ์—ญ์ง๋ ฌํ™”)

โœ๏ธ ์—…๋ฌด๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ Domain ํด๋ž˜์Šค์— Serializable ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒฝ์šฐ๋ฅผ ๋ดค๋˜ ๊ฒฝํ—˜์ด ์žˆ๋Š”๋ฐ, ๋‹น์‹œ์—๋Š” ์™œ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š”์ง€ ์ฐพ์•„๋ณด์ง€ ์•Š๊ณ  ๊ฐœ๋ฐœํ–ˆ์—ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” Serializable ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์–ด๋–ค ์šฉ๋„๋กœ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๊ณต๋ถ€ํ•ด๋ณด์ž Serializable public class SerializableTest implements Serializable { ... } ์‚ฌ์ „์  ์˜๋ฏธ๋กœ๋Š” ์ง๋ ฌํ™”๋ผ๋Š” ๋œป์„ ๊ฐ€์ง„๋‹ค. ์ง๋ ฌํ™”๋Š” ๋ฌด์—‡์ผ๊นŒ? ๋ชจ๋ž˜์‹œ๊ณ„ ์•ˆ์— ์žˆ๋Š” ๋ชจ๋ž˜๋ญ‰์น˜๊ฐ€ ์ข์€ ํ†ต๋กœ๋ฅผ ํ†ต๊ณผ ํ•  ๋•Œ ๊ฐ๊ฐ์˜ ์•Œ๊ฐฑ์ด๋กœ ๋‚˜๋‰˜์–ด์ ธ ์ง€๋‚˜๊ฐ€๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ, ์ด๋Š” Serializable ๊ณผ ๋น„์Šทํ•˜๋‹ค๊ณ  ์ƒ๊ฐ๋œ๋‹ค. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ์™ธ๋ถ€์™€ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›๊ธฐ ์œ„ํ•ด์„œ Stream ์ด์šฉํ•˜์—ฌ ํ†ต์‹ ํ•˜๋Š”๋ฐ, ์ด ๋•Œ Str..

Programming/Java 2021.06.16

F017 - Blocking, Non-Blocking / Synchronous, Asynchronous

โœ๏ธ ์˜ˆ์ „์— Node.js๋ฅผ ์ž ๊น ๊ณต๋ถ€ํ•˜๋ฉด์„œ ๊ธฐ์ดˆ ์ง€์‹์„ ์Œ“๋Š”๋‹ค๊ณ  ํ•ด๋‹น ๊ฐœ๋…์„ ์Šค์ณ ์ง€๋‚˜๊ฐ€ ๋“ฏ ์ฐพ์•„ ๋ดค๋˜ ๊ธฐ์–ต์ด ์žˆ๋‹ค. ๋ธ”๋กœ๊ทธ์— ์ •๋ฆฌ๋„ ํ–ˆ๋˜ ๊ฒƒ ๊ฐ™์€๋ฐ, ๋‹น์‹œ์—๋Š” Thread์™€ Process ๊ทธ๋ฆฌ๊ณ  ์ด๋กœ ์ธํ•ด ์šด์˜์ฒด์ œ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ž‘๋™ํ•˜๋Š”์ง€ ์กฐ๊ธˆ๋„ ์•Œ์ง€ ๋ชปํ–ˆ๊ธฐ ๋•Œ๋ฌธ์— ์ „ํ˜€ ์ดํ•ด๊ฐ€ ์•ˆ๋œ ์ƒํƒœ๋กœ ๊ธ€๋งŒ ์ •๋ฆฌํ–ˆ์—ˆ๋‹ค. (๋ณต๋ถ™ ์ˆ˜์ค€) ์ด๋ฒˆ ์‹œ๊ฐ„์—๋Š” ๊ทธ๋ž˜๋„ ์œ„์˜ ๊ฐœ๋…์— ๋Œ€ํ•ด ๋ฏธ์•ฝํ•˜๊ฒŒ๋‚˜๋งˆ ์ •๋ฆฌ๊ฐ€ ๋˜์—ˆ์œผ๋‹ˆ ์ด๋ฅผ ๋ฐœํŒ์œผ๋กœ ๋™๊ธฐ์™€ ๋น„๋™๊ธฐ, Blocking๊ณผ Non-Blocking์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด์ž! Blocking / Non-Blocking Blocking : ์–ด๋– ํ•œ ํ–‰์œ„์— ์˜ํ•ด ์ž์‹ ์˜ ํ–‰์œ„๋ฅผ ์ด์–ด์„œ ์ˆ˜ํ–‰ํ•˜์ง€ ๋ชปํ•˜๊ฑฐ๋‚˜ ๋ง‰ํžˆ๋Š” ๊ฒƒ. Non-Blocking : ์–ด๋– ํ•œ ํ–‰์œ„์— ๊ตฌ์•  ๋ฐ›์ง€ ์•Š๊ณ  ์ž์‹ ์˜ ํ–‰์œ„๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ. Sync /..

Programming/Java 2021.06.15

F016 - File, I/O, Stream

โœ๏ธ ์‹ค๋ฌด์—์„œ ์—‘์…€์ด๋‚˜ CSV ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œํ•˜๊ฑฐ๋‚˜ ์—…๋กœ๋“œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ–ˆ๋˜ ๊ฒฝํ—˜์ด ์žˆ๋Š”๋ฐ, ์—‘์…€์˜ ๊ฒฝ์šฐ Apache ์žฌ๋‹จ์—์„œ ์ œ๊ณตํ•˜๋Š” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•ด์„œ ๊ตฌํ˜„ํ–ˆ๊ณ , CSV์˜ ๊ฒฝ์šฐ ByteArrayInputStream ์œผ๋กœ ๊ตฌํ˜„ํ–ˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋‹น์‹œ์—๋Š” ๊ทธ๋ƒฅ ์ด ํด๋ž˜์Šค๋ฅผ ์“ฐ๋ฉด ํŒŒ์ผ์„ ๋‹ค์šด๋กœ๋“œ/์—…๋กœ๋“œ ํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ๋งŒ ์•Œ๊ณ  ์–ด๋–ป๊ฒŒ ๋‹ค์šด๋กœ๋“œ/์—…๋กœ๋“œ๋ฅผ ํ•  ์ˆ˜ ์žˆ๋Š”์ง€ ์•Œ์ง€ ๋ชปํ–ˆ๋‹ค. ์ด๋ฒˆ ์‹œ๊ฐ„์„ ํ†ตํ•ด I/O, File, I/O Stream ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•ด๋ณด์ž! File java.io ํŒจํ‚ค์ง€์— ์†ํ•˜๋Š” ํด๋ž˜์Šค๋กœ ํŒŒ์ผ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ํŒŒ์ผ์˜ ๊ฒฝ๋กœ๊นŒ์ง€ ํฌํ•จํ•˜๋Š” ํฌ๊ด„์ ์ธ ํด๋ž˜์Šค์ด๋‹ค. ๋•Œ๋ฌธ์— ๋ชฉ์ ์˜ ๋ชจํ˜ธ์„ฑ ๋•Œ๋ฌธ์— Java 7 ๋ถ€ํ„ฐ NIO2 ํŒจํ‚ค์ง€๋ฅผ ์ œ๊ณตํ•˜๋ฉด์„œ Files ํด๋ž˜์Šค๊ฐ€ ์ถ”๊ฐ€๋˜๋Š”๋ฐ, ์ด๋Š” File ํด๋ž˜์Šค ๋Œ€๋ถ€๋ถ„์˜ ๋ฉ”์†Œ..

Programming/Java 2021.06.14

Week 6

Week 6 : ๋ถ€์กฑํ•œ CS โœ๏ธ 6์›” ๋‘˜์งธ ์ฃผ ๋ฉ˜ํ† ๋ง์„ ๋งˆ๋ฌด๋ฆฌํ–ˆ๋‹ค. ์ด๋ฒˆ ์ฃผ๋Š” ์ž๋ฐ”์˜ ์‹ ์„ ์ตœ๋Œ€ํ•œ ๋งŽ์ด ์ฝ์–ด๋ณด๋Š” ๊ฒƒ์ด ๋ชฉํ‘œ์˜€๋Š”๋ฐ, ๊ฐ€์กฑ ์—ฌํ–‰์ด๋ž‘ ์ผ์ •์ด ๊ฒน์ณ์„œ ์ตœ๋Œ€ํ•œ ์—ฌํ–‰์ง€์—์„œ ๊ณต๋ถ€ํ–ˆ์ง€๋งŒ ์‹œ๊ฐ„์ด ๋ถ€์กฑํ–ˆ๋˜ ํ•œ ์ฃผ์˜€๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์Šค๋ ˆ๋“œ ์ฑ•ํ„ฐ๊ฐ€ ๊ธฐ๋ณธ์ ์œผ๋กœ CS ์ง€์‹๊ณผ ์šด์˜์ฒด์ œ์— ๋Œ€ํ•œ ์ดํ•ด๊ฐ€ ์žˆ์–ด์•ผ ๋น ๋ฅด๊ฒŒ ์ดํ•ด ํ•  ์ˆ˜ ์žˆ๋Š” ์˜์—ญ์ด๋ผ ์—ฌ๋Ÿฌ ๊ฐ€์ง€๋ฅผ ํ•œ ๋ฒˆ์— ๊ณต๋ถ€ํ•˜๋ ค๊ณ  ํ•˜๋‹ค๋ณด๋‹ˆ ํ•ด๋‹น ์ฑ•ํ„ฐ์—์„œ ๋งŽ์€ ์‹œ๊ฐ„์ด ์†Œ์š” ๋๋‹ค. ๊ทผ๋ฐ ์ •์ž‘ ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ๋“ค์ด ๋‹ค ๋‚ด ๊ฒƒ์ด ๋˜์—ˆ๋‚˜? ๋˜๋Œ์•„๋ณด๋ฉด ๋˜ ๊ทธ๋ ‡์ง€ ์•Š์€ ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ž˜๋„ ์˜ค๋Š˜ ๋ฉ˜ํ† ๋ง ๋‚ด์šฉ์„ ์žŠ์ง€ ์•Š๋„๋ก ์ •๋ฆฌํ•ด๋ณด์ž! 1. Synchronized ๋ฉ€ํ‹ฐ ์Šค๋ ˆ๋“œ ํ™˜๊ฒฝ์—์„œ ํ•ด๋‹น ์ œ์–ด์ž๊ฐ€ ์„ ์–ธ๋œ ๋ฉ”์†Œ๋“œ๋‚˜ ๋ธ”๋ก์— ์ ‘๊ทผ ์‹œ ๋ฐœ์ƒ ํ•  ์ˆ˜ ์žˆ๋Š” ๋™์‹œ์„ฑ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰, ์Šค๋ ˆ๋“œ ๊ฐ„ ๋™..

์‚ถ/F-Lab 2021.06.11

Week 5

Week 5 : ์ดํ•ดํ•˜๋Š”๋ฐ ํ•œ ์„ธ์›” โœ๏ธ 6์›” ์ฒซ์งธ ์ฃผ ๋ฉ˜ํ† ๋ง์„ ์‹œ์ž‘ํ–ˆ๋‹ค! ์ง€๊ธˆ๊นŒ์ง€ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ดํ•ด์˜ ๋น„์ค‘๋ณด๋‹ค๋Š” ๋ธ”๋กœ๊ทธ์™€ ๋…ธ์…˜์— ๊ธ€์„ ์˜ฌ๋ ค์•ผ ํ•œ๋‹ค๋Š” ๊ฐ•๋ฐ•์ด ์ ์  ์‹ฌํ•ด์ง€๋Š” ๊ฒƒ์„ ๋Š๊ปด์„œ ์ด๋ฒˆ ์ฃผ์—๋Š” ๊ธ€์„ ์ž‘์„ฑํ•˜๊ธฐ ๋ณด๋‹จ ์•„์ดํŒจ๋“œ์— ๊ทธ๋ ค๊ฐ€๋ฉด์„œ ์กฐ๊ธˆ ๋” ์ดํ•ดํ•œ ๋’ค์— ๊ธ€์„ ์ž‘์„ฑํ•˜๋ ค๊ณ  ํ–ˆ๋˜ ํ•œ ์ฃผ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฒŒ์‹œ๊ธ€๋„ ํ•˜๋‚˜๋ฐ–์— ์ž‘์„ฑํ•˜์ง€ ๋ชปํ–ˆ๋Š”๋ฐ, ๊ทธ ๊ธ€๋„ ์ˆ˜์ •ํ•  ๋‚ด์šฉ์ด ์‚ฐ๋”๋ฏธ๋‹ค. ์ฑ…์„ ๋น ๋ฅด๊ฒŒ ์ฝ์œผ๋ฉด์„œ 5์ฃผ์ฐจ์— ๊ณต๋ถ€ํ•œ ๋‚ด์šฉ์„ ์ •๋ฆฌํ•ด์•ผ๊ฒ ๋‹ค! ์ด๋ฒˆ ์ฃผ๋Š” Collection Framework์— ๋Œ€ํ•ด ์ง‘์ค‘์ ์œผ๋กœ ๊ณต๋ถ€ํ–ˆ๊ณ , Set๊ณผ Map ๊ทธ๋ฆฌ๊ณ  ์Šค๋ ˆ๋“œ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ–ˆ๋‹ค. (์Šค๋ ˆ๋“œ๋Š” ๋ง›๋ณด๊ธฐ ์Šคํ‘ผ์ •๋„๋งŒ) 1. Generic Type Erasure ๊ธฐ์กด์—๋Š” ํƒ€์ž… ์ฒดํฌ๋ฅผ ๋Ÿฐํƒ€์ž„ ์‹œ์ ์—์„œ ์ˆ˜ํ–‰ํ•ด์„œ ์ž˜๋ชป๋œ ํƒ€์ž…์œผ๋กœ ์บ์ŠคํŒ… ํ–ˆ์„ ๊ฒฝ์šฐ Cla..

์‚ถ/F-Lab 2021.06.03