๊ด€๋ฆฌ ๋ฉ”๋‰ด

๋ชฉ๋ก๊ฐœ๋ฐœ ์„œ์ /์ผ„ํŠธ๋ฐฑ ๊ตฌํ˜„ ํŒจํ„ด (7)

Tech Log ๐Ÿ› ๏ธ

[์ผ„ํŠธ๋ฐฑ ๊ตฌํ˜„ ํŒจํ„ด] ์Šคํ„ฐ๋”” ํšŒ๊ณ 

0. ์Šคํ„ฐ๋”” ์ง„ํ–‰ ํŒ€์›๋“ค๊ณผ ์ผ์ฃผ์ผ์— 1~2๋ฒˆ ์ •๋„ ๋…ผ์˜ํ•˜๊ณ  ์‹ถ์€ ๋‚ด์šฉ๊ณผ ์ƒ๊ฐ์„ ์ •๋ฆฌํ•˜๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์กŒ๋‹ค. ์Šคํ„ฐ๋””๋Š” 1์‹œ๊ฐ„์„ ๋„˜๊ธฐ์ง€ ์•Š์œผ๋ ค๊ณ  ํ•˜์˜€์œผ๋ฉฐ ๊ฐ์ž ์ค€๋น„ํ•œ ๋‚ด์šฉ๋“ค์„ ๊ฐ€์ง€๊ณ  ์–˜๊ธฐ๋ฅผ ๋‚˜๋ˆ„๋Š” ๋ฐฉ์‹์œผ๋กœ ํ•˜์˜€๋‹ค. 1. ์ผ„ํŠธ๋ฐฑ ๊ตฌํ˜„ ํŒจํ„ด์„ ์ฝ๊ธฐ ์ „์— ๊ทธ๋™์•ˆ ์ฝ”๋”ฉ์„ ํ•˜๋ฉด์„œ ์ถ”ํ›„ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๊ณ ๋ คํ•˜๊ฑฐ๋‚˜ ๋ณ€ํ™” ๋น„์šฉ์„ ๊ณ ๋ คํ•˜๋ฉด์„œ ์ง  ์ ์ด ํฌ๊ฒŒ ์—†์—ˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ฝ”๋”ฉ์„ ํ•˜๋‹ค๊ฐ€ ์• ๋งคํ•œ ์ƒํ™ฉ์ด ์˜ค๋ฉด ๊ทธ๋•Œ๊ทธ๋•Œ ๋‚ดํ‚ค๋Š” ๊ฒƒ์œผ๋กœ ์„ ํƒ์„ ํ•˜์˜€์œผ๋ฉฐ ์ด๋Š” ์ฝ”๋“œ์˜ ์ผ๊ด€์„ฑ์„ ์ง€ํ‚ค๊ธฐ ํž˜๋“ค์—ˆ๊ณ  ๊ณง ์œ ์ง€๋ณด์ˆ˜ ๋น„์šฉ์ด ๋Š˜์–ด๋‚˜๊ธฐ ์ผ์‘ค์˜€๋‹ค. ๊ทธ๋Ÿผ์—๋„ ํ‰์†Œ์— ์ž๋ฐ”๋‚˜ ๊ฐ์ฒด ์ง€ํ–ฅ์— ๋Œ€ํ•œ ์ง€์‹์„ ์ค‘์š”์‹œ ํ–ˆ์„๋ฟ ์ฝ”๋”ฉ์„ ํ•˜๋‹ค๊ฐ€ ํ•„์š”ํ•œ ํŒจํ„ด์— ๋Œ€ํ•ด ๊ณ ๋ฏผํ•ด๋ณด๊ฑฐ๋‚˜ ๋”ฐ๋กœ ์ฐพ์•„์„œ ๊ณต๋ถ€ํ•  ์ƒ๊ฐ์€ ์—†์—ˆ๋˜ ๊ฒƒ ๊ฐ™๋‹ค. ๋•Œ๋งˆ์นจ ํŒ€์—์„œ ๊ฐ์ฒด์ง€ํ–ฅ ์Šคํ„ฐ๋””๋ฅผ ๋๋‚ด๊ณ  ๋‹ค์Œ ์ฑ…์„ ๊ณ ๋ฅด๋˜ ์ค‘, ..

์ผ„ํŠธ๋ฐฑ ๊ตฌํ˜„ ํŒจํ„ด 9์žฅ - ์ปฌ๋ ‰์…˜

