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

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

by GreenJin_S2 2025. 10. 16.

 


-object : ๊ฐ์ฒด /ํœด๋ฉด(์ธ๊ฐ„)

-subject: ๊ธฐ๊ณ„

๊ฐœ์ฒด: ์†์„ฑ๊ณผ ๊ธฐ๋Šฅ์˜ ์ง‘ํ•ฉ

 

1. ๊ฐ์ฒด(Object) — ์ž๋ฐ”์˜ ๊ธฐ๋ณธ ๊ฐœ๋…

์ž๋ฐ”์—์„œ **๊ฐ์ฒด(Object)**๋Š” **ํด๋ž˜์Šค(Class)**๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์ƒ์„ฑ๋œ **์‹คํ–‰ ์ค‘ ์‹ค์ฒด(์ธ์Šคํ„ด์Šค)**์ž…๋‹ˆ๋‹ค.

 

2. ๊ฐœ์ฒด(Entity) — ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์—ฐ๊ฒฐ๋˜๋Š” ๊ฐœ๋…

**๊ฐœ์ฒด(Entity)**๋Š” ์ฃผ๋กœ **JPA (Java Persistence API)**๋‚˜ Hibernate ๊ฐ™์€ ORM(Object Relational Mapping) ๊ธฐ์ˆ ์—์„œ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค

 

3. ๊ด€๊ณ„๋กœ ์ดํ•ดํ•˜๊ธฐ

๋น„๊ต ๊ธฐ์ค€ ๊ฐ์ฒด(Object) ๊ฐœ์ฒด(Entity)
์ •์˜ ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค DB ํ…Œ์ด๋ธ”์˜ ํ•œ ํ–‰(row)์„ ๋‚˜ํƒ€๋‚ด๋Š” ํด๋ž˜์Šค
์ƒ์„ฑ ์‹œ์  new ํ‚ค์›Œ๋“œ๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ƒ์„ฑ DB์—์„œ ์กฐํšŒ๋˜๊ฑฐ๋‚˜ ORM์ด ๊ด€๋ฆฌํ•จ
์ƒ๋ช… ์ฃผ๊ธฐ ํ”„๋กœ๊ทธ๋žจ ์‹คํ–‰ ๋™์•ˆ DB์— ์ €์žฅ·์กฐํšŒ·์‚ญ์ œ๋  ๋•Œ
์˜ˆ์‹œ new Car() entityManager.find(Member.class, 1L)

๐Ÿ‘‰ ์ •๋ฆฌํ•˜์ž๋ฉด,

์ž๋ฐ”์˜ **๊ฐ์ฒด(Object)**๋Š” ํ”„๋กœ๊ทธ๋žจ ์•ˆ์—์„œ ์›€์ง์ด๋Š” ์กด์žฌ์ด๊ณ ,
**๊ฐœ์ฒด(Entity)**๋Š” DB์™€ ์—ฐ๊ฒฐ๋œ “๋ฐ์ดํ„ฐ ๋ชจ๋ธ”์ž…๋‹ˆ๋‹ค.

 

์„ฑ๊ณผ ์ด๋ฆ„ : ์‹ค์กดํ•˜๋Š” ์กด์žฌ

์›๋ณธ์„ ์ฐธ์กฐ?!

์›๋ณธ์— ์ฃผ์†Œ๊ฐ€ ์žˆ์–ด์•ผํ•จ

 

 

 

1. ๋””์Šคํฌ ์ฃผ์†Œ

2. ๋ฉ”๋ชจ๋ฆฌ ์ฃผ์†Œ

3. ์ฒ˜์Œ ๋‚˜์™”์œผ๋‹ˆ๊นŒ new๋ฅผ ์จ์ค˜์•ผํ•จ

 

์ฃผ์†Œ๋Š” ์ข…๋ฅ˜ 2๊ฐ€์ง€- 1. ์‹ค์กด ์ฃผ์†Œ-๋””์Šคํฌ/ 2. ๊ฐ€์ƒ์ฃผ์†Œ-๋ฉ”๋ชจ๋ฆฌ

 


์ž๋ฐ”์—์„œ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋ญ์•ผ?

1. ๊ธฐ๋ณธ ์ •์˜

