๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Project ESG+AI/Tech Basics

9์ผ์ฐจ. IT ๊ฐœ๋… ์ •๋ฆฌ

by GreenJin_S2 2025. 10. 21.

 

 

ํด๋ž˜์Šค ๋ฐ–์ด ํ•จ์ˆ˜

์—‘์…€์€ ํ•จ์ˆ˜

 


=์˜ ์˜๋ฏธ: ์–ด์‚ฌ์ธ๋จผํŠธ ์—ฐ์‚ฐ์ž (Assignment Operator)

์™ผ์ชฝ ๋ณ€์ˆ˜์— ์˜ค๋ฅธ์ชฝ ๊ฐ’์„ ์ €์žฅ(ํ• ๋‹น) ํ•˜๋Š” ์—ญํ• ์„ ํ•ฉ๋‹ˆ๋‹ค.

์˜ˆ์‹œ:

 
x = 5

๐Ÿ‘‰ ์ด๊ฑด “x๋Š” 5์™€ ๊ฐ™๋‹ค”๊ฐ€ ์•„๋‹ˆ๋ผ
**“x์— 5๋ฅผ ๋„ฃ๋Š”๋‹ค”**๋ผ๋Š” ์˜๋ฏธ์ž…๋‹ˆ๋‹ค.

์ฆ‰,

  • =์˜ ์˜ค๋ฅธ์ชฝ: ๊ณ„์‚ฐ๋˜์–ด ๋‚˜์˜ค๋Š” ๊ฐ’ (value)
  • =์˜ ์™ผ์ชฝ: ๊ทธ ๊ฐ’์„ ๋‹ด์„ ๋ณ€์ˆ˜ (variable)

 


์•Œ๊ณ ๋ฆฌ์ฆ˜์˜ ์ •์˜

์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€, ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ž…๋ ฅ์„ ๋ฐ›์•„ ์ผ์ •ํ•œ ๊ณผ์ •์„ ๊ฑฐ์ณ ์ถœ๋ ฅ(๊ฒฐ๊ณผ)์„ ๋‚ด๋Š” ๋…ผ๋ฆฌ์ ์ธ ์ ˆ์ฐจ์ž…๋‹ˆ๋‹ค.

์‰ฝ๊ฒŒ ๋งํ•ด์„œ, **“๋ฌธ์ œ๋ฅผ ํ‘ธ๋Š” ์š”๋ฆฌ ๋ ˆ์‹œํ”ผ”**๋ผ๊ณ  ์ƒ๊ฐํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

์˜ˆ๋ฅผ ๋“ค์–ด,

๋ผ๋ฉด์„ ๋“์ด๋Š” ๊ณผ์ •๋„ ํ•˜๋‚˜์˜ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด์—์š”.
1๏ธโƒฃ ๋ฌผ์„ ๋“์ธ๋‹ค → 2๏ธโƒฃ ์Šคํ”„๋ฅผ ๋„ฃ๋Š”๋‹ค → 3๏ธโƒฃ ๋ฉด์„ ๋„ฃ๋Š”๋‹ค → 4๏ธโƒฃ ์ต์œผ๋ฉด ๋จน๋Š”๋‹ค

์ด์ฒ˜๋Ÿผ ๋‹จ๊ณ„์ ์œผ๋กœ ์ •์˜๋œ ์ˆœ์„œ๊ฐ€ ๋ฐ”๋กœ ์•Œ๊ณ ๋ฆฌ์ฆ˜์ž…๋‹ˆ๋‹ค.

 

 


CPU๋ž€?

CPU๋Š” ์ปดํ“จํ„ฐ์˜ ๋‘๋‡Œ ์—ญํ• ์„ ํ•˜๋Š” ํ•ต์‹ฌ ๋ถ€ํ’ˆ์œผ๋กœ,
์ปดํ“จํ„ฐ์—์„œ ์ˆ˜ํ–‰๋˜๋Š” ๋ชจ๋“  ์—ฐ์‚ฐ๊ณผ ์ œ์–ด ์ž‘์—…์„ ๋‹ด๋‹นํ•ฉ๋‹ˆ๋‹ค.


๐Ÿ’ก ์ฃผ์š” ๊ธฐ๋Šฅ

๊ธฐ๋Šฅ์„ค๋ช…
์—ฐ์‚ฐ(Arithmetic Logic Unit, ALU) ๋ง์…ˆ, ๋บ„์…ˆ, ๋…ผ๋ฆฌ ์—ฐ์‚ฐ ๋“ฑ ์ˆ˜ํ–‰
์ œ์–ด(Control Unit, CU) ๋ช…๋ น์„ ํ•ด์„ํ•˜๊ณ  ๊ฐ ๋ถ€ํ’ˆ์„ ์ œ์–ด
๋ ˆ์ง€์Šคํ„ฐ(Register) ์ž„์‹œ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ๋กœ, ๋น ๋ฅธ ์—ฐ์‚ฐ์„ ์ง€์›

 

 

ํด๋ž˜์Šค ์•ˆ์— ์žˆ๋Š”๊ฑด ๋ฉ”์†Œ๋“œ


cpu, ๋ฉ”๋ชจ๋ฆฌ(RAM), ๋””์Šคํฌ

 

 

๋งคํŠธ๋ฆญ์Šค(Matrix)๋ž€?

ํ–‰(Row)๊ณผ ์—ด(Column)๋กœ ๊ตฌ์„ฑ๋œ ์ˆซ์ž๋‚˜ ๋ฐ์ดํ„ฐ์˜ ์ง์‚ฌ๊ฐํ˜• ๋ฐฐ์—ด์ž…๋‹ˆ๋‹ค.

