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

[JAVA] ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ

by ๐Ÿ’พ๊ณ ๊ตฌ๋งˆ๋ง›ํƒ•๋จน๊ณ ์‹ถ๋‹ค 2023. 12. 11.
728x90

๐Ÿค” ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์œผ๋กœ ๋ฐœ์ „ํ•˜๊ฒŒ ๋œ ์ด์œ 

์†Œํ”„ํŠธ์›จ์–ด ๊ณตํ•™์€ ์ตœ์†Œํ•œ์˜ ๋น„์šฉ์œผ๋กœ ์ตœ๋Œ€ํ•œ์˜ ํšจ๊ณผ๋ฅผ ๋งŒ๋“ค๊ธฐ ์œ„ํ•œ ๋ฐœ์ „๋œ ํ•™๋ฌธ์ด๋‹ค. ์ƒ์„ฑ๋ถ€ํ„ฐ ํ๊ธฐ๊นŒ์ง€์˜ ๋น„์šฉ์„ ์ค„์ด๊ธฐ ์œ„ํ•ด์„œ ๋งŒ๋“ค์–ด์กŒ๋‹ค. ์ดˆ๊ธฐ์—๋Š” ๊ฐœ๋ฐœ๋น„์šฉ, ์ƒ์„ฑ๋น„์šฉ์ด ๋†’์•˜๋‹ค. ํ•˜์ง€๋งŒ ๋งŽ์€ ํšŒ์‚ฌ์—์„œ ์ฝ”๋“œ๋ฅผ ๊ณต๊ฐœํ•˜๋ฉด์„œ ์ƒ์„ฑ ๋น„์šฉ์ด ๊ต‰์žฅํžˆ ์ค„์–ด๋“ค๊ฒŒ ๋˜์—ˆ๋‹ค. 

๋”ฐ๋ผ์„œ ์ตœ๊ทผ์—๋Š” ์œ ์ง€๋ณด์ˆ˜๋น„์šฉ์ด ์ƒ์„ฑ๋น„์šฉ๋ณด๋‹ค ํ›จ์”ฌ ๋งŽ์ด ๋ฐœ์ƒํ•˜๊ฒŒ ๋˜์—ˆ๋‹ค. ๊ทธ๋ž˜์„œ ์œ ์ง€๋ณด์ˆ˜ ๋น„์šฉ์„ ์ค„์ด๊ธฐ์œ„ํ•ด ์—ฌ๋Ÿฌ ๋ฐฉ๋ฒ•์ด ์ƒ๊ฒจ๋‚ฌ๋‹ค.

๋”๋ณด๊ธฐ

-  ํ”„๋กœ๊ทธ๋ž˜๋ฐ ๋ฐฉ๋ฒ•๋ก  : SW ๊ณตํ•™์  ๊ด€์ ์—์„œ ๋ช…๋ น์–ด๋ฅผ ๋งŒ๋“ค์–ด๋‚ด๋Š” ๋ฐฉ๋ฒ•์„ ํšจ์œจ์ ์œผ๋กœ ํ•˜๊ธฐ ์œ„ํ•จ
โšฝ ํ•จ์ˆ˜ ์ง€ํ–ฅํ˜• : ์ƒ์„ฑ ๋น„์šฉ ์ค„์ด๊ธฐ = ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ ๋†’์ด๊ธฐ = ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ๊ธฐ์ˆ  ๋ฐœ๋‹ฌ : ๋ชจ๋“ˆํ™”(ํ•จ์ˆ˜ ๋‹จ์œ„) ์ฆ‰, ์ฝ”๋“œ์˜ ์žฌ์‚ฌ์šฉ์„ฑ์ด ๋†’์•„์ง

โšพ ๊ฐ์ฒด ์ง€ํ–ฅํ˜• : ์œ ์ง€๋ณด์ˆ˜ ๋น„์šฉ ์ค„์ด๊ธฐ = ๋ฐ์ดํ„ฐ ๋ณ€ํ™”์— ๋‘”๊ฐํ•ด์ง€๊ฒŒ ํ•˜๊ธฐ = ๋ชจ๋“ˆํ™”(object(data+code) ๋‹จ์œ„)  

-  ํ”„๋กœ์ ํŠธ ๋ฐฉ๋ฒ•๋ก  : ํญํฌ์ˆ˜, ์• ์ž์ผ, ์นธ๋ฐ˜, ํ•˜์ด๋ธŒ๋ฆฌ๋“œ ๋“ฑ๋“ฑ

 

๐Ÿค” JAVA (๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ)