์šฉ์–ด ์˜๋ฏธ ์˜ˆ์‹œ์ฝ”๋“œ
ํด๋ž˜์Šค(Class) ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ์„ค๊ณ„๋„ class Dog { ... }
์ธ์Šคํ„ด์Šค(Instance) ํด๋ž˜์Šค ์„ค๊ณ„๋„๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ ์‹ค์ œ๋กœ ์ƒ์„ฑ๋œ ๊ฒฐ๊ณผ๋ฌผ (๋ฉ”๋ชจ๋ฆฌ ์œ„์˜ ์‹ค์ฒด) Dog myDog = new Dog();
๊ฐ์ฒด(Object) ํ”„๋กœ๊ทธ๋žจ์—์„œ ๋™์ž‘ํ•˜๋Š” ์‹ค์ฒด๋กœ, ์ธ์Šคํ„ด์Šค์™€ ๊ฐ™์€ ๋ง์ด์ง€๋งŒ ๋ฌธ๋งฅ์— ๋”ฐ๋ผ ๋‹ค๋ฅด๊ฒŒ ์‚ฌ์šฉ๋จ myDog ์ž์ฒด๊ฐ€ ๊ฐ์ฒด์ด์ž ์ธ์Šคํ„ด์Šค

2. ๋น„์œ ๋กœ ์ดํ•ดํ•˜๊ธฐ

๊ฐœ๋…                                                        ๋น„์œ 
ํด๋ž˜์Šค(Class) ์•„ํŒŒํŠธ ์„ค๊ณ„๋„
์ธ์Šคํ„ด์Šค(Instance) ์„ค๊ณ„๋„๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ์‹ค์ œ๋กœ ์ง€์–ด์ง„ ํ•œ ์ฑ„์˜ ์•„ํŒŒํŠธ
๊ฐ์ฒด(Object) ์ž…์ฃผํ•ด์„œ ์‹ค์ œ๋กœ ์ƒํ™œ ์ค‘์ธ ‘์‚ด์•„ ์žˆ๋Š” ์•„ํŒŒํŠธ’

์ฆ‰,

“์ธ์Šคํ„ด์Šคํ™”(instantiation)”๋Š” ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“œ๋Š” ํ–‰์œ„์ž…๋‹ˆ๋‹ค.
๋งŒ๋“ค์–ด์ง„ ๊ฒฐ๊ณผ๋ฌผ์ด ๋ฐ”๋กœ **์ธ์Šคํ„ด์Šค(=๊ฐ์ฒด)**์˜ˆ์š”.

 


 

์ธ์Šคํ„ด์Šค๊ฐ€ int์•ผ?

์ข‹์€ ์งˆ๋ฌธ์ด์—์š” ๐Ÿ˜Š
๊ฒฐ๋ก ๋ถ€ํ„ฐ ๋ง์”€๋“œ๋ฆฌ๋ฉด,

โŒ int๋Š” ์ธ์Šคํ„ด์Šค๊ฐ€ ์•„๋‹™๋‹ˆ๋‹ค.
โœ… int๋Š” ๊ธฐ๋ณธํ˜•(primitive type) ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด์—์š”.

 

1. ์ž๋ฐ”์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž… ๋ถ„๋ฅ˜

์ž๋ฐ”์—๋Š” ํฌ๊ฒŒ ๋‘ ๊ฐ€์ง€ ์ข…๋ฅ˜์˜ ๋ฐ์ดํ„ฐ ํƒ€์ž…์ด ์žˆ์Šต๋‹ˆ๋‹ค.

๊ตฌ๋ถ„์ข…๋ฅ˜์˜ˆ์‹œ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋˜๋Š” ๋ฐฉ์‹
๊ธฐ๋ณธํ˜•(Primitive Type) ์ˆซ์ž, ๋ฌธ์ž, ๋…ผ๋ฆฌ ๋“ฑ ๊ธฐ๋ณธ ๊ฐ’ int, double, boolean, char ๋“ฑ ๊ฐ’ ์ž์ฒด๋ฅผ ์ €์žฅ
์ฐธ์กฐํ˜•(Reference Type) ๊ฐ์ฒด, ๋ฐฐ์—ด, ๋ฌธ์ž์—ด ๋“ฑ String, ArrayList, ์‚ฌ์šฉ์ž ์ •์˜ ํด๋ž˜์Šค ๋“ฑ ๊ฐ์ฒด์˜ ์ฃผ์†Œ๋ฅผ ์ €์žฅ

๐Ÿ’ก 2. ์ธ์Šคํ„ด์Šค(Instance)๋Š” “์ฐธ์กฐํ˜• ํƒ€์ž…”์—์„œ๋งŒ ๊ฐ€๋Šฅ

