์ „์ฒด ๊ธ€

๐Ÿ ๊ธฐํƒ€/์ฝ”๋“œํ”„๋ ˆ์†Œ ์ฒดํ—˜๋‹จ_BE

Clean Control Structure | Refactoring

Control Structure ์กฐ๊ฑด, ๋ฃจํ”„(loop), ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ์„ ์–ธ๋ฌธ · Control Structures๋Š” ์ฝ”๋“œ ๋ณต์žก๋„์— ๊ฐ€์žฅ ํฐ ์˜ํ–ฅ์„ ์ฃผ๋Š” ์š”์†Œ์ด๋‹ค. · ํŠนํžˆ ์ค‘์ฒฉ๋œ Control Structures๋Š” ์ฝ”๋“œ์˜ ๊ฐ€๋…์„ฑ๊ณผ ํ…Œ์ŠคํŠธ ์šฉ์ด์„ฑ์€ ๋‚ฎ์ถ”๊ณ , ๋ณต์žก๋„๋Š” ์˜ฌ๋ฆฌ๊ฒŒ ๋œ๋‹ค. Control Sturcture๋กœ ์„ค๊ณ„ํ•˜๋Š” ๋ฐฉ๋ฒ• 1. Fail Fast! Early Return! * Fail Fast → ๋นจ๋ฆฌ ์‹คํŒจํ•˜๋Š” '๊ฒ€์ฆ๋กœ์ง'์„ ๊ตฌํ˜„ํ•˜์—ฌ ๋กœ์ง์„ ๋ถ„๋ฆฌํ•œ๋‹ค. โ–ถ ์œ„์˜ ๊ทธ๋ฆผ์ฒ˜๋Ÿผ ์ฝ”๋“œ๋ฅผ ์ˆ˜์ •ํ•  ๊ฒฝ์šฐ์˜ ์ด์  - ๊ฒ€์ฆ ์˜์—ญ(์ฝ”๋“œ ์ƒ๋‹จ)๊ณผ ํ•ต์‹ฌ ๋กœ์ง ์˜์—ญ(์ฝ”๋“œ ํ•˜๋‹จ)์ด ๋ถ„๋ฆฌ๋œ๋‹ค. - Method์˜ ๋ณต์žก๋„๊ฐ€ ๋‚ฎ์•„์ง„๋‹ค. - ๊ฐ€๋…์„ฑ์ด ํ–ฅ์ƒ๋˜๊ณ , ํ…Œ์ŠคํŠธ๊ฐ€ ์šฉ์ดํ•ด์ง„๋‹ค. 2. ์ตœ๋Œ€ํ•œ ๊ธ์ • ์กฐ๊ฑด์œผ๋กœ ํ‘œํ˜„ํ•˜๋ผ → ๊ธ์ •์ ์ธ ํ‘œํ˜„์€..

๐Ÿ ๊ธฐํƒ€/์ฝ”๋“œํ”„๋ ˆ์†Œ ์ฒดํ—˜๋‹จ_BE

Clean Comment | Formatting

