diff --git a/developLog/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png b/developLog/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png new file mode 100644 index 0000000..9f2f444 Binary files /dev/null and b/developLog/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png b/developLog/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png index 9f2f444..b7c7925 100644 Binary files a/developLog/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png and b/developLog/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png b/developLog/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png index b7c7925..7c06027 100644 Binary files a/developLog/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png and b/developLog/.gitbook/assets/image (1) (1) (1) (1) (1) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png b/developLog/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png index 7c06027..91d3397 100644 Binary files a/developLog/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png and b/developLog/.gitbook/assets/image (1) (1) (1) (1) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (1) (1) (1) (1) (1).png b/developLog/.gitbook/assets/image (1) (1) (1) (1) (1).png index 91d3397..0e0ef9c 100644 Binary files a/developLog/.gitbook/assets/image (1) (1) (1) (1) (1).png and b/developLog/.gitbook/assets/image (1) (1) (1) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (1) (1) (1) (1).png b/developLog/.gitbook/assets/image (1) (1) (1) (1).png index 0e0ef9c..760b710 100644 Binary files a/developLog/.gitbook/assets/image (1) (1) (1) (1).png and b/developLog/.gitbook/assets/image (1) (1) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (1) (1) (1).png b/developLog/.gitbook/assets/image (1) (1) (1).png index 760b710..13900d1 100644 Binary files a/developLog/.gitbook/assets/image (1) (1) (1).png and b/developLog/.gitbook/assets/image (1) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (1) (1).png b/developLog/.gitbook/assets/image (1) (1).png index 13900d1..372f493 100644 Binary files a/developLog/.gitbook/assets/image (1) (1).png and b/developLog/.gitbook/assets/image (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (1).png b/developLog/.gitbook/assets/image (1).png index 372f493..91c1e99 100644 Binary files a/developLog/.gitbook/assets/image (1).png and b/developLog/.gitbook/assets/image (1).png differ diff --git a/developLog/.gitbook/assets/image (2) (1) (1) (1) (1) (1).png b/developLog/.gitbook/assets/image (2) (1) (1) (1) (1) (1).png new file mode 100644 index 0000000..9f2f444 Binary files /dev/null and b/developLog/.gitbook/assets/image (2) (1) (1) (1) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (2) (1) (1) (1) (1).png b/developLog/.gitbook/assets/image (2) (1) (1) (1) (1).png index 9f2f444..92c391b 100644 Binary files a/developLog/.gitbook/assets/image (2) (1) (1) (1) (1).png and b/developLog/.gitbook/assets/image (2) (1) (1) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (2) (1) (1) (1).png b/developLog/.gitbook/assets/image (2) (1) (1) (1).png index 92c391b..50d2dbf 100644 Binary files a/developLog/.gitbook/assets/image (2) (1) (1) (1).png and b/developLog/.gitbook/assets/image (2) (1) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (2) (1) (1).png b/developLog/.gitbook/assets/image (2) (1) (1).png index 50d2dbf..1365cd3 100644 Binary files a/developLog/.gitbook/assets/image (2) (1) (1).png and b/developLog/.gitbook/assets/image (2) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (2) (1).png b/developLog/.gitbook/assets/image (2) (1).png index 1365cd3..2970feb 100644 Binary files a/developLog/.gitbook/assets/image (2) (1).png and b/developLog/.gitbook/assets/image (2) (1).png differ diff --git a/developLog/.gitbook/assets/image (2).png b/developLog/.gitbook/assets/image (2).png index 2970feb..5ff80ef 100644 Binary files a/developLog/.gitbook/assets/image (2).png and b/developLog/.gitbook/assets/image (2).png differ diff --git a/developLog/.gitbook/assets/image (3) (1) (1) (1) (1) (1).png b/developLog/.gitbook/assets/image (3) (1) (1) (1) (1) (1).png new file mode 100644 index 0000000..890d56a Binary files /dev/null and b/developLog/.gitbook/assets/image (3) (1) (1) (1) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (3) (1) (1) (1) (1).png b/developLog/.gitbook/assets/image (3) (1) (1) (1) (1).png index 890d56a..28e60ee 100644 Binary files a/developLog/.gitbook/assets/image (3) (1) (1) (1) (1).png and b/developLog/.gitbook/assets/image (3) (1) (1) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (3) (1) (1) (1).png b/developLog/.gitbook/assets/image (3) (1) (1) (1).png index 28e60ee..50d2dbf 100644 Binary files a/developLog/.gitbook/assets/image (3) (1) (1) (1).png and b/developLog/.gitbook/assets/image (3) (1) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (3) (1) (1).png b/developLog/.gitbook/assets/image (3) (1) (1).png index 50d2dbf..7c181da 100644 Binary files a/developLog/.gitbook/assets/image (3) (1) (1).png and b/developLog/.gitbook/assets/image (3) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (3) (1).png b/developLog/.gitbook/assets/image (3) (1).png index 7c181da..ce09960 100644 Binary files a/developLog/.gitbook/assets/image (3) (1).png and b/developLog/.gitbook/assets/image (3) (1).png differ diff --git a/developLog/.gitbook/assets/image (3).png b/developLog/.gitbook/assets/image (3).png index ce09960..62cfc7c 100644 Binary files a/developLog/.gitbook/assets/image (3).png and b/developLog/.gitbook/assets/image (3).png differ diff --git a/developLog/.gitbook/assets/image (4) (1) (1) (1).png b/developLog/.gitbook/assets/image (4) (1) (1) (1).png new file mode 100644 index 0000000..91a89e4 Binary files /dev/null and b/developLog/.gitbook/assets/image (4) (1) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (4) (1) (1).png b/developLog/.gitbook/assets/image (4) (1) (1).png index 91a89e4..57f2433 100644 Binary files a/developLog/.gitbook/assets/image (4) (1) (1).png and b/developLog/.gitbook/assets/image (4) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (4) (1).png b/developLog/.gitbook/assets/image (4) (1).png index 57f2433..22bef03 100644 Binary files a/developLog/.gitbook/assets/image (4) (1).png and b/developLog/.gitbook/assets/image (4) (1).png differ diff --git a/developLog/.gitbook/assets/image (4).png b/developLog/.gitbook/assets/image (4).png index 22bef03..6871735 100644 Binary files a/developLog/.gitbook/assets/image (4).png and b/developLog/.gitbook/assets/image (4).png differ diff --git a/developLog/.gitbook/assets/image (5) (1) (1) (1).png b/developLog/.gitbook/assets/image (5) (1) (1) (1).png new file mode 100644 index 0000000..c7760ed Binary files /dev/null and b/developLog/.gitbook/assets/image (5) (1) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (5) (1) (1).png b/developLog/.gitbook/assets/image (5) (1) (1).png index c7760ed..1999d00 100644 Binary files a/developLog/.gitbook/assets/image (5) (1) (1).png and b/developLog/.gitbook/assets/image (5) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (5) (1).png b/developLog/.gitbook/assets/image (5) (1).png index 1999d00..22bef03 100644 Binary files a/developLog/.gitbook/assets/image (5) (1).png and b/developLog/.gitbook/assets/image (5) (1).png differ diff --git a/developLog/.gitbook/assets/image (5).png b/developLog/.gitbook/assets/image (5).png index 22bef03..0ee06cd 100644 Binary files a/developLog/.gitbook/assets/image (5).png and b/developLog/.gitbook/assets/image (5).png differ diff --git a/developLog/.gitbook/assets/image (6) (1) (1) (1).png b/developLog/.gitbook/assets/image (6) (1) (1) (1).png new file mode 100644 index 0000000..1d6b6ce Binary files /dev/null and b/developLog/.gitbook/assets/image (6) (1) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (6) (1) (1).png b/developLog/.gitbook/assets/image (6) (1) (1).png index 1d6b6ce..1c631d9 100644 Binary files a/developLog/.gitbook/assets/image (6) (1) (1).png and b/developLog/.gitbook/assets/image (6) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (6) (1).png b/developLog/.gitbook/assets/image (6) (1).png index 1c631d9..1aab74b 100644 Binary files a/developLog/.gitbook/assets/image (6) (1).png and b/developLog/.gitbook/assets/image (6) (1).png differ diff --git a/developLog/.gitbook/assets/image (6).png b/developLog/.gitbook/assets/image (6).png index 1aab74b..5196d58 100644 Binary files a/developLog/.gitbook/assets/image (6).png and b/developLog/.gitbook/assets/image (6).png differ diff --git a/developLog/.gitbook/assets/image (7) (1) (1) (1).png b/developLog/.gitbook/assets/image (7) (1) (1) (1).png new file mode 100644 index 0000000..589833a Binary files /dev/null and b/developLog/.gitbook/assets/image (7) (1) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (7) (1) (1).png b/developLog/.gitbook/assets/image (7) (1) (1).png index 589833a..1c631d9 100644 Binary files a/developLog/.gitbook/assets/image (7) (1) (1).png and b/developLog/.gitbook/assets/image (7) (1) (1).png differ diff --git a/developLog/.gitbook/assets/image (7) (1).png b/developLog/.gitbook/assets/image (7) (1).png index 1c631d9..1aaad0e 100644 Binary files a/developLog/.gitbook/assets/image (7) (1).png and b/developLog/.gitbook/assets/image (7) (1).png differ diff --git a/developLog/.gitbook/assets/image (7).png b/developLog/.gitbook/assets/image (7).png index 1aaad0e..17ac0da 100644 Binary files a/developLog/.gitbook/assets/image (7).png and b/developLog/.gitbook/assets/image (7).png differ diff --git a/developLog/.gitbook/assets/image.png b/developLog/.gitbook/assets/image.png index 17ac0da..b653983 100644 Binary files a/developLog/.gitbook/assets/image.png and b/developLog/.gitbook/assets/image.png differ diff --git a/developLog/README.md b/developLog/README.md index f110a37..17bce53 100644 --- a/developLog/README.md +++ b/developLog/README.md @@ -46,7 +46,7 @@ layout: * ๐Ÿ“ ์ €๋Š” ๊ธฐ๋กํ•˜๊ณ  ๋‚จ๋“ค๊ณผ ์ •๋ณด๋ฅผ ๋‚˜๋ˆ„๋Š” ๊ฒƒ์„ ์ข‹์•„ํ•˜๊ธฐ์— [![](https://img.shields.io/badge/Velog-20C997?style=flat-square\&logo=Velog\&logoColor=white\&https://velog.io/@prettylee620)](https://velog.io/@prettylee620) ์™€ [![](https://img.shields.io/badge/Notion-000000?style=flat-square\&logo=Notion\&logoColor=white)](https://mellona.oopy.io/)์— ๊ธฐ๋กํ•ฉ๋‹ˆ๋‹ค. * ๐Ÿ“Œ ์ตœ๊ทผ์— ๊ธฐ๋กํ•˜์—ฌ ๋งŽ์€ ๊ณต๊ฐ์„ ์–ป์—ˆ๋˜ ๊ธ€์€ **๋ฉด์ ‘์— ๊ด€๋ จ๋œ ๊ธ€**์ด๋ฉฐ, ๊ทธ ์™ธ์˜ ๋‹ค์ˆ˜์˜ ๊ธ€๋กœ ๊ณต๊ฐ๊ณผ ๋Œ“๊ธ€์„ ๋ฐ›์•˜์œผ๋ฉฐ, 2024๋…„ **velog ํŒ”๋กœ์›Œ 100๋ช… ์ด์ƒ**์„ ๋‹ฌ์„ฑํ•˜์˜€์Šต๋‹ˆ๋‹ค. -
+
### โ˜Ž CONTACT diff --git a/developLog/SUMMARY.md b/developLog/SUMMARY.md index 1819d84..87e2cc6 100644 --- a/developLog/SUMMARY.md +++ b/developLog/SUMMARY.md @@ -62,6 +62,7 @@ ## Algorithm-DataStructure +* [Algorithm ๊ด€๋ จ bookmark](algorithm-datastructure/algorithm-bookmark.md) * [์ž๋ฃŒ๊ตฌ์กฐ](algorithm-datastructure/data-structure/README.md) * [Big O](algorithm-datastructure/data-structure/big-o.md) * [์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ](algorithm-datastructure/data-structure/undefined.md) @@ -104,6 +105,8 @@ * [๊ฐœ๋ฐœ์ž ์˜จ๋ณด๋”ฉ ๊ฐ€์ด๋“œ 4์žฅ -(1)](book/onboarding/4/4-1.md) * [ํ•„๋… ๊ฐœ๋ฐœ์ž ์˜จ๋ณด๋”ฉ ๊ฐ€์ด๋“œ 4์žฅ -(2)](book/onboarding/4/4-2.md) * [๊ฐœ๋ฐœ์ž ์˜จ๋ณด๋”ฉ ๊ฐ€์ด๋“œ 4์žฅ - (3)](book/onboarding/4/4-3.md) +* [๊ฐ์ฒด์ง€ํ–ฅ์˜ ์˜คํ•ด์™€ ์‚ฌ์‹ค](book/oop/README.md) + * [1์žฅ : ํ˜‘๋ ฅํ•˜๋Š” ๊ฐ์ฒด๋“ค์˜ ๊ณต๋™์ฒด](book/oop/1.md) ## ๐ŸŒธ ํšŒ๊ณ ๋ก @@ -151,3 +154,5 @@ * [์ฃผ๋‹ˆ์–ด๊ฐ€ ์ฒซ ํšŒ์‚ฌ ๋‹ค๋‹ˆ๋ฉด์„œ ๊นจ๋‹ฌ์€(?๊นจ๋‹ฌ์•„๊ฐ€๋Š”) 20๊ฐ€์ง€](ex/employment-job-change/si/20.md) * [์‚ด์•„๊ฐ€๋Š” ์ด์•ผ๊ธฐ](ex/my-story/README.md) * [๋Œ€ํ•™ ์ž…ํ•™ ์ „ \~ ์ทจ์—… ์ „๊นŒ์ง€์˜ ์•„๋ฅด๋ฐ”์ดํŠธ ํšŒ๊ณ ](ex/my-story/undefined.md) +* [์–ป์€ ์ง€์‹ ๋ชจ์Œ](ex/knowledge/README.md) + * [ํŠธ์œ„ํ„ฐ๋ฅผ ํ†ตํ•œ ๋ชจ๋ฅด๋Š” ์ง€์‹์„ ์–ป์–ด๊ฐ€๊ธฐ](ex/knowledge/undefined.md) diff --git a/developLog/algorithm-datastructure/algorithm-bookmark.md b/developLog/algorithm-datastructure/algorithm-bookmark.md new file mode 100644 index 0000000..edaf3b1 --- /dev/null +++ b/developLog/algorithm-datastructure/algorithm-bookmark.md @@ -0,0 +1,30 @@ +--- +icon: circle-bookmark +--- + +# Algorithm ๊ด€๋ จ bookmark + +### ๐Ÿ“Œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ + +> ์กฐ๊ธˆ ๊ดœ์ฐฎ์€ ๊ธฐ์—…์œผ๋กœ ๊ฐ€๋ ค๋ฉด ํ•„์ˆ˜์ธ ์•Œ๊ณ ๋ฆฌ์ฆ˜๊ณผ ์ฝ”๋”ฉํ…Œ์ŠคํŠธ + +* [์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€์— ๋Œ€ํ•œ ๋กœ๋“œ๋งต](https://blog.yena.io/studynote/2018/11/14/Algorithm-Basic.html) ์ดˆ๋ณด์ž ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€ ์‹œ์ž‘ ๋ฐฉ๋ฒ• ๋ฐ ์ˆœ์„œ +* [์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ ๋ธ”๋กœ๊ทธ](https://velog.io/@matisse/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%ED%83%90%EC%83%89-%EC%A0%95%EB%A0%AC-%EA%B0%84%EB%8B%A8-%EC%A0%95%EB%A6%AC) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ฐ„๋‹จ ์ •๋ฆฌ ๋ธ”๋กœ๊ทธ +* [์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐ”๋ณด ์ทจ์—…์„ ์œ„ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ •๋ฆฌ](https://covenant.tistory.com/220) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฐ”๋ณด์˜ ์ทจ์ค€์„ ์œ„ํ•œ ์ฝ”ํ…Œ ๊ณต๋ถ€๋ฐฉ๋ฒ• +* [์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ ๋ฌธ์ œ์ง‘ with Baekjoon](https://github.com/tony9402/baekjoon) ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ๋Œ€๋น„ ๋ฌธ์ œ์ง‘์œผ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ฒ˜์Œ ์‹œ์ž‘ ์‹œ ์ฐธ๊ณ ํ•ด์•ผ ํ•˜๋Š” ๋ธ”๋กœ๊ทธ๋“ค๋„ ๋‚˜์™€ ์žˆ๋‹ค. +* [๋งˆ๋ฒ•์˜ ์Šˆํผ๋งˆ๋ฆฌ์˜ค ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ](https://m.blog.naver.com/PostList.nhn?blogId=kks227\&categoryNo=299\&logCode=0\&categoryName=%EB%8C%80%ED%9A%8C%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98) ์œ ๋ช…ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋„ค์ด๋ฒ„ ๋ธ”๋กœ๊ทธ +* [์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ดˆ๋ณด ๋ฒ—์–ด๋‚˜๊ธฐ 3๋‹จ๊ณ„](https://claudiajkang.medium.com/%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EC%B4%88%EB%B3%B4%EC%97%90%EC%84%9C-%EB%B2%97%EC%96%B4%EB%82%98%EA%B8%B0-%EC%9C%84%ED%95%9C-%EC%97%AC%EC%A0%95-1ffb6bdfec6b) ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ณด๋ณด ๋ฒ—์–ด๋‚˜๊ธฐ ์œ„ํ•œ ๋ฐฉ์•ˆ์— ๋Œ€ํ•ด ๋‚˜์™€ ์žˆ์Œ +* [๋ฐฑ์ค€ ์˜จ๋ผ์ธ ์‚ฌ์ดํŠธ๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ดˆ๋ณด๊ฐ€ ๊ณต๋ถ€ํ•˜๋Š” ๋ฐฉ๋ฒ•](https://velog.io/@dragoocho/%EB%B0%B1%EC%A4%80-%EC%98%A8%EB%9D%BC%EC%9D%B8-%EC%82%AC%EC%9D%B4%ED%8A%B8%EB%A1%9C-%EC%95%8C%EA%B3%A0%EB%A6%AC%EC%A6%98-%EA%B3%B5%EB%B6%80%ED%95%98%EB%8A%94-%EB%B0%A9%EB%B2%95) ๋ฒจ๋กœ๊ทธ ๊ธ€์ธ๋ฐ ์‹ค์ฒœ์ ์ธ ๋ฐฉ์•ˆ ์ž˜ ๋‚˜์™€์žˆ์Œ +* [ํ”„๋กœ๊ทธ๋ž˜๋ฐ๊ณผ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๊ณต๋ถ€๋ฒ•](https://seamless.tistory.com/96) ์›”๊ฐ„ ๋งˆ์†Œ 2002๋…„์— ๊ธฐ๊ณ ๋œ ๊น€์ฐฝ์ค€ ๋‹˜์˜ "์–ด๋–ป๊ฒŒ ๊ณต๋ถ€ํ• ๊นŒ: ํ”„๋กœ๊ทธ๋ž˜๋จธ๋ฅผ ์œ„ํ•œ ๊ณต๋ถ€๋ก "์ด๋ผ๋Š” ๊ธฐ์‚ฌ ๋‚ด์šฉ ํฌ์ŠคํŒ… ๋˜์–ด ์žˆ๋Š” ๋ธ”๋กœ๊ทธ ๊ธ€ +* [์ดˆ๊ธ‰-์ค‘๊ธ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์Šคํ„ฐ๋”” ์ปค๋ฆฌํ˜๋Ÿผ ์ถ”์ฒœ (3๊ฐœ์›”)](https://dev-dain.tistory.com/155) ์ดˆ๊ธ‰ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ์ปค๋ฆฌํ˜๋Ÿผ์— ๋Œ€ํ•ด ๋‚˜์™€ ์žˆ์Œ +* [์›ํ‹ฐ๋“œ ๊ฐœ๋ฐœ์ž ๋ฉด์ ‘ ์™„์ „ ์ •๋ณตํ•˜๊ธฐ (1) - ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ํŽธ](https://www.wanted.co.kr/events/22\_11\_s01\_b15) ์›ํ‹ฐ๋“œ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ํŽธ + + \ + + +### ๐Ÿ“Œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ํ’€์ด ์‚ฌ์ดํŠธ + +* [๋ฐฑ์ค€](https://www.acmicpc.net/) +* [ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค](https://programmers.co.kr/) +* [์ •์˜ฌ](https://jungol.co.kr/) +* [solved](https://solved.ac/) diff --git a/developLog/algorithm-datastructure/algorithm/README.md b/developLog/algorithm-datastructure/algorithm/README.md index d6efca4..2642836 100644 --- a/developLog/algorithm-datastructure/algorithm/README.md +++ b/developLog/algorithm-datastructure/algorithm/README.md @@ -1,7 +1,7 @@ --- -description: ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ชจ์•„๋‘๋Š” ํŽ˜์ด์ง€ icon: toilet-paper-blank -cover: ../../.gitbook/assets/image.png +description: ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ชจ์•„๋‘๋Š” ํŽ˜์ด์ง€ +cover: ../../.gitbook/assets/image (7).png coverY: -368.75733333333335 layout: cover: diff --git a/developLog/algorithm-datastructure/data-structure/undefined.md b/developLog/algorithm-datastructure/data-structure/undefined.md index d8891cd..c838290 100644 --- a/developLog/algorithm-datastructure/data-structure/undefined.md +++ b/developLog/algorithm-datastructure/data-structure/undefined.md @@ -36,7 +36,7 @@ ## 2. ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ž€? -
+
### 1) ๊ฐœ๋… @@ -45,7 +45,7 @@ ### 2) ๋…ธ๋“œ(Node) -
+
* ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์—์„œ ์‚ฌ์šฉ๋˜๋Š” ํ•˜๋‚˜์˜ ๋ฐ์ดํ„ฐ ๋ฉ์–ด๋ฆฌ์ด๋ฉฐ, `๋ฐ์ดํ„ฐ & ๋งํฌ`์ด 2๊ฐ€์ง€์˜ ํ•„๋“œ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ตฌ์กฐ * data : ๋…ธ๋“œ๊ฐ€ ๋‹ด๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ/๊ฐ’, ๋ฌธ์ž์—ด, ์ˆซ์ž ๋“ฑ๋“ฑ ์›ํ•˜๋Š” ๊ฐ’์„ ๋„ฃ๊ณ  ์ €์žฅ @@ -54,7 +54,7 @@ ### 3) ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ์˜ ๊ตฌ์กฐ -
+
1. ๋งˆ์ง€๋ง‰ ์—ฐ๊ฒฐํ•  ๊ฒƒ์€ ์—†๊ธฐ์— null๊ณผ ์—ฐ๊ฒฐ 2. ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ์ฒซ ๋ฒˆ์งธ ์ฆ‰, ์‹œ์ž‘ ์ง€์ ์— ์žˆ๋Š” ๊ฒƒ์„ `head`๋ผ๊ณ  ํ•จ @@ -62,7 +62,7 @@ ### 4) ๋ฐฐ์—ด vs ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ -
+
#### ๋ฐฐ์—ด @@ -85,7 +85,7 @@ #### Singly Linked List(๋‹จ์ผ ์—ฐ๊ฒฐ ๋ฆฌ์ŠคํŠธ) -
+
1. ๋Œ€๋ถ€๋ถ„์˜ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ์˜ ๋ฌธ์ œ์˜ ์ฃผ๋ ฅ 2. ๋‹ค์Œ ๋…ธ๋“œ์— ๋Œ€ํ•œ ํฌ์ธํ„ฐ๋งŒ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค diff --git a/developLog/book/oop/1.md b/developLog/book/oop/1.md new file mode 100644 index 0000000..6a20025 --- /dev/null +++ b/developLog/book/oop/1.md @@ -0,0 +1,191 @@ +# 1์žฅ : ํ˜‘๋ ฅํ•˜๋Š” ๊ฐ์ฒด๋“ค์˜ ๊ณต๋™์ฒด + +> ๊ฐ์ฒด์ง€ํ–ฅ ํŒจ๋Ÿฌ๋‹ค์ž„์˜ ํ•ต์‹ฌ์ด ์ž์œจ์ ์ธ ๊ฐ์ฒด๋“ค์˜ ํ˜‘๋ ฅ์ด๋ผ๋Š” ์‚ฌ์‹ค์„ ๊ฐ•์กฐ + + + +ํ˜„์‹ค ์†์— ์กด์žฌํ•˜๋Š” ์‚ฌ๋ฌผ์„ ์ตœ๋Œ€ํ•œ ์œ ์‚ฌํ•˜๊ฒŒ ๋ชจ๋ฐฉํ•ด ์†Œํ”„ํŠธ์›จ์–ด ๋‚ด๋ถ€์— ์˜ฎ๊ฒจ์˜ค๋Š” ์ž‘์—… + +โ‡’ ๊ทธ ๊ฒฐ๊ณผ๋ฌผ์ธ ๊ฐ์ฒด์ง€ํ–ฅ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ์‹ค์„ธ๊ณ„์˜ ํˆฌ์˜์ด๋ฉฐ, ๊ฐ์ฒด๋ž€ ํ˜„์‹ค ์„ธ๊ณ„์— ์กด์žฌํ•˜๋Š” ์‚ฌ๋ฌผ์— ๋Œ€ํ•œ ์ถ”์ƒํ™”๋ผ๋Š” ๊ฒƒ + +\ +ํ•˜์ง€๋งŒ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ฐœ๋ฐœ ์‹œ, ๊ฐ์ฒด์— ์ง์ ‘์ ์œผ๋กœ ๋Œ€์‘๋˜๋Š” ์‹ค์„ธ๊ณ„์˜ ์‚ฌ๋ฌผ์„ ๋ฐœ๊ฒฌํ•  ํ™•๋ฅ ์€ ๊ทธ๋‹ค์ง€ ๋†’์ง€ ์•Š์œผ๋ฉฐ, ์žˆ๋‹คํ•ด๋„ ์œ ์‚ฌ์„ฑ์„ ์ฐพ๊ธฐ ์–ด๋ ค์šธ ์ •๋„ + + + +> ๊ฐ์ฒด ์ง€ํ–ฅ์˜ ๋ชฉํ‘œ๋Š” ์‹ค์„ธ๊ณ„๋ฅผ ๋ชจ๋ฐฉํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋‹ค. ์˜คํžˆ๋ ค ์ƒˆ๋กœ์šด ์„ธ๊ณ„๋ฅผ ์ฐฝ์กฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค. + +์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ์ž์˜ ์—ญํ• ์€ ๋‹จ์ˆœํžˆ ์‹ค์„ธ๊ณ„๋ฅผ ์†Œํ”„ํŠธ์›จ์–ด ์•ˆ์œผ๋กœ ๋‹ด๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ๊ณ ๊ฐ๊ณผ ์‚ฌ์šฉ์ž๋ฅผ ๋งŒ์กฑ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋Š” ์‹ ์„ธ๊ณ„๋ฅผ ์ฐฝ์กฐํ•˜๋Š” ๊ฒƒ์ด๋‹ค. + +\ +๊ทธ๋ ‡๋‹ค๋ฉด ๋Œ€์‘ํ•œ๋‹ค๋Š” ์–˜๊ธฐ๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ์ด์œ ๋Š” ๋ญ˜๊นŒ? ๊ทธ๊ฒƒ์€ **์‹ค์„ธ๊ณ„์— ๋Œ€ํ•œ ๋น„์œ ๊ฐ€ ๊ฐ์ฒด์ง€ํ–ฅ์˜ ๋‹ค์–‘ํ•œ ์ธก๋ฉด์„ ์ดํ•ดํ•˜๊ณ  ํ•™์Šตํ•˜๋Š” ๋ฐ ๋งค์šฐ ํšจ๊ณผ์ ์ด๊ธฐ ๋•Œ๋ฌธ**์ด๋‹ค. + +\ +๊ฐ์ฒด๋ฅผ ์Šค์Šค๋กœ ์ƒ๊ฐํ•˜๊ณ  ์Šค์Šค๋กœ ๊ฒฐ์ •ํ•˜๋Š” ํ˜„์‹ค ์„ธ๊ณ„์˜ ์ƒ๋ช…์ฒด = ์ƒํƒœ์™€ ํ–‰์œ„๋ฅผ ์บก์Šํ™”ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด์˜ ์ž์œจ์„ฑ์„ ์„ค๋ช…ํ•˜๋Š”๋ฐ ํšจ๊ณผ์  + +\ +์ฆ‰, ์‹ค์„ธ๊ณ„์˜ ์‚ฌ๋ฌผ์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์†Œํ”„ํŠธ์›จ์–ด ๊ฐ์ฒด๋ฅผ ์‹๋ณ„ํ•˜๊ณ  ๊ตฌํ˜„๊นŒ์ง€ ์ด์–ด๊ฐ„๋‹ค๋Š” ๊ฐœ๋…์€ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„์˜ ํ•ต์‹ฌ ์‚ฌ์ƒ์ธ `์—ฐ๊ฒฐ์™„์ „์„ฑ(seamlessness)`๋ฅผ ์„ค๋ช…ํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•œ ํ‹€์„ ์ œ๊ณตํ•œ๋‹ค. + +\ +๊ด€์ ์—์„œ๋Š” ๋ถ€์ ํ•ฉํ•˜์ง€๋งŒ ๊ฐ์ฒด์ง€ํ–ฅ์ด๋ผ๋Š” ์šฉ์–ด์— ๋‹ด๊ธด ๊ธฐ๋ณธ ์‚ฌ์ƒ์„ ์ดํ•ดํ•˜๊ณ  ํ•™์Šตํ•˜๋Š” ๋ฐ๋Š” ๋งค์šฐ ํšจ๊ณผ์  + +## 1. ํ˜‘๋ ฅํ•˜๋Š” ์‚ฌ๋žŒ๋“ค + +๋งˆ์น˜ ๋ฐ”๋ฆฌ์Šคํƒ€, ์บ์‹œ์›์ด ์ž์‹ ์˜ ๋งก์€ ๋ฐ”์ธ ์—ญํ• ๋ฅผ ์ฑ…์ž„์„ ์ง€๊ณ  ํ˜‘๋ ฅํ•ด์„œ ์ปคํ”ผ๋ฅผ ์ฃผ๋‹ˆ ์ถœ๊ทผ์‹œ๊ฐ„์— ์ปคํ”ผ๊ฐ€ ๋‚˜์˜ฌ ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๊ฐ์ฒด์ง€ํ–ฅ์—์„œ ๊ฐ€์žฅ ์ค‘์š”ํ•œ ๊ฐœ๋… 3๊ฐ€์ง€๋Š” ์—ญํ• , ์ฑ…์ž„, ํ˜‘๋ ฅ์ด๋‹ค. + +### 1) ์š”์ฒญ๊ณผ ์‘๋‹ต์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ˜‘๋ ฅ + +์‚ฌ๋žŒ๋“ค์€ ํ•ด๊ฒฐํ•˜์ง€ ๋ชปํ•˜๋ฉด ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•ด์ค„ ์ˆ˜ ์žˆ๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ๋„์›€์„ `์š”์ฒญ(request)`ํ•œ๋‹ค.\ +์ผ๋ฐ˜์ ์œผ๋กœ ํ•˜๋‚˜์˜ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค์ˆ˜์˜ ์‚ฌ๋žŒ์ด ํ•„์š”ํ•˜๋ฏ€๋กœ ์š”์ฒญ์€ ์—ฐ์‡„์ ์œผ๋กœ ๋ฐœ์ƒํ•œ๋‹ค. + +\ +์š”์ฒญ์„ ๋ฐ›์€ ์‚ฌ๋žŒ์€ ์ฃผ์–ด์ง„ ์ฑ…์ž„์„ ๋‹คํ•˜๋ฉด์„œ ํ•„์š”ํ•œ ์ง€์‹์ด๋‚˜ ์„œ๋น„์Šค๋ฅผ ์ œ๊ณตํ•œ๋‹ค. ์ฆ‰, ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์š”์ฒญ์— `์‘๋‹ต(response)`ํ•œ๋‹ค. + +\ +์š”์ฒญ๊ณผ ์‘๋‹ต์„ ํ†ตํ•ด ๋‹ค๋ฅธ ์‚ฌ๋žŒ๊ณผ ํ˜‘๋ ฅ(collaboration)ํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์€ ์ธ๊ฐ„์œผ๋กœ ํ•˜์—ฌ๊ธˆ ๊ฑฐ๋Œ€ํ•˜๊ณ  ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต๋™์ฒด๋ฅผ ํ˜•์„ฑํ•  ์ˆ˜ ์žˆ๊ฒŒ ๋งŒ๋“ ๋‹ค. + +### 2) ์—ญํ• ๊ณผ ์ฑ…์ž„ + +์‚ฌ๋žŒ๋“ค์€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ๊ณผ ํ˜‘๋ ฅํ•˜๋Š” ๊ณผ์ • ์†์—์„œ ํŠน์ •ํ•œ **์—ญํ• (role)**๋ฅผ ๋ถ€์—ฌ๋ฐ›๋Š”๋‹ค. + +> ์—ญํ• ์€ ์–ด๋–ค ํ˜‘๋ ฅ์— ์ฐธ์—ฌํ•˜๋Š” ํŠน์ •ํ•œ ์‚ฌ๋žŒ์ด ํ˜‘๋ ฅ ์•ˆ์—์„œ ์ฐจ์ง€ํ•˜๋Š” ์ฑ…์ž„์ด๋‚˜ ์ž„๋ฌด๋ฅผ ์˜๋ฏธํ•œ๋‹ค. + +์˜ˆ์‹œ๋กœ ๋ฐ”๋ฆฌ์ŠคํŠธ ์—ญํ• ์„ ๋งก์€ ์‚ฌ๋žŒ์€ ์ฃผ๋ฌธ๋œ ์ปคํ”ผ๋ฅผ ์ œ์กฐํ•ด์•ผ ํ•˜๋Š” ์ฑ…์ž„์ด ์žˆ๋‹ค. ์ฆ‰, **์—ญํ• **์ด๋ผ๋Š” ๋‹จ์–ด๋Š” ์˜๋ฏธ์ ์œผ๋กœ ์ฑ…์ž„(responsibility)์ด๋ผ๋Š” ๊ฐœ๋…์„ ๋‚ดํฌํ•œ๋‹ค.\ + + +์—ญํ• ๊ณผ ์ฑ…์ž„์€ ํ˜‘๋ ฅ์ด ์›ํ™œํ•˜๊ฒŒ ์ง„ํ–‰๋˜๋Š” ๋ฐ ํ•„์š”ํ•œ ํ•ต์‹ฌ์ ์ธ ๊ตฌ์„ฑ ์š”์†Œ์ด๋ฉฐ, ์—ญํ• ์— ์ ํ•ฉํ•œ ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•œ๋‹ค๋Š” ์‚ฌ์‹ค์€ ๋ช‡ ๊ฐ€์ง€ ์ค‘์š”ํ•œ ๊ฐœ๋…์„ ์ œ์‹œํ•œ๋‹ค. + +* ์—ฌ๋Ÿฌ ์‚ฌ๋žŒ์ด ๋™์ผํ•œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. : ๋ฐ”๋ฆฌ์Šคํƒ€๊ฐ€ ์ฃผ๋ฌธ์„ ๋ฐ›์„ ์ˆ˜ ๋„ ์žˆ๋Š” ๊ฑฐ์ž„ +* ์—ญํ• ์€ ๋Œ€์ฒด ๊ฐ€๋Šฅ์„ฑ์„ ์˜๋ฏธํ•œ๋‹ค. : ์†๋‹˜ ์ž…์žฅ์—์„œ๋Š” ์ฃผ๋ฌธ์ž๋Š” ๋Œ€์ฒด ๊ฐ€๋Šฅ(substituable)ํ•˜๋‹ค. +* ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์€ ์ž์œจ์ ์œผ๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค. : ๋ฐ”๋ฆฌ์Šคํƒ€๋Š” ์ž์‹ ๋งŒ์˜ ๋…ํŠนํ•œ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•˜ํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๊ฑฐ๋‚˜ ๋˜ ๋‹ค๋ฅธ ๋ฐ”๋ฆฌ์Šคํƒ€๋Š” ๋‹ค๋ฅธ ๋ฐฉ๋ฒ•์œผ๋กœ ํ•˜ํŠธ๋ฅผ ๋งŒ๋“ค ์ˆ˜๋„ ์žˆ๋‹ค. +* ์ฆ‰, ์ปคํ”ผ ์ œ์กฐ๋ผ๋Š” ๋™์ผํ•œ ์š”์ฒญ์„ ๋ฐ›๋”๋ผ๋„ ๋ฐ”๋ฆฌ์Šคํƒ€์˜ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์‚ฌ๋žŒ๋“ค๋งˆ๋‹ค ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ + +> ์ด์ฒ˜๋Ÿผ ๋™์ผํ•œ ์š”์ฒญ์— ๋Œ€ํ•ด ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐฉ์‹์œผ๋กœ ์‘๋‹ตํ•  ์ˆ˜ ์žˆ๋Š” ๋Šฅ๋ ฅ์„ ๋‹คํ˜•์„ฑ(polymorphism)์ด๋ผ๊ณ  ํ•œ๋‹ค. + +* ํ•œ ์‚ฌ๋žŒ์ด ๋™์‹œ์— ์—ฌ๋Ÿฌ ์—ญํ• ์„ ํ•  ์ˆ˜ ์žˆ๋‹ค. : ํ•œ ์‚ฌ๋žŒ์ด ๋ฐ”๋ฆฌ์Šคํƒ€์˜ ์—ญํ• ๊ณผ ์บ์‹œ์–ด ๋™์‹œ์— ์ˆ˜ํ–‰๋„ ๊ฐ€๋Šฅํ•˜๋‹ค. + +## 2. ์—ญํ• , ์ฑ…์ž„, ํ˜‘๋ ฅ + +### 1) ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ํ˜‘๋ ฅํ•˜๋Š” ๊ฐ์ฒด๋“ค + +> ์‚ฌ๋žŒ์ด๋ผ๋Š” ๋‹จ์–ด๋ฅผ ๊ฐ์ฒด๋กœ, ์—์ด์ „ํŠธ์˜ ์š”์ฒญ์„ ๋ฉ”์„ธ์ง€๋กœ, ์—์ด์ „ํŠธ๊ฐ€ ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ๋ฉ”์„œ๋“œ๋กœ ๋ฐ”๊พธ๋ฉด ๊ฐ์ฒด์ง€ํ–ฅ์ด๋ผ๋Š” ๋ฌธ๋งฅ์œผ๋กœ ์˜ฎ๊ฒจ์˜ฌ ์ˆ˜ ์žˆ๋‹ค. + +\ +์œ„์˜ ์ด์œ ๊ฐ€ ๋ฐ”๋กœ ๊ฐ์ฒด์ง€ํ–ฅ์„ ์„ค๋ช…ํ•˜๊ธฐ ์œ„ํ•ด ์‹ค์„ธ๊ณ„์˜ ๋ชจ๋ฐฉ์ด๋ผ๋Š” ์€์œ ๋ฅผ ์ฐจ์šฉํ•˜๋Š” ์ด์œ \ + + +### 2) ์—ญํ• ๊ณผ ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ํ˜‘๋ ฅํ•˜๋Š” ๊ฐ์ฒด๋“ค + +> ์—ญํ• ์€ ์œ ์—ฐํ•˜๊ณ  ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ํ˜‘๋ ฅ ๊ด€๊ณ„๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์„ค๊ณ„ ์š”์†Œ์ด๋‹ค. ๋Œ€์ฒด ๊ฐ€๋Šฅํ•œ ์—ญํ• ๊ณผ ์ฑ…์ž„์€ ๊ฐ์ฒด์ง€ํ–ฅ ํŒจ๋Ÿฌ๋‹ค์ž„์˜ ์ค‘์š”ํ•œ ๊ธฐ๋ฐ˜์„ ์ œ๊ณตํ•˜๋Š” ๋‹คํ˜•์„ฑ๊ณผ๋„ ๊นŠ์ด ์—ฐ๊ด€ + +1. ์‚ฌ๋žŒ๋“ค์€ ์ปคํ”ผ ์ฃผ๋ฌธ๊ณผ ๊ฐ™์€ ํŠน์ •ํ•œ ๋ชฉํ‘œ๋ฅผ ์ด๋ฃจ๊ธฐ ์œ„ํ•ด ํ˜‘๋ ฅ +2. ํ˜‘๋ ฅ์˜ ํ•ต์‹ฌ : ํŠน์ •ํ•œ ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ญํ• ๋“ค ๊ฐ„์˜ ์—ฐ์‡„์ ์ธ ์š”์ฒญ๊ณผ ์‘๋‹ต์„ ํ†ตํ•ด ๋ชฉํ‘œ ๋‹ฌ์„ฑ +3. ๋ชฉํ‘œ๋Š” ์‚ฌ๋žŒ๋“ค์˜ ํ˜‘๋ ฅ์„ ํ†ตํ•ด ๋‹ฌ์„ฑ, ๋” ์ž‘์€ ์ฑ…์ž„์œผ๋กœ ๋ถ„ํ• ๋˜๊ณ  ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ์ ์ ˆํ•œ ์—ญํ• ์„ ๊ฐ€์ง„ ์‚ฌ๋žŒ์— ์˜ํ•ด ์ˆ˜ํ–‰ +4. ํ˜‘๋ ฅ์— ์ฐธ์—ฌํ•˜๋Š” ๊ฐ ๊ฐœ์ธ์€ ์ฑ…์ž„ ์ˆ˜ํ–‰์„ ์œ„ํ•ด ๋„์›€์„ ์š”์ฒญํ•˜๊ธฐ๋„, ์—ฐ์‡„์ ์ธ ์š”์ฒญ๊ณผ ์‘๋‹ต์œผ๋กœ ๊ตฌ์„ฑ๋˜๋Š” ํ˜‘๋ ฅ ๊ด€๊ณ„ ์™„์„ฑ + +\ +๊ฐ์ฒด ๊ณต๋™์ฒด ์•ˆ์— ์‚ด๊ณ  ์žˆ๋Š” ์„ฑ์‹คํ•œ ๊ฐ์ฒด ์‹œ๋ฏผ์€ ์ž์‹ ์—๊ฒŒ ์ฃผ์–ด์ง„ ์—ญํ• ๊ณผ ์ฑ…์ž„์„ ๋‹คํ•˜๋Š” ๋™์‹œ์— ์‹œ์Šคํ…œ์˜ ๋” ํฐ ๋ชฉ์ ์„ ์ด๋ฃจ๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ๊ฐ์ฒด์™€๋„ ์ ๊ทน ํ˜‘๋ ฅํ•œ๋‹ค. + +\ +์ฆ‰, ์‚ฌ๋žŒ๋“ค์ด **๊ณตํ†ต์˜ ๋ชฉํ‘œ๋ฅผ ๋‹ฌ์„ฑํ•˜๊ธฐ ์œ„ํ•ด ํ˜‘๋ ฅํ•˜๋Š” ๊ฒƒ**๊ณผ ๊ฐ™์ด ๊ฐ์ฒด๋“ค์˜ ๊ฒฝ์šฐ, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ํ˜‘๋ ฅํ•ด์„œ ์‚ฌ์šฉ์ž๊ฐ€ ์ธ์‹ํ•˜๋Š” ์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ์ด ๋˜๋Š” ๊ฒƒ์ด๋‹ค. + +> ์‹œ์Šคํ…œ = ์—ญํ•  + ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฐ์ฒด์‹œ์Šคํ…œ์˜ ๊ธฐ๋Šฅ = ๊ฐ์ฒด ๊ฐ„์˜ ์—ฐ์‡„์ ์ธ ์š”์ฒญ๊ณผ ์‘๋‹ต์˜ ํ๋ฆ„์œผ๋กœ ๊ตฌ์„ฑ๋œ ํ˜‘๋ ฅ + +๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„๋Š” ์ ์ ˆํ•œ ๊ฐ์ฒด์—๊ฒŒ ์ ์ ˆํ•œ ์ฑ…์ž„์„ ํ• ๋‹นํ•˜๋Š” ๊ฒƒ์—์„œ ์‹œ์ž‘ํ•œ๋‹ค. ์ฑ…์ž„์€ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„์˜ ํ’ˆ์งˆ์„ ๊ฒฐ์ •ํ•˜๋Š” ๊ฐ€์žฅ ์ค‘์š”ํ•œ ์š”์†Œ์ด๋‹ค. ์–ผ๋งˆ๋‚˜ ์ ์ ˆํ•œ ์ฑ…์ž„์„ ์„ ํƒํ•˜๋Š๋ƒ๊ฐ€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์•„๋ฆ„๋‹ค์›€์„ ๊ฒฐ์ • + +> ์—ญํ•  = ๊ด€๋ จ์„ฑ ๋†’์€ ์ฑ…์ž„์˜ ์ง‘ํ•ฉ + +๊ฐ์ฒด์˜ ์—ญํ• ์˜ ํŠน์ง• ๋˜ํ•œ ์‚ฌ๋žŒ์˜ ์—ญํ• ๊ณผ ์œ ์‚ฌํ•˜๋‹ค. + +* ์—ฌ๋Ÿฌ ๊ฐ์ฒด๊ฐ€ ๋™์ผํ•œ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. +* ์—ญํ• ์€ ๋Œ€์ฒด ๊ฐ€๋Šฅ์„ฑ์„ ์˜๋ฏธ +* ๊ฐ ๊ฐ์ฒด๋Š” ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ž์œจ์ ์œผ๋กœ ์„ ํƒํ•  ์ˆ˜ ์žˆ๋‹ค. +* ํ•˜๋‚˜์˜ ๊ฐ์ฒด๊ฐ€ ๋™์‹œ์— ์—ฌ๋Ÿฌ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. + +### 3. ํ˜‘๋ ฅ ์†์— ์‚ฌ๋Š” ๊ฐ์ฒด + +์œค๊ณฝ์„ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์€ ์—ญํ• , ์ฑ…์ž„, ํ˜‘๋ ฅ์ด์ง€๋งŒ ์‹ค์ œ๋กœ ํ˜‘๋ ฅ์— ์ฐธ์—ฌํ•˜๋Š” ์ฃผ์ฒด๋Š” ๊ฐ์ฒด์ด๋‹ค.\ +๊ฒฐ๊ตญ ์‚ฌ๋žŒ์ด ์—†์œผ๋ฉด ์—ญํ• , ์ฑ…์ž„, ํ˜‘๋ ฅ์ด ์•„๋ฌด๋Ÿฐ ์˜๋ฏธ๊ฐ€ ์—†๋“ฏ์ด ๊ฐ์ฒด์ง€ํ–ฅ ์„ธ๊ณ„์—์„œ๋„ ๊ฐ์ฒด๊ฐ€ ์—†์œผ๋ฉด ์•„๋ฌด๋Ÿฐ ์˜๋ฏธ๊ฐ€ ์—†๋‹ค.\ +๊ฐ์ฒด๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ์กด์žฌํ•œ๋‹ค. ์•„์ฃผ ์ž‘์€ ๊ธฐ๋Šฅ ์กฐ์ฐจ ๊ฐ์ฒด ํ˜ผ์ž๋Š” ๋ฒ„๊ฑฐ์šฐ๊ธฐ์— ์ผ๋ฐ˜์ ์œผ๋กœ ๊ฐ์ฒด๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด์™€์˜ ๋ ต๋ ฅ์„ ํ†ตํ•ด ๊ธฐ๋Šฅ์„ ๊ตฌํ˜„ํ•˜๊ณ , ๊ฒฐ๊ตญ ํ˜‘๋ ฅ์ด ์–ผ๋งˆ๋‚˜ ์กฐํ™”๋ฅผ ์ด๋ฃจ๋Š”์ง€ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์€ ๊ฐ์ฒด์ด๋‹ค.\ +๊ฒฐ๊ตญ ํ˜‘๋ ฅ์˜ ํ’ˆ์งˆ์„ ๊ฒฐ์ •ํ•˜๋Š” ๊ฒƒ์€ ๊ฐ์ฒด์˜ ํ’ˆ์งˆ์ด๋‹ค.\ +ํ˜‘๋ ฅ ๊ณต๋™์ฒด์˜ ์ผ์›์œผ๋กœ ๊ฐ์ฒด๋Š” 2๊ฐ€์ง€ ๋•๋ชฉ์„ ๊ฐ–์ถ”๊ณ , ๊ท ํ˜•์„ ์œ ์ง€ํ•ด์•ผ ํ•œ๋‹ค. + +1. ๊ฐ์ฒด๋Š” ์ถฉ๋ถ„ํžˆ ํ˜‘๋ ฅ์ ์ด์–ด์•ผ ํ•œ๋‹ค. + +* ๊ฐ์ฒด๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด์˜ ์š”์ฒญ์— ์ถฉ์‹คํžˆ ๊ท€ ๊ธฐ์šธ์ด๊ณ  ๋„์›€ ์š”์ฒญํ•  ์ •๋„์˜ ์—ด๋ฆฐ ๋งˆ์Œ +* ๋ชจ๋“  ๊ฒƒ์„ ์Šค์Šค๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ์ฒด๋Š” ๋‚ด๋ถ€์ ์ธ ๋ณต์žก๋„์— ์˜ํ•ด ์ž๋ฉธ +* ํ˜‘๋ ฅ์  : ์ˆ˜๋™์ ์ธ ์กด์žฌ X, ์š”์ฒญ์— ์‘๋‹ตํ•  ๋ฟ ์–ด๋–ค ๋ฐฉ์‹์œผ๋กœ ์‘๋‹ตํ• ์ง€, ์‘ํ• ์ง€ ์—ฌ๋ถ€๋ฅผ ๊ฐ์ฒด ์Šค์Šค๋กœ ํŒ๋‹จํ•˜๊ณ  ๊ฒฐ์ •ํ•œ๋‹ค. + +1. ๊ฐ์ฒด๊ฐ€ ์ถฉ๋ถ„ํžˆ ์ž์œจ์ ์ด์–ด์•ผ ํ•œ๋‹ค. + +* ์ž์œจ์  : ์ž๊ธฐ ์Šค์Šค๋กœ์˜ ์›์น™์— ๋”ฐ๋ผ ์–ด๋–ค ์ผ์„ ํ•˜๊ฑฐ๋‚˜ ์ž๊ธฐ ์Šค์Šค๋กœ ํ†ต์ œํ•˜์—ฌ ์ ˆ์ œํ•˜๋Š” ๊ฒƒ +* ์‚ฌ๋žŒ๋“ค์€ ๋‹ค๋ฅธ ์‚ฌ๋žŒ์˜ ์š”์ฒญ์— ๋”ฐ๋ผ ํ–‰๋™ํ•˜์ง€๋งŒ ์ตœ๋Œ€ํ•œ ์Šค์Šค๋กœ์˜ ํŒ๋‹จ์— ๋”ฐ๋ฅด๊ณ  ๊ฒฐ์ •ํ•˜๊ณ  ํ–‰๋™ํ•œ๋‹ค. + +\ +๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„์˜ ๋ฌ˜๋ฏธ๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด์™€ ์กฐํ™”๋กญ๊ฒŒ ํ˜‘๋ ฅํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ถฉ๋ถ„ํžˆ ๊ฐœ๋ฐœ์ ์ธ ๋™์‹œ์— ํ˜‘๋ ฅ์— ์ฐธ์—ฌํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์Šค์Šค๋กœ ๊ฒฐ์ •ํ•  ์ˆ˜ ์žˆ์„ ๋งŒํผ ์ถฉ๋ถ„ํžˆ ์ž์œจ์ ์ธ ๊ฐ์ฒด๋“ค์˜ ๊ณต๋™์ฒด ์„ค๊ณ„ํ•˜๋Š”๋ฐ ์žˆ๋‹ค. + +#### ์ƒํƒœ์™€ ํ–‰๋™์„ ํ•จ๊ป˜ ์ง€๋‹Œ ์ž์œจ์ ์ธ ๊ฐ์ฒด + +๊ฐ์ฒด = ์ƒํƒœ(state) + ํ–‰๋™(behavior)์„ ํ•จ๊ป˜ ์ง€๋‹Œ ์‹ค์ฒด์ด์ž ์ž์œจ์ ์ธ ์กด์žฌ\ +๊ฐ์ฒด๊ฐ€ ํ˜‘๋ ฅ์— ์ฐธ์—ฌํ•˜๊ธฐ ์œ„ํ•ด ์–ด๋–ค ํ–‰๋™์„ ํ•ด์•ผ ํ•œ๋‹ค๋ฉด, ๊ทธ ํ–‰๋™์„ ํ•˜๋Š” ๋ฐ ํ•„์š”ํ•œ ์ƒํƒœ๋„ ํ•จ๊ป˜ ์ง€๋‹ˆ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋งˆ์น˜, ์ปคํ”ผ๋ฅผ ์ œ์กฐํ•˜๋Š” ๋ฐ”๋ฆฌ์Šคํƒ€๊ฐ€ ์ œ์กฐ ๋ฐฉ๋ฒ•์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์ฒ˜๋Ÿผ\ +๊ฐ์ฒด๊ฐ€ ํ˜‘๋ ฅ์— ์ฐธ์—ฌํ•˜๋Š” ๊ณผ์ • ์†์—์„œ ์Šค์Šค๋กœ ํŒ๋‹จํ•˜๊ณ  ์Šค์Šค๋กœ ๊ฒฐ์ •ํ•˜๋Š” ์ž์œจ์ ์ธ ์กด์žฌ๋กœ ๋‚จ๊ธฐ ์œ„ํ•ด์„œ๋Š” ํ•„์š”ํ•œ ํ–‰๋™๊ณผ ์ƒํƒœ๋ฅผ ํ•จ๊ป˜ ์ง€๋‹ˆ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.\ +๊ฐ์ฒด์˜ ์ž์œจ์„ฑ์€ ๊ฐ์ฒด์˜ ๋‚ด๋ถ€์™€ ์™ธ๋ถ€๋ฅผ ๋ช…ํ™•ํ•˜๊ฒŒ ๊ตฌ๋ถ„ํ•˜๋Š” ๊ฒƒ์œผ๋กœ๋ถ€ํ„ฐ ๋‚˜์˜จ๋‹ค. ๊ฐ์ฒด์˜ ์‚ฌ์ ์ธ ๋ถ€๋ถ„์„ ํ„ฐ์น˜ํ• ์ˆ˜ ์—†๊ฒŒ.. ๊ฐ์ฒด๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด๊ฐ€ ๋ฌด์—‡(what)์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์ง€ ์•Œ ์ˆ˜ ์žˆ์ง€๋งŒ ์–ด๋–ป๊ฒŒ(how) ์ˆ˜ํ–‰ํ•˜๋Š”์ง€์— ๋Œ€ํ•ด์„œ๋Š” ์•Œ ์ˆ˜ ์—†๋‹ค. โ‡’ ์บก์Šํ™”๋ž‘ ์—ฐ๊ด€\ +์ „ํ†ต์ ์ธ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ• vs ๊ฐ์ฒด์ง€ํ–ฅ + +* ์ „ํ†ต์ ์ธ ๊ฐœ๋ฐœ ๋ฐฉ๋ฒ• : ๋ฐ์ดํ„ฐ์™€ ํ”„๋กœ์„ธ์Šค๋ฅผ ์—„๊ฒฉํ•˜๊ฒŒ ๊ตฌ๋ถ„ +* ๊ฐ์ฒด์ง€ํ–ฅ : ๋ฐ์ดํ„ฐ์™€ ํ”„๋กœ์„ธ์Šค๋ฅผ ๊ฐ์ฒด๋ผ๋Š” ํ•˜๋‚˜์˜ ํ‹€ ์•ˆ์— ํ•จ๊ป˜ ๋ฌถ์–ด ๋†“์Œ์œผ๋กœ์จ ๊ฐ์ฒด์˜ ์ž์œจ์„ฑ์„ ๋ณด์žฅ + +#### ํ˜‘๋ ฅ๊ณผ ๋ฉ”์„ธ์ง€ + +์ธ๊ฐ„์€ ๊ธ€์ž, ๋ง ๋“ฑ ๋‹ค์–‘ํ•œ ๋งค์ปค๋‹ˆ์ฆ˜์„ ํ†ตํ•ด ์˜์‚ฌ์†Œํ†ต์„ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์˜ ๋ฐ˜๋Œ€๋˜์–ด ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์„ธ๊ณ„์—์„œ๋Š” ์˜ค์ง ํ•œ ๊ฐ€์ง€ ์˜์‚ฌ์†Œํ†ต ์ˆ˜๋‹จ๋งŒ์ด ์กด์žฌํ•œ๋‹ค.\ +๋ฉ”์„ธ์ง€ + +* ์˜ค์ง ํ•œ ๊ฐ€์ง€์˜ ์˜์‚ฌ์†Œํ†ต +* ๊ฐ์ฒด ์ง€ํ–ฅ์˜ ์„ธ๊ณ„์—์„œ ํ˜‘๋ ฅ์€ ์†ก์‹ ์ž์™€ ์ˆ˜์‹ ์ž ๊ฐ์ฒด ์‚ฌ์ด์˜ ๊ด€๊ณ„๋กœ ๊ตฌ์„ฑ +* ์†ก์‹ ์ž(sender) : ๋ฉ”์„ธ์ง€๋ฅผ ์ „์†กํ•˜๋Š” ๊ฐ์ฒด +* ์ˆ˜์‹ ์ž(receiver) : ๋ฉ”์„ธ์ง€๋ฅผ ์ˆ˜์‹ ํ•˜๋Š” ๊ฐ์ฒด + +#### ๋ฉ”์„œ๋“œ์™€ ์ž์œจ์„ฑ + +๊ฐ์ฒด๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด์™€ ํ˜‘๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”์„ธ์ง€๋ฅผ ์ „์†กํ•œ๋‹ค.\ +๋ฉ”์„œ๋“œ(method) + +* ๊ฐ์ฒด๊ฐ€ ์ˆ˜์‹ ๋œ ๋ฉ”์„ธ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ๋ฒ• +* ํด๋ž˜์Šค ์•ˆ์— ํฌํ•จ๋œ ํ•จ์ˆ˜ ๋˜๋Š” ํ”„๋กœ์‹œ์ €๋ฅผ ํ†ตํ•ด ๊ตฌํ˜„ +* ๋”ฐ๋ผ์„œ ์–ด๋–ค ๊ฐ์ฒด์—๊ฒŒ ๋ฉ”์‹œ์ง€๋ฅผ ์ „์†กํ•˜๋ฉด ๊ฒฐ๊ณผ์ ์œผ๋กœ ๋ฉ”์„ธ์ง€์— ๋Œ€์‘๋˜๋Š” ํŠน์ • ๋ฉ”์„œ๋“œ๊ฐ€ ์‹คํ–‰ + +\ +์ ˆ์ฐจ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด vs ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด + +* ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด : ๋ฉ”์„ธ์ง€๋ฅผ ์ˆ˜์‹ ํ•œ ๊ฐ์ฒด๊ฐ€ ์‹คํ–‰ ์‹œ๊ฐ„์— ๋ฉ”์„œ๋“œ๋ฅผ ์„ ํƒ ๊ฐ€๋Šฅ +* ์ ˆ์ฐจ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด : ํ”„๋กœ์‹œ์ € ํ˜ธ์ถœ์— ๋Œ€ํ•œ ์‹คํ–‰ ์ฝ”๋“œ๋ฅผ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์— ๊ฒฐ์ • + +๋ฉ”์„ธ์ง€์™€ ๋ฉ”์„œ๋“œ์˜ ๋ถ„๋ฆฌ๋Š” ๊ฐ์ฒด์˜ ํ˜‘๋ ฅ์— ์ฐธ์—ฌํ•˜๋Š” ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ์ž์œจ์„ฑ์„ ์ฆ์ง„\ +์ปคํ”ผ ์ œ์กฐ๋ฅผ ์š”์ฒญํ•œ ์บ์‹œ์–ด๋Š” ์ปคํ”ผ๊ฐ€ ์ œ์กฐ๋  ๊ฒƒ(what)์ด๋ผ๊ณ  ๊ธฐ๋Œ€ํ•˜์ง€๋งŒ ์ปคํ”ผ๋ฅผ ์ œ์กฐํ•˜๋Š” ๊ตฌ์ฒด์ ์ธ ๋ฐฉ๋ฒ•(how)์— ๊ด€ํ•ด์„œ๋Š” ๊ด€์—ฌํ•˜์ง€ ์•Š๋Š”๋‹ค. ๋”ฐ๋ผ์„œ ๋ฐ”๋ฆฌ์Šคํƒ€๋Š” ์ปคํ”ผ ์ œ์กฐ๋ผ๋Š” ๋ฉ”์‹œ์ง€์— ์‘๋‹ตํ•˜๊ธฐ ์œ„ํ•ด ์ž์‹ ๋งŒ์˜ ์ž์œจ์ ์ธ ๋ฐฉ๋ฒ•์— ๋”ฐ๋ผ ์ปคํ”ผ๋ฅผ ์ œ์กฐํ•  ์ˆ˜ ์žˆ๋‹ค.\ +์บก์Šํ™”(encapsulation)์ด๋ผ๋Š” ๊ฐœ๋…๊ณผ๋„ ๊นŠ์ด ๊ด€๋ จ + +### 4) ๊ฐ์ฒด์ง€ํ–ฅ์˜ ๋ณธ์งˆ + +๊ทธ๋ž˜์„œ ๊ฐ์ฒด์ง€ํ–ฅ์ด๋ž€? + +* ๊ฐ์ฒด์ง€ํ–ฅ์ด๋ž€ ์‹œ์Šคํ…œ์„ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ์ž์œจ์ ์ธ ๊ฐ์ฒด๋“ค์˜ ๊ณต๋™์ฒด๋กœ ๋ฐ”๋ผ๋ณด๊ณ  ๊ฐ์ฒด๋ฅผ ์ด์šฉํ•ด ์‹œ์Šคํ…œ์„ ๋ถ„ํ• ํ•˜๋Š” ๋ฐฉ๋ฒ• +* ์ž์œจ์ ์ธ ๊ฐ์ฒด๋ž€ ์ƒํƒœ์™€ ํ–‰์œ„๋ฅผ ํ•จ๊ป˜ ์ง€๋‹ˆ๋ฉฐ ์Šค์Šค๋กœ ์ž๊ธฐ ์ž์‹ ์„ ์ฑ…์ž„์‹œํ‚ค๋Š” ๊ฐ์ฒด๋ฅผ ์˜๋ฏธ +* ๊ฐ์ฒด๋Š” ์‹œ์Šคํ…œ์˜ ํ–‰์œ„๋ฅผ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•ด ๋‹ค๋ฅธ ๊ฐ์ฒด์™€ ํ˜‘๋ ฅํ•œ๋‹ค. ๊ฐ ๊ฐ์ฒด๋Š” ํ˜‘๋ ฅ ๋‚ด์—์„œ ์ •ํ•ด์ง„ ์—ญํ• ์„ ์ˆ˜ํ–‰ํ•˜๋ฉฐ ์—ญํ• ์€ ๊ด€๋ จ๋œ ์ฑ…์ž„์˜ ์ง‘ํ•ฉ์ด๋‹ค. +* ๊ฐ์ฒด๋Š” ๋‹ค๋ฅธ ๊ฐ์ฒด์™€ ํ˜‘๋ ฅํ•˜๊ธฐ ์œ„ํ•ด ๋ฉ”์„ธ์ง€๋ฅผ ์ „์†กํ•˜๊ณ , ๋ฉ”์„ธ์ง€๋ฅผ ์ˆ˜์‹ ํ•œ ๊ฐ์ฒด๋Š” ๋ฉ”์‹œ์ง€๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•œ ๋ฉ”์„œ๋“œ๋ฅผ ์ž์œจ์ ์œผ๋กœ ์„ ํƒํ•œ๋‹ค. + +#### ๊ฐ์ฒด๋ฅผ ์ง€ํ–ฅํ•˜๋ผ + +์—์Šคํ‚ค๋ชจ์˜ ๋ˆˆ์„ ์ง€์นญํ•˜๋Š” ๋‹จ์–ด๊ฐ€ 2๊ฐœ๋ฟ์ธ๋ฐ ๋งŽ์€ ๊ฒƒ์ฒ˜๋Ÿผ ๋ถ€ํ’€๋ฆฌ๊ฒŒ ๋˜๊ฒŒ ๋œ ๊ฒƒ์ฒ˜๋Ÿผ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์„œ์  ์ถœํŒํ•˜๋Š” ๊ณผ์ •์—์„œ ํด๋ž˜์Šค์— ๋Œ€ํ•œ ์ค‘์š”์„ฑ์ด ๊ณผํ•˜๋‹ค ์‹ถ์„ ์ •๋„๋กœ ๊ฐ•์กฐ๋๋‹ค.\ +๊ฐ์ฒด์ง€ํ–ฅ์˜ ์ค‘์‹ฌ์— ์žˆ์–ด์•ผ ํ•  ๊ฐ์ฒด๋กœ๋ถ€ํ„ฐ ์กฐ๊ธˆ์”ฉ ๋ฉ€์–ด์ ธ ๊ฐ”๋‹ค. ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๊ด€์ ์—์„œ ๋งค์šฐ ์ค‘์š”ํ•œ ๊ตฌ์„ฑ์š”์†Œ(construct)์ธ ๊ฒƒ์€ ๋ถ„๋ช…ํ•˜์ง€๋งŒ ๊ฐ์ฒด์ง€ํ–ฅ์˜ ํ•ต์‹ฌ์„ ์ด๋ฃจ๋Š” ์ค‘์‹ฌ ๊ฐœ๋…์ด๋ผ๊ณ  ๋งํ•˜๊ธฐ์—๋Š” ๋ฌด๋ฆฌ๊ฐ€ ์žˆ๋‹ค.\ +์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ ๊ฐ™์€ ํ”„๋กœํ† ํƒ€์ž… ๊ธฐ๋ฐ˜์˜ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด์—์„œ๋Š” ํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.\ +ํ›Œ๋ฅญํ•œ ๊ฐ์ฒด์ง€ํ–ฅ ์„ค๊ณ„์ž๊ฐ€ ๋˜๊ธฐ ์œ„ํ•ด์„œ + +1. ์ฝ”๋“œ๋ฅผ ๋‹ด๋Š” ํด๋ž˜์Šค์˜ ๊ด€์ ์—์„œ ๋ฉ”์„ธ์ง€๋ฅผ ์ฃผ๊ณ  ๋ฐ›๋Š” ๊ฐ์ฒด์˜ ๊ด€์ ์œผ๋กœ ์‚ฌ๊ณ ์˜ ์ค‘์‹ฌ์„ ์ „ํ™˜ํ•˜๋Š” ๊ฒƒ + +* ์–ด๋–ค ๊ฐ์ฒด๋“ค์ด ์–ด๋–ค ๋ฉ”์„ธ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›์œผ๋ฉฐ ํ˜‘๋ ฅํ•˜๋Š” ๊ฐ€ +* ํด๋ž˜์Šค๋Š” ๊ฐ์ฒด๋“ค์˜ ํ˜‘๋ ฅ ๊ด€๊ณ„๋ฅผ ์ฝ”๋“œ๋กœ ์˜ฎ๊ธฐ๋Š” ๋„๊ตฌ์ธ ๊ตฌํ˜„ ๋งค์ปค๋‹ˆ์ฆ˜์ผ ๋ฟ์ด๋‹ค. + +> ํ•ต์‹ฌ์€ ์ ์ ˆํ•œ ์ฑ…์ž„์„ ์ˆ˜ํ–‰ํ•˜๋Š” ์—ญํ•  ๊ฐ„์˜ ์œ ์—ฐํ•˜๊ณ  ๊ฒฌ๊ณ ํ•œ ํ˜‘๋ ฅ ๊ด€๊ณ„๋ฅผ ๊ตฌ์ถ•ํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ์ค‘์š”ํ•œ ๊ฒƒ์€ ํด๋ž˜์Šค๋“ค์˜ ์ •์ ์ธ ๊ด€๊ณ„๊ฐ€ ์•„๋‹ˆ๋ผ ๋ฉ”์„ธ์ง€๋ฅผ ์ฃผ๊ณ ๋ฐ›๋Š” ๊ฐ์ฒด๋“ค์˜ ๋™์ ์ธ ๊ด€๊ณ„์ด๋‹ค. + +\ +๊ฐ์ฒด์˜ ์—ญํ• , ์ฑ…์ž„, ํ˜‘๋ ฅ์— ์ง‘์ค‘ํ•ด๋ผ! diff --git a/developLog/book/oop/README.md b/developLog/book/oop/README.md new file mode 100644 index 0000000..49c2340 --- /dev/null +++ b/developLog/book/oop/README.md @@ -0,0 +1,17 @@ +--- +icon: coffee-beans +layout: + title: + visible: true + description: + visible: true + tableOfContents: + visible: true + outline: + visible: true + pagination: + visible: false +--- + +# ๊ฐ์ฒด์ง€ํ–ฅ์˜ ์˜คํ•ด์™€ ์‚ฌ์‹ค + diff --git a/developLog/cs/etc/cs.md b/developLog/cs/etc/cs.md index bf48833..ad943fd 100644 --- a/developLog/cs/etc/cs.md +++ b/developLog/cs/etc/cs.md @@ -239,7 +239,7 @@ * **8080 ํฌํŠธ** * ์ด๋Ÿฐ ์—๋Ÿฌ ๋ฐœ์ƒ ์›์ธ -
+
* ์™ธ๋ถ€์—์„œ ์‹คํ–‰๋˜๋Š” ํ†ฐ์บฃ ์„œ๋ฒ„ ์กด์žฌ * ์„œ๋ฒ„ ์—ฐ๊ฒฐ ์ •๋ณด๊ฐ€ ์ œ๋Œ€๋กœ ์ฃผ์–ด์ง€์ง€ ์•Š์„ ๋•Œ @@ -300,7 +300,7 @@ CF. ์—ฌ๋Ÿฌ ๊ฐœ์˜ ๋ธŒ๋ผ์šฐ์ € ์„œ๋ฒ„ ๋™์‹œ ์ ‘์† ์‹œ๋„๋Š” ์ง€์› ๋˜์–ด์•ผ 8. **๋‹ค์Œ์˜ ํ™”๋ฉด์„ ๊ตฌํ˜„ํ•˜๊ธฐ ์œ„ํ•œ HTML ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ•ด ์ฃผ์„ธ์š”** -
+
```java diff --git a/developLog/ex/knowledge/README.md b/developLog/ex/knowledge/README.md new file mode 100644 index 0000000..e4abdf2 --- /dev/null +++ b/developLog/ex/knowledge/README.md @@ -0,0 +1,18 @@ +--- +hidden: true +icon: question +layout: + title: + visible: true + description: + visible: true + tableOfContents: + visible: true + outline: + visible: true + pagination: + visible: false +--- + +# ์–ป์€ ์ง€์‹ ๋ชจ์Œ + diff --git a/developLog/ex/knowledge/undefined.md b/developLog/ex/knowledge/undefined.md new file mode 100644 index 0000000..fc44ded --- /dev/null +++ b/developLog/ex/knowledge/undefined.md @@ -0,0 +1,132 @@ +# ํŠธ์œ„ํ„ฐ๋ฅผ ํ†ตํ•œ ๋ชจ๋ฅด๋Š” ์ง€์‹์„ ์–ป์–ด๊ฐ€๊ธฐ + +
+ +## 1. ์†Œ๋‚˜ํ๋ธŒ๋ž€? + +{% embed url="https://www.sonarsource.com/products/sonarqube/?s_campaign=SQ-APJ-2-All-PMax&s_content=content&s_term=&s_category=Paid&s_source=Paid%20Cross%20Network&s_origin=Google&cq_src=google_ads&cq_cmp=21442152206&cq_con=&cq_term=&cq_med=&cq_plac=&cq_net=x&cq_pos=&cq_plt=gp&gad_source=1&gclid=EAIaIQobChMImYPL7cuUiAMV3Q97Bx2L3xZ7EAAYASAAEgLgOPD_BwE" %} + +์†Œ๋‚˜ํ๋ธŒ(SonarQube)๋Š” ์†Œํ”„ํŠธ์›จ์–ด ๊ฐœ๋ฐœ ๊ณผ์ •์—์„œ ์ฝ”๋“œ ํ’ˆ์งˆ์„ ๊ด€๋ฆฌํ•˜๊ณ  ๊ฐœ์„ ํ•˜๊ธฐ ์œ„ํ•œ ์˜คํ”ˆ ์†Œ์Šค ํ”Œ๋žซํผ์ž…๋‹ˆ๋‹ค. ์†Œ๋‚˜ํ๋ธŒ๋Š” ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ์ฝ”๋“œ์˜ ํ’ˆ์งˆ๊ณผ ๋ณด์•ˆ ๋ฌธ์ œ๋ฅผ ์ฐพ์•„๋‚ด๊ณ , ์ด๋ฅผ ์ž๋™์œผ๋กœ ๋ฆฌํฌํŠธํ•ด ์ฃผ๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋„๊ตฌ๋Š” ๋‹ค์–‘ํ•œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ง€์›ํ•˜๋ฉฐ, ์ง€์†์ ์ธ ํ†ตํ•ฉ(Continuous Integration, CI) ๋ฐ ์ง€์†์ ์ธ ์ „๋‹ฌ(Continuous Delivery, CD) ํŒŒ์ดํ”„๋ผ์ธ์— ํ†ตํ•ฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +#### ์†Œ๋‚˜ํ๋ธŒ์˜ ์ฃผ์š” ๊ธฐ๋Šฅ: + +1. **์ •์  ์ฝ”๋“œ ๋ถ„์„**: + * ์†Œ๋‚˜ํ๋ธŒ๋Š” ์ •์  ์ฝ”๋“œ ๋ถ„์„์„ ํ†ตํ•ด ์ฝ”๋“œ ๋‚ด์˜ ๋ฒ„๊ทธ, ๋ณด์•ˆ ์ทจ์•ฝ์ , ์ฝ”๋“œ ์Šค๋ฉœ(Code Smell, ๋‚˜์œ ์ฝ”๋“œ ์Šต๊ด€), ๋ณต์žก์„ฑ ๋“ฑ์„ ์ฐพ์•„๋ƒ…๋‹ˆ๋‹ค. ์ด ๊ณผ์ •์—์„œ ์ฝ”๋“œ๋ฅผ ์‹ค์ œ๋กœ ์‹คํ–‰ํ•˜์ง€ ์•Š๊ณ  ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ๋ถ„์„ํ•˜์—ฌ ๋ฌธ์ œ๋ฅผ ์‹๋ณ„ํ•ฉ๋‹ˆ๋‹ค. +2. **๋‹ค์–‘ํ•œ ์–ธ์–ด ์ง€์›**: + * ์†Œ๋‚˜ํ๋ธŒ๋Š” Java, C#, JavaScript, Python, PHP, C/C++, Kotlin ๋“ฑ ์ˆ˜๋งŽ์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค. ์ด๋Š” ์—ฌ๋Ÿฌ ์–ธ์–ด๋กœ ์ž‘์„ฑ๋œ ํ”„๋กœ์ ํŠธ์—์„œ ์ฝ”๋“œ ํ’ˆ์งˆ์„ ํ†ตํ•ฉ์ ์œผ๋กœ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์ค๋‹ˆ๋‹ค. +3. **ํ’ˆ์งˆ ๊ฒŒ์ดํŠธ(Quality Gate)**: + * ์†Œ๋‚˜ํ๋ธŒ๋Š” ํ’ˆ์งˆ ๊ฒŒ์ดํŠธ๋ผ๋Š” ๊ธฐ๋Šฅ์„ ํ†ตํ•ด ์ฝ”๋“œ ํ’ˆ์งˆ ๊ธฐ์ค€์„ ์„ค์ •ํ•˜๊ณ , ๊ทธ ๊ธฐ์ค€์„ ์ถฉ์กฑํ•˜์ง€ ๋ชปํ•˜๋Š” ๊ฒฝ์šฐ ๋นŒ๋“œ๋ฅผ ์‹คํŒจ๋กœ ์ฒ˜๋ฆฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ์ฝ”๋“œ ํ’ˆ์งˆ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ์ค‘์š”ํ•œ ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค. +4. **CI/CD ํ†ตํ•ฉ**: + * ์†Œ๋‚˜ํ๋ธŒ๋Š” Jenkins, GitLab CI, Azure DevOps ๋“ฑ๊ณผ ๊ฐ™์€ CI/CD ๋„๊ตฌ์™€ ์‰ฝ๊ฒŒ ํ†ตํ•ฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋กœ ์ธํ•ด ์ฝ”๋“œ๋ฅผ ๋ณ€๊ฒฝํ•  ๋•Œ๋งˆ๋‹ค ์ž๋™์œผ๋กœ ์ฝ”๋“œ ํ’ˆ์งˆ์„ ๊ฒ€์‚ฌํ•˜๊ณ , ๋ฌธ์ œ๋ฅผ ๋น ๋ฅด๊ฒŒ ๋ฐœ๊ฒฌํ•˜์—ฌ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +5. **์ง€์†์ ์ธ ์ฝ”๋“œ ํ’ˆ์งˆ ๋ชจ๋‹ˆํ„ฐ๋ง**: + * ์†Œ๋‚˜ํ๋ธŒ๋Š” ํ”„๋กœ์ ํŠธ์˜ ์ฝ”๋“œ ํ’ˆ์งˆ์„ ์ง€์†์ ์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ , ์‹œ๊ฐ„์— ๋”ฐ๋ฅธ ์ฝ”๋“œ ํ’ˆ์งˆ ๋ณ€ํ™”๋ฅผ ์‹œ๊ฐ์ ์œผ๋กœ ๋ณด์—ฌ์ค๋‹ˆ๋‹ค. ์ด๋ฅผ ํ†ตํ•ด ๊ฐœ๋ฐœํŒ€์€ ์ฝ”๋“œ ํ’ˆ์งˆ์ด ์–ด๋–ป๊ฒŒ ๋ณ€ํ™”ํ•˜๊ณ  ์žˆ๋Š”์ง€ ์‰ฝ๊ฒŒ ํŒŒ์•…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. +6. **๋ณด์•ˆ ์ทจ์•ฝ์  ๋ฐœ๊ฒฌ**: + * ์†Œ๋‚˜ํ๋ธŒ๋Š” OWASP Top 10 ๋ฐ SANS Top 25์™€ ๊ฐ™์€ ๋ณด์•ˆ ๊ธฐ์ค€์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ฝ”๋“œ ๋‚ด ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ์‹๋ณ„ํ•˜๊ณ  ๊ฒฝ๊ณ ํ•ด ์ค๋‹ˆ๋‹ค. ์ด๋Š” ๋ณด์•ˆ์„ฑ์ด ์ค‘์š”ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ๋งค์šฐ ์œ ์šฉํ•ฉ๋‹ˆ๋‹ค. + +#### ์†Œ๋‚˜ํ๋ธŒ๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ : + +์†Œ๋‚˜ํ๋ธŒ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐœ๋ฐœํŒ€์€ ์ฝ”๋“œ ํ’ˆ์งˆ์„ ์ž๋™์œผ๋กœ ๋ชจ๋‹ˆํ„ฐ๋งํ•˜๊ณ  ๊ฐœ์„ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋Š” ํŠนํžˆ ๋Œ€๊ทœ๋ชจ ํ”„๋กœ์ ํŠธ๋‚˜ ์—ฌ๋Ÿฌ ๊ฐœ๋ฐœ์ž๊ฐ€ ํ˜‘์—…ํ•˜๋Š” ํ™˜๊ฒฝ์—์„œ ์ฝ”๋“œ ํ’ˆ์งˆ๊ณผ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋Š” ๋ฐ ํฐ ๋„์›€์ด ๋ฉ๋‹ˆ๋‹ค. ๋˜ํ•œ, ์ฝ”๋“œ์˜ ์ž ์žฌ์ ์ธ ๋ฒ„๊ทธ์™€ ๋ณด์•ˆ ์ทจ์•ฝ์ ์„ ์กฐ๊ธฐ์— ๋ฐœ๊ฒฌํ•˜์—ฌ ์ˆ˜์ •ํ•  ์ˆ˜ ์žˆ์–ด, ๋ฐฐํฌ ํ›„ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ๋Š” ๋ฌธ์ œ๋ฅผ ๋ฏธ์—ฐ์— ๋ฐฉ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. + +๊ฒฐ๊ตญ ์†Œ๋‚˜ํ๋ธŒ๋Š” ์ฝ”๋“œ ํ’ˆ์งˆ์„ ์ง€์†์ ์œผ๋กœ ๊ด€๋ฆฌํ•˜๊ณ , ํ”„๋กœ์ ํŠธ์˜ ์ „๋ฐ˜์ ์ธ ์•ˆ์ •์„ฑ๊ณผ ์œ ์ง€ ๋ณด์ˆ˜์„ฑ์„ ํ–ฅ์ƒ์‹œํ‚ค๋Š” ์ค‘์š”ํ•œ ๋„๊ตฌ์ž…๋‹ˆ๋‹ค. + + + +## 2. Linux์— rust ๋„์ž… ์ƒํ™ฉ + +
+ +์ข€ ๋” ํ˜„๋Œ€์ ์ธ ์ฃผ์ œ์ธ Linux์— Rust ์–ธ์–ด๊ฐ€ ๋„์ž…๋œ ๊ฒƒ์— ๋Œ€ํ•ด ํ† ๋ฐœ์ฆˆ๋Š” ๋” ๋นจ๋ฆฌ ์ฑ„ํƒ๋˜์ง€ ์•Š๋Š” ๊ฒƒ์— ์‹ค๋งํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. โ€œ์—…๋ฐ์ดํŠธ๊ฐ€ ๋” ๋นจ๋ผ์งˆ ๊ฒƒ์œผ๋กœ ๊ธฐ๋Œ€ํ–ˆ์ง€๋งŒ, ๊ธฐ์กด ์ปค๋„ ๊ฐœ๋ฐœ์ž๋“ค์€ C์— ์ต์ˆ™ํ•˜๊ณ  Rust๋ฅผ ๋ชจ๋ฅธ๋‹ค๋Š” ๊ฒƒ์ด ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜์ž…๋‹ˆ๋‹ค. ์–ด๋–ค ๋ฉด์—์„œ๋Š” ๋งค์šฐ ๋‹ค๋ฅธ ์ƒˆ๋กœ์šด ์–ธ์–ด๋ฅผ ๋ฐฐ์›Œ์•ผ ํ•˜๋Š” ๊ฒƒ์— ๋Œ€ํ•ด ๊ทธ๋‹ค์ง€ ๋‹ฌ๊ฐ€์›Œํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๊ทธ๋ž˜์„œ Rust์— ๋Œ€ํ•œ ๋ฐ˜๋ฐœ์ด ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค.โ€ ๋˜ํ•œ ํ† ๋ฐœ์ฆˆ๋Š” โ€œ๋˜ ๋‹ค๋ฅธ ์ด์œ ๋Š” Rust ์ธํ”„๋ผ ์ž์ฒด๊ฐ€ ๋งค์šฐ ์•ˆ์ •์ ์ด์ง€ ์•Š์•˜๊ธฐ ๋•Œ๋ฌธ์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค. ....โ€๋ผ๊ณ  ๋ง๋ถ™์˜€์Šต๋‹ˆ๋‹ค. + +{% embed url="https://linux.slashdot.org/story/24/08/25/0256228/linus-torvalds-talks-about-rust-adoption-and-ai" %} + +## 3. ์˜คํ”ˆ์†Œ์Šค ์ปจํŠธ๋ฆฌ๋ทฐํ„ฐ + +
+ +{% embed url="https://www.contribution.ac/" %} + +## 4. ํƒ€์ž… ์Šคํฌ๋ฆฝํŠธ ๋ฐˆ ์ดํ•ดํ•˜๊ธฐ + +
+ +
+ +### ์ด๊ฒŒ ๋ญ” ๋œป์ด๋ƒ? + +์ด ๋ฐˆ์€ Typescript์™€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ํƒ€์ž… ์‹œ์Šคํ…œ์— ๊ด€ํ•œ ์•„์ฃผ ๋…ํŠนํ•œ ์œ ๋จธ์ž…๋‹ˆ๋‹ค. ๋ฐˆ์˜ ๋ฌธ๋งฅ๊ณผ ์ฃผ์–ด์ง„ ์ฝ”๋“œ ๋ธ”๋ก์„ ์ดํ•ดํ•˜๋ ค๋ฉด, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‚ด์šฉ์„ ์•Œ์•„์•ผ ํ•ฉ๋‹ˆ๋‹ค. + +#### ์ฝ”๋“œ ๋ถ„์„: + +```typescript +const ฯŸ = Symbol() +const ฮพ = Symbol() +const ฯ— = Symbol() +const โ„ต = Symbol() +``` + +์—ฌ๊ธฐ์„œ `Symbol()`์€ ์ž๋ฐ”์Šคํฌ๋ฆฝํŠธ์™€ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์—์„œ ์œ ์ผ๋ฌด์ดํ•œ ๊ฐ’์„ ์ƒ์„ฑํ•˜๋Š” ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค. ๊ฐ ์‹ฌ๋ณผ์€ ๋‹ค๋ฅธ ์‹ฌ๋ณผ๊ณผ ์ ˆ๋Œ€ ๊ฐ™์„ ์ˆ˜ ์—†์œผ๋ฏ€๋กœ, ๊ฐ ์‹ฌ๋ณผ์€ ๊ณ ์œ ํ•ฉ๋‹ˆ๋‹ค. + +#### ๋ฐˆ์˜ ์š”์ : + +1. **"TypeScript is duck typed..."**: + * TypeScript๋Š” ๋• ํƒ€์ดํ•‘(duck typing)์„ ์ง€์›ํ•˜๋Š”๋ฐ, ์ด๋Š” ๊ฐ์ฒด์˜ ์†์„ฑ๊ณผ ๋ฉ”์„œ๋“œ๊ฐ€ ๊ฐ์ฒด์˜ ํƒ€์ž…์„ ๊ฒฐ์ •ํ•˜๋Š” ๋ฐฉ์‹์ž…๋‹ˆ๋‹ค. "ํ•œ ์˜ค๋ฆฌ๋ฅผ ๋‹ค๋ฅธ ์˜ค๋ฆฌ์™€ ํ˜ผ๋™ํ•ด์„œ๋Š” ์•ˆ ๋œ๋‹ค"๋Š” ๋ง์€ ๊ฐ ์‹ฌ๋ณผ์ด ๊ณ ์œ ํ•ด์•ผ ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค. +2. **"structurally typed vs nominally typed":** + * ๊ตฌ์กฐ์  ํƒ€์ดํ•‘(structural typing)๊ณผ ๋ช…๋ชฉ์  ํƒ€์ดํ•‘(nominal typing) ๊ฐ„์˜ ์ฐจ์ด๋ฅผ ์–ธ๊ธ‰ํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ตฌ์กฐ์  ํƒ€์ดํ•‘์—์„œ๋Š” ๊ฐ์ฒด์˜ ๊ตฌ์กฐ๊ฐ€ ์ค‘์š”ํ•˜์ง€๋งŒ, ๋ช…๋ชฉ์  ํƒ€์ดํ•‘์—์„œ๋Š” ๋ช…์‹œ์ ์œผ๋กœ ํƒ€์ž…์ด ์ •์˜๋˜์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. Java๋‚˜ Haskell ๊ฐ™์€ ์–ธ์–ด๋Š” ๋ช…๋ชฉ์  ํƒ€์ดํ•‘์„ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค. +3. **"Summon the void itself...":** + * ์ด ๋ถ€๋ถ„์€ ์‹ฌ๋ณผ์„ ์ด์šฉํ•ด ๊ณตํ—ˆ(์ฆ‰, ์•„๋ฌด๊ฒƒ๋„ ์—†๋Š” ๊ฒƒ)๋ฅผ ์†Œํ™˜ํ•œ๋‹ค๋Š” ๋‹ค์†Œ ์ฒ ํ•™์ ์ธ ํ‘œํ˜„์ž…๋‹ˆ๋‹ค. ์ด ์ฝ”๋“œ์—์„œ๋Š” ์‹ฌ๋ณผ์„ `Nil` ํƒ€์ž…์œผ๋กœ ์ •์˜ํ•˜์—ฌ ๊ณตํ—ˆ๋ฅผ ํ‘œํ˜„ํ•˜๋ ค๋Š” ์‹œ๋„๋ฅผ ํ•ฉ๋‹ˆ๋‹ค. + +#### ๊ฒฐ๋ก : + +์ด ๋ฐˆ์€ Typescript์™€ ํƒ€์ž… ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ๊นŠ์€ ์ดํ•ด๋ฅผ ์š”๊ตฌํ•˜๋ฉฐ, ์ด๋ฅผ ์ฒ ํ•™์ ์ด๊ณ  ์œ ๋จธ๋Ÿฌ์Šคํ•œ ๋ฐฉ์‹์œผ๋กœ ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ์ด ๋ฐˆ์„ ์ดํ•ดํ•˜๋ ค๋ฉด, ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ํƒ€์ž… ์‹œ์Šคํ…œ์— ๋Œ€ํ•œ ์ง€์‹์ด ํ•„์š”ํ•˜๋ฉฐ, ํŠนํžˆ ์‹ฌ๋ณผ(Symbol)๊ณผ ํƒ€์ž…์Šคํฌ๋ฆฝํŠธ์˜ ๋• ํƒ€์ดํ•‘ ๊ฐœ๋…์„ ์•Œ๊ณ  ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. + +๋งํฌ๋œ ๊ธ€์„ ๋ณด๋ฉด ์•„๋งˆ ์ด ์ฝ”๋“œ๊ฐ€ ๋” ํฐ ๋งฅ๋ฝ์—์„œ ์„ค๋ช…๋  ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ด ๋ฐˆ์€ ๋‹จ์ˆœํžˆ ์ฝ”๋“œ ๊ทธ ์ž์ฒด๋ฟ๋งŒ ์•„๋‹ˆ๋ผ, ํƒ€์ž… ์‹œ์Šคํ…œ์˜ ๋ณต์žกํ•จ๊ณผ ๋ฉด์ ‘์—์„œ์˜ ๊ธฐ์ˆ ์ ์ธ ์งˆ๋ฌธ๋“ค์— ๋Œ€ํ•œ ํ’์ž๋ฅผ ๋‹ด๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. + + + +> Typesrcipt๋กœ proofํ•˜๋ ค๊ณ ํ•˜๋ฉด ๋จผ์ € N-queens๋ฅผ ๊ตฌํ˜„ํ•˜๋ ค๋Š” ๋ฉด์ ‘์ž์˜ ๋ฐˆ์„ ๋“ค๊ณ  ๋งˆ์ค‘๋‚˜์˜ค๋Š” ์ด๊ฐ€ ์žˆ๋‹ค. ๋‚œ ์ด ์ด์•ผ๊ธฐ๋ฅผ ๋ฌด์ฒ™ ์ข‹์•„ํ•œ๋‹ค ํ’€์–ด์„œ ์„ค๋ช…ํ•ด์ค˜ + + + +ChatGPT + +์ด ๋ฐˆ์€ Typescript์™€ ๊ฐ™์€ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๋ณต์žก์„ฑ๊ณผ, ๊ธฐ์ˆ  ๋ฉด์ ‘์—์„œ ํ”ํžˆ ์ ‘ํ•˜๊ฒŒ ๋˜๋Š” ๋„์ „์ ์ธ ๋ฌธ์ œ๋“ค์„ ํ’์žํ•˜๋Š” ๋‚ด์šฉ์ž…๋‹ˆ๋‹ค. ์ด๋ฅผ ํ’€์–ด์„œ ์„ค๋ช…ํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์Šต๋‹ˆ๋‹ค. + +#### ํ•ต์‹ฌ ๋‚ด์šฉ: + +1. **N-Queens ๋ฌธ์ œ**: + * N-Queens ๋ฌธ์ œ๋Š” ๋งค์šฐ ์œ ๋ช…ํ•œ ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œ ์ค‘ ํ•˜๋‚˜๋กœ, NxN ์ฒด์ŠคํŒ ์œ„์— N๊ฐœ์˜ ํ€ธ(Queen)์„ ์„œ๋กœ ๊ณต๊ฒฉํ•  ์ˆ˜ ์—†๊ฒŒ ๋ฐฐ์น˜ํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ฐพ๋Š” ๋ฌธ์ œ์ž…๋‹ˆ๋‹ค. ์ด ๋ฌธ์ œ๋Š” ๊ณ ๋„์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์  ์‚ฌ๊ณ ์™€ ๋ฐฑํŠธ๋ž˜ํ‚น ๊ฐ™์€ ๊ธฐ์ˆ ์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค. +2. **TypeScript๋กœ ์ฆ๋ช…(proof)ํ•˜๊ธฐ**: + * "TypeScript๋กœ proofํ•˜๋ ค๊ณ  ํ•˜๋ฉด"์ด๋ผ๋Š” ํ‘œํ˜„์€ TypeScript๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์–ด๋–ค ๋…ผ๋ฆฌ์ ์ธ ์ฆ๋ช…์ด๋‚˜ ๋ณต์žกํ•œ ๋ฌธ์ œ ํ•ด๊ฒฐ์„ ์‹œ๋„ํ•˜๋Š” ์ƒํ™ฉ์„ ๋ฌ˜์‚ฌํ•ฉ๋‹ˆ๋‹ค. TypeScript๋Š” ์ •์  ํƒ€์ž… ๊ฒ€์‚ฌ๊ธฐ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ๋…ผ๋ฆฌ์ ์ธ ์ฆ๋ช…์— ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ผ๋ฐ˜์ ์œผ๋กœ ํƒ€์ž… ์‹œ์Šคํ…œ์„ ์ด์šฉํ•ด ์ฆ๋ช…์„ ํ•˜๋Š” ๊ฒƒ์€ ๋ณต์žกํ•˜๊ณ , ๋•Œ๋กœ๋Š” TypeScript์˜ ํ•œ๊ณ„์™€ ๋งˆ์ฃผํ•˜๊ฒŒ ๋ฉ๋‹ˆ๋‹ค. +3. **๋ฉด์ ‘์ž์˜ ๋ฐˆ**: + * "N-queens๋ฅผ ๊ตฌํ˜„ํ•˜๋ ค๋Š” ๋ฉด์ ‘์ž์˜ ๋ฐˆ"์ด๋ผ๋Š” ํ‘œํ˜„์€ ๊ธฐ์ˆ  ๋ฉด์ ‘์—์„œ ๋ฉด์ ‘๊ด€์ด ๊ฐ‘์ž๊ธฐ N-Queens ๊ฐ™์€ ์–ด๋ ค์šด ๋ฌธ์ œ๋ฅผ ๋“ค๊ณ  ๋‚˜์™€์„œ ๋„์ „ํ•˜๋Š” ์ƒํ™ฉ์„ ๋น„์œ ์ ์œผ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ฉด์ ‘์—์„œ๋Š” ๋•Œ๋กœ๋Š” ๊ธฐ๋Œ€์น˜๊ฐ€ ๋†’๊ฑฐ๋‚˜, ๋งค์šฐ ์–ด๋ ค์šด ๋ฌธ์ œ๊ฐ€ ๋‚˜์˜ค๊ธฐ๋„ ํ•˜๋Š”๋ฐ, ์ด๊ฑธ ๋ฐˆ์œผ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. +4. **"๋‚œ ์ด ์ด์•ผ๊ธฐ๋ฅผ ๋ฌด์ฒ™ ์ข‹์•„ํ•œ๋‹ค"**: + * ์ด ๋ฌธ์žฅ์€ ๋ฐˆ์˜ ์ƒํ™ฉ์ด ์œ ๋จธ๋Ÿฌ์Šคํ•˜๋ฉด์„œ๋„, ํ˜„์‹ค์ ์œผ๋กœ ๊ณต๊ฐ์ด ๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ์ด ์ด์•ผ๊ธฐ๋ฅผ ์ข‹์•„ํ•œ๋‹ค๋Š” ๊ฒƒ์„ ํ‘œํ˜„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์–ด๋ ค์šด ๋ฌธ์ œ๋‚˜ ๋…ผ๋ฆฌ์ ์ธ ์ฆ๋ช…์„ TypeScript ๊ฐ™์€ ๋„๊ตฌ๋กœ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํ•  ๋•Œ ๋Š๋ผ๋Š” ์–ด๋ ค์›€๊ณผ ๊ทธ๊ฒƒ์„ ๋ณด๋Š” ์œ ๋จธ๋Ÿฌ์Šคํ•œ ์‹œ๊ฐ์„ ํ‘œํ˜„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. + +#### ํ’€์–ด ๋งํ•˜๋ฉด: + +๋‹น์‹ ์ด TypeScript๋กœ ์–ด๋–ค ๋ณต์žกํ•œ ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ฑฐ๋‚˜ ์ฆ๋ช…ํ•˜๋ ค๊ณ  ํ•  ๋•Œ, ๋งˆ์น˜ ๊ธฐ์ˆ  ๋ฉด์ ‘์—์„œ ์–ด๋ ค์šด ๋ฌธ์ œ(N-Queens ๋ฌธ์ œ์™€ ๊ฐ™์€)๋ฅผ ๋งž๋‹ฅ๋œจ๋ฆฌ๋Š” ๊ฒƒ์ฒ˜๋Ÿผ ๋Š๊ปด์ง„๋‹ค๋Š” ๊ฒƒ์„ ๋น„์œ ์ ์œผ๋กœ ํ‘œํ˜„ํ•œ ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์ฆ‰, TypeScript์˜ ํƒ€์ž… ์‹œ์Šคํ…œ์„ ์ด์šฉํ•ด์„œ ๋…ผ๋ฆฌ์ ์ธ ์ฆ๋ช…์„ ํ•˜๋ ค๋Š” ๊ฒƒ์€ ๋งˆ์น˜ ๋ฉด์ ‘์—์„œ ์–ด๋ ค์šด ๋ฌธ์ œ๋ฅผ ํ’€๋ ค๊ณ  ์‹œ๋„ํ•˜๋Š” ๊ฒƒ๊ณผ ๋น„์Šทํ•˜๊ฒŒ ๋Š๊ปด์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ์œ ๋จธ์ž…๋‹ˆ๋‹ค. ์ด ์ƒํ™ฉ์„ ๋ฐˆ์œผ๋กœ ๋งŒ๋“ค์–ด ์›ƒ์Œ์„ ์ฃผ๋ฉด์„œ๋„, ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ๋ณต์žกํ•จ์„ ํ’์žํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. + +์ด๋Ÿฐ ๋งฅ๋ฝ์—์„œ, ์ด ์ด์•ผ๊ธฐ๋ฅผ ์ข‹์•„ํ•œ๋‹ค๋Š” ๊ฒƒ์€ ํ”„๋กœ๊ทธ๋žจ๋ฐ์˜ ๋ณต์žกํ•จ๊ณผ ๋ฉด์ ‘์˜ ๋„์ „์ ์ธ ์ƒํ™ฉ์— ๋Œ€ํ•œ ๊ณต๊ฐ๊ณผ ์œ ๋จธ๋ฅผ ์ฆ๊ธฐ๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค. + +### ๋Œ“๊ธ€ ์‚ดํŽด๋ณด๊ธฐ + +
+ +## 5. verse๋ž€ + +> verse ์ฒซ์ธ์ƒ์€ ์ด๊ฒŒ ์™œ ํ•˜์ดํ”„์ธ์ง€ ๋ชจ๋ฅด๊ฒ ์Œ ๋ฐœ์ „ํ•˜๋Š” ๊ฑธ ๋” ๋ด์•ผ์ง€ + +๋น„๋””์˜ค ๊ฒŒ์ž„ ๋ฐ ๊ฒŒ์ž„๊ณผ ์œ ์‚ฌํ•œ ๊ฒฝํ—˜์„ ์—ผ๋‘์— ๋‘๊ณ  ์„ค๊ณ„๋œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์ž…๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ ๊ฒŒ์ž„์— ํŠนํ™”๋œ ์š”๊ตฌ ์‚ฌํ•ญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ๋” ์ ํ•ฉํ•˜๋Œ€ + + + +## 6. ์˜คํ”ˆ์†Œ์Šค ๋งํฌ + +
+ +{% embed url="https://openapi.tools/#documentation" %} + +## 6. cs ์ง€์‹ ์‚ฌ๊ฑด ๋งํฌ + +{% embed url="https://csnote.net/" %} + diff --git a/developLog/programming-lanuage/java/grammar/2.md b/developLog/programming-lanuage/java/grammar/2.md index 129cc3c..f84c1e3 100644 --- a/developLog/programming-lanuage/java/grammar/2.md +++ b/developLog/programming-lanuage/java/grammar/2.md @@ -128,11 +128,11 @@ Person(String name, int age){ //ํ•„๋“œ๋ฅผ ์ „๋‹ฌ๋ฐ›์•„ ๋งŒ๋“œ๋Š” ์˜ค๋ฒ„๋กœ๋“œ **์ „** -
+
**ํ›„** -
+
### ํด๋ž˜์Šค์™€ getter/setter์™€ ์ƒ์„ฑ์ž, toString, ๋ชจ๋ธ ํด๋ž˜์Šค ์ „์ฒด์ฝ”๋“œ diff --git a/developLog/programming-lanuage/java/younghan-lecture/undefined.md b/developLog/programming-lanuage/java/younghan-lecture/undefined.md index 127d699..513d3ac 100644 --- a/developLog/programming-lanuage/java/younghan-lecture/undefined.md +++ b/developLog/programming-lanuage/java/younghan-lecture/undefined.md @@ -4,7 +4,7 @@ ### ์ž๋ฐ” ํ‘œ์ค€ ์ŠคํŽ™ -
+
#### ์ž๋ฐ” ํ‘œ์ค€ ์ŠคํŽ™๊ณผ ๊ตฌํ˜„ @@ -16,7 +16,7 @@ ### ์ปดํŒŒ์ผ๊ณผ ์‹คํ–‰ -
+
์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์€ ์ปดํŒŒ์ผ๊ณผ ์‹คํ–‰ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์นœ๋‹ค. @@ -36,13 +36,13 @@ #### ์ธํ…”๋ฆฌ์ œ์ด๋ฅผ ํ†ตํ•œ ์ž๋ฐ” ์„ค์น˜ ๊ด€๋ฆฌ -
+
* ๋‚ด๋ถ€์— ์ž๋ฐ”๋ฅผ ํŽธ๋ฆฌํ•˜๊ฒŒ ์„ค์น˜ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณต #### ์ธํ…”๋ฆฌ์ œ์ด๋ฅผ ํ†ตํ•œ ์ž๋ฐ” ์ปดํŒŒ์ผ, ์‹คํ–‰ ๊ณผ์ • -
+
1. **์ปดํŒŒ์ผ** @@ -60,7 +60,7 @@ 1. ์ผ๋ฐ˜์ ์ธ ํ”„๋กœ๊ทธ๋žจ์€ ๋‹ค๋ฅธ ์šด์˜์ฒด์ œ์—์„œ ์‹คํ–‰ ํ•  ์ˆ˜ ์—†๋‹ค. -
+
2. ์ž๋ฐ” ํ”„๋กœ๊ทธ๋žจ์€ ์ž๋ฐ”๊ฐ€ ์„ค์น˜๋œ ๋ชจ๋“  OS์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. @@ -68,11 +68,11 @@ * **OS ํ˜ธํ™˜์„ฑ ๋ฌธ์ œ๋Š” ์ž๋ฐ”๊ฐ€ ํ•ด๊ฒฐํ•œ๋‹ค.** Hello.class ์™€ ๊ฐ™์ด ์ปดํŒŒ์ผ๋œ ์ž๋ฐ” ํŒŒ์ผ์€ ๋ชจ๋“  ์ž๋ฐ” ํ™˜๊ฒฝ์—์„œ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. * ์œˆ๋„์šฐ ์ž๋ฐ”๋Š” ์œˆ๋„์šฐ OS๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด๋“ค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. MAC์ด๋‚˜ ๋ฆฌ๋ˆ…์Šค ์ž๋ฐ”๋„ ๋ณธ์ธ์˜ OS๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ๋ช…๋ น์–ด๋“ค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค. ๊ฐœ๋ฐœ์ž๋Š” ๊ฐ OS์— ๋งž๋„๋ก ์ž๋ฐ”๋ฅผ ์„ค์น˜ํ•˜๊ธฐ๋งŒ ํ•˜๋ฉด ๋œ๋‹ค. -
+
#### ์ž๋ฐ” ๊ฐœ๋ฐœ๊ณผ ์šด์˜ ํ™˜๊ฒฝ -
+
* ๊ฐœ๋ฐœํ•  ๋•Œ ์ž๋ฐ”์™€ ์„œ๋ฒ„์—์„œ ์‹คํ–‰ ์‹œ ๋‹ค๋ฅธ ์ž๋ฐ”๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. * ๊ฐœ๋ฐœ์ž๋“ค์€ ๊ฐœ๋ฐœ์˜ ํŽธ์˜๋ฅผ ์œ„ํ•ด ์œˆ๋„์šฐ๋‚˜ MAC OS๋ฅผ ์ฃผ๋กœ ์‚ฌ์šฉํ•œ๋‹ค. diff --git a/developLog/spring/basic/undefined.md b/developLog/spring/basic/undefined.md index f12391c..62fbdb8 100644 --- a/developLog/spring/basic/undefined.md +++ b/developLog/spring/basic/undefined.md @@ -26,9 +26,9 @@ description: ์Šคํ”„๋ง์˜ ํ•ต์‹ฌ์€ ๋ฌด์—‡์ธ๊ฐ€? object๋ฅผ ์˜์ž s = new ์˜์ž();๋กœ **heap**์— ์˜ฌ๋ฆฌ๋ฉด ์ด s๋Š” ๋งŒ๋“  ๋ฉ”์„œ๋“œ๊ฐ€ ๊ด€๋ฆฌํ•จ ๋‹จ์ ์€ ์ด๋ ‡๊ฒŒ ๋˜๋ฉด **๋‚˜์ค‘์— ๊ณต์œ ํ•  ๋•Œ ํž˜๋“ค์–ด์ง„๋‹ค.** -
+
-
+
#### โญ IoC(์—ญ์ „์˜ ์ œ์–ด) โ‡’ ์ฃผ๋กœ ์ฃผ๋„๊ถŒ ์Šคํ”„๋ง @@ -38,7 +38,7 @@ object๋ฅผ ์˜์ž s = new ์˜์ž();๋กœ **heap**์— ์˜ฌ๋ฆฌ๋ฉด ์ด s๋Š” ๋งŒ๋“  ๋ฉ” * ์Šคํ”„๋ง์ด ์ง์ ‘ ๋งŒ๋“ ๋‹ค. ์Šค์บ”ํ•˜์—ฌ heap ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ ค์ฃผ๊ณ  ์Šคํ”„๋ง์ด ์ง์ ‘ ๊ด€๋ฆฌ -
+
#### โญ IoC ์ปจํ…Œ์ด๋„ˆ @@ -69,7 +69,7 @@ object๋ฅผ ์˜์ž s = new ์˜์ž();๋กœ **heap**์— ์˜ฌ๋ฆฌ๋ฉด ์ด s๋Š” ๋งŒ๋“  ๋ฉ” * Method Injection (ํ•„๋“œ ์ฃผ์ž…) * DL ์‚ฌ์šฉ์‹œ ์ปจํ…Œ์ด๋„ˆ ์ข…์†์ด ์ฆ๊ฐ€ํ•˜๊ธฐ ๋•Œ๋ฌธ์— ์ฃผ๋กœ DI๋ฅผ ์‚ฌ์šฉํ•œ๋‹ค. DI๋กœ ์ธํ•ด ์Šคํ”„๋ง์ด ๋งŒ๋“  ๊ฒƒ๋“ค์„ ๋‹ค๋ฅธ ๊ณณ์—์„œ ์‚ฌ์šฉ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. **์ฆ‰, ๊ณต์œ ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค.** -
+
> ๐Ÿ”— ์ถœ์ฒ˜ : [https://dog-developers.tistory.com/12](https://dog-developers.tistory.com/12) @@ -109,7 +109,7 @@ object๋ฅผ ์˜์ž s = new ์˜์ž();๋กœ **heap**์— ์˜ฌ๋ฆฌ๋ฉด ์ด s๋Š” ๋งŒ๋“  ๋ฉ” * ๋ฆฌ์Šค๋„ˆ๋กœ ๋“ฑ๋ก๋œ ๋นˆ์—๊ฒŒ **์ด๋ฒคํŠธ ๋ฐœ์ƒ์„ ์•Œ๋ ค์ค€๋‹ค.** * -
+
> ๐Ÿ”— ์ถœ์ฒ˜ : [https://dog-developers.tistory.com/12](https://dog-developers.tistory.com/12) @@ -123,7 +123,7 @@ object๋ฅผ ์˜์ž s = new ์˜์ž();๋กœ **heap**์— ์˜ฌ๋ฆฌ๋ฉด ์ด s๋Š” ๋งŒ๋“  ๋ฉ” A๋‚˜๋ผ์˜ ์„ฑ์„ `tomcat`์ด๋ผ๊ณ  ๋ณด๊ณ  ์™•์˜ ์ง‘์„ `์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ`๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ๋จ -
+
**ํ†ฐ์ผ“ ์ชฝ์œผ๋กœ ๋“ค์–ด์˜ค๋Š” ํ•„ํ„ฐ**๋Š” ์‹ค์ œ `filter`๋ผ๊ณ  ๋ถˆ๋ฆฌ๋ฉฐ, web.xml์„ ๊ฐ€์ง„๋‹ค. ๋‘ ๋ฒˆ์งธ๋กœ ์Šค**ํ”„๋ง ์ปจํ…Œ์ด๋„ˆ๋กœ ๋“ค์–ด๊ฐ€๋Š” ํ•„ํ„ฐ**๋Š” `Interceptor`(AOP)๋กœ ๊ถŒํ•œ์ฒดํฌ๋ฅผ ํ•ด์คŒ