๋ชฉ๋กโœ๏ธ (25)

DevLog ๐Ÿ˜ถ

[Network] ํ”„๋กœํ† ์ฝœ ์Šคํƒ์˜ ๋ฐ์ดํ„ฐ ์†ก/์ˆ˜์‹ , ๋ง์†Œ ๊ณผ์ • ์•Œ์•„๋ณด๊ธฐ

์ €๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ํ”„๋กœํ† ์ฝœ ์Šคํƒ ๋ฐ, ์œ„์—์„œ ์†Œ์ผ“ ์ž‘์„ฑ์— ๋Œ€ํ•œ ๋ถ€๋ถ„์„ ์•Œ์•„๋ณด์•˜์—ˆ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ๊ตฌ์ฒด์ ์œผ๋กœ ํ”„๋กœํ† ์ฝœ ์Šคํƒ์˜ ๋ฐ์ดํ„ฐ ์†ก์ˆ˜์‹  ๋ฐ ๋ง์†Œ ๊ณผ์ •์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค. โœ”๏ธ ์†Œ์ผ“์— ์ ‘์†ํ•˜๊ธฐ ์†Œ์ผ“์„ ๋งŒ๋“ค๋ฉด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ (๋ธŒ๋ผ์šฐ์ €)๋Š” connect()๋ฅผ ํ˜ธ์ถœํ•˜๊ณ , ํ”„๋กœํ† ์ฝœ ์Šคํƒ์€ ๋ณธ์ธ ์ชฝ์˜ ์†Œ์ผ“์„ ์„œ๋ฒ„ ์ธก์— ์ ‘์†ํ•œ๋‹ค. ์ด๋”๋„ท์ด๋‚˜ ํ†ต์‹  ํšŒ์„ ์€ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•ญ์ƒ ์ผ€์ด๋ธ”์ด ์—ฐ๊ฒฐ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์–ธ์ œ๋“ ์ง€ ์‹ ํ˜ธ๋ฅผ ๋ณด๋‚ผ ์ˆ˜ ์žˆ์–ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์‹ ํ˜ธ๋กœ๋งŒ ๋ณ€ํ™˜ํ•˜๋ฉด ๋œ๋‹ค. ํ•˜์ง€๋งŒ ๋งŒ์•ฝ ์†Œ์ผ“์„ ๋งŒ๋“  ๋‹ค์Œ์— ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์†ก์‹  ์˜๋ขฐ๊ฐ€ ์˜จ๋‹ค๋ฉด, ํ”„๋กœํ† ์ฝœ ์Šคํƒ์€ ์–ด๋–ป๊ฒŒ ๋ ๊นŒ? ์šฐ์„ , ๊ธฐ๋ณธ์ ์œผ๋กœ ์†Œ์ผ“์„ ์ƒ์„ฑํ•œ ๋‹ค์Œ์—๋Š” ์•„๋ฌด๊ฒƒ๋„ ์—†๊ธฐ ๋•Œ๋ฌธ์— ํ†ต์‹  ์ƒ๋Œ€๋„ ๋ชจ๋ฅธ๋‹ค. ๊ทธ๋ž˜์„œ ์˜๋ขฐ๊ฐ€ ์˜จ๋‹ค๋ฉด ๋ฐ์ดํ„ฐ๋ฅผ ์–ด๋””๋กœ ๋ณด๋‚ด๋ฉด ์ข‹์„์ง€๋„ ์•Œ ..

โœ๏ธ/Network 2023. 4. 27. 22:32
[Network] ํ”„๋กœํ† ์ฝœ ์Šคํƒ์— ๋Œ€ํ•ด์„œ ๋” ์ž์„ธํžˆ ์•Œ์•„๋ณด์ž!