์ปฌ๋ ‰์…˜ ์ปฌ๋ ‰์…˜ ์ธํ„ฐํŽ˜์ด์Šค๋Š” ์—ฌ๋Ÿฌ ๊ฐ์ฒด์˜ ๋ฌถ์Œ์— ๋Œ€ํ•ด ์ œ๊ฐ๊ฐ ๋‹ค๋ฅธ ์˜๋ฏธ๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. ์ฃผ๋กœ ์„ฑ๋Šฅ์— ๊ด€๋ จ๋œ ํ”„๋กœ๊ทธ๋ž˜๋จธ์˜ ์˜๋„๋ฅผ ์ „๋‹ฌํ•œ๋‹ค. ์ปฌ๋ ‰์…˜์ด ํ‘œํ˜„ํ•˜๋Š” 3๊ฐ€์ง€ ๊ฐœ๋… 1. ํฌ๊ธฐ - ๋ฐฐ์—ด์˜ ํฌ๊ธฐ๋Š” ์ƒ์„ฑ ์‹œ ๊ณ ์ •๋˜์ง€๋งŒ, ๋Œ€๋ถ€๋ถ„์˜ ์ปฌ๋ ‰์…˜์€ ์ค‘๊ฐ„์— ํฌ๊ธฐ๋ฅผ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. 2. ์›์†Œ ๊ฐ„ ์ˆœ์„œ - ์›์†Œ์˜ ์ˆœ์„œ์— ๋Œ€ํ•œ ์ •๋ณด๊ฐ€ ํ•„์š”ํ•˜๋‹ค๋ฉด ์ˆœ์„œ๋ฅผ ๋ณด์ „ํ•˜๋Š” ์ปฌ๋ ‰์…˜์„ ์‚ฌ์šฉํ•ด์•ผํ•œ๋‹ค. 3. ๋…์ž์„ฑ - ์ผ๋ถ€ ์—ฐ์‚ฐ์˜ ๊ฒฝ์šฐ ์–ด๋–ค ์›์†Œ๊ฐ€ ์ปฌ๋ ‰์…˜์— ์†ํ•ด์žˆ๋Š” ์ง€ ํ˜น์€ ๋ช‡๋ฒˆ ๋‚˜ํƒ€๋‚ฌ๋Š”์ง€ ์ค‘์š”ํ•œ ๊ฒฝ์šฐ๊ฐ€ ์žˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค ๋ฐฐ์—ด ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ์ธํ„ฐํŽ˜์ด์Šค์ด๋‹ค. ์œ ์—ฐ์„ฑ ๋ฌธ์ œ๋ฅผ ์ œ์™ธํ•˜๊ณ  ์„ฑ๋Šฅ์ด ์ค‘์š”ํ•œ ๊ฒฝ์šฐ์— ์‚ฌ์šฉํ•œ๋‹ค. Iterable ์›์†Œ๋ฅผ ์ฃผ๊ฐ€ํ•˜๋Š” ๊ฒƒ์€ ๋ง‰์„ ์ˆ˜ ์žˆ์ง€๋งŒ ์›์†Œ๊ฐ€ ์ง€์›Œ์งˆ ์œ„ํ—˜์ด ์žˆ๋‹ค. Collection Iterable์„ ์ƒ์†ํ•˜๋ฉฐ ์—ฌ๋Ÿฌ ๋ฉ”์†Œ..

์ผ„ํŠธ๋ฐฑ์˜ ๊ตฌํ˜„ ํŒจํ„ด 7์žฅ - ํ–‰์œ„

