Java๐ŸŽ€ 15

Java ์Šค๋ ˆ๋“œ

ํ”„๋กœ์„ธ์Šค์™€ ์Šค๋ ˆ๋“œ ํ”„๋กœ์„ธ์Šค : ์‹คํ–‰ ์ค‘์ธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜. ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋ฉด ์šด์˜์ฒด์ œ๋กœ๋ถ€ํ„ฐ ์‹คํ–‰์— ํ•„์š”ํ•œ ๋งŒํผ์˜ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ํ• ๋‹น๋ฐ›์•„ ํ”„๋กœ์„ธ์Šค๊ฐ€ ๋œ๋‹ค. ํ”„๋กœ์„ธ์Šค๋Š” ๋ฐ์ดํ„ฐ, ์ปดํ“จํ„ฐ ์ž์›, ์Šค๋ ˆ๋“œ๋กœ ๊ตฌ์„ฑ๋˜๋Š”๋ฐ, ์Šค๋ ˆ๋“œ๋Š” ๋ฐ์ดํ„ฐ์™€ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ํ™•๋ณดํ•œ ์ž์›์„ ํ™œ์šฉํ•˜์—ฌ ์†Œ์Šค ์ฝ”๋“œ๋ฅผ ์‹คํ–‰ํ•œ๋‹ค. ์ฆ‰, ์Šค๋ ˆ๋“œ๋Š” ํ•˜๋‚˜์˜ ์ฝ”๋“œ ์‹คํ–‰ ํ๋ฆ„์ด๋ผ๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค. ๋ฉ”์ธ ์Šค๋ ˆ๋“œ ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ์‹คํ–‰ํ•˜๋ฉด ๊ฐ€์žฅ ๋จผ์ € ์‹คํ–‰๋˜๋Š” ๋ฉ”์„œ๋“œ๋Š” main ๋ฉ”์„œ๋“œ์ด๋ฉฐ, ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๊ฐ€ main ๋ฉ”์„œ๋“œ๋ฅผ ์‹คํ–‰์‹œ์ผœ์ค€๋‹ค. ๋ฉ”์ธ ์Šค๋ ˆ๋“œ๋Š” main ๋ฉ”์„œ๋“œ์˜ ์ฝ”๋“œ๋ฅผ ์ฒ˜์Œ๋ถ€ํ„ฐ ๋๊นŒ์ง€ ์ฐจ๋ก€๋Œ€๋กœ ์‹คํ–‰์‹œํ‚ค๊ณ , ์ฝ”๋“œ ๋์„ ๋งŒ๋‚˜๊ฑฐ๋‚˜ return๋ฌธ์„ ๋งŒ๋‚˜๋ฉด ์‹คํ–‰์„ ์ข…๋ฃŒํ•œ๋‹ค. ๋งŒ์•ฝ, ์–ด๋–ค ์ž๋ฐ” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์†Œ์Šค ์ฝ”๋“œ๊ฐ€ ์‹ฑ๊ธ€ ์Šค๋ ˆ๋“œ๋กœ ์ž‘์„ฑ๋˜์—ˆ๋‹ค๋ฉด, ๊ทธ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์ด ์‹คํ–‰..

Java๐ŸŽ€ 2023.07.03

Spring MVC - JPA ๊ธฐ๋ฐ˜ ๋ฐ์ดํ„ฐ ์•ก์„ธ์Šค ๊ณ„์ธต(1)