์ง€๋‚œ ํฌ์ŠคํŒ…์—์„œ๋Š”, ํด๋ผ์ด์–ธํŠธ์™€ ์„œ๋ฒ„ ์‚ฌ์ด์— ์–ด๋–ค ์‹์œผ๋กœ ์†Œ์ผ“์ด ์ƒ์„ฑ๋˜๋Š”์ง€ ์•Œ์•„๋ณด์•˜๋‹ค. ๊ทธ ์‚ฌ์ด์—๋Š” ๋Š˜ 'ํ”„๋กœํ† ์ฝœ ์Šคํƒ' ์ด๋ผ๋Š” ์นœ๊ตฌ๊ฐ€ ์žˆ์—ˆ๋Š”๋ฐ, ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” ํ”„๋กœํ† ์ฝœ ์Šคํƒ์ด ๋ญ”์ง€ ์กฐ๊ธˆ ๋” ๊ตฌ์ฒด์ ์œผ๋กœ ์•Œ์•„๋ณด๊ณ ์ž ํ•œ๋‹ค. ์•ž์œผ๋กœ ํฌ์ŠคํŒ…์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ์œ—๋ถ€๋ถ„์˜ ์ ˆ์ฐจ๋“ค์„ ํ•˜๋‚˜ํ•˜๋‚˜์”ฉ ์•Œ์•„๋‚˜๊ฐˆ ์˜ˆ์ •์ด๋‹ค. โœ”๏ธ ํ”„๋กœํ† ์ฝœ ์Šคํƒ์ด๋ž€? ์œ„์˜ ๊ทธ๋ฆผ์„ ๋ณด์ž. ์ตœ์ƒ๋‹จ์˜ ๋„คํŠธ์›Œํฌ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์€ ๋ธŒ๋ผ์šฐ์ €, ์›น ์„œ๋ฒ„ ๋“ฑ์˜ ํ”„๋กœ๊ทธ๋žจ์ด ํ•ด๋‹นํ•˜๋ฉฐ, ์—ฌ๊ธฐ์„œ๋ถ€ํ„ฐ ์•„๋ž˜๋กœ ํ–ฅํ•˜๊ฒŒ ๋œ๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ด์ „ ํฌ์ŠคํŒ…๊นŒ์ง€ ๋‹ค๋ฃจ์—ˆ๋˜ ๋‚ด์šฉ์ด ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์†Œ์ผ“ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ, ๊ทธ๋ฆฌ๊ณ  ๋ฆฌ์กธ๋ฒ„๋ฅผ ํ†ตํ•ด DNS ์„œ๋ฒ„์— ์กฐํšŒํ•˜๊ณ  ์†Œ์ผ“์„ ๋งŒ๋“œ๋Š” ๊ณผ์ •๊นŒ์ง€ ๋‹ค๋ฃฌ ๊ฒƒ์ด๋‹ค. ๊ทธ ๋‹ค์Œ ๋‹จ๊ณ„๋Š” OS์˜ ๋‚ด๋ถ€์ด๋ฉฐ, ์—ฌ๊ธฐ์— ํ”„๋กœํ† ์ฝœ ์Šคํƒ์ด ์กด์žฌํ•œ๋‹ค. ํ”„๋กœํ† ์ฝœ ์Šคํƒ์€ TCP / UDP๋ผ..

โœ๏ธ/Network 2023. 4. 23. 13:00
[Network] ํ”„๋กœํ† ์ฝœ ์Šคํƒ๊ณผ ๋ฉ”์‹œ์ง€์˜ ์†ก์‹  ๊ณผ์ •