Comment ๋ž€? Code์— ๋Œ€ํ•œ ์‚ฌ๋žŒ์ด ์ฝ์„ ์ˆ˜ ์žˆ๋Š” ๋ถ€๊ฐ€ ์„ค๋ช…. ์‚ฌ๋žŒ์ด Code๋ฅผ ๋” ์‰ฝ๊ฒŒ ์ดํ•ดํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•˜๋Š” ๊ฒƒ์ด ๋ชฉ์ ์ด๋‹ค. โ–ถ Clean Commet ์›์น™ 1. Comment๋Š” ํ•„์š”์•…์ด๋‹ค 2. Comment๋Š” ๋Œ€๋ถ€๋ถ„์˜ ์ƒํ™ฉ์—์„œ ์‚ฌ์šฉํ•˜์ง€ ๋ง์•„์•ผ ํ•œ๋‹ค. (๊ทธ๋Ÿฌ๋‚˜ Comment๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๋ช‡ ๊ฐ€์ง€ ์˜ˆ์™ธ ์ƒํ™ฉ์ด ์žˆ๋‹ค) * ์™œ ์ตœ๋Œ€ํ•œ ์ฝ”๋ฉ˜ํŠธ๋ฅผ ํ”ผํ•ด์•ผํ• ๊นŒ? >> Comment ๋ณด๋‹ค Code ๊ทธ ์ž์ฒด๊ฐ€ ์˜๋ฏธ ์žˆ์–ด์•ผ ํ•œ๋‹ค. - Comment๋กœ ๋ถ€๊ฐ€ ์„ค๋ช…์ด ํ•„์š”ํ•˜๋‹ค๋ฉด Code๊ฐ€ ์ถฉ๋ถ„ํžˆ ์˜๋ฏธ ์žˆ์ง€ ๋ชปํ•˜๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. - Comment์— ์˜์ง€ํ•˜๊ธฐ ๋ณด๋‹ค ์˜๋ฏธ์žˆ๋Š” Code๋ฅผ ์ž‘์„ฑํ•˜๋Š” ๋…ธ๋ ฅ์ด ํ•„์š”ํ•˜๋‹ค >> Comment๋Š” ์ตœ์‹  ์ •๋ณด๋ฅผ ๋‹ด์ง€ ๋ชปํ•œ๋‹ค. - Code๋ฅผ ๋ณ€๊ฒฝํ•œ๋‹ค๊ณ  Comment ๋ณ€๊ฒฝ๋„ ํ•„์ˆ˜๊ฐ€ ์•„๋‹ˆ๊ธฐ ๋•Œ๋ฌธ์—..

๐Ÿ ๊ธฐํƒ€/์ฝ”๋“œํ”„๋ ˆ์†Œ ์ฒดํ—˜๋‹จ_BE

Clean Method

โ‰ซ ์œ ์ง€๋ณด์ˆ˜์„ฑ ๋†’์€ Clean Method์˜ ์กฐ๊ฑด 1. Method๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์‚ฌ๋žŒ์ด ์‚ฌ์šฉํ•˜๊ธฐ ์šฉ์ดํ•ด์•ผ ํ•œ๋‹ค. 2. Method๋ฅผ ์œ ์ง€๋ณด์ˆ˜ ํ•˜๋Š” ์‚ฌ๋žŒ์ด ์ดํ•ดํ•˜๊ณ , ๋ณ€๊ฒฝํ•˜๊ธฐ ์šฉ์ดํ•ด์•ผ ํ•œ๋‹ค. 3. Method๋ฅผ ์œ ์ง€๋ณด์ˆ˜ ํ•˜๋Š” ์‚ฌ๋žŒ์ด ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์šฉ์ดํ•ด์•ผ ํ•œ๋‹ค. โ–ถ Clean Method์˜ ์›์น™ · ๊ฐ€๋Šฅํ•œ ํ•œ ์ถฉ๋ถ„ํžˆ ์ž‘์•„์•ผ ํ•œ๋‹ค. · ํ•œ ๊ฐ€์ง€๋ฅผ ํ•ด์•ผ ํ•œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ทธ ํ•œ ๊ฐ€์ง€๋ฅผ ์ž˜ ํ•ด์•ผ ํ•œ๋‹ค. · ํ…Œ์ŠคํŠธ ๊ฐ€๋Šฅํ•ด์•ผ ํ•œ๋‹ค. · ์ค‘๋ณต์ด ์—†์–ด์•ผ ํ•œ๋‹ค. Method๋ฅผ ๋งŒ๋“ค ๋•Œ Method๋ฅผ ํ˜ธ์ถœํ•˜๋Š” ์‚ฌ๋žŒ์˜ ์ธ์ง€์  ๋ถ€ํ•˜๋ฅผ ์ตœ์†Œ๋กœ ๋งŒ๋“ค์–ด ์ฃผ์–ด์•ผ ํ•œ๋‹ค. ์ฆ‰, Method๋ฅผ ํ˜ธ์ถœํ•  ๋•Œ๋งˆ๋‹ค ๋‚ด๋ถ€ ์ฝ”๋“œ๋ฅผ ๋ณด๊ฑฐ๋‚˜ API ๋ฌธ์„œ๋ฅผ ๋ณด์ง€ ์•Š๊ฒŒ๋” ํ•ด์•ผํ•œ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ์ธ์ง€์  ๋ถ€ํ•˜๋ฅผ ๋‚ฎ์ถ”๋Š” ๊ฐ€์žฅ ์ข‹์€ ๋ฐฉ๋ฒ•์€ Method์˜ Parameter์˜ ..