์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด,
์ˆซ์ž๋ฅผ ํ‘œ์ฒ˜๋Ÿผ ๋‚˜์—ดํ•œ ๊ฒƒ์ด์—์š”.

 

 

์ˆ˜์—ด-๋ฌธ์ž์—ด-๋ฐฐ์—ด-ํ–‰์—ด

 

 


 

๐Ÿ’ป ์ž๋ฐ”(Java)์—์„œ ๋ฐ˜๋ณต๋ฌธ, if๋ฌธ, switch๋ฌธ ์ฐจ์ด ์™„๋ฒฝ ์ •๋ฆฌ

์ž๋ฐ”๋ฅผ ์ฒ˜์Œ ๋ฐฐ์šฐ๋ฉด ๊ฐ€์žฅ ๋งŽ์ด ์ ‘ํ•˜๋Š” ๊ฒƒ์ด ๋ฐ”๋กœ ๋ฐ˜๋ณต๋ฌธ๊ณผ ์กฐ๊ฑด๋ฌธ์ž…๋‹ˆ๋‹ค.
์ด ์„ธ ๊ฐ€์ง€(for / while, if, switch)๋Š” ์ฝ”๋“œ์˜ ํ๋ฆ„์„ ์ œ์–ดํ•˜๋Š” ๊ธฐ๋ณธ ์ค‘์˜ ๊ธฐ๋ณธ์ด์ฃ .

์˜ค๋Š˜์€ ์ด ์„ธ ๋ฌธ๋ฒ•์˜ ์ฐจ์ด์™€ ์“ฐ์ž„์ƒˆ๋ฅผ ์˜ˆ์˜๊ฒŒ ์ •๋ฆฌํ•ด๋ณผ๊ฒŒ์š”. โœจ


๐ŸŒ€ ๋ฐ˜๋ณต๋ฌธ (for / while / do-while)

๊ฐ™์€ ๋™์ž‘์„ ์—ฌ๋Ÿฌ ๋ฒˆ ๋ฐ˜๋ณตํ•ด์•ผ ํ•  ๋•Œ ์‚ฌ์šฉํ•˜๋Š” ๊ตฌ๋ฌธ

โœ… for๋ฌธ

๋ฐ˜๋ณต ํšŸ์ˆ˜๊ฐ€ ๋ช…ํ™•ํ•  ๋•Œ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 
for (int i = 0; i < 5; i++) { System.out.println(i); }

๐Ÿ‘‰ i๊ฐ€ 0๋ถ€ํ„ฐ 4๊นŒ์ง€ ์ฆ๊ฐ€ํ•˜๋ฉด์„œ ์ถœ๋ ฅ๋ฉ๋‹ˆ๋‹ค.


โœ… while๋ฌธ

์กฐ๊ฑด์ด ์ฐธ์ผ ๋™์•ˆ ๊ณ„์† ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
๋ฐ˜๋ณต ํšŸ์ˆ˜๋ฅผ ์˜ˆ์ธกํ•˜๊ธฐ ์–ด๋ ค์šธ ๋•Œ ์ฃผ๋กœ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.

 
int i = 0; while (i < 5) { System.out.println(i); i++; }

โœ… do-while๋ฌธ

์กฐ๊ฑด์„ ๋‚˜์ค‘์— ๊ฒ€์‚ฌํ•˜๊ธฐ ๋•Œ๋ฌธ์—,
๋ฐ˜๋“œ์‹œ ์ตœ์†Œ ํ•œ ๋ฒˆ์€ ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.

 
int i = 0; do { System.out.println(i); i++; } while (i < 5);

๐Ÿ’ก ๋ฐ˜๋ณต๋ฌธ ๋น„๊ต ์š”์•ฝ

๊ตฌ๋ถ„์‹คํ–‰ ์กฐ๊ฑด์ตœ์†Œ ์‹คํ–‰ ํšŸ์ˆ˜์‚ฌ์šฉ ์˜ˆ
for ๋ฐ˜๋ณต ํšŸ์ˆ˜ ๋ช…ํ™• 0 ์นด์šดํŠธ, ๋ฐฐ์—ด ์ˆœํšŒ
while ์กฐ๊ฑด์‹์ด ์ฐธ์ผ ๋•Œ 0 ๋ฌดํ•œ๋ฃจํ”„, ๋™์  ์กฐ๊ฑด
do-while ์กฐ๊ฑด์‹์ด ์ฐธ์ผ ๋•Œ (๋‹จ, ์‹คํ–‰ ํ›„ ๊ฒ€์‚ฌ) 1 ๋ฉ”๋‰ด ๋ฐ˜๋ณต ๋“ฑ

๐Ÿ” if๋ฌธ (์กฐ๊ฑด๋ฌธ)

์กฐ๊ฑด์— ๋”ฐ๋ผ ์‹คํ–‰ํ•  ์ฝ”๋“œ๋ฅผ ์„ ํƒํ•˜๋Š” ๊ตฌ๋ฌธ

 
int score = 85; if (score >= 90) { System.out.println("A ํ•™์ "); } else if (score >= 80) { System.out.println("B ํ•™์ "); } else { System.out.println("C ํ•™์  ์ดํ•˜"); }

๐Ÿ’ฌ if๋ฌธ์€ ๋ณต์žกํ•œ ์กฐ๊ฑด์ด๋‚˜ ๋ฒ”์œ„ ๊ฒ€์‚ฌ์— ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
(x > 10 && y < 20 ๊ฐ™์€ ๋ณตํ•ฉ ์กฐ๊ฑด ์ฒ˜๋ฆฌ ๊ฐ€๋Šฅ)