Java๋Š” ์ตœ์ ํ™”(์†๋„) ๋ฒ„๋ฆฌ๊ณ  ํŽธ์˜์„ฑ(ํŽธ๋ฆฌ) ์ถ”๊ตฌํ•˜๋Š” ์–ธ์–ด์ด๋‹ค. ํ•˜์ง€๋งŒ ๋‚˜์ค‘์— ์ตœ์ ํ™”๋ฅผ ํ•˜๊ธด ํ•ด์•ผํ•œ๋‹ค.

๋”๋ณด๊ธฐ

์ž๋ฐ”์˜ ์ž๋ฃŒํ˜•์€ ๊ธฐ๋ณธ ์ž๋ฃŒํ˜•(๊ฐ’์„ ๋‹ค๋ฃธ)๊ณผ ์ฐธ์กฐ ์ž๋ฃŒํ˜•(ํฌ์ธํ„ฐ:์ฃผ์†Œ๋ฅผ ๋‹ค๋ฃธ/ํด๋ž˜์Šค)์ด ์žˆ๋‹ค.
๊ทธ ์ค‘ ์ฐธ์กฐ ์ž๋ฃŒํ˜•์€ c์–ธ์–ด์˜ ํฌ์ธํ„ฐ์™€ ๋น„์Šทํ•˜๋‹ค. <ํ‘œํ˜„๋ฒ• : c : “ -> ”, java : “ . ”>

๋ฉ”๋ชจ๋ฆฌ๋Š” ์ฃผ์†Œ์™€ ๊ฐ’์œผ๋กœ ๋‚˜๋‰˜๊ณ  ์ฃผ๊ธฐ์–ต์žฅ์น˜๋Š” ์ฃผ์†Œ๋กœ ๊ฐ’์„ ์ฐพ๋Š”๋‹ค.

 

๐Ÿ˜ฅ๊ทธ๋Ÿผ ์™œ ์ฃผ์†Œ๋ฅผ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฑธ๊นŒ?

์—ฌ๋Ÿฌ ๊ฐœ์˜ ์ž๋ฃŒ๋ฅผ ํ•œ๋ฒˆ์— ๋‹ค๋ฃจ๊ณ  ์‹ถ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

์ž๋ฐ”์—์„œ ์ฐธ์กฐ์ž๋ฃŒํ˜•์€ ํด๋ž˜์Šค๋ฅผ ์˜๋ฏธํ•œ๋‹ค. ํด๋ž˜์Šค๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

 

๐Ÿคฉํด๋ž˜์Šค

๊ฐ์ฒด(DATA + CODE) ๊ฐ„์˜ ํ†ต์‹ , ์†์„ฑ(Attribute)๊ณผ ๋ฉ”์†Œ๋“œ(Code)

๋‹จ์ผ ์ฑ…์ž„ = ๋‹จ์ผ ์—ญํ•  = ๊ด€๋ จ๋œ ๋‹ค์ˆ˜์˜ ๊ธฐ๋Šฅ + ๊ด€๋ จ๋œ ๋‹ค์ˆ˜์˜ ๋ฐ์ดํ„ฐ