๐Ÿ ๊ธฐํƒ€/์ฝ”๋“œํ”„๋ ˆ์†Œ ์ฒดํ—˜๋‹จ_BE

Clean Naming

Clean Naming์„ ์•Œ์•„๋ณด๊ธฐ์— ์•ž์„œ Clean Code๋ž€ ๋ฌด์—‡์ผ๊นŒ? Clean Code๋ž€? ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ , ๋ณ€๊ฒฝํ•˜๊ธฐ ์‰ฌ์šด Code. ์‚ฌ๋žŒ์ด ์ฝ๊ณ  ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๊ณ , ๋ช…ํ™•ํ•œ ํ•œ๊ฐ€์ง€ ์—ญํ• ์„ ํ•˜๋ฉฐ, ์ด ์—ญํ• ์„ ์˜๋ฏธ์žˆ๊ฒŒ ํ‘œํ˜„ํ•˜๊ณ , ์ค‘๋ณต์ด ์—†๊ณ  ํ…Œ์ŠคํŠธ ์ผ€์ด์Šค๊ฐ€ ์กด์žฌํ•˜๋Š” Code ์ด๋‹ค. Clean Naming์€ ๊ฐ€๋…์„ฑ ํ–ฅ์ƒ์— ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์š”์†Œ์ด๋‹ค. ๊ฐœ๋ฐœ์˜ ๋Œ€๋ถ€๋ถ„์€ ์ฝ”๋“œ๋ฅผ ์ดํ•ดํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ํ–‰์œ„์ด๋‹ค. ๋งŒ์•ฝ ๊ทธ๊ฒŒ ์ˆ˜๋ฐฑ ๋ผ์ธ์˜ ์ฝ”๋“œ๋ผ๋ฉด ํฌ๊ฒŒ ์–ด๋ ค์šด ์ผ์ด ์•„๋‹ ๊ฒƒ์ด๋‹ค. ๊ทธ๋Ÿฌ๋‚˜ ์ˆ˜์‹ญ, ์ˆ˜๋ฐฑ๋งŒ ๋ผ์ธ์˜ ์ฝ”๋“œ๋ฅผ ์ฝ๊ณ  ์ดํ•ดํ•˜๊ณ  ์ˆ˜์ •ํ•˜๋Š” ๊ฒƒ์€ ๋งค์šฐ ์–ด๋ ค์šด ์ผ์ด๋‹ค. ๊ทธ๋ ‡๊ธฐ์— Clean Naming์— ๋Œ€ํ•œ ์ž‘์€ ํˆฌ์ž๋Š” ์žฅ๊ธฐ์ ์œผ๋กœ๋Š” ํŒ€์˜ ๊ฐœ๋ฐœ ์ƒ์‚ฐ์„ฑ ํ–ฅ์ƒ์— ํฌ๊ฒŒ ๊ธฐ์—ฌ๊ฐ€ ๋  ์ˆ˜ ์žˆ๋Š” ๋ถ€๋ถ„์ด๋‹ค. SW์˜ ์ฃผ์š” ์š”์†Œ๋“ค์€ ๋ชจ๋‘ ์•„๋ž˜์™€ ๊ฐ™์ด Cl..

๐Ÿ ๊ธฐํƒ€/์ฝ”๋“œํ”„๋ ˆ์†Œ ์ฒดํ—˜๋‹จ_BE

[Java] ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ : List