์ธ์Šคํ„ด์Šค๋Š” ํด๋ž˜์Šค๋กœ๋ถ€ํ„ฐ ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด๋ฅผ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค.
์ฆ‰, “ํด๋ž˜์Šค”๋ผ๋Š” ์„ค๊ณ„๋„๊ฐ€ ์žˆ์–ด์•ผ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋งŒ๋“ค์–ด์งˆ ์ˆ˜ ์žˆ์ฃ .

ํ•˜์ง€๋งŒ int๋Š” ํด๋ž˜์Šค๊ฐ€ ์•„๋‹ˆ๋ผ ๊ธฐ๋ณธํ˜•์ด๊ธฐ ๋•Œ๋ฌธ์—,
new int()์ฒ˜๋Ÿผ ์ธ์Šคํ„ด์Šค๋กœ ๋งŒ๋“ค ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

 

3. ์ •๋ฆฌํ•˜์ž๋ฉด

ํ•ญ๋ชฉ์„ค๋ช…
int ๊ธฐ๋ณธํ˜• → ์ธ์Šคํ„ด์Šค โŒ
Integer ํด๋ž˜์Šค → ์ธ์Šคํ„ด์Šค ๊ฐ€๋Šฅ โœ…
์ธ์Šคํ„ด์Šค ํด๋ž˜์Šค์—์„œ ๋งŒ๋“ค์–ด์ง„ ๊ฐ์ฒด (์ฐธ์กฐํ˜•)
๊ธฐ๋ณธํ˜• ์ธ์Šคํ„ด์Šค ๊ฐœ๋…๊ณผ ๋ฌด๊ด€ (๊ฐ’ ์ž์ฒด๋กœ ์กด์žฌ)

 


์•Œ๊ณ ๋ฆฌ์ฆ˜์€ ๋ช…๋ น์˜ ์ง‘ํ•ฉ์œผ๋กœ ์ •์˜๋˜๋Š”๋ฐ, ์ด ๋•Œ ๋ช…๋ น์€ ๋ญ์•ผ?

 

1. ๋ช…๋ น(Instruction)์˜ ๊ธฐ๋ณธ ๊ฐœ๋…

๋ช…๋ น์ด๋ž€, ์ปดํ“จํ„ฐ(๋˜๋Š” ์‚ฌ๋žŒ)๊ฐ€ ์ดํ•ดํ•˜๊ณ  ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ‘๋‹จ๊ณ„์ ์ธ ์ง€์‹œ๋ฌธ’์ž…๋‹ˆ๋‹ค.

์ฆ‰, ์•Œ๊ณ ๋ฆฌ์ฆ˜์€

์—ฌ๋Ÿฌ ๊ฐœ์˜ “์ž‘์€ ๋ช…๋ น”๋“ค์„ ๋…ผ๋ฆฌ์ ์ธ ์ˆœ์„œ๋กœ ๋‚˜์—ดํ•œ ๊ฒƒ์ด์—์š”.

 

 


**“Statement(์Šคํ…Œ์ดํŠธ๋จผํŠธ)”**์™€ **“Instruction(์ธ์ŠคํŠธ๋Ÿญ์…˜)”**์€
๋‘˜ ๋‹ค “๋ช…๋ น”๊ณผ ๊ด€๋ จ๋œ ๊ฐœ๋…์ด์ง€๋งŒ, **์“ฐ์ด๋Š” ์ˆ˜์ค€(๋ ˆ๋ฒจ)**์ด ๋‹ค๋ฆ…๋‹ˆ๋‹ค.
์‰ฝ๊ฒŒ ๋งํ•ด,

๐Ÿง  Statement๋Š” ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์˜ ๋ฌธ์žฅ ๋‹จ์œ„,
โš™๏ธ Instruction์€ ์ปดํ“จํ„ฐ ํ•˜๋“œ์›จ์–ด ์ˆ˜์ค€์˜ ์‹คํ–‰ ๋‹จ์œ„
๋ผ๊ณ  ์ดํ•ดํ•˜์‹œ๋ฉด ๋ฉ๋‹ˆ๋‹ค.

 

1. ๊ธฐ๋ณธ ์ •์˜ ๋น„๊ต