JPA ๋Š” Spring Data JPA๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ์ด์ž ํ•ต์‹ฌ ๊ธฐ์ˆ ์ด๊ธฐ ๋•Œ๋ฌธ์— ๊ฐœ๋…์„ ์ž˜ ์ดํ•ดํ•ด์•ผ Spring Data JPA๋ฅผ ์†์‰ฝ๊ฒŒ ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•˜๋‹ค. JPA์˜ ๋™์ž‘ ๋ฐฉ์‹๊ณผ ์—”ํ‹ฐํ‹ฐ ๊ฐ„์˜ ์—ฐ๊ด€ ๊ด€๊ณ„ ๋งคํ•‘์„ ์œ„์ฃผ๋กœ ๋ณด์ž! JPA๋ž€? Java Persistence API์˜ ์•ฝ์ž๋กœ Java ์ง„์˜์—์„œ ์‚ฌ์šฉํ•˜๋Š” *ORM ๊ธฐ์ˆ ์˜ ํ‘œ์ค€ ์‚ฌ์–‘์ด๋‹ค. ํ‘œ์ค€ ์‚ฌ์–‘์ด๋ž€, Java์˜ ์ธํ„ฐํŽ˜์ด์Šค๋กœ ์‚ฌ์šฉ์ด ์ •์˜๋˜์–ด ์žˆ๊ธฐ ๋•Œ๋ฌธ์— JPA๋ผ๋Š” ํ‘œ์ค€ ์‚ฌ์–‘์„ ๊ตฌํ˜„ํ•˜๋Š” ๊ตฌํ˜„์ฒด๋Š” ๋”ฐ๋กœ ์žˆ๋‹ค๋Š” ์˜๋ฏธ์ด๋‹ค. -> ์˜ˆ) Hibernate ORM *ORM ๊ธฐ์ˆ ์ด๋ž€, ์‚ฌ๋ฌผ์„ ์ถ”์ƒํ™”์‹œ์ผœ ์ดํ•ดํ•˜๋ ค๋Š” OOP์  ์‚ฌ๊ณ ๋ฐฉ์‹์™€ DataModel์„ ์ •ํ˜•ํ™”ํ•˜์—ฌ ๊ด€๋ฆฌํ•˜๋ ค๋Š” ๊ด€๊ณ„ํ˜• DB ์‚ฌ์ด๋ฅผ ์—ฐ๊ฒฐํ•  ๊ณ„์ธต์˜ ์—ญํ• ๋กœ ์ œ์‹œ๋œ ํŒจ๋Ÿฌ๋‹ค์ž„์ด๋‹ค. RDB ๋ชจ๋ธ์„ OOP์— Enti..

Java๐ŸŽ€ 2023.05.06

๐Ÿ’œJVM์™€ GC(Garbage Collector)

์ž๋ฐ”๋Š” ์šด์˜์ฒด์ œ์— ๋…๋ฆฝ์ ์ธ ์–ธ์–ด์ด๋ฉฐ, ์ด๋Š” JVM์œผ๋กœ ์ธํ•ด ๊ฐ€๋Šฅํ•˜๋‹ค. ๐Ÿ™„ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ ์šด์˜์ฒด์ œ์— ๋…๋ฆฝ์ ์ด๋ผ๋Š” ๊ฒƒ์€ ๋ฌด์Šจ ๋œป์ผ๊นŒ? ๋จผ์ € ์–ด๋– ํ•œ ํ”„๋กœ๊ทธ๋žจ์ด ์‹คํ–‰๋˜๊ธฐ ์œ„ํ•ด์„œ๋Š” OS๋กœ ๋ถ€ํ„ฐ CPU, ๋ฉ”๋ชจ๋ฆฌ, I/O ๋“ฑ์˜ ์ปดํ“จํ„ฐ ์ž์›์„ ํ• ๋‹น๋ฐ›์•„์•ผ ํ•œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ์ด ์ž์‹ ์ด ํ•„์š”ํ•œ ์ปดํ“จํ„ฐ ์ž์›์„ ์š”์ฒญํ•˜๋ฉด OS๋Š” ๊ฐ€์šฉ ์ž์›์„ ํ™•์ธํ•œ ๋‹ค์Œ, ํ•„์š”ํ•œ ์ปดํ“จํ„ฐ ์ž์›์„ ํ”„๋กœ๊ทธ๋žจ์— ํ• ๋‹นํ•ด์ค€๋‹ค. ์ด๋•Œ, ํ”„๋กœ๊ทธ๋žจ์ด ์šด์˜์ฒด์ œ์—๊ฒŒ ํ•„์š”ํ•œ ์ปดํ“จํ„ฐ ์ž์›์„ ์š”์ฒญํ•˜๋Š” ๋ฐฉ์‹์ด OS๋งˆ๋‹ค ๋‹ค๋ฅด๋‹ค. ๋”ฐ๋ผ์„œ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด๊ฐ€ OS์— ๋Œ€ํ•ด ์ข…์†์„ฑ์„ ๊ฐ€์ง€๊ฒŒ ๋˜๋Š” ๊ฒƒ! ํ•˜์ง€๋งŒ ์ž๋ฐ”์˜ ๊ฒฝ์šฐ๋Š” ๋‹ค์Œ๊ณผ ๊ฐ™์ด JVM์„ ๋งค๊ฐœํ•ด์„œ OS์™€ ์†Œํ†ตํ•˜๊ธฐ ๋•Œ๋ฌธ์—, OS๋กœ๋ถ€ํ„ฐ ๋…๋ฆฝ์ ์œผ๋กœ ๋™์ž‘ํ•  ์ˆ˜ ์žˆ๋‹ค. JVM์ด๋ž€? Java Virtual Machine์˜ ์ค„์ž„๋ง๋กœ, ์ž๋ฐ” ์• ..

