๐Ÿ’ป BackEnd/๐ŸŸจ Java 8

๐ŸŸจ [Java] [์˜ˆ์™ธ ์ฒ˜๋ฆฌ]Checked Exception VS Unchecked Exception

์ด์ „์˜ ๊ธ€์—์„œ ์˜ˆ์™ธ์ฒ˜๋ฆฌ์— ๋Œ€ํ•ด ๋‹ค๋ฃฌ์ ์ด ์žˆ๋‹ค. ๊ธ€์„ ๋‹ค์‹œ ์ฝ์–ด๋ณด๋‹ค ๋ณด๋‹ˆ Runtime Exception ์— ๋Œ€ํ•ด ์ œ๋Œ€๋กœ ์„œ์ˆ ํ•˜์ง€ ์•Š์•„์„œ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๊ฐ€ ์ค‘์š”ํ•œ ๋งŒํผ ๋‹ค์‹œ ํ•œ ๋ฒˆ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๐Ÿ“Œ 1. ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ž€? ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ž€, ์˜ˆ์™ธ๋‚˜ ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒ ๊ฐ€๋Šฅํ•œ ์ƒํ™ฉ์„ ๋ฏธ์—ฐ์— ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด์„œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฝ”๋“œ ์ƒ์œผ๋กœ ๋ฏธ๋ฆฌ ์˜ˆ์™ธ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฒƒ ๐Ÿ“Œ 2. ์˜ˆ์™ธ (Exception) ์™€ ์—๋Ÿฌ (Error) โšก ์˜ˆ์™ธ(Exception)๋ž€ ? ์˜ˆ์™ธ๋Š” Checked Exception๊ณผ Unchecked Exception์œผ๋กœ ๋‚˜๋‰œ๋‹ค. Checked Exception์€ Unchecked Exception์„ ์ œ์™ธํ•œ ๋ชจ๋“  ์˜ˆ์™ธ์ด๋‹ค. ์ปดํŒŒ์ผ ์‹œ ์˜ˆ์™ธ๋ฐœ์ƒ ์—ฌ๋ถ€๋ฅผ ์ฒดํฌํ•˜๊ณ  ์˜ˆ์™ธ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์œผ๋ฉด ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค. ๋ฐ˜๋ฉด, Unchecked ..

๐ŸŸจ [Java] [Project] ๊ฐ„๋‹จํ•œ ์‡ผํ•‘๋ชฐ ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ

