๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

์ž๋ฐ”7

10. Casting (ํ˜•๋ณ€ํ™˜) Casting ์ด๋ž€? ์ž๋ฃŒํ˜•์—์„œ ๋‹ค๋ฅธ ์ž๋ฃŒํ˜•์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ณผ์ •์„ Casting(ํ˜•๋ณ€ํ™˜)์ด๋ผ๊ณ  ํ•œ๋‹ค.3. ์ž๋ฃŒํ˜• ํฌ์ŠคํŠธ์—์„œ ํ™•์ธํ•  ์ˆ˜ ์žˆ๋“ฏ์ด ๊ฐ ์ž๋ฃŒํ˜•์€ ๋ณ€์ˆ˜๋ฅผ ์„ ์–ธํ•  ๋•Œ, ์ž๋ฃŒํ˜• ํฌ๊ธฐ ๋งŒํผ ๊ณต๊ฐ„์„ ๊ฐ€์ง„๋‹ค.๊ทธ๋ฆฌ๊ณ  ๊ทธ ๊ณต๊ฐ„์— ๊ฐ’์„ ๋„ฃ์Œ์œผ๋กœ์จ ํ• ๋‹น์ด ๋˜๋Š”๋ฐ Casting๋„ ๊ฐ™์€ ์›๋ฆฌ์ด๋‹ค. long a - [size = 8], int b - [size = 4] ์ด๋ฏธ a์™€ b๋ฅผ ์„ ์–ธํ•˜๋Š” ์ˆœ๊ฐ„๋ถ€ํ„ฐ ์ปดํ“จํ„ฐ ๋ฉ”๋ชจ๋ฆฌ์—๋Š” ์ € ๊ณต๊ฐ„์ด ํ• ๋‹น์ด ๋œ๋‹ค.์ด ๋•Œ, b์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ a์— ๋„ฃ์–ด๋ดค์ž 8๊ฐœ์˜ size ์ค‘ 4๊ฐœ์˜ size๋งŒ ์‚ฌ์šฉํ•˜๋ฏ€๋กœ ์•„๋ฌด ๋ฌธ์ œ๊ฐ€ ์—†๋‹ค.์ด๋Ÿฐ ์›๋ฆฌ ๋•Œ๋ฌธ์— Casting์ด ๋˜๋Š” ๊ฒƒ์ด๋‹ค. ์ž‘์€ Data type ์—์„œ ํฐ Data type๋งŒ? ์œ„ ์˜ˆ์‹œ๋งŒ ๋ณด๋ฉด ํฌ๊ธฐ๊ฐ€ ๋” ์ž‘์€ ์ž๋ฃŒํ˜•์—์„œ ๋” ํฐ ์ž๋ฃŒํ˜•์œผ๋กœ ๋Œ€์ž…ํ•  ๋•Œ๋งŒ.. 2024. 7. 14.
[Java] Tree ํŠธ๋ฆฌ ์ž๋ฃŒ๊ตฌ์กฐ์˜ ์ข…๋ฅ˜ : Tree, Binary Tree, Binary Serach Tree, Balanced Binary Serach Tree, Heap, Trie์ด๋ฒˆ ํฌ์ŠคํŠธ์—์„œ๋Š” ๊ธฐ๋ณธ์ ์ธ Tree์— ๋Œ€ํ•ด์„œ๋งŒ ์ž‘์„ฑํ•ด๋ณด์ž. Tree๋ž€ ? Node์™€ Edge๋กœ ๊ตฌ์„ฑ๋œ ๋ฐฉํ–ฅ์ด ์กด์žฌํ•˜๋Š” ๋น„์ˆœํ™˜ Graph์˜ ํ•œ ์ข…๋ฅ˜์ด๋‹ค. ๊ทธ๋ž˜์„œ DAG(Directed Acyclic Graphs)๋ผ๊ณ ๋„ ํ•œ๋‹ค.๊ทธ๋Ÿผ Graph๋กœ ๋ถ„๋ฅ˜ํ•˜๋ฉด ๋˜์ง€ ์™œ Tree๋ƒ๋Š” ์˜์‹ฌ์„ ํ•˜๊ฒŒ ๋œ๋‹ค.Tree๋Š” Graph์—์„œ ๋ช‡๊ฐ€์ง€ ํŠน์„ฑ์„ ๋” ๊ฐ€์ง„๋‹ค. 1. ๋ฃจํŠธ ๋…ธ๋“œ๊ฐ€ ํ•˜๋‚˜ ์กด์žฌํ•œ๋‹ค.2. ๋ถ€๋ชจ ๋…ธ๋“œ๋Š” ํ•˜๋‚˜๋ฐ–์— ์กด์žฌํ•˜์ง€ ์•Š๋Š”๋‹ค.3. ๋…ธ๋“œ๋Š” 0๊ฐœ ์ด์ƒ์˜ ์ž์‹์„ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค.4. ์ž์‹์ด 0๊ฐœ์ธ ๊ฒฝ์šฐ ๋‹จ๋ง๋…ธ๋“œ(Leaf Node)๋ผ๊ณ  ํ•œ๋‹ค.5.. ์œ„ ํŠน์„ฑ์„ ์ง€ํ‚ค๋Š” .. 2024. 7. 7.
Opinionated๊ณผ Out of the box Opinionated '์ž๊ธฐ ์ฃผ์žฅ์ด ๊ฐ•ํ•œ'์ด๋ผ๋Š” ์˜๋ฏธ๋ฅผ ๊ฐ–๋Š” ์ด ์šฉ์–ด๋Š” SpringBoot์˜ Concept๋กœ ๋ณผ ์ˆ˜ ์žˆ๋‹ค. SpringBoot๋Š” ๋งค๋ฒˆ Servlet์„ ๋„์›Œ์•ผํ•˜๋Š” Spring์˜ ๋ฌธ์ œ์ ์„ ํ•ด๊ฒฐํ•˜๋ ค๊ณ  ํƒ„์ƒํ•œ Framework์ด๋‹ค. ์ด๋Ÿฐ Containerless ์„ฑ์งˆ๋ฟ๋งŒ ์•„๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž๊ฐ€ ๊ฐœ๋ฐœ์— ์ง‘์ค‘ํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ธฐ๋ณธ์ ์ธ ๊ฐ€์ด๋“œ(?), ๋กœ๋“œ๋งต(?)์„ ์ œ๊ณตํ•˜๊ณ ์žˆ๋‹ค. Spring Framework์˜ ์„ค๊ณ„ ์ฒ ํ•™ ๊ทน๋‹จ์ ์œผ๋กœ ์œ ์—ฐํ•˜๋‹ค. ์˜์กด์„ฑ ์ฃผ์ž… (Dependency Injection, DI) ๊ด€์ ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ (Aspect-Oriented Programming, AOP) IoC(Inversion of Control) Container ๋‹ค์–‘ํ•œ ๋ชจ๋“ˆ, ํ™•์žฅ์„ฑ, ... ๋‹ค์–‘ํ•œ ๊ด€์ ์„ ์ˆ˜์šฉํ•œ๋‹ค ์›น ๊ฐœ๋ฐœ, .. 2024. 3. 4.
7. ๋‹ค์ฐจ์› ๋ฐฐ์—ด (Multi Dimensional Array) 2์ฐจ์› ๋ฐฐ์—ด์ด๋ž€? ์šฐ๋ฆฌ๋Š” 2์ฐจ์› ๋ฐฐ์—ด์— ์ต์ˆ™ํ•˜๋‹ค. ์ง€๊ธˆ ์ด ๊ธ€์„ ๋ณด๋Š” ํ™”๋ฉด๋„ x by y์˜ ํ•ด์ƒ๋„๋ฅผ ๊ฐ€์ง„ 2์ฐจ์› ๋ฐฐ์—ด์ด๋‹ค. 2์ฐจ์› ๋ฐฐ์—ด์˜ ๊ฒฝ์šฐ, 1์ฐจ์› ๋ฐฐ์—ด์ด๋ž‘ ๋‹ค๋ฅผ๊ฒŒ ์—†์–ด์„œ ์†”์งํžˆ ๋ญ˜ ์จ์•ผ ํ•  ์ง€ ๋ชจ๋ฅด๊ฒ ๋‹ค. ์กฐ๊ธˆ๋งŒ ์ƒ๊ฐ์„ ๋ฐ”๊พธ๋ฉด ๋˜๋Š”๊ฒŒ 2์ฐจ์› ๋ฐฐ์—ด์ด๋ผ์„œ... 1์ฐจ์› ๋ฐฐ์—ด์ด ๋ฐฐ์—ด ํ˜•ํƒœ๋ฅผ ๋ ๋Š” ๊ฒƒ์ด 2์ฐจ์› ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ๋ด์•ผํ• ๊นŒ์š”? ๋ณ€์ˆ˜ ํ๋ธŒ๋ฅผ ์ƒ๊ฐํ•ด๋ด…์‹œ๋‹ค. ์šฐ๋ฆฌ ๋ˆˆ์—๋Š” 3์ฐจ์›์œผ๋กœ ๋ณด์ด๋Š” ํ•ด๋‹น ํ๋ธŒ๋Š” ํ•œ ๋ธ”๋Ÿญ์ด ๋‹จ์œ„์ž…๋‹ˆ๋‹ค. ์ปดํ“จํ„ฐ์—์„œ๋„ ๋˜‘๊ฐ™์ด int cube ๋ผ๊ณ  ํ•˜๋ฉด ์ € ํ•œ ๋ธ”๋Ÿญ์€ int ์ •๋ณด๋ฅผ ๊ฐ–๊ฒŒ ๋˜๋Š” ๊ฒƒ์ด์—์š”. ์„ ํ˜• ๋ฐฐ์—ด (1์ฐจ์› ๋ฐฐ์—ด) ๊ทธ๋Ÿผ ๋ฐฐ์—ด์€? ์ง€๊ฐ‘์„ ์„ค๋ช…ํ–ˆ๋“ฏ, ํ๋ธŒ์—์„œ๋„ ๋ณด์ผ ์ˆ˜ ์žˆ๋Š”๋ฐ์š”. ๊ฐ™์€ '๋‹จ์œ„'๋ฅผ ๊ธฐ์ค€์œผ๋กœ ํฌ๊ธฐ๋ฅผ ๊ฐ€์ง„ ๊ฒƒ์ด ๋ฐฐ์—ด์ธ๋ฐ์š”. ํ•ด๋‹น ์‚ฌ์ง„์—์„œ๋Š” block์ด 3๊ฐœ ์žˆ๋‹ค๋Š”.. 2024. 2. 10.
6. ๋ฐฐ์—ด (Array) ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์—ด์‹ฌํžˆ ์จ๋ณด๋ ค๊ณ  ํ–ˆ์ง€๋งŒ, ์ตœ๊ทผ์— ์ƒ๊ฐ์„ ์ •๋ฆฌํ•˜๋Š” ์‹œ๊ฐ„์„ ๋งŽ์ด ๊ฐ–๊ฒŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค.๊ฒฐ๊ตญ ๋ธ”๋กœ๊ทธ ๊ธ€์„ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์˜ณ๋‹ค๊ณ  ์ƒ๊ฐํ–ˆ๊ณ . ๊ธ€์„ ์ฃผ๋กœ ์“ฐ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค.๋‹ค๋งŒ, ์ œ ์ƒ๊ฐ์„ ์ •๋ฆฌํ•˜๊ณ  ๊ธฐ๋ณธ์„ ๋‹ค์‹œ ์ฑ„์šฐ๋Š” ๋А๋‚Œ์˜ ๋ธ”๋กœ๊ทธ๋ผ์„œ ๊ณต๋ถ€์˜ ์ง€์นจ์„œ๊ฐ€ ๋  ์ง€๋Š” ๋ชจ๋ฅด๊ฒ ์Šต๋‹ˆ๋‹ค.๋ช‡ ๋ฒˆ์”ฉ, ๋ฐฉ๋ฌธํ•˜๋ฉด์„œ ์ œ ๊ธ€์„ ์ฝ์–ด์ฃผ์‹œ๋Š” ๋ถ„๋“ค๊ป˜ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋ฐฐ์—ด์ด๋ž€ ๋ฌด์—‡์ผ๊นŒ?๋ฐฐ์—ด์€ ์ž๋ฃŒ๊ตฌ์กฐ ๊ด€์ ์—์„œ ๋ณด๋ฉด ์ƒ๋‹นํ•œ๋ฐ์š”.ํ˜„์žฌ ๊ธ€์˜ ์นดํ…Œ๊ณ ๋ฆฌ๋Š” Java์˜ ๊ธฐ๋ณธ์ด๋ก ์ด๋ฏ€๋กœ ๋‹จ์ˆœํ•˜๊ฒŒ๋งŒ ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค! ํ˜„์‹ค๊ณผ ๋น—๋Œ€์–ด ์ƒ๊ฐํ•ด๋ณด์ž. ์ˆซ์ž๊ฐ€ `1, 2, 3, 4`์˜ ํ˜•ํƒœ๋ฅผ ๋ ๊ณ  ์žˆ์œผ๋ฉด ์šฐ๋ฆฌ๋Š” '์ˆ˜๊ฐ€ ๋‚˜์—ด๋˜์–ด ์žˆ๋‹ค.' ๋ผ๊ณ  ํ•˜์ฃ ?๊ธ€์ž๊ฐ€ `ใ…ˆ, ใ…ฃ, ใ„ฑ, ใ…, ใ…‚`์˜ ํ˜•ํƒœ๋ฅผ ๋ ๊ณ  ์žˆ์„ ๋•Œ, ์˜ฌ๋ฐ”๋ฅธ ๊ธ€์ž๋กœ '๋ฐฐ์—ด'ํ•ด ๋ณด์„ธ์š”. ๋ผ๊ณ ๋„ ํ•˜์ฃ ?์˜ฌ๋ฐ”๋ฅด๊ฒŒ ๋ฐฐ์—ด ํ•œ๋‹ค๋ฉด.. 2024. 2. 10.
3. ์ž๋ฃŒํ˜•(DataType) ์ด์ „ ํฌ์ŠคํŠธ์—์„œ ๋ณ€์ˆ˜๋ฅผ ์„ค๋ช…ํ–ˆ์Šต๋‹ˆ๋‹ค.์ž๋ฃŒํ˜•์ด๋ž€ ๋ณ€์ˆ˜์— ๊ฐ’์„ ํ• ๋‹นํ•  ๋•Œ, ์–ด๋–ค ๊ฐ’์„ ํ• ๋‹นํ•  ๊ฒƒ์ธ์ง€? ๋ฏธ๋ฆฌ ์•Œ๋ ค์ฃผ๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ๋ณ€์ˆ˜ ํฌ์ŠคํŠธ๋ฅผ ์ž˜ ์ƒ๊ฐํ•ด ๋ด…์‹œ๋‹ค.1. a = 10์„ ์ž‘์„ฑํ•˜๊ณ  ๋ฐ”๋กœ ๋‹ค์Œ์— a = 22์–ต์ด๋ผ๊ณ  ์ž‘์„ฑํ•ด ๋ด…์‹œ๋‹ค.2. Symbol Table์—์„œ a์˜ ์ฃผ์†Œ๊ฐ€ 0x0004๋ผ๊ณ  ๊ฐ€์ •์„ ํ•ฉ์‹œ๋‹ค.3. 0x0008 ์ฃผ์†Œ์— ์ด๋ฏธ ๋‹ค๋ฅธ ๊ฐ’์ด ์žˆ๋‹ค๊ณ  ๊ฐ€์ •ํ•ฉ์‹œ๋‹ค.4. 0x0004์— 10์„ ์ €์žฅํ•  ๋•Œ๋Š” ์•„๋ฌด ๋ฌธ์ œ๊ฐ€ ์—†์Šต๋‹ˆ๋‹ค.5. 0x0004์— 22์–ต์„ ์ €์žฅํ•  ๋•Œ๋Š” ๋ฌธ์ œ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด์œ ๊ฐ€ ๋ญ˜๊นŒ์š”?์ปดํ“จํ„ฐ์—์„œ ๊ธฐ๋ณธ์ ์ธ ์ •์ˆ˜๋Š” 4byte(32bit, ๋Œ€๋žต 21์–ต)๊นŒ์ง€ ํ‘œํ˜„์„ ํ•˜๊ณ  ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•ฉ๋‹ˆ๋‹ค.a๋ผ๋Š” ๋ณ€์ˆ˜๊ฐ€ 0x0004, 0x0005, 0x0006, 0x0007์˜ ๊ณต๊ฐ„์„ ์ฐจ์ง€ํ•˜๋Š” ๊ฒƒ์ด์ฃ .๊ทธ๋Ÿฐ๋ฐ 22์–ต์„ ์ €.. 2024. 1. 2.
2. ๋ณ€์ˆ˜(Variable)์™€ ํ• ๋‹น(Assign) ๋ณ€์ˆ˜๋ž€ ๋ฌด์—‡์ผ๊นŒ์š”? ์ˆ˜ํ•™์ ์œผ๋กœ ๋ดค์„ ๋•Œ, ๋ฏธ์ง€์ˆ˜๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ˆ˜ํ•™์—์„œ๋Š” ์ฃผ๋กœ x, y์™€ ๊ฐ™์€ ๋ฏธ์ง€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์ง€๋งŒ ์ปดํ“จํ„ฐ์—์„œ๋Š” ๋ช‡ ๋ช‡ ํ‘œํ˜„์„ ์ œ์™ธํ•œ ๋ชจ๋“  ํ‘œํ˜„์ด ๋ฏธ์ง€์ˆ˜๊ฐ€ ๋  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด์ด๋ฆ„, myName, myNickName, myNickName2, Hi, ... ๋‹ค๋งŒ ํ”ผํ•ด์•ผํ•  ๊ฒƒ์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ฒซ ๋ฌธ์ž๋Š” '_', '$', '๋ฌธ์ž'๋กœ ์‹œ์ž‘ํ•ด์•ผํ•œ๋‹ค. ์˜ˆ์•ฝ์–ด๋Š” ํ”ผํ•ด์•ผํ•œ๋‹ค. ๊ณต๋ฐฑ์„ ํฌํ•จํ•˜์ง€ ์•Š๋Š”๋‹ค. ์œ„ ๋‚ด์šฉ๋“ค์ด ๋ณ€์ˆ˜์— ๋Œ€ํ•œ ๊ธฐ๋ณธ ํ‹€์ž…๋‹ˆ๋‹ค. ๋ณ„๊ฑฐ ์—†๋‹ค๊ณ  ์ƒ๊ฐํ•˜์‹ค ์ˆ˜ ์žˆ์ง€๋งŒ, ๋” ์ค‘์š”ํ•œ ๋‚ด์šฉ์€ ์ง€๊ธˆ๋ถ€ํ„ฐ ์‹œ์ž‘์ž…๋‹ˆ๋‹ค. ์•ž์„œ, ์ˆ˜ํ•™์ ์ธ ๊ด€์ ์—์„œ ๋ณ€์ˆ˜๋ฅผ ๋ฏธ์ง€์ˆ˜๋กœ ์ƒ๊ฐํ•  ์ˆ˜ ์žˆ๋‹ค๊ณ  ํ–ˆ์ง€๋งŒ ์—„๋ฐ€ํžˆ ๋งํ•˜์ž๋ฉด ๋ณ€์ˆ˜ ≠ ๋ฏธ์ง€์ˆ˜ ์ž…๋‹ˆ๋‹ค. ๋ฏธ์ง€์ˆ˜๋Š” x = 10 ์ด๋ผ๋Š” ์˜๋ฏธ๊ฐ€ x๋Š” 10์ด๋‹ค. ๋ผ๊ณ  ํ•ด์„ํ•  ์ˆ˜ ์žˆ์ฃ ? ๋ณ€์ˆ˜๋Š” .. 2024. 1. 2.