๊ตฌ๋ถ„Statement (์Šคํ…Œ์ดํŠธ๋จผํŠธ)Instruction (์ธ์ŠคํŠธ๋Ÿญ์…˜)
์˜๋ฏธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ ํ•˜๋‚˜์˜ “์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ฌธ์žฅ” CPU๊ฐ€ ์ดํ•ดํ•˜๊ณ  ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” “๊ธฐ๊ณ„์–ด ๋ช…๋ น”
๋ ˆ๋ฒจ ๊ณ ์ˆ˜์ค€(High-level) ์–ธ์–ด ์ €์ˆ˜์ค€(Low-level) ์–ธ์–ด
์˜ˆ์‹œ ์–ธ์–ด Java, Python, C ๋“ฑ ์–ด์…ˆ๋ธ”๋ฆฌ, ๊ธฐ๊ณ„์–ด
์‚ฌ๋žŒ์ด ์ดํ•ดํ•˜๊ธฐ ์‰ฌ์›€ โœ… ์˜ˆ โŒ ์–ด๋ ค์›€
์ปดํ“จํ„ฐ๊ฐ€ ์ง์ ‘ ์‹คํ–‰ ๊ฐ€๋Šฅ โŒ ์ปดํŒŒ์ผ or ์ธํ„ฐํ”„๋ฆฌํŠธ ํ•„์š” โœ… ์ง์ ‘ ์‹คํ–‰ ๊ฐ€๋Šฅ



 

ํ•˜๋‚˜์˜ Statement → ์—ฌ๋Ÿฌ ๊ฐœ์˜ Instruction์œผ๋กœ ๋ฒˆ์—ญ๋จ

์ด ํ•œ ์ค„์˜ ์ž๋ฐ” Statement๊ฐ€
์ปดํŒŒ์ผ๋Ÿฌ์— ์˜ํ•ด ์•„๋ž˜์™€ ๊ฐ™์€ Instruction ์—ฌ๋Ÿฌ ๊ฐœ๋กœ ๋ฐ”๋€๋‹ˆ๋‹ค.

 

์ฆ‰,

  • Statement = ์šฐ๋ฆฌ๊ฐ€ ์ž‘์„ฑํ•˜๋Š” ๊ณ ์ˆ˜์ค€ ๋ช…๋ น
  • Instruction = CPU๊ฐ€ ์‹ค์ œ๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ์ €์ˆ˜์ค€ ๋ช…๋ น

๐Ÿง  4. ๋น„์œ ๋กœ ์ดํ•ดํ•˜๊ธฐ

๋น„์œ  ์š”์†Œ์„ค๋ช…
Statement “์š”๋ฆฌ ๋ ˆ์‹œํ”ผ ๋ฌธ์žฅ” → “์–‘ํŒŒ๋ฅผ ๋ณถ๋Š”๋‹ค”
Instruction “์–‘ํŒŒ๋ฅผ ์ง‘๋Š”๋‹ค → ํŒฌ์„ ์—ฐ๋‹ค → ๋ถˆ์„ ์ผ ๋‹ค → ๋ณถ๋Š”๋‹ค”
๊ด€๊ณ„ ํ•œ ๋ฌธ์žฅ(Statement)์€ ์—ฌ๋Ÿฌ ์„ธ๋ถ€ ๋™์ž‘(Instruction)์œผ๋กœ ๊ตฌ์„ฑ๋จ

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

๊ตฌ๋ถ„StatementInstruction
์ˆ˜์ค€ ๊ณ ์ˆ˜์ค€ ์–ธ์–ด ์ €์ˆ˜์ค€ ์–ธ์–ด
์‹คํ–‰ ์ฃผ์ฒด ํ”„๋กœ๊ทธ๋ž˜๋จธ(์‚ฌ๋žŒ) ๊ด€์  CPU ๊ด€์ 
์—ญํ•  ์ปดํŒŒ์ผ๋˜๊ธฐ ์ „์˜ ๋…ผ๋ฆฌ์  ๋ช…๋ น ์‹ค์ œ ์‹คํ–‰๋˜๋Š” ๊ธฐ๊ณ„ ๋ช…๋ น
๊ด€๊ณ„ ์—ฌ๋Ÿฌ Instruction์œผ๋กœ ๋ณ€ํ™˜๋จ Statement๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ํ•˜์œ„ ๋‹จ์œ„

 

 

** ํ•˜๋‚˜์˜ Statement → ์—ฌ๋Ÿฌ ๊ฐœ์˜ Instruction์œผ๋กœ ๋ฐ”๊พธ๋Š” ๊ฒƒ(๋นŒ๋“œ)

 


ํ”„๋กœ๊ทธ๋ž˜๋ฐ(ํŠนํžˆ Java)์—์„œ expression(ํ‘œํ˜„์‹), statement(๋ฌธ์žฅ), **block(๋ธ”๋ก)**์€
์ฝ”๋“œ์˜ ๊ธฐ๋ณธ ๊ตฌ์„ฑ ๋‹จ์œ„๋ฅผ ์ด๋ฃจ๋Š” ๊ฐœ๋…