๐Ÿ’ก if๋ฌธ ๊ตฌ์กฐ

ํ˜•ํƒœ์„ค๋ช…
if (์กฐ๊ฑด) ์กฐ๊ฑด์ด ์ฐธ์ด๋ฉด ์‹คํ–‰
if ~ else ์กฐ๊ฑด์ด ์ฐธ/๊ฑฐ์ง“์ผ ๋•Œ ๊ฐ๊ฐ ์‹คํ–‰
if ~ else if ~ else ์—ฌ๋Ÿฌ ์กฐ๊ฑด ์ค‘ ํ•˜๋‚˜ ์„ ํƒ

๐ŸŽฏ switch๋ฌธ

ํ•˜๋‚˜์˜ ๊ฐ’์ด ์—ฌ๋Ÿฌ ๊ฒฝ์šฐ(case) ์ค‘ ์–ด๋””์— ์†ํ•˜๋Š”์ง€์— ๋”ฐ๋ผ ๋‹ค๋ฅธ ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ

 
int day = 3; switch (day) { case 1: System.out.println("์›”์š”์ผ"); break; case 2: System.out.println("ํ™”์š”์ผ"); break; case 3: System.out.println("์ˆ˜์š”์ผ"); break; default: System.out.println("๊ธฐํƒ€ ์š”์ผ"); }

๐Ÿง  switch๋Š” ์ •ํ™•ํ•œ ๊ฐ’(์ •์ˆ˜, ๋ฌธ์ž, ๋ฌธ์ž์—ด ๋“ฑ) ๋น„๊ต์— ํŠนํ™”๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค.
(๋ฒ”์œ„ ์กฐ๊ฑด์€ ๋ถˆ๊ฐ€๋Šฅ)


๐Ÿ’ก switch๋ฌธ ์ฃผ์š” ํŠน์ง•

๊ตฌ๋ถ„์„ค๋ช…
case ๋น„๊ตํ•  ๋Œ€์ƒ ๊ฐ’ ์ง€์ •
break ์‹คํ–‰ ํ›„ ํƒˆ์ถœ (์—†์œผ๋ฉด ๋‹ค์Œ case๊นŒ์ง€ ์‹คํ–‰๋จ)
default ์–ด๋–ค case์—๋„ ํ•ด๋‹น๋˜์ง€ ์•Š์„ ๋•Œ ์‹คํ–‰

โš ๏ธ break๋ฅผ ๋นผ๋ฉด ์ƒ๊ธฐ๋Š” ๋ฌธ์ œ

 
int n = 2; switch (n) { case 1: System.out.println("1"); case 2: System.out.println("2"); case 3: System.out.println("3"); }

๐Ÿ‘‰ ์ถœ๋ ฅ ๊ฒฐ๊ณผ:

 
2 3

break๊ฐ€ ์—†์–ด์„œ 2์™€ 3 ๋‘˜ ๋‹ค ์‹คํ–‰๋ฉ๋‹ˆ๋‹ค.
์ด๋ฅผ **fall-through(ํด์Šค๋ฃจ)**๋ผ๊ณ  ํ•ฉ๋‹ˆ๋‹ค.


๐Ÿง  if๋ฌธ vs switch๋ฌธ vs ๋ฐ˜๋ณต๋ฌธ ๋น„๊ต ์š”์•ฝ

๊ตฌ๋ถ„if๋ฌธswitch๋ฌธfor / while๋ฌธ
์šฉ๋„ ์กฐ๊ฑด ๋ถ„๊ธฐ ๊ฐ’ ๋ถ„๊ธฐ ๋ฐ˜๋ณต ์‹คํ–‰
์กฐ๊ฑด ํ˜•ํƒœ ๋ฒ”์œ„, ๋ณตํ•ฉ์‹ ๊ฐ€๋Šฅ ํŠน์ • ๊ฐ’๋งŒ ๋น„๊ต ์กฐ๊ฑด์‹ (๋ฐ˜๋ณต ์—ฌ๋ถ€)
์‹คํ–‰ ํšŸ์ˆ˜ ํ•œ ๋ฒˆ ํ•œ ๋ฒˆ ์—ฌ๋Ÿฌ ๋ฒˆ
๊ฐ€๋…์„ฑ ๋ณต์žกํ•ด์งˆ ์ˆ˜ ์žˆ์Œ ๊น”๋”ํ•œ ๊ตฌ์กฐ ๋ฐ˜๋ณต ๋กœ์ง ์ค‘์‹ฌ
break ํ•„์š” ์—ฌ๋ถ€ X O (์„ ํƒ์ )

๐Ÿ’ฌ ์ •๋ฆฌ ์š”์•ฝ

  • for / while → ๋ฐ˜๋ณต ์ˆ˜ํ–‰
  • if๋ฌธ → ์กฐ๊ฑด ๋ถ„๊ธฐ (๋ฒ”์œ„/๋ณตํ•ฉ ์กฐ๊ฑด)
  • switch๋ฌธ → ๊ฐ’ ๊ธฐ๋ฐ˜ ๋ถ„๊ธฐ (๊ฐ€๋…์„ฑ ์ข‹์Œ, ์ƒ์ˆ˜ ๋น„๊ต์— ์œ ๋ฆฌ)