๋ฉ”์‹œ์ง€ ๋ฉ”์‹œ์ง€ ์ˆ˜์‹ ์ž๊ฐ€ ๋ฉ”์‹œ์ง€๋ฅผ ๋ฐ›์œผ๋ฉด, ๋ฐœ์‹ ์ž์˜ ์ƒํƒœ๋Š” ๋ฐ”๋€Œ์ง€ ์•Š์ง€๋งŒ ์ˆ˜์‹ ์ž์˜ ์ƒํƒœ๋Š” ๋ฐ”๋€” ์ˆ˜ ์žˆ๋‹ค. ๋ฉ”์‹œ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ํ”„๋กœ์‹œ์ €๋Š” ๋‹น์žฅ ์ค‘์š”ํ•˜์ง€ ์•Š์€ ์„ธ๋ถ€ ๊ตฌํ˜„์ด ์กด์žฌํ•œ๋‹ค ๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๋‚ดํฌํ•  ์ˆ˜ ์žˆ๋‹ค. (์บก์Šํ™”) function() { input(); process(); output(); } ์„ ํƒ ๋ฉ”์‹œ์ง€ ์„ ํƒ ๋ฉ”์‹œ์ง€๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ช…์‹œ์  ์กฐ๊ฑด๋ฌธ์˜ ์‚ฌ์šฉ์„ ํฌ๊ฒŒ ์ค„์ผ ์ˆ˜ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ๊ณผ๋„ํ•œ ์„ ํƒ๋ฉ”์‹œ์ง€์˜ ์‚ฌ์šฉ์€ ๊ฐ€๋…์„ฑ์„ ์ €ํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. public void display(Subject subject, Brush brush) { brush.display(subject); } ๋”๋ธ” ๋””์ŠคํŒจ์น˜ 2๊ฐœ์˜ ์„ ํƒ ๋ฉ”์‹œ์ง€๋ฅผ ์ง๋ ฌ๋กœ ์—ฐ๊ฒฐํ•  ์ˆ˜ ์žˆ๋‹ค. https://www.youtube.com/watch?v=s-tXAHub6v..

์ผ„ํŠธ๋ฐฑ์˜ ๊ตฌํ˜„ํŒจํ„ด 6์žฅ - ์ƒํƒœ

๊ฐ์ฒด๋Š” ์™ธ๋ถ€์— ๋“œ๋Ÿฌ๋‚˜๋Š” ํ–‰์œ„์™€ ํ–‰์œ„๋ฅผ ์ง€์›ํ•˜๊ธฐ ์œ„ํ•œ ์ƒํƒœ๋ฅผ ๋ฌถ์–ด์ฃผ๋Š” ํŽธ๋ฆฌํ•œ ๋‹จ์œ„๋‹ค. ์ƒํƒœ - ์ƒํƒœ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด์„œ ์œ ์‚ฌํ•œ ์ƒํƒœ๋ฅผ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌํ•˜๊ณ  ๊ฐ ์ƒํƒœ๋Š” ๋ณ„๋„๋กœ ๊ด€๋ฆฌํ•ด์•ผํ•œ๋‹ค. ๋‘ ๊ฐœ์˜ ์ƒํƒœ๊ฐ€ ์œ ์‚ฌํ•œ ์ง€ ์•Œ๋ ค๋ฉด 1. ๋‘ ๊ฐœ์˜ ์ƒํƒœ๊ฐ€ ๋™์ผํ•œ ์—ฐ์‚ฐ ์•ˆ์—์„œ ์‚ฌ์šฉ๋˜๋Š”๊ฐ€? 2. ๋™์ผํ•œ ์‹œ์ ์— ์ƒ์„ฑ๋˜๊ณ  ์†Œ๋ฉธ๋˜๋Š”๊ฐ€? ๋ฅผ ํ™•์ธํ•˜๋ฉด ๋œ๋‹ค. ์ง์ ‘ ์ ‘๊ทผ - ์ง์ ‘ ์ ‘๊ทผ์˜ ์žฅ์ ์€ ๋ช…ํ™•์„ฑ์ด๋‹ค. x=10 // ๋งค์šฐ๋งค์šฐ ๋ช…ํ™•ํ•˜๋‹ค. ํ•˜์ง€๋งŒ ์ฝ”๋“œ๋ฅผ ํ†ตํ•ด ์ž์„ธํ•œ ๋‚ด์šฉ์„ ์•Œ๋ ค์ฃผ๊ธฐ๋Š” ์–ด๋ ต๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด doorRegister = 1; // ์ง๊ด€์ ์ด์ง€ ์•Š์Œ door.open(); // ๋งค์šฐ ์ง๊ด€์ ์ž„ ๋”ฐ๋ผ์„œ ์ง์ ‘ ์ ‘๊ทผ์ด ๋งŽ๋‹ค๋ฉด ์›ํ™œํ•œ ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜์„ ๋ฐฉํ•ดํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ฐ„์ ‘ ์ ‘๊ทผ - ๋ช…ํ™•์„ฑ๊ณผ ์ง์ ‘์„ฑ์„ ํฌ์ƒํ•ด์„œ ์œ ์—ฐ์„ฑ์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค. ..

์ผ„ํŠธ๋ฐฑ์˜ ๊ตฌํ˜„ ํŒจํ„ด 5์žฅ - ํด๋ž˜์Šค(2)