Java๐ŸŽ€ 2023.03.13

๐Ÿ’™์ƒ์„ฑ์ž, this์™€ this(), ๊ทธ๋ฆฌ๊ณ  ๋‚ด๋ถ€ํด๋ž˜์Šค

1๏ธโƒฃ์ƒ์„ฑ์ž๋ž€? ์ƒ์„ฑ์ž๋Š” ๊ฐ์ฒด๋ฅผ ์ดˆ๊ธฐํ™”ํ•˜๋Š” ๋ฉ”์†Œ๋“œ์ด๋‹ค. ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋  ๋•Œ ํ˜ธ์ถœ๋˜๋Š” ๋ฉ”์†Œ๋“œ๋กœ, new ์—ฐ์‚ฐ์ž๊ฐ€ ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๋ฉด, ์ƒ์„ฑ์ž๋Š” ์ธ์Šคํ„ด์Šค ๋ณ€์ˆ˜๋“ค(ํ•„๋“œ๊ฐ’๋“ค)์„ ์ดˆ๊ธฐํ™”ํ•œ๋‹ค. (์ƒ์„ฑ์ž๋Š” ๋ฆฌํ„ด ํƒ€์ž…์ด ์—†๊ณ , ํด๋ž˜์Šค ์ด๋ฆ„๊ณผ ๊ฐ™์•„์•ผ ํ•œ๋‹ค.) class Test{ int a,b; public Test() { System.out.println("๊ธฐ๋ณธ ์ƒ์„ฑ์ž"); } public Test(int a){ System.out.println("๋งค๊ฐœ๋ณ€์ˆ˜ 1๊ฐœ ์žˆ๋Š” ์ƒ์„ฑ์ž"); } public Test(int a, int b){ System.out.println("๋งค๊ฐœ๋ณ€์ˆ˜ 2๊ฐœ ์žˆ๋Š” ์ƒ์„ฑ์ž"); } } public class Constructor { public static void main(String[] args)..

Java๐ŸŽ€ 2023.02.24

๐Ÿ’šOOP์™€ ํด๋ž˜์Šค, ํ•„๋“œ, ๋ฉ”์„œ๋“œ, static๊นŒ์ง€

1๏ธโƒฃ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Object-Oriented Programming)์ด๋ž€? ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ํ•œ ๊ณณ์— ๋ชจ์•„ ์ถ”์ƒํ™”์‹œ์ผœ ์ƒํƒœ, ํ–‰์œ„๋ฅผ ๊ฐ€์ง„ ๊ฐ์ฒด๋ฅผ ๋งŒ๋“ค๊ณ  ๊ทธ ๊ฐ์ฒด๋“ค ๊ฐ„์˜ ํ˜‘๋ ฅ๊ณผ ์ƒํ˜ธ์ž‘์šฉ์„ ํ†ตํ•ด ํŠน์ • ๊ธฐ๋Šฅ์„ ๋งŒ๋“œ๋Š” ๊ฒƒ. OOP์˜ ์žฅ์  ์ ˆ์ฐจ์  ํ”„๋กœ๊ทธ๋ž˜๋ฐ์— ๋น„ํ•ด ๋” ๋น ๋ฅด๊ณ  ์‰ฝ๊ฒŒ ์‹คํ–‰ ๊ฐ€๋Šฅ ํ”„๋กœ๊ทธ๋žจ์— ๋Œ€ํ•œ ๋ช…ํ™•ํ•œ ๊ตฌ์กฐ๋ฅผ ์ œ๊ณต ๋ฐ˜๋ณตํ•  ์ฝ”๋“œ๊ฐ€ ์ ์–ด์ง€๊ณ  ์œ ์ง€๋ณด์ˆ˜, ์ˆ˜์ •, ๋””๋ฒ„๊ทธ๊ฐ€ ์‰ฌ์›€ ์žฌ์‚ฌ์šฉ ๊ฐ€๋Šฅํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ์Œ 2๏ธโƒฃOOP์˜ 4๊ฐ€์ง€ ํŠน์ง• ์ถ”์ƒํ™”(Abstraction) : ์–ด๋–ค ์˜์—ญ์—์„œ ํ•„์š”๋กœ ํ•˜๋Š” ์†์„ฑ์ด๋‚˜ ํ–‰๋™์„ ์ถ”์ถœํ•˜๋Š” ๊ฒƒ. (๊ฐ ๊ฐœ์ฒด์˜ ๊ตฌ์ฒด์ ์ธ ๊ฐœ๋…์— ์˜์กดํ•˜์ง€ ๋ง๊ณ  ์ถ”์ƒ์  ๊ฐœ๋…์— ์˜์กดํ•ด์•ผ ์„ค๊ณ„๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค) ์บก์Аํ™”(Encapsulation) : ๊ฐ์ฒด์˜ ๋ฐ์ดํ„ฐ์™€ ๋™์ž‘..