๐ŸŒฑ ๋“ค์–ด๊ฐ€๊ธฐ ์ „ ์ง€๋‚œ ํฌ์ŠคํŒ…๊นŒ์ง€๋Š” ์–ด๋–ป๊ฒŒ ๋„๋ฉ”์ธ์œผ๋กœ IP ์ฃผ์†Œ๋ฅผ ์–ป์–ด์˜ค๋Š”์ง€ ๋ฐฐ์› ๋‹ค. ์ด๋ฒˆ ํฌ์ŠคํŒ…์—์„œ๋Š” OS ๋‚ด๋ถ€์— ์žˆ๋Š” ํ”„๋กœํ† ์ฝœ ์Šคํƒ์— ์–ด๋–ป๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ์†ก์‹ ํ•˜๋„๋ก ํ•˜๋Š”์ง€, ๊ทธ ํ”Œ๋กœ์šฐ๋ฅผ ์•Œ์•„๋ณผ ์˜ˆ์ •์ด๋‹ค. โœ”๏ธ ๋ฐ์ดํ„ฐ์˜ ์†ก-์ˆ˜์‹ ์€ ์–ด๋–ป๊ฒŒ ์ผ์–ด๋‚ ๊นŒ? ์šฐ์„  ๊ธฐ๋ณธ์ ์œผ๋กœ DNS ์„œ๋ฒ„์— IP ์ฃผ์†Œ๋ฅผ ์กฐํšŒํ–ˆ๋˜ ๊ฒƒ์ฒ˜๋Ÿผ, ์ด๋ฒˆ์—๋„ ์†Œ์ผ“ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ™œ์šฉํ•œ๋‹ค. ์œ„ ๊ทธ๋ฆผ์„ ๋ณด๋ฉด, ์–ด๋–ค ํŒŒ์ดํ”„ ๊ฐ™์€ ๊ฒƒ์„ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ํ๋ฅด๊ณ  ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์‹ค์ฒดํ™”๋œ ๊ฒƒ์€ ์•„๋‹ˆ๊ณ , ๊ทธ์ € '๋ฐ์ดํ„ฐ์˜ ํ†ต๋กœ'๋กœ์„œ ํ•œ์ชฝ ๋์—์„œ ๋‹ค๋ฅธ ์ชฝ ๋๊นŒ์ง€ ํŒŒ์ดํ”„๋ฅผ ํ†ตํ•ด์„œ ๋ฐ์ดํ„ฐ๊ฐ€ ํ๋ฅด๋Š” ๊ฒƒ์ด๋‹ค. ์—ฌ๊ธฐ์„œ '์†Œ์ผ“'์ด๋ผ๋Š” ์นœ๊ตฌ๊ฐ€ ์žˆ๋Š” ๊ฒƒ์„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ํŒŒ์ดํ”„์˜ ์–‘๋์— ์กด์žฌํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์ถœ์ž…๊ตฌ์ด๋‹ค. ์„œ๋ฒ„๊ฐ€ ์†Œ์ผ“์„ ๋งŒ๋“ค๊ณ , ํด๋ผ์ด์–ธํŠธ์—์„œ๋„ ์†Œ์ผ“์„ ๋งŒ๋“ค์–ด์„œ ํŒŒ์ด..

โœ๏ธ/Network 2023. 4. 22. 16:54
๋ถˆ๋ณ€๊ฐ์ฒด๋กœ ๋งŒ๋“œ๋Š” ๊ฒƒ์ด ํ•ญ์ƒ ์ข‹์„๊นŒ? - Value Object vs Reference Object

๐ŸŒฑ ๋“ค์–ด๊ฐ€๊ธฐ ์ „ ์ด๋ฒˆ ์ž๋™์ฐจ ๊ฒฝ์ฃผ ๋ฏธ์…˜์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋ ˆ๋ฒจ 1 ๋•Œ ํ–ˆ๋˜ ์ฝ”๋“œ๋ฅผ ๋ฆฌํŒฉํ„ฐ๋ง์„ ํ•˜๋‹ค ๋ณด๋‹ˆ ํŽ˜์–ด์™€ '๋ถˆ๋ณ€ ๊ฐ์ฒด๋กœ ๋งŒ๋“œ๋Š” ๊ฒŒ ์–ด๋– ๋ƒ๋Š” ์˜๊ฒฌ์„ ๋ฐ›์•˜๋‹ค. ๋‹น์‹œ ๋ ˆ๋ฒจ 1 ๋ฏธ์…˜์„ ์ง„ํ–‰ํ•  ๋•Œ๋Š” ๋ถˆ๋ณ€ ๊ฐ์ฒด์˜ ์ •์˜์— ๋Œ€ํ•ด์„œ ์ž˜ ์•Œ์ง€ ๋ชปํ–ˆ์—ˆ๊ณ , ๋ฏธ์…˜์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ ๋ถˆ๋ณ€์œผ๋กœ ๋งŒ๋“œ๋Š” ๊ฒŒ ์—ฌ๋Ÿฌ ๊ฐ€์ง€ ์ด์ ์ด ์žˆ๋‹ค๋Š” ๊ฑธ ๊ณต๋ถ€ํ–ˆ์—ˆ๊ธฐ ๋•Œ๋ฌธ์— ๋ณ„ ์ƒ๊ฐ ์—†์ด ๊ทธ๋ ‡๊ฒŒ ์ง„ํ–‰ํ•˜๊ณ ์ž ํ–ˆ๋‹ค. public class Car { private static final int CAR_FORWARD_NUMBER = 4; private final CarName name; private final CarPosition position; ... public Car move(final int power) { if (power >= CAR_FORWARD_N..