**“์ฝ”๋“œ๋ฅผ ์–ผ๋งˆ๋‚˜ ํฐ ๋‹จ์œ„๋กœ ๋ณด๋Š”๊ฐ€”**์˜ ์ฐจ์ด

 

1. ์ „์ฒด ๊ตฌ์กฐ ํ•œ๋ˆˆ์— ๋ณด๊ธฐ

๊ตฌ๋ถ„์˜์–ดํ•œ๊ตญ์–ด์—ญํ• ์˜ˆ์‹œ
Expression ํ‘œํ˜„์‹ ๊ฐ’์„ ๊ณ„์‚ฐํ•˜๋Š” ์‹ a + b, x > 3, new Car()  
Statement ๋ฌธ์žฅ ํ•˜๋‚˜์˜ ๋ช…๋ น(์‹คํ–‰ ๋‹จ์œ„) int x = 5;, if(x > 0) {...}  
Block ๋ธ”๋ก ์—ฌ๋Ÿฌ ๋ฌธ์žฅ์„ { }๋กœ ๋ฌถ์€ ์ฝ”๋“œ ๋ฉ์–ด๋ฆฌ { int x = 1; int y = 2; }  

2. Expression (ํ‘œํ˜„์‹)

๊ฐ’์„ ๋งŒ๋“ค์–ด๋‚ด๋Š” ์ฝ”๋“œ ์กฐ๊ฐ์ด์—์š”.
“์‹(expression)”์€ **ํ‰๊ฐ€(evaluate)**๋  ์ˆ˜ ์žˆ์–ด์•ผ ํ•ฉ๋‹ˆ๋‹ค.

 

int sum = 3 + 5;  // (3 + 5)๋Š” ํ‘œํ˜„์‹
์—ฌ๊ธฐ์„œ 3 + 5๊ฐ€ expression,
์ „์ฒด int sum = 3 + 5;๋Š” statement์ž…๋‹ˆ๋‹ค.

 

3. Statement (๋ฌธ์žฅ)

์ปดํ“จํ„ฐ๊ฐ€ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋Š” ํ•œ ์ค„์˜ ๋ช…๋ น์ด์—์š”.
ํ”„๋กœ๊ทธ๋žจ์˜ “ํ–‰๋™ ๋‹จ์œ„”์ž…๋‹ˆ๋‹ค.

 

Statement๋Š” ๋ช…๋ น์˜ ๋์„ ์˜๋ฏธํ•˜๊ธฐ ๋•Œ๋ฌธ์—
๋ณดํ†ต **์„ธ๋ฏธ์ฝœ๋ก (;)**์œผ๋กœ ๋๋‚ฉ๋‹ˆ๋‹ค.

 

4. Block (๋ธ”๋ก)

์—ฌ๋Ÿฌ ๋ฌธ์žฅ(statement)์„ { }๋กœ ๋ฌถ์€ ์ฝ”๋“œ ์ง‘ํ•ฉ์ด์—์š”.
์Šค์ฝ”ํ”„(scope, ๋ณ€์ˆ˜์˜ ์œ ํšจ ๋ฒ”์œ„)๋ฅผ ๋งŒ๋“œ๋Š” ๋‹จ์œ„์ด๊ธฐ๋„ ํ•ฉ๋‹ˆ๋‹ค.

 

 

  • {} ๋‚ด๋ถ€๋Š” ํ•˜๋‚˜์˜ Block
  • ๋ธ”๋ก ์•ˆ์—์„œ ์„ ์–ธ๋œ ๋ณ€์ˆ˜๋Š” ๊ทธ ๋ธ”๋ก ์•ˆ์—์„œ๋งŒ ์œ ํšจ(scope)

 

๊ณ„์ธต์ด๋ฆ„์—ญํ• 

๐Ÿ”น Expression ๊ฐ’ ํ•˜๋‚˜๋ฅผ ๊ณ„์‚ฐํ•˜๋Š” ๋‹จ์œ„ (๊ฐ€์žฅ ์ž‘์Œ)
๐Ÿ”ธ Statement ์‹คํ–‰ ๊ฐ€๋Šฅํ•œ ๋ช…๋ น ๋‹จ์œ„ Expression์„ ํฌํ•จํ•จ
๐Ÿ”ถ Block ์—ฌ๋Ÿฌ Statement๋ฅผ ๋ฌถ์€ ์ฝ”๋“œ ์ง‘ํ•ฉ (๊ฐ€์žฅ ํผ)

 

 