๊ทธ๋ฆฌ๊ณ  ๋…๋ฆฝ์  ์‹คํ–‰ ๋‹จ์œ„์ด๋‹ค.  = Object ๋‹จ์œ„๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์ €์žฅ๋จ(๋ฉ”์†Œ๋“œ ํ•˜๋‚˜๋งŒ ์‚ฌ์šฉํ•ด๋„ ๊ฐ์ฒด๋‹จ์œ„๋กœ ๋ฉ”๋ชจ๋ฆฌ์— ์˜ฌ๋ผ๊ฐ

 

๐Ÿค— ๊ฐ์ฒด ์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์˜ ํŠน์ง•

์บก์Šํ™”๐Ÿ’Š : ์™ธ๋ถ€์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ์ถ”๋Š” ๊ฒƒ

 

์ถ”์ƒํ™”๐Ÿงฟ : ํŠน์„ฑ์— ์ง‘์ค‘ํ•˜๋„๋ก, ์ „๋ฌธ์„ฑ์„ ๋„๋„๋ก ์ƒ์„ธ ๋‚ด์—ญ ์—†์• ๋Š” ๊ณผ์ •, ๋ณดํŽธ, ์ผ๋ฐ˜์ ์ธ ๊ฒƒ์„ ์ œ์™ธํ•˜๊ณ  ๊ฐ€์ง€์น˜๊ธฐํ•˜๋Š” ๊ฒƒ, ๋””ํ…Œ์ผ์„ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ. ํ•จ์ˆ˜๋ฅผ ๊ตฌ์ฒด์ ์œผ๋กœ ์ž˜ ๋ชฐ๋ผ๋„ ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. ๋‚ด๋ถ€์  ํ•จ์ˆ˜ ์ฝ”๋“œ๋ฅผ ๋ชฐ๋ผ๋„ ํ•จ์ˆ˜ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ผญ ํ•„์š”ํ•œ ๊ทผ๋ณธ์ ์ธ ํŠน์„ฑ์— ์ง‘์ค‘ํ•ด ์—ฌํƒ€์˜ ๋ถ€๋ถ„์ด๋‚˜ ์ƒ์„ธ ๋‚ด์—ญ์„ ์—†์•  ๋‚˜๊ฐ€๋Š” ๊ณผ์ •์ด๋‹ค.

 

๋‹คํ˜•์„ฑโ™ป : ์‹๋ณ„์ž(ํ•จ์ˆ˜ ์ด๋ฆ„, ์ธ์ˆ˜ ํƒ€์ž…, ๊ฐœ์ˆ˜)๋ฅผ ๋น„๊ตํ•˜์—ฌ ๋ถˆ๋Ÿฌ์˜จ๋‹ค. ํ•˜๋‚˜์˜ ๊ฐ์ฒด๊ฐ€ ์—ฌ๋Ÿฌ ํƒ€์ž…์„ ๊ฐ€์งˆ ์ˆ˜ ์žˆ๋‹ค๋Š” ์˜๋ฏธํ•œ๋‹ค.

 

๐Ÿค” ํ”„๋กœ์ ํŠธ ๋ฐฉ๋ฒ•๋ก 

๋ฐ๋“œ๋ผ์ธ์„ ์ง€ํ‚ค๋Š” ๊ฒƒ์ด ๋น„์šฉ์„ ์ ˆ๊ฐํ•˜๋Š” ๊ฒƒ์— ํฐ ๋„์›€์ด ๋œ๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กœ์ ํŠธ๋ฅผ ํšจ์œจ์ ์œผ๋กœ ์ง„ํ–‰ํ•˜๊ธฐ์œ„ํ•ด ํ”„๋กœ์ ํŠธ ์ง„ํ–‰ ๋ฐฉ๋ฒ•๋ก ์ด ํƒ„์ƒํ–ˆ๋‹ค.

๋”๋ณด๊ธฐ

๐Ÿ”Ž ํญํฌ์ˆ˜ ๋ชจ๋ธ (์ดˆ๊ธฐ ๋ชจ๋ธ)

์†Œ๊ทœ๋ชจ์—์„œ ๋งŽ์ด ์‚ฌ์šฉ๋œ๋‹ค. ๋‹จ๊ณ„๊ฐ€ ๋๋‚  ๋•Œ๋งˆ๋‹ค ์‚ฐ์ถœ๋ฌผโœจ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ค‘์š”ํ•˜๋‹ค.
๊ฐ„๋‹จ ์š”์•ฝ : ์š”๊ตฌ์‚ฌํ•ญ ํŒŒ์•…(what, ๊ธฐํš)[์š”๊ตฌ์‚ฌํ•ญ ์ •์˜์„œ: Use-case Diagram] -> ๋ถ„์„(how: ์•„ํ‚คํ…์ฒ˜, ERD, UI/UX ๋“ฑ๋“ฑ)[๊ฐ์ž ๊ด€์ ์— ๋”ฐ๋ผ ์“ฐ๋Š” ๋„๊ตฌ๊ฐ€ ๋‹ค๋ฆ„] -> ์„ค๊ณ„(Design)[Class Diagram] -> ๊ตฌํ˜„ -> ํ…Œ์ŠคํŠธ

https://ko.wikipedia.org/wiki/%ED%8F%AD%ED%8F%AC%EC%88%98_%EB%AA%A8%EB%8D%B8

 

๐Ÿ”Ž ์• ์ž์ผ ๋ฐฉ๋ฒ•๋ก 

ํญํฌ์ˆ˜ ๋ชจ๋ธ์„ ์ž˜๊ฒŒ ์ชผ๊ฐœ์„œ ์ž‘์€ ๋‹จ์œ„๋กœ ์ˆ˜ํ–‰ํ•˜๋Š” ๊ฒƒ์ด๋‹ค.

์„ค๊ณ„๋ถ€ํ„ฐ ํ…Œ์ŠคํŠธ๋ฅผ ์—ฌ๋Ÿฌ๋ฒˆ ์ˆ˜ํ–‰ํ•˜์—ฌ ํ”ผ๋“œ๋ฐฑ์„ ํ†ตํ•ด ๋ณด์™„ํ•˜๋Š” ๋ฐฉ์‹์ด๋‹ค. 

codestates
728x90