โœ๏ธ/Java 2023. 4. 21. 10:44
[Network] IP ์ฃผ์†Œ์™€ DNS ์„œ๋ฒ„์˜ ๋™์ž‘ ์›๋ฆฌ

โœ”๏ธ ๋“ค์–ด๊ฐ€๊ธฐ ์ „ ์ €๋ฒˆ ๊ฒŒ์‹œ๊ธ€์—์„œ๋Š” HTTP ๋ฉ”์‹œ์ง€๋ฅผ ์–ด๋–ค ์‹์œผ๋กœ ๋งŒ๋“œ๋Š”์ง€ ๋ฐฐ์› ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” URL์„ ํ•ด๋…ํ•˜๊ฑฐ๋‚˜ HTTP ๋ฉ”์‹œ์ง€๋ฅผ ๋งŒ๋“œ๋Š” ๊ฒƒ๊นŒ์ง€๋Š” ์ง„ํ–‰ํ•˜์ง€๋งŒ, ๋„คํŠธ์›Œํฌ์— ์†ก์ถœํ•˜๋Š” ๊ธฐ๋Šฅ์ด ์—†๊ธฐ ๋•Œ๋ฌธ์— OS์— ์˜๋ขฐํ•˜์—ฌ ์†ก์‹ ํ•˜๊ฒŒ ๋œ๋‹ค. ์ด๋•Œ, URL ๋‚ด๋ถ€์— ์žˆ๋Š” ์„œ๋ฒ„์˜ ๋„๋ฉ”์ธ๋ช…์—์„œ IP ์ฃผ์†Œ๋ฅผ ์กฐ์‚ฌํ•˜๋Š”๋ฐ, OS์—๊ฒŒ ์†ก์‹ ํ•  ๋•Œ๋Š” IP ์ฃผ์†Œ๋กœ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์„ ์ƒ๋Œ€๋ฅผ ์ง€์ •ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ์–ด๋–ป๊ฒŒ IP ์ฃผ์†Œ๋ฅผ ์กฐ์‚ฌํ•˜๋Š”์ง€ ๊ฐ„๋žตํ•˜๊ฒŒ ์ •๋ฆฌํ•ด๋ณด์ž. ๋˜ํ•œ, IP ์ฃผ์†Œ๋ฅผ ๋„๋ฉ”์ธ ์ฃผ์†Œ๋กœ ๋ณ€ํ™˜ํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ป๊ฒŒ ํ•˜๋Š”์ง€ ์•Œ์•„๋ณด์ž. โœ”๏ธ TCP / IP ๋„คํŠธ์›Œํฌ TCP/IP ๋„คํŠธ์›Œํฌ๋Š” ์ž‘์€ ์„œ๋ธŒ๋„ท์„ ๋ผ์šฐํ„ฐ๋กœ ์—ฐ๊ฒฐํ•˜์—ฌ ์ „์ฒด ๋„คํŠธ์›Œํฌ๋ฅผ ์™„์„ฑํ•œ๋‹ค. ์„œ๋ธŒ๋„ท์ด๋ž€ ํŒจํ‚ท์„ ์ค‘๊ณ„ํ•˜๋Š” ์žฅ์น˜์ธ ํ—ˆ๋ธŒ์™€ ์—ฌ๋Ÿฌ PC๊ฐ€ ์—ฐ๊ฒฐ๋œ ํ˜•ํƒœ๋ผ๊ณ  ์ƒ๊ฐํ•ด๋„ ๋œ๋‹ค. XX๋™ Y..