๐Ÿ‘‰ ์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด,

  • ๋ฐ˜๋ณตํ•  ๋• for/while
  • ์กฐ๊ฑด์— ๋”ฐ๋ผ ๋‚˜๋ˆŒ ๋• if/switch
    ์ž…๋‹ˆ๋‹ค. ๐Ÿ˜Š

 


for๋ฌธ

1๏ธโƒฃ ๊ตฌ์กฐ

for๋ฌธ์€ ๋ฐ˜๋ณต๋ฌธ ์ค‘ ํ•˜๋‚˜๋กœ, ํŠน์ • ์กฐ๊ฑด์ด ๋งž์„ ๋•Œ๊นŒ์ง€ ์ฝ”๋“œ๋ฅผ ๋ฐ˜๋ณต ์‹คํ–‰ํ•  ๋•Œ ์‚ฌ์šฉ๋ผ์š”.
์ผ๋ฐ˜์ ์ธ ํ˜•ํƒœ๋Š” ์ด๋ ‡๊ฒŒ ์ƒ๊ฒผ์–ด์š”:

 
for (์ดˆ๊ธฐํ™”; ์กฐ๊ฑด; ์ฆ๊ฐ) { // ๋ฐ˜๋ณต ์‹คํ–‰ํ•  ์ฝ”๋“œ }
  • ์ดˆ๊ธฐํ™” → ๋ฐ˜๋ณต์ด ์‹œ์ž‘๋˜๊ธฐ ์ „์— ๋”ฑ ํ•œ ๋ฒˆ๋งŒ ์‹คํ–‰
  • ์กฐ๊ฑด → ๋ฐ˜๋ณต์„ ๊ณ„์†ํ• ์ง€ ๋ง์ง€ ๊ฒฐ์ •
  • ์ฆ๊ฐ → ๋ฐ˜๋ณตํ•  ๋•Œ๋งˆ๋‹ค ๋ณ€์ˆ˜ ๊ฐ’์„ ๋ณ€ํ™”์‹œ์ผœ ์กฐ๊ฑด์ด ๋๋‚˜๊ฒŒ ๋งŒ๋“ฆ

2๏ธโƒฃ ๊ฐ ๋ถ€๋ถ„ ํ•ด์„

 
for (int i = 0; i < 5; i++)
๋ถ€๋ถ„์˜๋ฏธ
int i = 0 ์ดˆ๊ธฐํ™”: ๋ฐ˜๋ณต์— ์‚ฌ์šฉํ•  ๋ณ€์ˆ˜ i๋ฅผ ์„ ์–ธํ•˜๊ณ  0์œผ๋กœ ์‹œ์ž‘ํ•œ๋‹ค๋Š” ์˜๋ฏธ
i < 5 ์กฐ๊ฑด: i๊ฐ€ 5๋ณด๋‹ค ์ž‘์„ ๋•Œ๋งŒ ๋ฐ˜๋ณต ์‹คํ–‰. 5 ์ด์ƒ์ด ๋˜๋ฉด ๋ฐ˜๋ณต ์ข…๋ฃŒ
i++ ์ฆ๊ฐ: ํ•œ ๋ฒˆ ๋ฐ˜๋ณตํ•  ๋•Œ๋งˆ๋‹ค i๋ฅผ 1์”ฉ ์ฆ๊ฐ€ (i = i + 1๊ณผ ๋™์ผ)

 

 

 

“ํ™•์žฅ for๋ฌธ”๊ณผ “for-each”

 

1๏ธโƒฃ ๊ธฐ๋ณธ ๊ตฌ์กฐ

 
for (ํƒ€์ž… ๋ณ€์ˆ˜ : ๋ฐฐ์—ด ๋˜๋Š” ์ปฌ๋ ‰์…˜) { // ๋ฐ˜๋ณต ์‹คํ–‰ํ•  ์ฝ”๋“œ }
  • ํƒ€์ž… ๋ณ€์ˆ˜ → ๋ฐ˜๋ณตํ•˜๋ฉด์„œ ๊บผ๋‚ผ ๊ฐ’์˜ ํƒ€์ž…๊ณผ ์ž„์‹œ ์ €์žฅํ•  ๋ณ€์ˆ˜
  • ๋ฐฐ์—ด ๋˜๋Š” ์ปฌ๋ ‰์…˜ → ๋ฐ˜๋ณตํ•  ๋Œ€์ƒ
  • : (์ฝœ๋ก ) → “~์—์„œ ํ•˜๋‚˜์”ฉ ๊บผ๋‚ธ๋‹ค” ๋ผ๋Š” ์˜๋ฏธ

2๏ธโƒฃ ์˜ˆ์ œ 1 – ๋ฐฐ์—ด

 
int[] numbers = {10, 20, 30, 40}; for (int n : numbers) { System.out.println(n); }

์‹คํ–‰ ๊ณผ์ •

  1. numbers ๋ฐฐ์—ด์—์„œ ์ฒซ ๋ฒˆ์งธ ๊ฐ’ 10์„ n์— ๋„ฃ๊ณ  ์ถœ๋ ฅ
  2. ๋‹ค์Œ ๊ฐ’ 20์„ n์— ๋„ฃ๊ณ  ์ถœ๋ ฅ
  3. ๊ณ„์† ๋ฐ˜๋ณต → 30, 40
  4. ๋ฐฐ์—ด ๋ → ๋ฐ˜๋ณต ์ข…๋ฃŒ

 


1๏ธโƒฃ ์ธ์Šคํ„ด์Šค (Instance)

  • ์ •์˜: ํด๋ž˜์Šค(Class)๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ๋งŒ๋“ค์–ด์ง„ ์‹ค์ฒด ๊ฐ์ฒด
  • ํด๋ž˜์Šค๋Š” ์„ค๊ณ„๋„, ์ธ์Šคํ„ด์Šค๋Š” ์„ค๊ณ„๋„๋กœ ์ฐ์–ด๋‚ธ ์‹ค์ œ ์ œํ’ˆ์ด๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ฉด ์‰ฌ์›Œ์š”.

์˜ˆ์ œ

 
class Car { String color; int speed; } public class Main { public static void main(String[] args) { Car myCar = new Car(); // <-- ์ด๊ฒŒ ์ธ์Šคํ„ด์Šค myCar.color = "red"; myCar.speed = 100; } }
  • Car๋Š” ํด๋ž˜์Šค (์„ค๊ณ„๋„)
  • myCar๋Š” ์ธ์Šคํ„ด์Šค (์‹ค์ œ ์ž๋™์ฐจ ๊ฐ์ฒด)
  • myCar.color, myCar.speed → ์ด ์ธ์Šคํ„ด์Šค์˜ ์†์„ฑ ๊ฐ’

๐Ÿ’ก ํ•œ ํด๋ž˜์Šค์—์„œ ์—ฌ๋Ÿฌ ์ธ์Šคํ„ด์Šค๋ฅผ ๋งŒ๋“ค ์ˆ˜ ์žˆ์–ด์š”:

 
Car car1 = new Car(); Car car2 = new Car();

car1๊ณผ car2๋Š” ์„œ๋กœ ๋‹ค๋ฅธ ์ธ์Šคํ„ด์Šค์˜ˆ์š”.


2๏ธโƒฃ ์—˜๋ฆฌ๋จผํŠธ (Element)

  • ์ •์˜: ๋ฐฐ์—ด, ๋ฆฌ์ŠคํŠธ ๋“ฑ ์ปฌ๋ ‰์…˜ ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ํ•œ ๊ฐœ์˜ ๊ฐ’
  • ์ฆ‰, ๋ชจ์Œ ์•ˆ์— ์žˆ๋Š” ๊ฐ๊ฐ์˜ ํ•ญ๋ชฉ์„ ์˜๋ฏธํ•ด์š”.

์˜ˆ์ œ

 
int[] numbers = {10, 20, 30}; System.out.println(numbers[0]); // 10 <- ์ฒซ ๋ฒˆ์งธ ์—˜๋ฆฌ๋จผํŠธ System.out.println(numbers[1]); // 20 <- ๋‘ ๋ฒˆ์งธ ์—˜๋ฆฌ๋จผํŠธ
  • numbers๋Š” ๋ฐฐ์—ด ์ „์ฒด
  • numbers[0], numbers[1], numbers[2] → ์—˜๋ฆฌ๋จผํŠธ

๋ฆฌ์ŠคํŠธ ์˜ˆ์ œ:

 
List<String> fruits = List.of("์‚ฌ๊ณผ", "๋ฐ”๋‚˜๋‚˜", "์ฒด๋ฆฌ"); System.out.println(fruits.get(1)); // ๋ฐ”๋‚˜๋‚˜ <- ์—˜๋ฆฌ๋จผํŠธ

3๏ธโƒฃ ์ฐจ์ด์  ์š”์•ฝ

๊ตฌ๋ถ„์˜๋ฏธ์˜ˆ์ œ
์ธ์Šคํ„ด์Šค ํด๋ž˜์Šค ์„ค๊ณ„๋„๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์ƒ์„ฑ๋œ ์‹ค์ฒด ๊ฐ์ฒด Car myCar = new Car();
์—˜๋ฆฌ๋จผํŠธ ๋ฐฐ์—ด์ด๋‚˜ ์ปฌ๋ ‰์…˜ ์•ˆ์— ๋“ค์–ด์žˆ๋Š” ํ•˜๋‚˜์˜ ๊ฐ’ numbers[0], fruits.get(1)

๐Ÿ’ก ํ•œ ๋ฌธ์žฅ์œผ๋กœ ๊ธฐ์–ต:

์ธ์Šคํ„ด์Šค = ๊ฐ์ฒด ์ž์ฒด, ์—˜๋ฆฌ๋จผํŠธ = ๊ฐ์ฒด ์•ˆ/์ปฌ๋ ‰์…˜ ์•ˆ์˜ ํ•ญ๋ชฉ ํ•˜๋‚˜

 


 

1๏ธโƒฃ ๊ธฐ๋ณธ ์ •์˜

  • ์Šคํ‚ค๋งˆ(schema) = ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ˆ์—์„œ ํ…Œ์ด๋ธ”, ๋ทฐ, ์ปฌ๋Ÿผ, ์ œ์•ฝ์กฐ๊ฑด ๋“ฑ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•œ ์„ค๊ณ„๋„
  • ์ฆ‰, ๋ฐ์ดํ„ฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ์ƒ๊ฒผ๋Š”์ง€, ์–ด๋–ค ๊ด€๊ณ„๋ฅผ ๊ฐ–๋Š”์ง€๋ฅผ ๋ณด์—ฌ์ฃผ๋Š” ์ฒญ์‚ฌ์ง„์ด์—์š”.

๐Ÿ’ก ๋น„์œ :

  • ํ…Œ์ด๋ธ” = ์ฑ…์žฅ์— ๊ฝ‚ํžŒ ์ฑ…
  • ์ปฌ๋Ÿผ = ์ฑ… ์†์˜ ์žฅ(๋‚ด์šฉ)
  • ์Šคํ‚ค๋งˆ = ์ฑ…์žฅ์„ ๋งŒ๋“ค๊ธฐ ์ „ ์„ค๊ณ„๋„

2๏ธโƒฃ ์˜ˆ์ œ (ํ…Œ์ด๋ธ” ๊ธฐ์ค€)

์˜ˆ๋ฅผ ๋“ค์–ด, ์Šน๊ฐ ์ •๋ณด๋ฅผ ๋‹ด์€ ํ…Œ์ด๋ธ” Passengers๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•ด๋ด…์‹œ๋‹ค.

์ปฌ๋Ÿผ ์ด๋ฆ„๋ฐ์ดํ„ฐ ํƒ€์ž…์„ค๋ช…
PassengerId INT ์Šน๊ฐ ID
Name VARCHAR ์ด๋ฆ„
Age INT ๋‚˜์ด
Sex CHAR(1) ์„ฑ๋ณ„
  • ์—ฌ๊ธฐ์„œ ์Šคํ‚ค๋งˆ๋Š” ๋ฐ”๋กœ ์œ„ ํ…Œ์ด๋ธ” ๊ตฌ์กฐ ์ „์ฒด๋ฅผ ์˜๋ฏธํ•ด์š”.
  • ์ปฌ๋Ÿผ ์ด๋ฆ„, ๋ฐ์ดํ„ฐ ํƒ€์ž…, ์ œ์•ฝ์กฐ๊ฑด ๋“ฑ ํ…Œ์ด๋ธ”์„ ์ •์˜ํ•˜๋Š” ๋ชจ๋“  ์ •๋ณด๋ฅผ ํฌํ•จํ•ฉ๋‹ˆ๋‹ค.

3๏ธโƒฃ ํŠน์ง•

  1. ์Šคํ‚ค๋งˆ๋Š” ๋ฐ์ดํ„ฐ ์ž์ฒด๊ฐ€ ์•„๋‹ˆ๋ผ ๊ตฌ์กฐ๋ฅผ ์ •์˜
  2. ํ…Œ์ด๋ธ” ์—ฌ๋Ÿฌ ๊ฐœ๋ฅผ ๋ฌถ์–ด์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ˆ์—์„œ ์กฐ์งํ™” ๊ฐ€๋Šฅ
  3. SQL์—์„œ CREATE SCHEMA๋‚˜ CREATE TABLE ๋“ฑ์œผ๋กœ ์ƒ์„ฑ ๊ฐ€๋Šฅ
 
CREATE SCHEMA MySchema; CREATE TABLE MySchema.Passengers ( PassengerId INT PRIMARY KEY, Name VARCHAR(100), Age INT, Sex CHAR(1) );
  • MySchema = ์Šคํ‚ค๋งˆ ์ด๋ฆ„
  • Passengers = ์Šคํ‚ค๋งˆ ์•ˆ์— ์†ํ•œ ํ…Œ์ด๋ธ”

๐Ÿ’ก ์š”์•ฝ:

์Šคํ‚ค๋งˆ = ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์•ˆ์—์„œ ํ…Œ์ด๋ธ”๊ณผ ์ปฌ๋Ÿผ ๊ฐ™์€ ๊ตฌ์กฐ๋ฅผ ์„ค๊ณ„ํ•œ ์„ค๊ณ„๋„
ํ…Œ์ด๋ธ”์€ ์„ค๊ณ„๋„๋ฅผ ๋”ฐ๋ผ ๋งŒ๋“ค์–ด์ง„ ์‹ค์ œ ๋ฐ์ดํ„ฐ ์ €์žฅ ๊ณต๊ฐ„

 

 


1๏ธโƒฃ ํŒŒ์ดํ”„๋ผ์ธ์ด๋ž€?

์ปดํ“จํ„ฐ๋‚˜ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํŒŒ์ดํ”„๋ผ์ธ์€ ๋ฐ์ดํ„ฐ๋‚˜ ์ž‘์—…์„ ์ˆœ์ฐจ์ ์œผ๋กœ ํ๋ฅด๊ฒŒ ์—ฐ๊ฒฐํ•˜๋Š” ๊ตฌ์กฐ๋ฅผ ์˜๋ฏธํ•ด์š”.
์‰ฝ๊ฒŒ ๋งํ•˜๋ฉด ๊ณต์žฅ ์ปจ๋ฒ ์ด์–ด ๋ฒจํŠธ์ฒ˜๋Ÿผ ์ƒ๊ฐํ•˜๋ฉด ๋ผ์š”.

  • ์ž…๋ ฅ → ์ฒ˜๋ฆฌ → ์ถœ๋ ฅ
  • ๊ฐ ๋‹จ๊ณ„๋งˆ๋‹ค ์ฒ˜๋ฆฌ ๋‹ด๋‹น์ž๊ฐ€ ์žˆ๊ณ , ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๊ฒฐ๊ณผ๋ฅผ ๋„˜๊น€

์˜ˆ์‹œ:

  1. ์›์žฌ๋ฃŒ ํˆฌ์ž… → 2. ๊ฐ€๊ณต → 3. ํฌ์žฅ → 4. ์ถœ๊ณ 

ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋„ ๋น„์Šทํ•˜๊ฒŒ, ๋ฐ์ดํ„ฐ๊ฐ€ ์—ฌ๋Ÿฌ ๋‹จ๊ณ„๋ฅผ ๊ฑฐ์ณ ์ตœ์ข… ๊ฒฐ๊ณผ๋กœ ๋‚˜๊ฐ€๋Š” ๊ตฌ์กฐ๋ฅผ ํŒŒ์ดํ”„๋ผ์ธ์ด๋ผ๊ณ  ๋ถ€๋ฆ…๋‹ˆ๋‹ค.


2๏ธโƒฃ ์ž๋ฐ”/์Šคํ”„๋ง์—์„œ์˜ ํŒŒ์ดํ”„๋ผ์ธ

์Šคํ”„๋ง์—์„œ๋Š” ํ”ํžˆ ์ด๋ ‡๊ฒŒ ๋งํ•ด์š”:

ํƒ€์ž„๋ฆฌํ”„(๋ทฐ) → ์ปจํŠธ๋กค๋Ÿฌ → ์„œ๋น„์Šค → ๋ ˆํฌ์ง€ํ† ๋ฆฌ → DB

๊ฐ ๋‹จ๊ณ„๊ฐ€ ํŒŒ์ดํ”„๋ผ์ธ์˜ ํ•œ ๋‹จ๊ณ„์ž…๋‹ˆ๋‹ค.

  • ํƒ€์ž„๋ฆฌํ”„: ์‚ฌ์šฉ์ž๊ฐ€ ์ž…๋ ฅํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ›์Œ
  • ์ปจํŠธ๋กค๋Ÿฌ: ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•  ์„œ๋น„์Šค์— ์ „๋‹ฌ
  • ์„œ๋น„์Šค: ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ์ฒ˜๋ฆฌ
  • ๋ ˆํฌ์ง€ํ† ๋ฆฌ: DB์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ฑฐ๋‚˜ ์ €์žฅ
  • DB: ์ตœ์ข… ๋ฐ์ดํ„ฐ ์ €์žฅ

์ฆ‰, ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ ๋‹จ๊ณ„์”ฉ ์ด๋™ํ•˜๋ฉด์„œ ์ฒ˜๋ฆฌ๋˜๋Š” ํ๋ฆ„ = ํŒŒ์ดํ”„๋ผ์ธ


3๏ธโƒฃ ๊ทธ๋ฆผ์œผ๋กœ ํ‘œํ˜„ํ•˜๋ฉด

 
์‚ฌ์šฉ์ž → [ํƒ€์ž„๋ฆฌํ”„][์ปจํŠธ๋กค๋Ÿฌ][์„œ๋น„์Šค][๋ ˆํฌ์ง€ํ† ๋ฆฌ][DB]
  • ๊ฐ ๋Œ€๊ด„ํ˜ธ๊ฐ€ ๋‹จ๊ณ„
  • ํ™”์‚ดํ‘œ๊ฐ€ ๋ฐ์ดํ„ฐ ํ๋ฆ„
  • ๋ฐ์ดํ„ฐ๊ฐ€ ํ•œ ๋‹จ๊ณ„์—์„œ ์ฒ˜๋ฆฌ๋˜๋ฉด ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ

4๏ธโƒฃ ํŒŒ์ดํ”„๋ผ์ธ์˜ ์žฅ์ 

  1. ๋‹จ๊ณ„๋ณ„๋กœ ์—ญํ•  ๋ถ„๋ฆฌ: ์œ ์ง€๋ณด์ˆ˜ ์‰ฌ์›€
  2. ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅ: ์„œ๋น„์Šค๋‚˜ ๋ ˆํฌ์ง€ํ† ๋ฆฌ๋ฅผ ๋‹ค๋ฅธ ํ๋ฆ„์—๋„ ์—ฐ๊ฒฐ ๊ฐ€๋Šฅ
  3. ํ™•์žฅ ์šฉ์ด: ์ƒˆ๋กœ์šด ๋‹จ๊ณ„ ์ถ”๊ฐ€ ๊ฐ€๋Šฅ

๐Ÿ’ก ๋น„์œ 

  • ์š”๋ฆฌ ๊ณผ์ •: ์žฌ๋ฃŒ ์ค€๋น„ → ์š”๋ฆฌ → ํ”Œ๋ ˆ์ดํŒ… → ์„œ๋น™
  • ์†Œํ”„ํŠธ์›จ์–ด ํŒŒ์ดํ”„๋ผ์ธ: ์š”์ฒญ ์ค€๋น„ → ์ฒ˜๋ฆฌ → DB ์ €์žฅ → ํ™”๋ฉด ์ถœ๋ ฅ

 

๐Ÿงฉ 1๏ธโƒฃ ์• ๋…ธํ…Œ์ด์…˜ (Annotation)

๐Ÿ‘‰ “@”๋กœ ์‹œ์ž‘ํ•˜๋Š” ์ž๋ฐ” ๋ฌธ๋ฒ• ๊ธฐํ˜ธ

๐Ÿ’ก ๊ฐœ๋…

  • ์ฝ”๋“œ์— ‘์„ค๋ช…’์ด๋‚˜ ‘์ง€์‹œ’๋ฅผ ๋ถ™์ด๋Š” ๋ฉ”๋ชจ ๊ฐ™์€ ๊ธฐ๋Šฅ์ด์—์š”.
  • ์ปดํŒŒ์ผ๋Ÿฌ๋‚˜ ์Šคํ”„๋ง ํ”„๋ ˆ์ž„์›Œํฌ์—๊ฒŒ
    “์ด ์ฝ”๋“œ๋Š” ์ด๋ ‡๊ฒŒ ์ฒ˜๋ฆฌํ•ด์ค˜!” ๋ผ๊ณ  ์•Œ๋ ค์ฃผ๋Š” ์—ญํ• ์ด์—์š”.

๐Ÿ“˜ ์˜ˆ์‹œ

 
@RestController // ์ด ํด๋ž˜์Šค๋Š” REST API ์ปจํŠธ๋กค๋Ÿฌ์•ผ public class UserController { @GetMapping("/hello") // ์ด ๋ฉ”์„œ๋“œ๋Š” GET ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•ด public String hello() { return "Hello"; } }

์—ฌ๊ธฐ์„œ @RestController, @GetMapping ์ด ์• ๋…ธํ…Œ์ด์…˜์ด์—์š”.
์Šคํ”„๋ง์ด ์ด๊ฑธ ๋ณด๊ณ 

  • “์•„! ์ด ํด๋ž˜์Šค๋Š” ์ปจํŠธ๋กค๋Ÿฌ๊ตฌ๋‚˜”
  • “์ด ๋ฉ”์„œ๋“œ๋Š” GET ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋„ค!”
    ๋ผ๊ณ  ์ž๋™์œผ๋กœ ์ธ์‹ํ•ฉ๋‹ˆ๋‹ค.

๐Ÿ“Ž ์ฃผ์š” ์• ๋…ธํ…Œ์ด์…˜ ์˜ˆ์‹œ

์• ๋…ธํ…Œ์ด์…˜์„ค๋ช…
@Controller / @RestController ์›น ์š”์ฒญ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ํด๋ž˜์Šค์ž„์„ ํ‘œ์‹œ
@Service ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง ๋‹ด๋‹น ํด๋ž˜์Šค์ž„์„ ํ‘œ์‹œ
@Repository DB์™€ ์—ฐ๊ฒฐ๋˜๋Š” ํด๋ž˜์Šค์ž„์„ ํ‘œ์‹œ
@Autowired ์Šคํ”„๋ง์ด ์ž๋™์œผ๋กœ ๊ฐ์ฒด๋ฅผ ์ฃผ์ž…ํ•˜๋„๋ก ์„ค์ •
@Entity DB ํ…Œ์ด๋ธ”๊ณผ ์—ฐ๊ฒฐ๋˜๋Š” ์—”ํ‹ฐํ‹ฐ ํด๋ž˜์Šค์ž„์„ ํ‘œ์‹œ

๐Ÿ”„ 2๏ธโƒฃ ๋กœํ…Œ์ด์…˜ (Rotation)

๐Ÿ‘‰ “๋Œ๋ฆฌ๋‹ค”๋ผ๋Š” ๋œป ๊ทธ๋Œ€๋กœ, ํšŒ์ „์ด๋ผ๋Š” ๊ฐœ๋…์ด์—์š”.

๐Ÿ’ก ์ผ๋ฐ˜์ ์ธ ์˜๋ฏธ

  • ํ™”๋ฉด์„ ํšŒ์ „์‹œํ‚ค๊ฑฐ๋‚˜, ์ด๋ฏธ์ง€๋ฅผ ํšŒ์ „ํ•  ๋•Œ, ๋˜๋Š” 3D ๊ทธ๋ž˜ํ”ฝ์—์„œ ๋ฌผ์ฒด๋ฅผ ํšŒ์ „์‹œํ‚ฌ ๋•Œ ์‚ฌ์šฉ๋ผ์š”.
  • ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ๋Š” ‘๊ฐ๋„(Angle)’๋‚˜ ‘๋ฐฉํ–ฅ(Direction)’์„ ๋ฐ”๊พธ๋Š” ์ž‘์—…์„ ๋œปํ•ด์š”.

๐Ÿ“˜ ์˜ˆ์‹œ (์ž๋ฐ”์—์„œ๋Š” ์ฃผ๋กœ ๊ทธ๋ž˜ํ”ฝ์ด๋‚˜ ์ˆ˜ํ•™ ์—ฐ์‚ฐ์— ์‚ฌ์šฉ)

 
Graphics2D g2d = (Graphics2D) g; g2d.rotate(Math.toRadians(45)); // ํ™”๋ฉด์„ 45๋„ ํšŒ์ „

๐Ÿ“Š ์š”์•ฝ ์ •๋ฆฌ

๊ตฌ๋ถ„ ์• ๋…ธํ…Œ์ด์…˜ (Annotation) ๋กœํ…Œ์ด์…˜ (Rotation)
์˜๋ฏธ ์ฝ”๋“œ์— ๋ถ€๊ฐ€์ •๋ณด๋ฅผ ๋ถ™์ด๋Š” ๋ฌธ๋ฒ• ๋ฌผ์ฒด๋‚˜ ํ™”๋ฉด์„ ํšŒ์ „์‹œํ‚ค๋Š” ๋™์ž‘
์‚ฌ์šฉ ์œ„์น˜ ํด๋ž˜์Šค, ๋ฉ”์„œ๋“œ, ๋ณ€์ˆ˜ ์œ„ ๊ทธ๋ž˜ํ”ฝ, UI, ์ˆ˜ํ•™ ๊ณ„์‚ฐ ๋“ฑ
ํ‚ค์›Œ๋“œ ํ˜•ํƒœ @๋กœ ์‹œ์ž‘ (@Controller) rotate(), angle ๋“ฑ
์˜ˆ์‹œ @Service, @GetMapping image.rotate(90)

๐Ÿ”” ํ•œ์ค„ ์š”์•ฝ

โœ… @Controller ๊ฐ™์€ ๊ฑด “์• ๋…ธํ…Œ์ด์…˜”
๐Ÿ” ํ™”๋ฉด์„ ๋Œ๋ฆฌ๋Š” ๊ฑด “๋กœํ…Œ์ด์…˜”