Java๐ŸŽ€ 2023.02.23

๋™๊ธฐ์  & ๋น„๋™๊ธฐ์ 

๋™๊ธฐ์ (Synchronous) : ์–ด๋–ค ์ž‘์—…์„ ์š”์ฒญํ–ˆ์„ ๋•Œ ๊ทธ ์ž‘์—…์ด ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฐ ํ›„ ๋‹ค์Œ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹ ๋น„๋™๊ธฐ์ (Asynchronous) : ์–ด๋–ค ์ž‘์—…์„ ์š”์ฒญํ–ˆ์„ ๋•Œ ์‹คํ–‰์ค‘์ธ ์ž‘์—…์ด ์ข…๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ธฐ๋‹ค๋ฆฌ์ง€ ์•Š๊ณ  ์ž‘์—…์„ ํ•˜๊ณ  ์žˆ๋‹ค๊ฐ€ ๋จผ์ € ์ž‘์—…์ด ์ข…๋ฃŒ๋˜๋ฉด ๋‚˜๋จธ์ง€ ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•˜๋Š” ๋ฐฉ์‹ cf. ์šด์˜์ฒด์ œ์˜ ํ•˜๋“œ์›จ์–ด ์ธํ„ฐ๋ŸฝํŠธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ์—์„œ์˜ ๋™๊ธฐ์ &๋น„๋™๊ธฐ์  ๋™๊ธฐ์  : ํŠน์ • ์ฝ”๋“œ๋ฅผ ์ˆ˜ํ–‰ ์™„๋ฃŒํ•œ ์ดํ›„ ์•„๋ž˜์ค„์˜ ์ฝ”๋“œ ์ˆ˜ํ–‰. ์ฆ‰, ์ง€๊ธˆ ์ง„ํ–‰ํ•˜๋Š” ์ž‘์—…์ด ๋๋‚˜๋ฉด ๋‹ค์Œ ์ž‘์—…์œผ๋กœ ๋„˜์–ด๊ฐ€๋Š” ๋ฐฉ์‹์ด ๋™๊ธฐ์  ์ฒ˜๋ฆฌ ๋ฐฉ์‹์ด๋‹ค. (ํŠน์ง• : ์†๋„๊ฐ€ ๋А๊น€, ์—๋Ÿฌ๊ฐ€ ๋‚˜๋ฉด ํŒŒ์•…์ด ์‰ฝ๋‹ค ์–ธ์–ด : Argros, Atrom) ๋น„๋™๊ธฐ์  : ํŠน์ • ์ฝ”๋“œ๋ฅผ ์ˆ˜ํ–‰ํ•˜๋Š” ๋„์ค‘์—๋„ ์•„๋ž˜๋กœ ๊ณ„์† ๋‚ด๋ ค๊ฐ€๋ฉฐ ์ˆ˜ํ–‰ํ•จ. ์ˆœ์„œ๋Œ€๋กœ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ํ•œ๋ฒˆ์—..