โœ๏ธ/Network 2023. 4. 20. 10:45
[HTTP] GET vs POST, GET์€ body ๊ฐ’์„ ๊ฐ€์ง€๋ฉด ์•ˆ ๋ ๊นŒ?

๐ŸŒฑ ๋“ค์–ด๊ฐ€๊ธฐ ์ „ ์Šคํ„ฐ๋””๋ฅผ ์ง„ํ–‰ํ•˜๋ฉด์„œ, GET ์š”์ฒญ๊ณผ POST ์š”์ฒญ์˜ ์ฐจ์ด๊ฐ€ ๋‹จ์ˆœํžˆ '์˜๋ฏธ๋ก ์ '์œผ๋กœ๋งŒ ์ฐจ์ด๊ฐ€ ์žˆ๋Š” ๊ฑด์ง€ ๊ถ๊ธˆํ•ด์„œ ์ฐพ์•„๋ณด๊ฒŒ ๋˜์—ˆ๋‹ค. ์Šต๊ด€์ ์œผ๋กœ ๋‚˜๋Š” ๋ฆฌ์†Œ์Šค ๋“ฑ๋ก ์‹œ POST๋ฅผ, ๊ทธ๋ฆฌ๊ณ  ์กฐํšŒ ์‹œ GET์„ ์‚ฌ์šฉํ–ˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฆฌ์†Œ์Šค ๋“ฑ๋ก ์‹œ์—๋„ GET์„ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ฌธ๋ฒ•์ ์œผ๋กœ๋„ ์•ˆ ๋˜๋Š” ๊ฑด์ง€, ์•„๋‹ˆ๋ฉด ๊ด€์Šต์ ์œผ๋กœ ์‚ฌ์šฉํ•˜์ง€ ์•Š๋Š” ๊ฒƒ์ธ์ง€๋Š” ๊ถ๊ธˆํ•ด์„œ ์ฐพ์•„๋ณด์•˜๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๋ช‡ ๊ฐ€์ง€ ์š”์ฒญ๋“ค์„ ์‹ค์Šตํ•ด๊ฐ€๋ฉฐ ์–ด๋Š ์ •๋„ ์ƒ๊ฐ์„ ์ •๋ฆฌํ•ด๋‘์—ˆ๋‹ค. (์˜์–ด ์›๋ฌธ์— ๋Œ€ํ•œ ๋ฒˆ์—ญ์„ ํ•˜๋‹ค ๋ณด๋‹ˆ ๋‹ค์†Œ ์˜๋ฏธ์  ์ฐจ์ด๊ฐ€ ์žˆ์„ ์ˆ˜๋„ ์žˆ์Šต๋‹ˆ๋‹ค ๐Ÿฅฒ) โœ”๏ธ GET The GET method requests that the target resource transfer a representation of its state. GET requests..

โœ๏ธ/CS 2023. 4. 19. 10:43
[Network] ์›น ๋ธŒ๋ผ์šฐ์ € ์š”์ฒญ๊ณผ HTTP ๋ฆฌํ€˜์ŠคํŠธ