๐Ÿ“Œ ์‡ผํ•‘๋ชฐ ํ”„๋กœ์ ํŠธ ์ด์ „์— ๊ธ€์„ ์“ธ ๋•Œ ์‡ผํ•‘๋ชฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์ •๋ฆฌํ•˜๋ ค๊ณ  ํ–ˆ์œผ๋‚˜ ์‹œ๊ฐ„์ด ์—†์–ด์„œ ์ด์ œ์„œ์•ผ ์“ฐ๊ฒŒ ๋˜์—ˆ๋‹ค. ์ˆœ์„œ๋Š” ์•„๋ž˜์—์„œ ์„ค๋ช…ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค. ์ž๋ฐ”๋ฅผ ์ฒ˜์Œ ์‚ฌ์šฉํ•ด์„œ ๋ถ€์กฑํ•œ ๋ถ€๋ถ„๋„ ๋งŽ์•˜๊ณ  ์‹œ๊ฐ„๋„ ๊ฝค ๊ฑธ๋ ธ๋‹ค. ๊ทผ๋ฐ ํ™•์‹คํžˆ ๊ฐ์ฒด์ง€ํ–ฅ ์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜๋‹ˆ ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•จ์„ ๋Š๊ผˆ๊ณ  ๋ฐ์ดํ„ฐ๋ฅผ ์ „๋‹ฌํ•  ๋•Œ DTO๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๋งค์šฐ ํŽธํ•˜๋‹ค๋Š” ์ƒ๊ฐ์ด ๋“ค์—ˆ๋‹ค. ๐Ÿ“Œ ๋ชฉ์ฐจ ๊ฐœ๋ฐœ ํ™˜๊ฒฝ ์š”๊ตฌ์‚ฌํ•ญ ์ •์˜ ๋ฐ ๋ชจ๋ธ๋ง ์š”๊ตฌ์‚ฌํ•ญ ์ •์˜์„œ ๋ฉ”๋‰ดํŠธ๋ฆฌ ERD ์„œ๋น„์Šค ํ”Œ๋กœ์šฐ ์ฐจํŠธ ์ฃผ์š” ์ฝ”๋“œ ์„ค๋ช… ๋ชฉ์ฐจ๋Š” ์ด๋ ‡๊ฒŒ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ์ฃผ์š” ์ฝ”๋“œ ์„ค๋ช…๋งŒ ํ• ๊นŒ ํ•˜๋‹ค๊ฐ€ ์ „์ฒด์ ์ธ ๋‚ด์šฉ์„ ๋‹ค๋ฃจ๋ฉด์„œ ๋ณต์Šตํ•˜๋ ค๊ณ  ํ•œ๋‹ค. ๐Ÿ“‘ 1 . ๊ฐœ๋ฐœ ํ™˜๊ฒฝ IDE : Eclipse Configuration : Github [ https://github.com/wnstjd9701/s..

๐ŸŸจ [Java] [ํด๋ž˜์Šค] ์ž๋ฐ” ํด๋ž˜์Šค

๐ŸŽ ํด๋ž˜์Šค ? ๊ฐ์ฒด๋ฅผ ์ •์˜ํ•ด ๋†“์€ ๊ฒƒ ๊ฐ์ฒด์˜ ์„ค๊ณ„๋„ ๋˜๋Š” ํ‹€ ๊ฐ์ฒด๋ฅผ ์ƒ์„ฑํ•˜๋Š”๋ฐ ์‚ฌ์šฉ ๐Ÿ“– ํด๋ž˜์Šค์™€ ๊ฐ์ฒด, ์ธ์Šคํ„ด์Šค ์ฒ˜์Œ์— ํด๋ž˜์Šค, ์ธ์Šคํ„ด์Šค, ๊ฐ์ฒด์™€ ๊ฐ™์€ ๋‹จ์–ด๋ฅผ ์ ‘ํ•˜๊ณ  ์–ด๋ ค์›€์ด ์žˆ์—ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ์„ค๋ช…ํ•˜๋ฉด ์‰ฝ๊ฒŒ ์ดํ•ด๊ฐ€ ๋  ๊ฒƒ์ด๋‹ค. class Product{ String model; String name; String category; boolean power; //๊ธฐ๋Šฅ(๋ฉ”์„œ๋“œ) void turnOn(){ this.power = 1; return this.power; } boolean turnOff(){ this.power = 0; return this.power; } } ์œ„์™€ ๊ฐ™์ด Product ๋ผ๋Š” ํด๋ž˜์Šค๊ฐ€ ์žˆ๋‹ค๊ณ  ํ•˜์ž. ์ƒํ’ˆ์ด๋ผ๋Š” ํด๋ž˜์Šค๊ฐ€ ์กด์žฌํ•˜๋Š”๋ฐ ๊ณผ์—ฐ ์–ด๋–ค ์ƒํ’ˆ์ผ๊นŒ? ํ•ธ๋“œํฐ, TV, ๋งˆ์šฐ์Šค, ํ‚ค๋ณด..

๐ŸŸจ [Java] Exception(์˜ˆ์™ธ ์ฒ˜๋ฆฌ)

์ž๋ฐ”์˜ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ(Exception Handling) ์ž๋ฐ”์—์„œ ์˜ˆ์™ธ(exception)์ด๋ž€ ์‚ฌ์šฉ์ž์˜ ์ž˜๋ชป๋œ ์กฐ์ž‘์ด๋‚˜ ๊ฐœ๋ฐœ์ž์˜ ์ฝ”๋”ฉ ์‹ค์ˆ˜๋กœ ์ธํ•ด ๋ฐœ์ƒํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ ์˜ค๋ฅ˜๋ฅผ ๋งํ•œ๋‹ค. ์˜ˆ์™ธ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด ํ”„๋กœ๊ทธ๋žจ์€ ๊ณง๋ฐ”๋กœ ์ข…๋ฃŒ๋˜๊ธฐ ๋•Œ๋ฌธ์— ์—๋Ÿฌ์™€ ๋™์ผํ•˜๋‚˜, ์˜ˆ์™ธ๋Š” ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ํ†ตํ•ด ํ”„๋กœ๊ทธ๋žจ์„ ์ข…๋ฃŒํ•˜์ง€ ์•Š๊ณ  ์ •์ƒ ์‹คํ–‰ ์ƒํƒœ๊ฐ€ ์œ ์ง€๋˜๋„๋ก ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ž๋ฐ”์˜ ์˜ˆ์™ธ์—๋Š” ์ผ๋ฐ˜ ์˜ˆ์™ธ์™€ ์‹คํ–‰ ์˜ˆ์™ธ๊ฐ€ ์žˆ๋‹ค. ์ผ๋ฐ˜ ์˜ˆ์™ธ๋Š” Checked Exception, ์‹คํ–‰ ์˜ˆ์™ธ๋Š” Unchecked Exception ์ด๋ผ๊ณ  ๋ถ€๋ฅธ๋‹ค. ์ผ๋ฐ˜ ์˜ˆ์™ธ(Checked Exception)๋Š” ๋ฐ˜๋“œ์‹œ ๊ฐœ๋ฐœ์ž๊ฐ€ ์˜ˆ์™ธ ์ฒ˜๋ฆฌ๋ฅผ ์ง์ ‘ ์ง„ํ–‰ํ•ด์•ผ ํ•œ๋‹ค. ๋ฐ˜๋ฉด ์‹คํ–‰ ์˜ˆ์™ธ(Unchecked Exception)์€ ๊ฐœ๋ฐœ์ž๊ฐ€ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜์ง€ ์•Š์•„๋„ ๋œ๋‹ค. ์‹คํ–‰ ์˜ˆ์™ธ(Unchecked..

๐ŸŸจ [Java] ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ / ๋ชจ๋“ˆ

์ž๋ฐ” ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ž€ ? ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋Š” ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ์‹œ ํ™œ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค๋“ค์„ ๋ชจ์•„๋†“์€ ๊ฒƒ์„ ๋งํ•œ๋‹ค. ์ผ๋ฐ˜์ ์œผ๋กœ JAR ์••์ถ• ํŒŒ์ผ ํ˜•ํƒœ๋กœ ์กด์žฌํ•œ๋‹ค. JAR ํŒŒ์ผ์—๋Š” ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค์˜ ๋ฐ”์ดํŠธ์ฝ”๋“œ ํŒŒ์ผ์ด ์••์ถ•๋˜์–ด ์žˆ๋‹ค. ํŠน์ • ํด๋ž˜์Šค์™€ ์ธํ„ฐํŽ˜์ด์Šค๊ฐ€ ์—ฌ๋Ÿฌ ์‘์šฉํ”„๋กœ๊ทธ๋žจ์„ ๊ฐœ๋ฐœํ•  ๋•Œ ๊ณตํ†ต์œผ๋กœ ์ž์ฃผ ์‚ฌ์šฉ๋œ๋‹ค๋ฉด JAR ํŒŒ์ผ๋กœ ์••์ถ•ํ•ด์„œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋กœ ๊ด€๋ฆฌํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ํ”„๋กœ๊ทธ๋žจ ๊ฐœ๋ฐœ ์‹œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜๋ ค๋ฉด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ JAR ํŒŒ์ผ์„ ClassPath์— ์ถ”๊ฐ€ํ•ด์•ผ ํ•œ๋‹ค. ClassPath๋ž€ ๋ง ๊ทธ๋Œ€๋กœ ํด๋ž˜์Šค๋ฅผ ์ฐพ๊ธฐ ์œ„ํ•œ ๊ฒฝ๋กœ์ด๋‹ค. my_lib ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ Eclipse ๊ธฐ์ค€์œผ๋กœ [File] - [New] - [Java Project] ๋ฅผ ์„ ํƒํ•œ๋‹ค. Project name ์€ my_lib์œผ๋กœ ์ ..

๐ŸŸจ [Java] ๋ฌผํ’ˆ ์žฌ๊ณ  ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ

๋ฌผํ’ˆ ์žฌ๊ณ  ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ ๋งŒ๋“ค๊ธฐ ์•„์ง ํด๋ž˜์Šค์™€ ์ƒ์†์„ ๋ฐฐ์šฐ์ง€ ์•Š์€ ์ƒํƒœ์—์„œ ์žฌ๊ณ  ๊ด€๋ฆฌ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด ๋ณด๋„๋ก ํ•˜์ž. ์›๋ž˜ DB๋ฅผ ์—ฐ๊ฒฐํ•ด์•ผ ํ•˜์ง€๋งŒ ์ง€๊ธˆ๊นŒ์ง€ ๋ฐฐ์šด ๊ณผ์ •์œผ๋กœ๋Š” ์—ฐ๊ฒฐํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ๊ทธ ๊ณผ์ •์€ ์กฐ๊ธˆ ๋” ๋ฐฐ์šฐ๊ณ  ๋‚˜๋ฉด ๊ด€๋ฆฌ์ž์™€ ๊ตฌ๋งค์ž๋ฅผ ๋‚˜๋ˆ„๊ณ  DB๋ฅผ ์—ฐ๊ฒฐํ•ด์„œ ์ œ๋Œ€๋กœ๋œ ํ”„๋กœ๊ทธ๋žจ์„ ๋งŒ๋“ค์–ด ๋‹ค์‹œ ๋‹ค๋ฃจ๋„๋ก ํ•˜๊ฒ ๋‹ค. ์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜์”ฉ ์‚ดํŽด๋ณด์ž. static final int MAX = 100; // ๋ฐฐ์—ด ์ตœ๋Œ€ ํฌ๊ธฐ static int[] productNumber = new int[MAX]; // ๋ฌผํ’ˆ ๋ฒˆํ˜ธ static String[] productName = new String[MAX]; // ๋ฌผํ’ˆ ์ด๋ฆ„ static int[] productPrice = new int[MAX]; // ๋ฌผํ’ˆ ๊ฐ€๊ฒฉ static ..

๐ŸŸจ [Java] (static)์ •์  ๋ณ€์ˆ˜, ๋ฉ”์†Œ๋“œ

Static ์ด๋ž€? Java์—์„œ Static ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋ฉ”๋ชจ๋ฆฌ์— ํ•œ๋ฒˆ ํ• ๋‹น๋˜์–ด ํ”„๋กœ๊ทธ๋žจ์ด ์ข…๋ฃŒ๋  ๋•Œ ์—†์–ด์ง€๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•œ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ์˜์—ญ์— ๋Œ€ํ•ด ์ดํ•ด๋ฅผ ํ•˜๊ณ  ์žˆ๋‹ค๋ฉด ์กฐ๊ธˆ ์‰ฌ์šธ ๊ฒƒ์ด๋‹ค. ์šฐ๋ฆฌ๊ฐ€ ์ƒ์„ฑํ•œ Class๋Š” Static ์˜์—ญ์— ์ƒ์„ฑ์ด ๋˜๊ณ , new ์—ฐ์‚ฐ์„ ํ†ตํ•ด ์ƒ์„ฑํ•œ ๊ฐ์ฒด๋Š” Heap์˜์—ญ์— ํ• ๋‹น์ด ๋œ๋‹ค. ์ด๋Ÿฌํ•œ ์ด์œ  ๋•Œ๋ฌธ์— String ํด๋ž˜์Šค์˜ ๋น„๊ต๋ฅผ ๋™๋“ฑ์—ฐ์‚ฐ์ž(==, !=) ์ด ์•„๋‹Œ equal()์„ ํ†ตํ•ด ๋น„๊ต๋ฅผ ํ•œ๋‹ค. ์Šคํƒ์—์„œ ํด๋ž˜์Šค์˜ ์ฃผ์†Œ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ™์€ ๋ฌธ์ž์—ด ์ด๋”๋ผ๋„ ๋™๋“ฑ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‹ค๋ฅด๋‹ค๊ณ  ๋‚˜์˜ค๋Š” ๊ฒƒ์ด๋‹ค. ๊ฐ์ฒด์˜ ์ƒ์„ฑ์‹œ ํ• ๋‹น๋œ Heap ์˜์—ญ์˜ ๋ฉ”๋ชจ๋ฆฌ๋Š” GC(Garbage Collector)๋ฅผ ํ†ตํ•ด ์ˆ˜์‹œ๋กœ ๊ด€๋ฆฌ๋ฅผ ๋ฐ›๋Š”๋‹ค. ํ•˜์ง€๋งŒ Static ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด Static ์˜์—ญ์— ..

๐ŸŸจ [Java] ๊ฐ์ฒด์ง€ํ–ฅ ํ”„๋กœ๊ทธ๋ž˜๋ฐ(Object Oriented Programming)

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