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

๐Ÿ—‚.๋Œ€์™ธํ™œ๋™/๐Ÿ“.์นด์นด์˜คํด๋ผ์šฐ๋“œ์Šค์ฟจ19

[JAVA] ์ž๋ฐ”์™€ GUI ๐Ÿšจ ์ž๋ฐ”๋Š” ํšจ์œจ์„ฑ ๋ฌธ์ œ๋กœ ๊ทธ๋ž˜ํ”ฝ์„ ๋‹ค๋ฃจ์ง€ ์•Š์ง€๋งŒ ํ•™์Šต์šฉ์œผ๋กœ ์ž๋ฐ”๋กœ GUI๋ฅผ ๊ฐ„๋‹จํžˆ ํ•™์Šตํ•ด๋ณด๋ ค ํ•œ๋‹ค. ๐ŸŽจ GUI (Graphical User Interface) ๊ทธ๋ž˜ํ”ฝ ๊ธฐ๋ฐ˜์œผ๋กœ ์‚ฌ์šฉ์ž์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ์ธํ„ฐํŽ˜์ด์Šค ์ž๋ฐ”๋Š” ์ง์ ‘์ ์œผ๋กœ GUI๊ธฐ๋ฐ˜ ๋ชจ๋“ˆ์„ ๋ฐ”๋กœ ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ํ†ตํ•ด ๋žฉํ•‘ (ํฌ์žฅ)ํ•ด JVM์„ ๊ฑฐ์ณ์„œ ์‚ฌ์šฉํ•ด์•ผ ํ•œ๋‹ค. ๋‹ค๋งŒ ๊ฑฐ์ณ์„œ ๊ฐ€๊ธฐ ๋•Œ๋ฌธ์— ์†๋„๊ฐ€ ๋Š๋ฆฌ๋‹ค. ๊ทธ๋ž˜์„œ ๋ณดํ†ต ์ž๋ฐ”์—์„œ GUI๋ฅผ ๋‹ค๋ฃจ์ง€ ์•Š๋Š”๋‹ค. ๋”๋ณด๊ธฐ ํ•˜๋“œ์›จ์–ด ์ถœ๋ ฅ์žฅ์น˜์ธ ๋ชจ๋‹ˆํ„ฐ๋ฅผ ์†Œํ”„ํŠธ์›จ์–ด๋กœ ์ œ์–ดํ•˜๊ธฐ ์œ„ํ•ด ๊ทธ๋ž˜ํ”ฝ๋‹จ์œ„๋กœ ์ถ”์ƒํ™”ํ•˜์—ฌ ๋ชจ๋“ˆ์„ ์‚ฌ์šฉํ•ด ๋ชจ๋‹ˆํ„ฐ๋ฅผ ์ œ์–ดํ•œ๋‹ค. ๐Ÿ”ง ์ธํ„ฐํŽ˜์ด์Šค: ๋‘ ๊ฐœ ์ด์ƒ์˜ ์‹œ์Šคํ…œ, ์žฅ์น˜, ํ”„๋กœ๊ทธ๋žจ ๊ฐ„์— ์ƒํ˜ธ ์ž‘์šฉํ•˜๊ณ  ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•œ ๊ฒฝ๊ณ„๋‚˜ ๋งค๊ฐœ์ฒด GUI๋Š” ์ด๋ฒคํŠธ ๊ธฐ๋ฐ˜์œผ๋กœ ๋ฌดํ•œ๋ฃจํ”„์— ๋น ์ ธ ๋ฌดํ•œ ๋Œ€๊ธฐ ์ƒํƒœ์— ๋น ์ง€.. 2023. 12. 16.
[JAVA] ์ž๋ฐ”์˜ ์ƒ์†๊ณผ ์ถ”์ƒ ๋ฉ”์†Œ๋“œ ๐ŸŽฑ ์ž๋ฐ” ์ƒ์† ์„œ๋ธŒํด๋ž˜์Šค(sub class, ์ž์‹)๋Š” ์Šˆํผํด๋ž˜์Šค(super class, ๋ถ€๋ชจ)๋ฅผ ์„ ํƒํ•ด, ์Šˆํผํด๋ž˜์Šค์˜ ๋ชจ๋“  ๊ฒƒ์„ ์ƒ์†๋ฐ›์•„ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ฒƒ์ด๋‹ค. ๋‹จ private์˜ ๊ฒฝ์šฐ๋Š” ์‚ฌ์šฉํ•  ์ˆ˜ ์—†๋‹ค. ์„œ๋ธŒ ํด๋ž˜์Šค ์˜†์— extends ํ‚ค์›Œ๋“œ์™€ ํ•จ๊ป˜ ์Šˆํผํด๋ž˜์Šค๋ช…์„ ์ž‘์„ฑํ•˜๋ฉด ๋œ๋‹ค. ํ•˜๋‚˜๋งŒ ๊ฐ€๋Šฅ(๋‹จ์ผ ์ƒ์†)ํ•˜๋ฉฐ, ์Šˆํผํด๋ž˜์Šค์˜ ๊ธฐ๋Šฅ์— ๋”ํ•ด ๋” ๋งŽ์€ ๊ธฐ๋Šฅ์„ ๊ฐ–๋„๋ก ์„œ๋ธŒํด๋ž˜์Šค๋ฅผ ์ž‘์„ฑํ•œ๋‹ค. ๋ณ€์ˆ˜๋Š” private๋กœ ์„ ์–ธํ•˜๊ณ  getter-setter๋กœ ์ œ์–ดํ•˜๋Š” ๊ฒƒ์ด ์ข‹์ง€๋งŒ ์˜ˆ์‹œ๋Š” protected๋กœ ์„ ์–ธํ•ด ๊ณต์œ ํ•˜๋„๋ก ํ•˜์˜€๋‹ค. ๋”๋ณด๊ธฐ โœจ ์„œ๋ธŒํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋Š” ์ž๋™์œผ๋กœ super();์„ ์‹คํ–‰ํ•ด ์Šˆํผ ํด๋ž˜์Šค์˜ ์ƒ์„ฑ์ž๋ฅผ ์ž๋™์œผ๋กœ ๋ถ€๋ฅด๊ฒŒ ๋œ๋‹ค. โœจ๊ธฐ๋ณธ ์ƒ์„ฑ์ž๊ฐ€ ์•„๋‹Œ ์ธ์ˆ˜๊ฐ€ ์žˆ๋Š” ์ƒ์„ฑ์ž๋ฅผ ๋ถ€๋ฅผ ๋•Œ๋Š” super(10,20); .. 2023. 12. 15.
[JAVA] ์ž๋ฐ” ๋ณ€์ˆ˜ ๐ŸŽ„ ๋ณ€์ˆ˜ 1) ํด๋ž˜์Šค ๋ณ€์ˆ˜ static ๋ณ€์ˆ˜ ๋ชจ๋“  ์ธ์Šคํ„ด์Šค๊ฐ€ ๊ณตํ†ต๋œ ๊ฐ’์„ ๊ณต์œ ํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. 2) ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ ํด๋ž˜์Šค ๋‚ด์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜ 3) ์ง€์—ญ๋ณ€์ˆ˜(๋งค๊ฐœ๋ณ€์ˆ˜) ๋ฉ”์†Œ๋“œ ๋‚ด์— ์„ ์–ธ๋œ ๋ณ€์ˆ˜ public class test { int a; // ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜ static int b; // ํด๋ž˜์Šค ๋ณ€์ˆ˜ void print() { int c; // ์ง€์—ญ ๋ณ€์ˆ˜ } } ๐ŸŽน ์ ‘๊ทผ ์ œ์–ด์ž private, protect, public ๐ŸŽน ๊ธฐํƒ€ ์ œ์–ด์ž ๐ŸŽต Static Object์—์„œ ๊ณต์œ ๊ฐ€ ๊ฐ€๋Šฅํ•˜๋‹ค. ํด๋ž˜์Šค ์†Œ์† ๋ณ€์ˆ˜์ด๋‹ค. ๊ฐ์ฒด ์ƒ์„ฑ ์—†์ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ์‚ฌ์šฉํ•  ๋•Œ๋Š” ํด๋ž˜์Šค๋ช….๋ณ€์ˆ˜๋ช…์œผ๋กœ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋ช…ํ™•ํ•œ ์‚ฌ์šฉ๋ฒ•์ด๋‹ค. ๋”๋ณด๊ธฐ public class Student { public static int countNum.. 2023. 12. 14.
[JAVA] ํด๋ž˜์Šค์™€ ๋ฉ”๋ชจ๋ฆฌ ๐ŸŽ„ ํด๋ž˜์Šค์™€ ์ธ์Šคํ„ด์Šค ๋ฉ”๋ชจ๋ฆฌ ๊ด€๊ณ„ Stack: ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์˜ ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ ํ• ๋‹น Heap: ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜์˜ ์‹ค์ œ ๋ณ€์ˆ˜ ๊ฐ’๊ณผ ํ•จ์ˆ˜์˜ ์ฃผ์†Œ ๊ฐ’ Code: ํด๋ž˜์Šค ์ด ์ฝ”๋“œ, Heap์—์„œ ์ด๊ณณ์˜ ํ•จ์ˆ˜์ฝ”๋“œ๋ฅผ ํ˜ธ์ถœํ•ด์„œ ์‚ฌ์šฉํ•œ๋‹ค. ๋”๋ณด๊ธฐ โœจ ์ฐธ์กฐํ˜•(์ฃผ์†Œ) Class๋ฅผ ์˜๋ฏธ(ํ•˜๋‚˜๋ฐ–์— ์—†์Œ)ํ•œ๋‹ค. ์‚ฌ์šฉ์ž ์ •์˜, ์ฆ‰ ์‚ฌ์šฉ์ž type = style, ๋”ฐ๋ผ์„œ Heap์— ์ €์žฅ๋˜๊ฒŒ ๋œ๋‹ค. โœจ ์‹œ์Šคํ…œ์˜ ๊ด€์ ์—์„œ ํด๋ž˜์Šค๋Š” ๊ฐ™์€ ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ์ƒ์„ฑ์‹œํ‚จ ์ธ์Šคํ„ด์Šค ๊ฐ„์— ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด ์ž‘์„ฑ๋œ ์„ ์–ธ๋ฌธ์ด๋‹ค. ๐ŸŽ„ ๋ฉ”๋ชจ๋ฆฌ 1) Stack ์Šคํƒ ์ง€์—ญ๋ณ€์ˆ˜, ๋งค๊ฐœ๋ณ€์ˆ˜ ๋ธ”๋ก(์Šค์ฝ”ํ”„) ๋ฒ—์–ด๋‚˜๋ฉด ์†Œ๋ฉธ, Heap๋ณด๋‹ค ๋น ๋ฅด๋‹ค. 2) Heap ํž™ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ์ง์ ‘ ๊ด€๋ฆฌ(ํ• ๋‹น/ํ•ด์ œ)ํ•  ์ˆ˜ ์žˆ๋‹ค. ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น(new/ํฌ์ธํ„ฐ), ์ž๋ฐ”์—์„œ๋Š” ์‚ญ์ œ๋ฅผ ์•Œ.. 2023. 12. 13.
[JAVA] ์ปดํ“จํ„ฐ์˜ ๊ตฌ์กฐ ๋ฐ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๐Ÿค” ์ปดํ“จํ„ฐ์˜ ๊ตฌ์กฐ ์ปดํ“จํ„ฐ์˜ ๊ตฌ์กฐ๋ฅผ ๊ฐ„๋‹จํ•˜๊ฒŒ ์„ค๋ช…ํ•˜๋ฉด ์ค‘์•™์ฒ˜๋ฆฌ์žฅ์น˜์™€ ์ฃผ๊ธฐ์–ต์žฅ์น˜, ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜, ์ถœ๋ ฅ์žฅ์น˜ ๊ทธ๋ฆฌ๊ณ  ์ž…๋ ฅ์žฅ์น˜๋กœ ๋‚˜๋ˆŒ ์ˆ˜ ์žˆ๋‹ค. ์ด๋“ค์€ ๋ชจ๋‘ ํ•˜๋“œ์›จ์–ด์ด๋ฉฐ ์†Œํ”„ํŠธ์›จ์–ด๋Š” ํ•˜๋“œ์›จ์–ด์˜ ์–ด๋–ค ์žฅ์น˜๋ฅผ ์–ด๋–ค ์ˆœ์„œ๋กœ ๋™์ž‘์‹œํ‚ฌ ๊ฒƒ์ธ์ง€ ์ •๋ฆฌํ•˜๋Š” ๊ฒƒ์ด๋‹ค. ๋”๋ณด๊ธฐ โš™ CPU ๊ฐ ์žฅ์น˜์— ํ•œ๋ฒˆ์— ํ•˜๋‚˜์˜ ๋ช…๋ น๋งŒ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค. ์—ฐ์‚ฐ ์žฅ์น˜(ALU)์™€ ์ œ์–ด์žฅ์น˜๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค. โš™ CPU๊ฐ€ ํ•  ์ˆ˜ ์žˆ๋Š” ๊ธฐ๋Šฅ 1. ์—ฐ์‚ฐ ๊ธฐ๋Šฅ 2. ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ ๋ฐ ๋ช…๋ น์–ด ์ฝ๊ธฐ, ์“ฐ๊ธฐ 3. ๊ธฐํƒ€ ์ œ์–ด ๊ธฐ๋Šฅ ๐Ÿค” ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์›๋ฆฌ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰์€ ๋ณด์กฐ๊ธฐ์–ต์žฅ์น˜(ROM)์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ธฐ์–ต์žฅ์น˜๋กœ ๋ถˆ๋Ÿฌ๋“ค์—ฌ(ํ”„๋กœ๊ทธ๋žจ ๋กœ๋“œ) CPU์—์„œ ์ˆœ์ฐจ์ ์œผ๋กœ ํ•˜๋‚˜์”ฉ ๊ฐ€์ ธ์™€์„œ ์‹คํ–‰ํ•ด ์ถœ๋ ฅ์žฅ์น˜๋ฅผ ํ†ตํ•ด ๊ฒฐ๊ณผ๋ฅผ ๋‚ด๋ณด๋‚ด๋Š” ๊ณผ์ •์ด๋‹ค. ๊ฒฐ๊ตญ ํ”„๋กœ๊ทธ๋žจ์€ ํ•˜๋“œ์›จ์–ด๋ฅผ.. 2023. 12. 12.
[JAVA] ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๐Ÿค” ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ๋ฐœ์ „ํ•˜๊ฒŒ ๋œ ์ด์œ  ์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์€ ์ตœ์†Œํ•œ์˜ ๋น„์šฉ์œผ๋กœ ์ตœ๋Œ€ํ•œ์˜ ํšจ๊ณผ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋ฐœ์ „๋œ ํ•™๋ฌธ์ด๋‹ค. ์ƒ์„ฑ๋ถ€ํ„ฐ ํ๊ธฐ๊นŒ์ง€์˜ ๋น„์šฉ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ ๋งŒ๋“ค์–ด์กŒ๋‹ค. ์ดˆ๊ธฐ์—๋Š” ๊ฐœ๋ฐœ๋น„์šฉ, ์ƒ์„ฑ๋น„์šฉ์ด ๋†’์•˜๋‹ค. ํ•˜์ง€๋งŒ ๋งŽ์€ ํšŒ์‚ฌ์—์„œ ์ฝ”๋“œ๋ฅผ ๊ณต๊ฐœํ•˜๋ฉด์„œ ์ƒ์„ฑ ๋น„์šฉ์ด ๊ต‰์žฅํžˆ ์ค„์–ด๋“ค๊ฒŒ ๋˜์—ˆ๋‹ค. ๋”ฐ๋ผ์„œ ์ตœ๊ทผ์—๋Š” ์œ ์ง€๋ณด์ˆ˜๋น„์šฉ์ด ์ƒ์„ฑ๋น„์šฉ๋ณด๋‹ค ํ›จ์”ฌ ๋งŽ์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์œ ์ง€๋ณด์ˆ˜ ๋น„์šฉ์„ ์ค„์ด๊ธฐ์œ„ํ•ด ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์ด ์ƒ๊ฒจ๋‚ฌ๋‹ค. ๋”๋ณด๊ธฐ - ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ๋ฒ•๋ก  : SW ๊ณตํ•™์  ๊ด€์ ์—์„œ ๋ช…๋ น์–ด๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ํšจ์œจ์ ์œผ๋กœ ํ•˜๊ธฐ ์œ„ํ•จ โšฝ ํ•จ์ˆ˜ ์ง€ํ–ฅํ˜• : ์ƒ์„ฑ ๋น„์šฉ ์ค„์ด๊ธฐ = ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ ๋†’์ด๊ธฐ = ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ธฐ์ˆ  ๋ฐœ๋‹ฌ : ๋ชจ๋“ˆํ™”(ํ•จ์ˆ˜ ๋‹จ์œ„) ์ฆ‰, ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’์•„์ง โšพ ๊ฐ์ฒด ์ง€ํ–ฅํ˜• : ์œ ์ง€๋ณด์ˆ˜ ๋น„์šฉ ์ค„์ด๊ธฐ.. 2023. 12. 11.
728x90