๋ชฉ๋ก๋ถ„๋ฅ˜ ์ „์ฒด๋ณด๊ธฐ (124)

DevLog ๐Ÿ˜ถ

[์šฐํ…Œ์ฝ” 5๊ธฐ] ์‚ฌ๋‹ค๋ฆฌ ํƒ€๊ธฐ ๊ฒŒ์ž„ ๋ฏธ์…˜ ํšŒ๊ณ 

ํ›„์ถ”๋ž‘ ์ง„ํ–‰ํ•œ ๋‘ ๋ฒˆ์งธ ํŽ˜์–ด ํ”„๋กœ๊ทธ๋ž˜๋ฐ์ธ ์‚ฌ๋‹ค๋ฆฌ ๋ฏธ์…˜์ด๋‹ค. ์‚ฌ์‹ค ์ด๋ฒˆ ๋ฏธ์…˜์€ ๊ต‰์žฅํžˆ ๋นจ๋ฆฌ merge๊ฐ€ ๋˜์–ด์„œ ๋ฏธ์…˜ ์ž์ฒด์— ๋งŽ์ด ์‹ ๊ฒฝ์„ ์“ฐ์ง€๋Š” ์•Š์•˜๋˜ ๊ฒƒ ๊ฐ™์€๋ฐ, ๋‹ค๋ฅธ ํฌ๋ฃจ๋ถ„๋“ค์ด ๊ณ ๋ฏผํ•˜์‹œ๋Š” ๊ฑธ ๋ณด๊ณ  ์žˆ์œผ๋‹ˆ ๋‚ด๊ฐ€ ๋„ˆ๋ฌด ์ƒ๊ฐ์„ ์•ˆ ํ•œ ๊ฒƒ์ธ๊ฐ€... ๋ผ๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค ๐Ÿ’ฆ ๋‹ค์Œ ๋ฏธ์…˜์—์„œ๋Š” ์กฐ๊ธˆ ๋” ์‹ ๊ฒฝ์“ฐ๋ฉด์„œ ์ง„ํ–‰ํ•ด์•ผ ํ•  ๊ฒƒ ๊ฐ™๋‹ค. ๊ทธ๋ž˜๋„ ํ›„์ถ” ๋•๋ถ„์— ๋„๋ฉ”์ธ ์„ค๊ณ„๋ฅผ ๊ต‰์žฅํžˆ ์ˆ˜์›”ํ•˜๊ฒŒ ํ•ด์„œ, ๋” ๋น ๋ฅด๊ฒŒ ๋งˆ๋ฌด๋ฆฌ ํ•  ์ˆ˜ ์žˆ์—ˆ๋˜ ์‹œ๊ฐ„์ธ ๊ฒƒ ๊ฐ™๋‹ค. (๋ฌผ๋ก ... ์ด ๊ฒŒ์‹œ๊ธ€์„ ์ž‘์„ฑํ•œ ์‹œ์ ์—์„œ๋Š” ํ•œ์ฐธ ์ „์— ๋๋‚œ ๋ฏธ์…˜์ด์ง€๋งŒ, ์ž„์‹œ ์ €์žฅ์„ ํ•ด๋‘๊ณ  ์˜ฌ๋ฆฌ์ง€ ์•Š์•˜์–ด์„œ...ใ…Ž ๋’ค๋Šฆ๊ฒŒ ์˜ฌ๋ฆฐ๋‹ค) โœ”๏ธ ์ž‘์„ฑํ•œ ์ฝ”๋“œ GitHub - Cl8D/java-ladder: ์‚ฌ๋‹ค๋ฆฌํƒ€๊ธฐ ๋ฏธ์…˜์„ ์œ„ํ•œ ์ €์žฅ์†Œ์‚ฌ๋‹ค๋ฆฌํƒ€๊ธฐ ๋ฏธ์…˜์„ ์œ„ํ•œ ์ €์žฅ์†Œ. Contribute to..