ํด๋ž˜์Šค ๋‚ด๋ถ€ ํด๋ž˜์Šค ์ž‘์€ ์ „์šฉ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ํด๋ž˜์Šค ์‚ฌ์šฉ์— ๋Œ€ํ•œ ๋น„์šฉ์„ ์ง€๋ถˆํ•˜์ง€ ์•Š๊ณ  ํด๋ž˜์Šค์˜ ์žฅ์ ์„ ์ทจํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‚ด๋ถ€ ํด๋ž˜์Šค๋Š” ๋‚ด๋ถ€ ํด๋ž˜์Šค๋ฅผ ๊ฐ์‹ผ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ •๋ณด๋ฅผ ์•”๋ฌต์ ์œผ๋กœ ์ „๋‹ฌ๋ฐ›๋Š”๋‹ค. ๋ช…์‹œ์ ์œผ๋กœ ํด๋ž˜์Šค ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •ํ•˜์ง€ ์•Š์œผ๋ฉด์„œ๋„ ๊ฐ์‹ผ ํด๋ž˜์Šค์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค. public class Enclose { private String field; public class Inner { public String example() { return field; } } } ๋งŒ์•ฝ ์™ธ๋ถ€ ํด๋ž˜์Šค์™€ ์™„์ „ํžˆ ๋ถ„๋ฆฌ๋œ ๋‚ด๋ถ€ ํด๋ž˜์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋ ค๋ฉด, ๋‚ด๋ถ€ ํด๋ž˜์Šค๋ฅผ ์ •์ ์œผ๋กœ ์„ ์–ธํ•˜๋ฉด ๋œ๋‹ค. ์ธ์Šคํ„ด์Šค๋ณ„ ํ–‰์œ„ ๊ฐ์ฒด์˜ ๋กœ์ง์ด ํด๋ž˜์Šค์— ์˜ํ•ด ์™„์ „ํžˆ ์ •์˜๋  ๋•Œ, ์ฝ”๋“œ ๋…์ž๋Š” ์–ด๋–ค ์ผ์ด ๋ฒŒ์–ด์ง€๋Š”์ง€ ์ดํ•ดํ•œ๋‹ค. ํ•˜์ง€๋งŒ ์ธ์Šคํ„ด..

์ผ„ํŠธ๋ฐฑ์˜ ๊ตฌํ˜„ ํŒจํ„ด 5์žฅ - ํด๋ž˜์Šค(1)

ํด๋ž˜์Šค ํด๋ž˜์Šค๋Š” ๋น„์Šทํ•œ ์„ฑ์งˆ์„ ๊ฐ€์ง„ ๊ฒƒ์„ ์ด์นญํ•˜๋ฉฐ, ๊ฐ์ฒด๋Š” ํด๋ž˜์Šค๊ฐ€ ๊ตฌ์ฒดํ™”๋œ ๊ฒƒ์ด๋‹ค. ํด๋ž˜์Šค ํด๋ž˜์Šค์˜ ๋กœ์ง๊ณผ ๋ฐ์ดํ„ฐ๋Š” ํ•จ๊ผ ์‚ฌ์šฉ๋˜๋ฉฐ, ๋กœ์ง์€ ๋ฐ์ดํ„ฐ์— ๋น„ํ•ด ๋ณ€ํ™”์œจ์ด ๋‚ฎ๋‹ค. ํด๋ž˜์Šค ๋‚ด๋ถ€์˜ ๋ฐ์ดํ„ฐ๋Š” ๊ด€๋ จ ๋กœ์ง์— ์˜ํ•ด ๋ณ€ํ™”ํ•˜๋ฉฐ, ํด๋ž˜์Šค ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ณ€ํ™”์œจ์€ ๋น„์Šทํ•˜๋‹ค. ๋Œ€์ฒด๋กœ ์ด ์„ ์–ธ์„ ๋‚ดํฌํ•˜๊ธฐ๋Š” ํ•˜์ง€๋งŒ ์ ˆ๋Œ€์ ์ด์ง€๋Š” ์•Š๋‹ค. ๋”ฐ๋ผ์„œ ํšจ๊ณผ์ ์ธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์„ ์œ„ํ•ด์„œ ๋กœ์ง์„ ํด๋ž˜์Šค ๋‹จ์œ„๋กœ ์–ด๋–ป๊ฒŒ ๊ตฌ์„ฑํ•ด์•ผ ํ•˜๋‚œ์ง€, ๋กœ์ง ์‚ฌ์ด์˜ ์ฐจ์ด์ ์„ ์–ด๋–ป๊ฒŒ ํšจ๊ณผ์ ์œผ๋กœ ํ‘œํ˜„ํ•ด์•ผํ•˜๋Š”์ง€ ๋ฐฐ์›Œ์•ผ ํ•œ๋‹ค. ํด๋ž˜์Šค ๊ณ„์ธต์„ ์‚ฌ์šฉํ•˜๋ฉด ํ•˜์œ„ ํด๋ž˜์Šค๋ฅผ ์ดํ•ดํ•˜๊ธฐ ์œ„ํ•ด ์ƒ์œ„ ํด๋ž˜์Šค ๋˜ํ•œ ๋ชจ๋‘ ์ดํ•ดํ•ด์•ผ ํ•˜๋ฏ€๋กœ ์ฝ๊ธฐ ์–ด๋ ค์›Œ์ง„๋‹ค. ๋ชจ๋“  ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๊ธฐ ๋ณด๋‹จ ์„ ๋ณ„์ ์œผ๋กœ ํด๋ž˜์Šค๋ฅผ ์ƒ์†ํ•˜์ž ํด๋ž˜์Šค๋Š” ํ”„๋กœ๊ทธ๋žจ์˜ ์„ค๊ณ„ ์š”์†Œ ์ค‘ ๊ฐ’์ด ๋น„์‹ผ ํŽธ์ด๋ฏ€๋กœ, ์˜๋ฏธ ์žˆ..