6. ๋น„์œ ๋กœ ์ดํ•ดํ•˜๊ธฐ

๊ฐœ๋…๋น„์œ 
Expression ๋‹จ์–ด(์˜๋ฏธ๋ฅผ ๊ฐ€์ง€๋Š” ๊ฐ€์žฅ ์ž‘์€ ๋‹จ์œ„)
Statement ๋ฌธ์žฅ(๋ช…๋ น ํ•˜๋‚˜)
Block ๋ฌธ๋‹จ(๋ฌธ์žฅ ์—ฌ๋Ÿฌ ๊ฐœ ๋ฌถ์Œ)

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

Expression → “๊ฐ’์„ ๋งŒ๋“ ๋‹ค”
Statement → “๋ช…๋ น์„ ์‹คํ–‰ํ•œ๋‹ค”
Block → “๋ช…๋ น๋“ค์„ ๋ฌถ์–ด์„œ ๊ด€๋ฆฌํ•œ๋‹ค”

 

 


IF์ ˆ

 

์ ˆ(clause)-๋ณดํ†ต ์ผ€์ด์Šค๋ผ๊ณ  ๋ถ€๋ฆ„

 

  • if → ์กฐ๊ฑด์ด ์ฐธ์ผ ๋•Œ๋งŒ ์‹คํ–‰
  • else → ์กฐ๊ฑด์ด ๊ฑฐ์ง“์ผ ๋•Œ ์‹คํ–‰
  • else if → ์—ฌ๋Ÿฌ ์กฐ๊ฑด์„ ์ˆœ์ฐจ์ ์œผ๋กœ ๊ฒ€์‚ฌ

 

if ์ ˆ ์‚ฌ์šฉ!

 

if (opcode.equals("+")) { result = num1 + num2; }
else if (opcode.equals("-")) { result = num1 - num2; }
else if (opcode.equals("*")) { result = num1 * num2; }
else if (opcode.equals("/")) { result = num1 / num2; }
else { 
    System.out.println("์—ฐ์‚ฐ์ž ์˜ค๋ฅ˜");
    return; // ์˜ค๋ฅ˜ ์‹œ ๋” ์ด์ƒ ์ง„ํ–‰ํ•˜์ง€ ์•Š๊ฒŒ
}

 

 


 

charAt

1๏ธโƒฃ charAt์˜ ์˜๋ฏธ

  • charAt์€ ๋ฌธ์ž์—ด(String)์—์„œ ํŠน์ • ์œ„์น˜์˜ ๊ธ€์ž๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๋ฉ”์†Œ๋“œ์˜ˆ์š”.
  • ๋ฌธ๋ฒ•:
 
String str = "Hello"; char ch = str.charAt(0); // str์˜ 0๋ฒˆ์งธ ๊ธ€์ž ๊ฐ€์ ธ์˜ค๊ธฐ → 'H'
  • 0๋ถ€ํ„ฐ ์‹œ์ž‘ํ•˜๋Š” ์ธ๋ฑ์Šค๋ฅผ ์‚ฌ์šฉํ•ด์š”.
    • ์˜ˆ: "Hello"
      • H → ์ธ๋ฑ์Šค 0
      • e → ์ธ๋ฑ์Šค 1
      • l → ์ธ๋ฑ์Šค 2
      • l → ์ธ๋ฑ์Šค 3
      • o → ์ธ๋ฑ์Šค 4

2๏ธโƒฃ ์ฃผ๋ฏผ๋ฒˆํ˜ธ ์˜ˆ์ œ

 
String jumin = "800101-1234567";
char genderCode = jumin.charAt(7); //
'-' ๋’ค ์ฒซ ์ˆซ์ž System.out.println(genderCode); // ์ถœ๋ ฅ: '1'
  • ์—ฌ๊ธฐ์„œ jumin.charAt(7)์€ ๋ฌธ์ž์—ด์˜ 7๋ฒˆ์งธ ๊ธ€์ž๋ฅผ ๊ฐ€์ ธ์˜ค๋Š” ๊ฑฐ์˜ˆ์š”.
  • ๋ฐ˜ํ™˜๊ฐ’์€ char ํƒ€์ž…์ž…๋‹ˆ๋‹ค. (ํ•œ ๊ธ€์ž)

 

1๏ธโƒฃ char๋ž€?

  • char๋Š” **character(๋ฌธ์ž)**์˜ ์•ฝ์ž์˜ˆ์š”.
  • ์ž๋ฐ”์—์„œ ํ•œ ๊ธ€์ž๋ฅผ ์ €์žฅํ•  ๋•Œ ์“ฐ๋Š” ์ž๋ฃŒํ˜•์ด์—์š”.
  • ์˜ˆ์‹œ:
 