[Kotlin & Spring] Amazon S3 ์—…๋กœ๋“œ - ๊ณตํ†ต ์—๋Ÿฌ ์ฒ˜๋ฆฌ ํ•ธ๋“ค๋ง, runCatching

์ •๋ง ์ž‘์€ ์—ญํ• ์ด์ง€๋งŒ ์กฐ๊ธˆ์”ฉ ์‚ฌ์ด๋“œ ํ”„๋กœ์ ํŠธ๋ฅผ ์ง„ํ–‰ํ•˜๊ณ  ์žˆ๋Š”๋ฐ, ์ฝ”ํ‹€๋ฆฐ ๋ฌธ๋ฒ•์„ ๊ณต๋ถ€ํ•˜๋ฉด์„œ ์ƒˆ๋กœ์šด ์ ์„ ์•Œ๊ฒŒ ๋˜์–ด ๊ธฐ๋กํ•˜๊ณ ์ž ํ•œ๋‹ค! (์ฝ”ํ‹€๋ฆฐ... ์ต์ˆ™ํ•ด์ง€๋ฉด ์ •๋ง ํŽธํ•  ๊ฒƒ ๊ฐ™์ง€๋งŒ ์•„์ง์€ ์ž˜ ๋ชจ๋ฅด๊ฒ ๋‹ค. ์–ด๋ ต๋‹ค!) โœ”๏ธ Amazon S3 with Kotlin ์ฝ”ํ‹€๋ฆฐ๊ณผ s3๋ฅผ ์—ฐ๋™ํ•˜๊ฒŒ ๋˜๋ฉด, ์˜ˆ๊ธฐ์น˜ ๋ชปํ•œ ์„œ๋ฒ„ ์˜ค๋ฅ˜์— ๋Œ€๋น„ํ•˜์—ฌ ํŒŒ์ผ์„ ์‚ฝ์ž…ํ•˜๊ฑฐ๋‚˜ ์‚ญ์ œํ•  ๋•Œ, ํ˜น์€ url ์ •๋ณด๋ฅผ ๋ฐ›์•„์˜ฌ ๋•Œ ๋‹ค์Œ๊ณผ ๊ฐ™์ด Exception์ด ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋œ๋‹ค. ํ•œ ๊ฐ€์ง€ ๊ถ๊ธˆํ•œ ์ ์€, AmazonServiceException์˜ ๊ฒฝ์šฐ ๋ถ€๋ชจ ํƒ€์ž…์ด SdkClientException์ธ๋ฐ ์™œ ๊ตฌ๋ถ„ํ•ด๋‘์—ˆ์„๊นŒ... ์•„๋ฌดํŠผ, ๊ธฐ์กด์—๋Š” ์„œ๋ฒ„ ์—๋Ÿฌ์— ๋Œ€ํ•ด ์ „ํ˜€ ๊ณ ๋ คํ•˜์ง€ ์•Š์€ ์ƒํƒœ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜์˜€์—ˆ๋‹ค. fun deleteFile(file..

[Java] Classic TDD vs Mockist TDD

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

โœ๏ธ/Java 2023. 3. 28. 08:59
[์ดํŒฉํ‹ฐ๋ธŒ์ž๋ฐ”] ์•„์ดํ…œ 78. ๊ณต์œ  ์ค‘์ธ ๊ฐ€๋ณ€ ๋ฐ์ดํ„ฐ๋Š” ๋™๊ธฐํ™”ํ•ด ์‚ฌ์šฉํ•˜๋ผ (1)

๐Ÿ’ฌ ์ดํŒฉํ‹ฐ๋ธŒ์ž๋ฐ” ์•„์ดํ…œ 78์„ ์ฝ๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. ์ด๋ฒˆ ์ •๋ฆฌ๋Š” ์ฑ…๊ณผ๋Š” ๋‹ค์†Œ ๋‹ค๋ฅธ ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค :D ๊ฐœ๋… ์ž์ฒด๊ฐ€ ์–ด๋ ค์šด ๋ถ€๋ถ„์ด์–ด์„œ ์ฑ…์„ ์ฝ์œผ๋ฉฐ ๊ถ๊ธˆํ•œ ๋ถ€๋ถ„์— ๋Œ€ํ•ด ์กฐ์‚ฌํ•˜๋Š” ์‹์œผ๋กœ ์ž‘์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค ๐Ÿ™‡‍โ™€๏ธ ๋‘ ํŽธ์œผ๋กœ ๋‚˜๋ˆ„์–ด์„œ ํฌ์ŠคํŒ… ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค! ์•„์ง ๋ฏธํกํ•œ ์ ์ด ๋งŽ์•„์„œ, ๋” ์ •ํ™•ํ•œ ์ •๋ณด๋ฅผ ์•Œ๊ฒŒ ๋˜๋ฉด ๋ณธ ๊ฒŒ์‹œ๊ธ€์„ ์ˆ˜์ •ํ•  ์˜ˆ์ •์ž…๋‹ˆ๋‹ค. โœ”๏ธ ๋™๊ธฐํ™”๋ž€ ๋ฌด์—‡์ผ๊นŒ? ํ˜„์žฌ ์ž”์•ก์ด 10000์›์ด๊ณ , ๊ฐ๊ฐ 1000์›์”ฉ ์ž…๊ธˆํ•˜๋Š” ํ–‰์œ„๋ฅผ 5000๋ฒˆ, 1000์›์”ฉ ์ถœ๊ธˆํ•˜๋Š” ํ–‰์œ„๋ฅผ 5000๋ฒˆ ๋ฐ˜๋ณตํ•œ๋‹ค๊ณ  ๊ฐ€์ •ํ•ด๋ณด์ž. ๋™์ผํ•œ ๊ธˆ์•ก์— ๋Œ€ํ•ด ๋™์ผํ•œ ํšŸ์ˆ˜๋กœ 5000๋ฒˆ์”ฉ ์ง„ํ–‰ํ–ˆ๊ธฐ ๋•Œ๋ฌธ์—, ์šฐ๋ฆฌ์˜ ์ž”์•ก์—๋Š” ๋ณ€ํ™”๊ฐ€ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค. [synchronized ํ‚ค์›Œ๋“œ ๋ถ™์ด๊ธฐ ์ „] public class Main { public stati..

๐Ÿ“–/Effective Java 2023. 3. 26. 21:24
[์ดํŒฉํ‹ฐ๋ธŒ์ž๋ฐ”] ์•„์ดํ…œ 09. ๋ฆฌ์†Œ์Šค์˜ ์‚ฌ์šฉ๊ณผ ํ•ด์ œ : try-finally๋ณด๋‹ค๋Š” try-with-resources๋ฅผ ์‚ฌ์šฉํ•˜๋ผ

๐Ÿ’ฌ ์ดํŒฉํ‹ฐ๋ธŒ์ž๋ฐ” ์ฑ•ํ„ฐ 9๋ฅผ ์ฝ๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. โœ”๏ธ ๋ฆฌ์†Œ์Šค๋Š” ์–ด๋–ป๊ฒŒ ์–ป์„ ์ˆ˜ ์žˆ์„๊นŒ? ํ”ํžˆ ์ž๋ฐ”์—์„œ๋Š” ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•œ ๋‹ค์Œ, catch๋ฅผ ํ†ตํ•ด ๋ฆฌ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋‹ค ๋ฐœ์ƒํ•œ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๊ณ , finally์—์„œ close()๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์ง์ ‘ ๋‹ซ์•„์ฃผ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. (try-catch-finally) ์ด๋•Œ, ๋‹ซ์•„์ฃผ์ง€ ์•Š์œผ๋ฉด ํด๋ผ์ด์–ธํŠธ๋Š” ์˜ˆ๊ธฐ์น˜ ๋ชปํ•œ ์„ฑ๋Šฅ ๋ฌธ์ œ๋ฅผ ๋ฐœ๊ฒฌํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ์˜ค๋ผํด ๋ฌธ์„œ๋ฅผ ๋ฐœ์ทŒํ•ด๋ณด๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ์žฅ์ด ์กด์žฌํ•œ๋‹ค. The typical Java application manipulates several types of resources such as files, streams, sockets, and database connections. Such resources must be handl..

๐Ÿ“–/Effective Java 2023. 3. 13. 15:14
[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
[์ดํŒฉํ‹ฐ๋ธŒ์ž๋ฐ”] ์•„์ดํ…œ 01. ์ƒ์„ฑ์ž ๋Œ€์‹  ์ •์  ํŒฉํ„ฐ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ๊ณ ๋ คํ•˜๋ผ

๐Ÿ’ฌ ์ดํŒฉํ‹ฐ๋ธŒ์ž๋ฐ” ์ฑ•ํ„ฐ 1์„ ์ฝ๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. โœ”๏ธ ์ •์  ํŒฉํ„ฐ๋ฆฌ ๋ฉ”์„œ๋“œ๋ž€? ์šฐํ…Œ์ฝ” ๋ฏธ์…˜์„ ์ง„ํ–‰ํ•˜๋ฉด์„œ, ์ •์  ํŒฉํ„ฐ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ์ •๋ง ๋งŽ์ด ์‚ฌ์šฉํ•˜์˜€๋‹ค. ์ •์  ํŒฉํ„ฐ๋ฆฌ ๋ฉ”์„œ๋“œ๋ž€, ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๋ฅผ ๋ฐ˜ํ™˜ํ•˜๋Š” ์ •์  ๋ฉ”์„œ๋“œ์ด๋‹ค. ์ฆ‰, ์ƒ์„ฑ์ž ์—ญํ• ์„ ํ•˜๋ฉด์„œ๋„ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๊ธฐ ์ „์— 1์ฐจ์ ์œผ๋กœ ํ†ต๊ณผํ•˜๋Š” '๋ฌธ' ๊ฐ™์€ ์กด์žฌ๋ผ๊ณ ๋„ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ์ •์  ํŒฉํ„ฐ๋ฆฌ ๋ฉ”์„œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์–ด๋–ค ์ ์ด ์ข‹์„๊นŒ? ๐Ÿ’ฌ ๋™์ผํ•œ ์‹œ๊ทธ๋‹ˆ์ฒ˜๋ผ๋„, ์ด๋ฆ„์— ๋”ฐ๋ผ ์ƒˆ๋กญ๊ฒŒ ์ƒ์„ฑํ•ด์ค„ ์ˆ˜ ์žˆ๋‹ค. ์–ด๋Š ๋‚ , ์šฐํ…Œ์ฝ”์— ํฌ๋ฃจ ์‹ ์ฒญ์„ ํ•˜๊ธฐ ์œ„ํ•ด ์‹ ์ฒญ์„œ๋ฅผ ์ž‘์„ฑํ•˜๊ณ  ์žˆ์—ˆ๋‹ค. ์ด๋•Œ, ๋‹‰๋„ค์ž„์„ ์•„์ง ์ •ํ•˜์ง€ ๋ชปํ•œ ํฌ๋ฃจ๋Š” ์ด๋ฆ„๊ณผ ๋‚˜์ด, ๊ทธ๋ฆฌ๊ณ  ๊ณผ์ •๋งŒ์„ ๊ฐ€์ง€๊ณ  ํฌ๋ฃจ๋ฅผ ์‹ ์ฒญํ•˜๊ณ  ์‹ถ์—ˆ๋‹ค. public class Crew { private String name; private Strin..

๐Ÿ“–/Effective Java 2023. 2. 28. 00:44
[๋ชจ๋˜์ž๋ฐ”์ธ์•ก์…˜] ๋žŒ๋‹ค ํ‘œํ˜„์‹ : ์ต๋ช… ํ•จ์ˆ˜๋ฅผ ๊ฐ„๊ฒฐํ•˜๊ฒŒ ๋งŒ๋“ค๊ธฐ

๐Ÿ’ฌ ๋ชจ๋˜ ์ž๋ฐ” ์ธ ์•ก์…˜ ์ฑ•ํ„ฐ 3์„ ์ฝ๊ณ  ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค. โœ”๏ธ ๋žŒ๋‹ค๊ฐ€ ๋ญ”๋ฐ์š”? ์ง€๋‚œ ์ฑ•ํ„ฐ์—์„œ๋Š” ๋™์ž‘ ํŒŒ๋ผ๋ฏธํ„ฐํ™”๋ฅผ ํ†ตํ•ด์„œ ํŒŒ๋ผ๋ฏธํ„ฐ๋กœ ๋ฉ”์„œ๋“œ์˜ ๋™์ž‘ ์ž์ฒด๋ฅผ ์ „๋‹ฌํ•ด์ฃผ๋Š” ๊ฒƒ์„ ๋ฐฐ์› ๋‹ค. ์ด๋•Œ, ๋ฉ”์„œ๋“œ์˜ ๋™์ž‘์„ ์ „๋‹ฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ๋ณ„๋„์˜ @Override ์–ด๋…ธํ…Œ์ด์…˜์ด๋‚˜ ์ƒ์†๋œ ๋ฉ”์„œ๋“œ ์ด๋ฆ„ ๋“ฑ, ๋™์ž‘ ์™ธ์— ๋‹ค๋ฅธ ์ฝ”๋“œ๋“ค์ด ๋ฐ˜๋ณต๋˜์–ด ์ƒ๋‹นํžˆ ๋ถˆํŽธํ–ˆ๋‹ค. ๋žŒ๋‹ค ํ‘œํ˜„์‹์€ ์ด๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด์„œ, ๋‹จ์ˆœํžˆ '๋™์ž‘์— ๋Œ€ํ•œ ์ฝ”๋“œ๋งŒ' ๋ฉ”์„œ๋“œ๋กœ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ์ต๋ช… ํ•จ์ˆ˜๋ฅผ ๋‹จ์ˆœํ™”ํ•œ ๊ฒƒ์ด๋‹ค. ๋žŒ๋‹ค ํ‘œํ˜„์‹์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ํŠน์ง•์„ ๊ฐ€์ง„๋‹ค. ๐Ÿ’ฌ ๋ฉ”์„œ๋“œ์— ์ด๋ฆ„์ด ์—†์œผ๋‹ˆ๊นŒ “์ต๋ช…”์ด๋‹ค. (๋ฉ”์„œ๋“œ์— ๋Œ€ํ•œ ๋„ค์ด๋ฐ์„ ๊ณ ๋ฏผํ•  ํ•„์š”๊ฐ€ ์—†๋‹ค!) - ์ด๋ฆ„์€ ์—†์ง€๋งŒ, ํŒŒ๋ผ๋ฏธํ„ฐ ๋ฆฌ์ŠคํŠธ์™€ ๋ฐ”๋””, ๋ฐ˜ํ™˜ ํ˜•์‹, ๋ฐœ์ƒ ๊ฐ€๋Šฅํ•œ ์˜ˆ์™ธ ๋ฆฌ์ŠคํŠธ๋Š” ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค. ๐Ÿ’ฌ ํ•จ์ˆ˜ : ํŠน์ • ํด..

๐Ÿ“–/Modern Java in Action 2023. 2. 27. 18:53
[๋ชจ๋˜์ž๋ฐ”์ธ์•ก์…˜] ๋™์ž‘ ํŒŒ๋ผ๋ฏธํ„ฐํ™” : ๋™์ž‘ ์ž์ฒด๋ฅผ ์ „๋‹ฌํ•ด๋ณด์ž!

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

๐Ÿ“–/Modern Java in Action 2023. 2. 27. 01:13