List ์ธํ„ฐํŽ˜์ด์Šค : List ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์œ„ํ•ด ์ •์˜๋œ ์ธํ„ฐํŽ˜์ด์Šค - ์—ฌ๋Ÿฌ ๊ฑด์˜ ๋ฐ์ดํ„ฐ๋ฅผ ํ•˜๋‚˜์˜ ๊ฐ์ฒด๋กœ ๊ด€๋ฆฌํ•œ๋‹ค. - ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ์— ์ˆœ์„œ๊ฐ€ ์กด์žฌํ•œ๋‹ค. (์ˆœ์„œ ์ •๋ณด์˜ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•ด ์ธ๋ฑ์Šค ๊ฐœ๋…์ด ์กด์žฌ) - ์ž…๋ ฅ๋œ ๋ฐ์ดํ„ฐ๋“ค์˜ ์ค‘๋ณต์„ ํ—ˆ์šฉํ•œ๋‹ค. โ‰ซ Collection ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†ํ•˜์—ฌ ์ •์˜๋œ ์ธํ„ฐํŽ˜์ด์Šค Collection ์ธํ„ฐํŽ˜์ด์Šค์—์„œ ์ •์˜๋œ ๋ฉ”์„œ๋“œ์— List ์ž๋ฃŒ๊ตฌ์กฐ์— ํ•„์š”ํ•œ ๋ฉ”์„œ๋“œ๊ฐ€ ์ถ”๊ฐ€๋กœ ์ •์˜ ๋œ๋‹ค. โ‰ซ ๋Œ€ํ‘œ์ ์ธ List ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค → ArrayList๊ฐ€ ๊ฐ€์žฅ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ํด๋ž˜์Šค ArrayList ํด๋ž˜์Šค๋Š”? · Array์™€ ๊ฐ€์žฅ ์œ ์‚ฌํ•œ ์ปฌ๋ ‰์…˜ ํด๋ž˜์Šค์ด๋‹ค. · Array์ฒ˜๋Ÿผ ๊ฐ์ฒด ๋‚ด๋ถ€ ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•˜๊ธฐ ์œ„ํ•œ ์ธ๋ฑ์Šค๊ฐ€ ์กด์žฌํ•œ๋‹ค. · Array์™€ ๋‹ค๋ฅด๊ฒŒ ์ƒ์„ฑ๋œ ๊ฐ์ฒด์—์„œ ๋ฐ์ดํ„ฐ์˜ ์ถ”๊ฐ€, ์‚ญ์ œ..

๐Ÿ ๊ธฐํƒ€/์ฝ”๋“œํ”„๋ ˆ์†Œ ์ฒดํ—˜๋‹จ_BE

[Java] ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์™€ ์ œ๋„ค๋ฆญ

์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ (Collection framework) ๋‹ค์–‘ํ•œ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ๊ตฌํ˜„์„ ์œ„ํ•œ ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค์˜ ์ง‘ํ•ฉ โ‰ซ ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ํด๋ž˜์Šค์™€ Array์˜ ์ฐจ์ด์  1. Array๋Š” ์ •์˜ํ•  ๋•Œ ๋ฐ์ดํ„ฐ์˜ ๊ฐœ์ˆ˜๋ฅผ ์ •ํ•˜์—ฌ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ํด๋ž˜์Šค๋Š” ๋ฐ์ดํ„ฐ ๊ฐœ์ˆ˜์˜ ๋™์ ์ธ ๋ณ€๊ฒฝ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. 2. Array๋Š” Object๋‚˜ int, charํ˜• ๋“ฑ์˜ Primitive Type์„ ์›์†Œ๋กœ ๊ฐ€์งˆ ์ˆ˜ ์žˆ์ง€๋งŒ, ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด๋งŒ์„ ์›์†Œ๋กœ ๊ฐ€์ง„๋‹ค. ์ปฌ๋ ‰์…˜ ํ”„๋ ˆ์ž„์›Œํฌ์˜ ์ฃผ์š” ์ธํ„ฐํŽ˜์ด์Šค 1. List ์ธํ„ฐํŽ˜์ด์Šค 2. Set ์ธํ„ฐํŽ˜์ด์Šค 3. Map ์ธํ„ฐํŽ˜์ด์Šค (* List์™€ Set ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๋ชจ๋‘ Collection ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ์ƒ์†๋ฐ›์•„ ์ •์˜ํ•˜์ง€๋งŒ, Map ์ธํ„ฐํŽ˜์ด์Šค๋Š” ๊ตฌ์กฐ์ƒ์˜ ์ฐจ์ด๋กœ Col..

Dhey
dh.log