char ch = 'A'; // ํฐ๋”ฐ์˜ดํ‘œ(") X, ์ž‘์€๋”ฐ์˜ดํ‘œ(') O char num = '1'; char korean = '๊ฐ€';
  • ์ค‘์š”ํ•œ ์ : ํ•œ ๊ธ€์ž๋งŒ ๊ฐ€๋Šฅ. "AB"์ฒ˜๋Ÿผ 2๊ธ€์ž ์ด์ƒ์€ ์•ˆ ๋จ.

2๏ธโƒฃ ๋ฌธ์ž์—ด(String)๊ณผ char ์ฐจ์ด

  • "A" → String, ์—ฌ๋Ÿฌ ๊ธ€์ž ๊ฐ€๋Šฅ
  • 'A' → char, ํ•œ ๊ธ€์ž๋งŒ ๊ฐ€๋Šฅ

๊ทธ๋ž˜์„œ ์ฃผ๋ฏผ๋ฒˆํ˜ธ์—์„œ ์„ฑ๋ณ„ ์ˆซ์ž ํ•˜๋‚˜๋งŒ ๋น„๊ตํ•  ๋•Œ char๊ฐ€ ํŽธํ•จ

 
char genderCode = jumin.charAt(7); if (genderCode == '1') { ... } // '1'์€ ๋ฌธ์ž์ž„

3๏ธโƒฃ = vs ==

  • = → ๋Œ€์ž… ์—ฐ์‚ฐ์ž
    • ๊ฐ’์„ ๋ณ€์ˆ˜์— ๋„ฃ์„ ๋•Œ ์‚ฌ์šฉ
    • ์˜ˆ: int a = 5; → a์— 5๋ฅผ ๋„ฃ์Œ
  • == → ๋น„๊ต ์—ฐ์‚ฐ์ž
    • ๋‘ ๊ฐ’์ด ๊ฐ™์€์ง€ ํ™•์ธํ•  ๋•Œ ์‚ฌ์šฉ
    • ์˜ˆ: if (a == 5) {...} → a๊ฐ€ 5๋ž‘ ๊ฐ™์€์ง€ ํ™•์ธ

โš ๏ธ ๊ทธ๋ž˜์„œ if (genderCode = '1') ์ด๋ ‡๊ฒŒ ์“ฐ๋ฉด ์˜ค๋ฅ˜๊ฐ€ ๋‚˜์š”.

  • ์ด์œ : =๋Š” ๊ฐ’์„ ๋„ฃ๋Š” ๊ฑฐ๋ผ์„œ ์กฐ๊ฑด์‹ ์•ˆ์—์„œ ๋ถˆ๊ฐ€๋Šฅ
  • ๋น„๊ตํ•˜๋ ค๋ฉด ๋ฐ˜๋“œ์‹œ == ์จ์•ผ ํ•จ

๐Ÿ’ก ์š”์•ฝ:

  • ํ•œ ๊ธ€์ž ๋น„๊ต → char
  • ๊ฐ’์„ ๋„ฃ์„ ๋• =
  • ๋น„๊ตํ•  ๋• ==

๋ง์”€ํ•˜์‹  ์ฐจ์ด๋Š” ๋ฉ”์„œ๋“œ์˜ ๋ฐ˜ํ™˜ ํƒ€์ž…(return type) ๋•Œ๋ฌธ์— ์ƒ๊ธฐ๋Š” ๊ฒ๋‹ˆ๋‹ค. ํ•˜๋‚˜์”ฉ ์ •๋ฆฌํ•ด๋ณผ๊ฒŒ์š”.