โœ”๏ธ URL ์ž…๋ ฅ๊ณผ ํŒจํ‚ท ์—ฌํ–‰ ๊ต์žฌ์— ๋‚˜์™€์žˆ๋Š” ๋‚ด์šฉ์ด์ง€๋งŒ ๋‚˜๋ฆ„ ์ •๋ฆฌํ•ด๋ณด๊ณ  ์‹ถ์–ด์„œ ๋‹ค์‹œ ๊ทธ๋ฆผ์„ ๊ทธ๋ ค๋ณด์•˜๋‹ค. ํด๋ผ์ด์–ธํŠธ, ์›น ์„œ๋ฒ„ LAN, ์›น ์„œ๋ฒ„๊นŒ์ง€ ํ•œ ๋ฒˆ ๋Œ์•„๋ณด๋ฉด์„œ ์ •๋ฆฌ๋ฅผ ํ•œ ๋‹ค์Œ, ์‹œ๊ฐ„์ด ๋  ๋•Œ ํ—ˆ๋ธŒ๋‚˜ ํšŒ์„  ์ชฝ์„ ๊ณต๋ถ€ํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. (์„ฑ๊ณต๊ณผ ์‹คํŒจ๋ฅผ ๊ฒฐ์ •ํ•˜๋Š” 1% ์˜ ๋„คํŠธ์›Œํฌ ์›๋ฆฌ๋ฅผ ์ฝ๊ณ  ์ •๋ฆฌํ•œ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค :D) โœ”๏ธ ์‚ฌ์šฉ์ž๊ฐ€ URL์„ ์ž…๋ ฅํ–ˆ์„ ๋•Œ ์ƒ๊ธฐ๋Š” ์ผ URL์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ? Uniform Resource Locator๋กœ, http://๋กœ ์‹œ์ž‘ํ•˜๋Š” ๊ฒƒ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ file:, ftp:, mailto: ๋“ฑ๋“ฑ ๋‹ค์–‘ํ•œ ์ข…๋ฅ˜์˜ ๊ฒƒ์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” URL๋“ค์ด ์กด์žฌํ•œ๋‹ค. ๋ธŒ๋ผ์šฐ์ €๋Š” ๋‹จ์ˆœํžˆ ์›น ์„œ๋ฒ„์— ์—‘์„ธ์Šค ํ•˜๋Š” ์—ญํ• ๋งŒ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹Œ, ํŒŒ์ผ ๋‹ค์šด๋กœ๋“œ, ์—…๋กœ๋“œ ๊ฐ™์€ FTP ํด๋ผ์ด์–ธํŠธ๋‚˜ ๋ฉ”์ผ ํด๋ผ์ด์–ธํŠธ ๊ธฐ๋Šฅ๋„ ์žˆ๊ธฐ ๋•Œ..

โœ๏ธ/Network 2023. 4. 15. 23:21
[Java] Classic TDD vs Mockist TDD