Java๐ŸŽ€ 2023.02.16

int[] -> List๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ, ArrayList->int[]๋กœ ๋ณ€๊ฒฝํ•˜๊ธฐ

์ฝ”๋“œ) //int[] -> List๋กœ ๋ณ€๊ฒฝ int[] arr={1,2,3}; List intList = new ArrayList(); intList = Arrays.stream(arr).boxed().collect(Collectors.toList()); System.out.println(intList);// [1, 2, 3] //ArrayList -> int[] //1.๋ฐ˜๋ณต๋ฌธ ArrayList arrayList = new ArrayList(Arrays.asList(1, 2, 3)); int[] arr2 = new int[arrayList.size()]; for(int i=0;i i).toArray(); System.out.println(Arrays.toString(arr3));// [1, 2, 3] Sy..

Java๐ŸŽ€ 2023.01.27

Java java.base ๋ชจ๋“ˆ ๋‚ด์˜ Package๋ณ„ ํด๋ž˜์Šค ์ •๋ฆฌํ•˜๊ธฐ(1ํƒ„!)

Java ๊ณต๋ถ€๋ฅผ ํ•˜๋ฉด์„œ ๊ทธ๋•Œ ๊ทธ๋•Œ ํ•„์š”ํ•œ ํด๋ž˜์Šค์˜ ๋ฉ”์„œ๋“œ๋“ค์ด ๋– ์˜ค๋ฅด์ง€ ์•Š์•„ ๋‹ต๋‹ตํ•  ๋•Œ๊ฐ€ ๋งŽ์•˜๋‹ค..ใ…Ž ๊ฒฐ๊ตญ ์–ธ์  ๊ฐ€ ํ•ด์•ผ์ง€ ํ•˜๋ฉด์„œ ๋ฏธ๋ค˜๋Š”๋ฐ ๋”์ด์ƒ ๋ฏธ๋ฃฐ ์ˆœ ์—†๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์–ด ์˜ค๋Š˜๋ถ€ํ„ฐ ์ฐจ๊ทผ์ฐจ๊ทผ ํŒจํ‚ค์ง€๋ณ„ ํด๋ž˜์Šค๋“ค(๊ทธ ์ค‘์—์„œ๋„ ๋งŽ์ด ์‚ฌ์šฉ๋˜๋Š” ๊ฒƒ๋“ค ์šฐ์„ ์œผ๋กœ)์„ ์ •๋ฆฌํ•ด๋ณด๋ ค ํ•œ๋‹ค..๐Ÿ˜‰ ๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€..! ๋กœ ์‹œ์ž‘ํ•ด๋ณด๊ฒ ๋‹ค. 1๏ธโƒฃjava.lang.Object, java.lang.Class ์ž๋ฐ”์˜ ๋ชจ๋“  ํด๋ž˜์Šค๋Š” ์‚ฌ์šฉ์ž๊ฐ€ ์ง์ ‘ extends๋กœ ์ƒ์†ํ•ด์ฃผ์ง€ ์•Š์œผ๋ฉด ์ž๋™์œผ๋กœ Object ํด๋ž˜์Šค๋ฅผ ์ƒ์†๋ฐ›๋Š”๋‹ค. Object ํด๋ž˜์Šค์˜ ๋ฉ”์†Œ๋“œ Object ํด๋ž˜์Šค, Class ํด๋ž˜์Šค ๋ฉ”์†Œ๋“œ ์‚ฌ์šฉ ์ฝ”๋“œ //java.lang์˜ ํด๋ž˜์Šค class Student2{ private String name; public Student2(String..

Java๐ŸŽ€ 2023.01.26

๐Ÿ’™์˜ˆ์™ธ์ฒ˜๋ฆฌ, ์˜ˆ์™ธ ํด๋ž˜์Šค