1๏ธโƒฃ boolean vs int ๋ฐ˜ํ™˜

  • boolean
    • ์˜ค์ง true / false ๋‘ ๊ฐ’๋งŒ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์–ด์š”.
    • ์˜ˆ: ๋กœ๊ทธ์ธ ์„ฑ๊ณต ์—ฌ๋ถ€๋งŒ ์•Œ๊ณ  ์‹ถ์„ ๋•Œ
    •  
      public boolean login(LoginDTO loginDTO) { if(loginDTO.getEmail().equals("test@test.com") && loginDTO.getPassword().equals("1234")) { return true; // ๋กœ๊ทธ์ธ ์„ฑ๊ณต } else { return false; // ์‹คํŒจ } }
    • ์žฅ์ : ๋‹จ์ˆœํ•˜๊ณ  ์ง๊ด€์ 
    • ๋‹จ์ : ์™œ ์‹คํŒจํ–ˆ๋Š”์ง€๋Š” ์•Œ ์ˆ˜ ์—†์Œ (์ด๋ฉ”์ผ ์˜ค๋ฅ˜์ธ์ง€ ๋น„๋ฒˆ ์˜ค๋ฅ˜์ธ์ง€)
  • int
    • ์ˆซ์ž๋ฅผ ๋ฐ˜ํ™˜ํ•ด์„œ ์ƒํ™ฉ์„ ์„ธ๋ถ„ํ™”ํ•  ์ˆ˜ ์žˆ์–ด์š”.
    • ์˜ˆ:
      • 0 → ๋กœ๊ทธ์ธ ์„ฑ๊ณต
      • 1 → ์ด๋ฉ”์ผ ๋ถˆ์ผ์น˜
      • 2 → ๋น„๋ฐ€๋ฒˆํ˜ธ ๋ถˆ์ผ์น˜
      • 3 → ๋‘˜ ๋‹ค ๋ถˆ์ผ์น˜
     
    public int login(LoginDTO loginDTO) { if(loginDTO.getEmail().equals("test@test.com") && loginDTO.getPassword().equals("1234")) { return 0; } else if (!loginDTO.getEmail().equals("test@test.com")) { return 1; } else if (!loginDTO.getPassword().equals("1234")) { return 2; } else { return 3; } }

2๏ธโƒฃ ์™œ ์ˆซ์ž๋ฅผ ์“ด ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์„๊นŒ?

  • ๋กœ๊ทธ์ธ ์‹คํŒจ ์ด์œ ๋ฅผ ๋‹ค๋ฅธ ๊ฐ’์œผ๋กœ ๊ตฌ๋ถ„ํ•˜๊ณ  ์‹ถ์„ ๋•Œ ์œ ์šฉ
  • ํ”„๋ก ํŠธ์—”๋“œ์—์„œ ์‚ฌ์šฉ์ž์—๊ฒŒ "์ด๋ฉ”์ผ์ด ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค" / "๋น„๋ฐ€๋ฒˆํ˜ธ๊ฐ€ ํ‹€๋ ธ์Šต๋‹ˆ๋‹ค" ๊ฐ™์€ ๋ฉ”์‹œ์ง€๋ฅผ ์ •ํ™•ํžˆ ๋ณด์—ฌ์ฃผ๊ธฐ ์œ„ํ•ด

๋ฐ˜๋Œ€๋กœ ๋‹จ์ˆœํžˆ ์„ฑ๊ณต/์‹คํŒจ๋งŒ ํ•„์š”ํ•˜๋ฉด boolean์ด ์ถฉ๋ถ„ํ•ด์š”.


3๏ธโƒฃ ์ •๋ฆฌ

๋ฐ˜ํ™˜ ํƒ€์ž… ์‚ฌ์šฉ ์˜ˆ ์žฅ์  ๋‹จ์ 
boolean ๋กœ๊ทธ์ธ ์„ฑ๊ณต ์—ฌ๋ถ€ ๊ฐ„๋‹จ, ์ง๊ด€์  ์‹คํŒจ ์ด์œ ๋ฅผ ์•Œ ์ˆ˜ ์—†์Œ
int 0=์„ฑ๊ณต, 1=์ด๋ฉ”์ผ ์˜ค๋ฅ˜, 2=๋น„๋ฒˆ ์˜ค๋ฅ˜ ๋“ฑ ์‹คํŒจ ์›์ธ ๊ตฌ๋ถ„ ๊ฐ€๋Šฅ ์ˆซ์ž ์˜๋ฏธ๋ฅผ ์•Œ์•„์•ผ ํ•จ

๐Ÿ’ก Tip:
์š”์ฆ˜์—” ์ˆซ์ž ๋Œ€์‹  enum์„ ์“ฐ๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ์•„์š”.

public enum LoginResult { SUCCESS, EMAIL_ERROR, PASSWORD_ERROR, BOTH_ERROR }

์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ์ˆซ์ž ๋Œ€์‹  ์˜๋ฏธ ์žˆ๋Š” ์ด๋ฆ„์„ ๋ฐ˜ํ™˜ํ•  ์ˆ˜ ์žˆ์–ด์„œ ์ฝ”๋“œ ๊ฐ€๋…์„ฑ์ด ํ›จ์”ฌ ์ข‹์•„์ง‘๋‹ˆ๋‹ค.