์–ผ๋งˆ ์ „์— ์šฐํ…Œ์ฝ”์—์„œ ์ฒด์Šค ํ”ผ๋“œ๋ฐฑ 2 ๊ฐ•์˜๋ฅผ ๋“ค์œผ๋ฉด์„œ, ๋””ํŠธ๋กœ์ดํŠธ ํ•™ํŒŒ (classicist) vs ๋Ÿฐ๋˜ ํ•™ํŒŒ (Mockist)์— ๋Œ€ํ•ด์„œ ๋“ฃ๊ฒŒ ๋˜์—ˆ๋‹ค. ๋‘˜ ๋‹ค ์ฒ˜์Œ ๋“ค์–ด๋ณธ ์šฉ์–ด์—ฌ์„œ ๊ถ๊ธˆํ•œ ๋งˆ์Œ์— ์ด๊ฒƒ์ €๊ฒƒ ์ฐพ์•„๋ณด๋ฉฐ ์ž‘์„ฑํ•ด๋ณด๊ณ ์ž ํ•œ๋‹ค. (์ „๋ฐ˜์ ์ธ ๋‚ด์šฉ์€ ํ…Œ์ฝ”ํ†ก ๋ฐœํ‘œ ๋‚ด์šฉ์„ ๋งŽ์ด ์ฐธ๊ณ ํ•˜์˜€์Šต๋‹ˆ๋‹ค ๐Ÿ™‡‍โ™€๏ธ) โœ”๏ธ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๊ฐ€ ๋ฌด์—‡์ผ๊นŒ? ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ€์ ธ์•ผ ํ•œ๋‹ค. 1. Low-level ํ…Œ์ŠคํŠธ๋ฅผ ๋‹ค๋ฃจ์–ด์•ผ ํ•œ๋‹ค. 2. ์ผ๋ฐ˜์ ์ธ ํ…Œ์ŠคํŠธ ๋„๊ตฌ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. 3. ๋นจ๋ผ์•ผ ํ•œ๋‹ค. ์—ฌ๊ธฐ์„œ ๋‹จ์œ„๋ž€ ๋ฌด์—‡์ผ๊นŒ? ๋งŒ์•ฝ, ๊ธฐ๋Šฅ ๋‹จ์œ„๋ผ๊ณ  ๊ตฌ์„ฑ๋œ๋‹ค๋ฉด ๊ฐ์ฒด์ง€ํ–ฅ์˜ ๊ด€์ ์—์„œ๋Š” ํ•ด๋‹น ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๋Š” ํด๋ž˜์Šค์˜ ์ง‘ํ•ฉ์ด ๋‹จ์œ„๊ฐ€ ๋  ์ˆ˜๋„ ์žˆ๋‹ค. ์šฐ๋ฆฌ๋Š” ์ด๋Ÿฌํ•œ ๋‹จ์œ„ ํ…Œ์ŠคํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด์„œ, ์–ด๋– ํ•œ ๋‹จ์œ„๊ฐ€ ์ƒํ˜ธ ์ž‘์šฉํ•  ์ˆ˜ ์žˆ๋Š”..

โœ๏ธ/Java 2023. 3. 28. 08:59
[Java] ๋ฌธ์ž์—ด - String pool๊ณผ String concatenation

์šฐํ…Œ์ฝ”์—์„œ ๋ฌธ์ž์—ด ๊ด€๋ จ ์ˆ˜์—…์„ ๋“ฃ๋‹ค๊ฐ€, ์ด๊ฒƒ์ €๊ฒƒ ๊ถ๊ธˆํ•ด์„œ ์ฐพ์•„๋ดค๋Š”๋ฐ ๋ธ”๋กœ๊ทธ ๊ธ€๋กœ ์ž‘์„ฑํ•˜๋ฉด ์ข‹์„ ๊ฒƒ ๊ฐ™์•„์„œ ์ด๋ ‡๊ฒŒ ์ž‘์„ฑํ•œ๋‹ค ๐Ÿค— ์˜์‹์˜ ํ๋ฆ„๋Œ€๋กœ ๊ถ๊ธˆํ•œ ์ ๋“ค์„ ์ฐพ์•„๋ณธ ๊ฑฐ์—ฌ์„œ ์ƒ๋‹นํžˆ ๋‘์„œ๊ฐ€ ์—†์„ ๊ฒƒ ๊ฐ™๋‹ค ๐Ÿฅฒ โœ”๏ธ String๊ณผ String pool String์€ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค์ด๋‹ค. ๋ถˆ๋ณ€ ํด๋ž˜์Šค์ด๊ธฐ ๋•Œ๋ฌธ์—, ํ•œ ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๋˜ํ•œ, final ํด๋ž˜์Šค๋กœ ๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— ์ƒ์†์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. UTF-16 ์ธ์ฝ”๋”ฉ์„ ํ™œ์šฉํ•˜์—ฌ, ์ธ์ฝ”๋”ฉ๋œ ๋ฌธ์ž์—ด์„ ์ €์žฅํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ๋ฌธ์ž๋ฅผ 2๋ฐ”์ดํŠธ (=16๋น„ํŠธ) ์œ ๋‹ˆ์ฝ”๋“œ ๋ฌธ์ž๋กœ ํ‘œํ˜„ํ•œ๋‹ค. public String(int[] codePoints, int offset, int count) { checkBoundsOffCount(offset, count,..

โœ๏ธ/Java 2023. 3. 5. 02:07