1๏ธโƒฃ์˜ˆ์™ธ, ์˜ˆ์™ธ ํด๋ž˜์Šค ์˜ˆ์™ธ๋ž€, ์ž˜๋ชป๋œ ์‚ฌ์šฉ ๋˜๋Š” ์ฝ”๋”ฉ์œผ๋กœ ์ธํ•œ ์˜ค๋ฅ˜. ์˜ˆ์™ธ์—๋Š” ๋‹ค์Œ 2๊ฐ€์ง€๊ฐ€ ์žˆ๋‹ค. - ์ผ๋ฐ˜ ์˜ˆ์™ธ(Exception) : ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์ฝ”๋“œ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•˜๋Š” ์˜ˆ์™ธ (์‹คํ–‰ ์˜ˆ์™ธ ๋ฐ–์˜ ๋ชจ๋“  ์˜ˆ์™ธ ํด๋ž˜์Šค) - ์‹คํ–‰ ์˜ˆ์™ธ (Runtime Exception) : ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์ฝ”๋“œ ์—ฌ๋ถ€๋ฅผ ๊ฒ€์‚ฌํ•˜์ง€ ์•Š๋Š” ์˜ˆ์™ธ (RutimeException๊ณผ ๊ทธ ์ž์‹ ํด๋ž˜์Šค) 2๏ธโƒฃ์˜ˆ์™ธ ์ฒ˜๋ฆฌ ์ฝ”๋“œ public class ExceptionHandlingExample { public static void printLength(String data) { try{ int result=data.length(); System.out.println("๋ฌธ์ž ์ˆ˜ : "+result); } catch (NullPoi..

Java๐ŸŽ€ 2023.01.21

๐Ÿงก์ค‘์ฒฉ ํด๋ž˜์Šค,์ธํ„ฐํŽ˜์ด์Šค & ์ต๋ช… ๊ฐ์ฒด

1๏ธโƒฃ์ค‘์ฒฉ ํด๋ž˜์Šค๋ž€? ์ค‘์ฒฉ ํด๋ž˜์Šค๋ž€ ํด๋ž˜์Šค ๋‚ด๋ถ€์— ์„ ์–ธ๋œ ํด๋ž˜์Šค๋ฅผ ๋งํ•œ๋‹ค. ๋ณดํ†ต, ํด๋ž˜์Šค๊ฐ€ ์—ฌ๋Ÿฌ ํด๋ž˜์Šค์™€ ๊ด€๊ณ„๋ฅผ ๋งบ์„ ๊ฒฝ์šฐ์—๋Š” ๋…๋ฆฝ์ ์œผ๋กœ ํด๋ž˜์Šค๋ฅผ ์„ ์–ธํ•ด์ฃผ๋Š” ๊ฒƒ์ด ์ข‹์œผ๋‚˜, ํŠน์ • ํด๋ž˜์Šค์™€๋งŒ ๊ด€๊ณ„๋ฅผ ๋งบ์„ ๊ฒฝ์šฐ์—๋Š” ์ค‘์ฒฉ ํด๋ž˜์Šค๋กœ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์ด ์œ ์ง€๋ณด์ˆ˜์— ๋„์›€์ด ๋˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๋งŽ๋‹ค. ์ค‘์ฒฉ ํด๋ž˜์Šค๋Š” ์„ ์–ธ ์œ„์น˜์— ๋”ฐ๋ผ ๋ฉค๋ฒ„ ํด๋ž˜์Šค์™€ ๋กœ์ปฌํด๋ž˜์Šค๋กœ ๊ตฌ๋ถ„๋œ๋‹ค. ๋ฉค๋ฒ„ ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค ๋ฉค๋ฒ„ ํด๋ž˜์Šค class A{ class B {...} } A๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•ด์•ผ B๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ. ์ •์  ๋ฉค๋ฒ„ ํด๋ž˜์Šค class A{ static class B {...} } A๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜์ง€ ์•Š์•„๋„ B๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ์Œ. ๋กœ์ปฌ ํด๋ž˜์Šค class A{ void method(){ class B {...} } } method()๊ฐ€ ์‹คํ–‰๋  ๋•Œ๋งŒ..

Java๐ŸŽ€ 2023.01.18