์ผ„ํŠธ๋ฐฑ์˜ ๊ตฌํ˜„ ํŒจํ„ด 3์žฅ - ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ด๋ก 

ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ด๋ก  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์ด๋ก ์€ ์ƒˆ๋กœ์šด ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ด๋„ ํ•ด๊ฒฐ์ฑ…์„ ์ฐพ์„ ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค€๋‹ค. ์‹ค์ œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ๋™๋ ฅ์ด ์กด์žฌํ•œ๋‹ค. 1. ๊ฐ€์น˜ - ๊ฐ€์น˜๋Š” ๋ชจ๋“  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ์ ์šฉ๋œ๋‹ค. - ์ปค๋ฎค๋‹ˆํ…Œ์ด์…˜ , ์œ ์—ฐ์„ฑ ๋“ฑ ๋ชจ๋“  ์˜์‚ฌ ๊ฒฐ์ •์— ์˜ํ–ฅ์„ ๋ฏธ์นœ๋‹ค. 2. ์›์น™ - ์ง์ ‘ ์ ์šฉํ•˜๊ธฐ ์–ด๋ ค์šด ๊ฐ€์น˜์™€ , ์ง€์—ฝ ์ ์ธ ํŒจํ„ด ์‚ฌ์ด์— ๊ฐ€๊ต ์—ญํ• ์„ ํ•œ๋‹ค. - ํŒจํ„ด ์ค‘ ํ•˜๋‚˜๋ฅผ ์„ ํƒํ•ด์•ผ ํ•  ๋•Œ ์›์น™์„ ๋”ฐ๋ฅธ๋‹ค. ํŒจํ„ด์€ ์ง€๊ธˆ ๋‹น์žฅ ๋ฌด์—‡์„ ํ•ด์•ผํ• ์ง€๋ฅผ ์•Œ๋ ค์ฃผ๊ณ , ๊ฐ€์น˜๋Š” ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๋™๊ธฐ๋ฅผ ์•Œ๋ ค์ฃผ๋ฉฐ, ์›์น™์€ ๋™๊ธฐ๋ฅผ ํ–‰๋™์œผ๋กœ ์–ด๋–ป๊ฒŒ ๋ฐ”๊ฟ€์ง€๋ฅผ ์•Œ๋ ค์ค€๋‹ค. ๊ฐ€์น˜ ์„ธ๊ฐ€์ง€ ๊ฐ€์น˜๋Š” ์„œ๋กœ ์ถฉ๋Œํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ์ง€๋งŒ ์ƒํ˜ธ ๋ณด์™„์ ์ธ ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์ปค๋ฎค๋‹ˆ์ผ€์ด์…˜ ๋‹ค๋ฅธ ๊ฐœ๋ฐœ์ž๊ฐ€ ๋ดค์„ ๋•Œ์˜ ๊ด€์ ์œผ๋กœ ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•˜๋ผ ์ฝ”๋“œ๋ฅผ ์‰ฝ๊ฒŒ ์ดํ•ดํ•˜๊ณ , ์ˆ˜์ •ํ•˜๊ณ , ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์–ด..