Hamutaro - Hamtaro 4

Backend/Java 25

[JAVA] JAVA์˜ ๊ฐœ๋…๊ณผ ํŠน์ง•

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

Backend/Java 2022.01.11

[์ž๋ฐ”] DAO, DTO์˜ ์—ญํ• ๊ณผ ๊ด€๊ณ„

DAO (Data Access Object) DB์™€ ๊ฐ™์€ ์ €์žฅ์†Œ์™€ ์ƒํ˜ธ์ž‘์šฉ์„ ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ์ฒดDB์™€ ์ง์ ‘ ํ†ต์‹ ํ•˜๊ณ  SQL ์ฟผ๋ฆฌ๋ฅผ ์ˆ˜ํ–‰ํ•˜๊ฑฐ๋‚˜ ๊ฒฐ๊ณผ๋ฅผ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์œผ๋กœ ์ „๋‹ฌDAO๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด DB ๊ด€๋ จ ๋กœ์ง์„ ๋ถ„๋ฆฌํ•  ์ˆ˜ ์žˆ์–ด ์œ ์ง€๋ณด์ˆ˜๊ฐ€ ์šฉ์ดํ•˜๊ณ  ํ…Œ์ŠคํŠธ๊ฐ€ ์‰ฌ์›Œ์ง๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์ ‘๊ทผ ์บก์Аํ™” : DAO๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘๊ทผํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์บก์Аํ™”CRUD ์ž‘์—… : DAO๋Š” Create, Read, Update, Delete์™€ ๊ฐ™์€ ๊ธฐ๋ณธ์ ์ธ ๋ฐ์ดํ„ฐ ์ž‘์—… ์ˆ˜ํ–‰์œ ์ง€๋ณด์ˆ˜์„ฑ ํ–ฅ์ƒ : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ จ ๋กœ์ง์ด ์ค‘์•™ ์ง‘์ค‘ํ™”๋˜์–ด ์žˆ์–ด ์ˆ˜์ •์ด ์šฉ์ด import java.sql.Connection;import java.sql.DriverManager;import java.sql.PreparedStatement;import java.sql.Resul..

Backend/Java 2021.08.18

[์ž๋ฐ”] String๊ณผ StringBuffer์˜ ์ฐจ์ด์ 

String String ๊ฐ์ฒด๋Š” ํ•œ๋ฒˆ ์ƒ์„ฑ๋˜๋ฉด ํ• ๋‹น๋œ ๊ณต๊ฐ„์ด ๋ณ€ํ•˜์ง€ ์•Š๋Š”๋‹ค.  StringBuffer  StringBuffer๋Š” ๊ฐ์ฒด์˜ ๊ณต๊ฐ„์ด ๋ถ€์กฑํ•ด์ง€๋Š” ๊ฒฝ์šฐ ๋ฒ„ํผ์˜ ํฌ๊ธฐ๋ฅผ ์œ ์—ฐํ•˜๊ฒŒ ๋Š˜๋ฆด ์ˆ˜ ์žˆ๋‹ค. String๊ณผ StringBuffer์˜ ์ฐจ์ด์ ? String์€ ๋ถˆ๋ณ€๊ฐ์ฒด์ด๊ธฐ ๋•Œ๋ฌธ์— ๋‚ด๋ถ€์˜ ๋ฌธ์ž์—ด์„ ์ˆ˜์ •ํ•  ์ˆ˜ ์—†๋‹ค.๊ทธ๋ ‡๊ธฐ ๋•Œ๋ฌธ์— ๋ฌธ์ž์—ด์„ ์ˆ˜์ •ํ•  ๋•Œ๋งˆ๋‹ค ์ƒˆ๋กœ์šด ๋ฌธ์ž์—ด์„ ๋ฆฌํ„ดํ•œ๋‹ค. String name = "๊ธธ๋™";name += "ํ™"; "๊ธธ๋™"์— "ํ™"์„ ๋”ํ•˜๊ฒŒ ๋˜๋ฉด "๊ธธ๋™ํ™" ์ด๋ผ๋Š” ์ƒˆ๋กœ์šด String ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ๋˜๊ณ ,data๋ณ€์ˆ˜๋Š” ์ƒˆ๋กœ ์ƒ์„ฑ๋œ String๊ฐ์ฒด๋ฅผ ์ฐธ์กฐํ•˜๊ฒŒ ๋œ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ธฐ์กด์— ์žˆ๋Š” String๊ฐ์ฒด๋Š” ์ฐธ์กฐ๋˜์ง€ ์•Š๊ฒŒ ๋˜์–ด ๊ฐ€๋น„์ง€ ์ปฌ๋ ‰์…˜์˜ ๋ฉ”๋ชจ๋ฆฌํ•ด์ œ๋ฅผ ๊ธฐ๋‹ค๋ฆฌ๊ฒŒ ๋œ๋‹ค.๋ฌธ์ž์—ด์„ ํ•ฉ์ณ์ฃผ๋Š” + ์—ฐ์‚ฐ์ž๋ฅผ ..

Backend/Java 2021.08.18

[์ž๋ฐ”] ์˜ค๋ฒ„๋กœ๋”ฉ(Overloading)๊ณผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ(Overriding)

์ž๋ฐ”์—์„œ ๋‹คํ˜•์„ฑ์„ ์ง€์›ํ•˜๋Š” ๋ฐฉ๋ฒ•์œผ๋กœ ๋ฉ”์„œ๋“œ ์˜ค๋ฒ„๋กœ๋”ฉ๊ณผ ์˜ค๋ฒ„๋ผ์ด๋”ฉ์ด ์žˆ๋‹ค.  ์˜ค๋ฒ„๋กœ๋”ฉ ์˜ค๋ฒ„๋กœ๋”ฉ์ด๋ž€ ๊ฐ™์€ ์ด๋ฆ„์˜ ๋ฉ”์„œ๋“œ๋ฅผ ์—ฌ๋Ÿฌ ๊ฐœ ์ •์˜ํ•˜๋Š” ๊ฒƒ์ด๋•Œ ๋งค๊ฐœ๋ณ€์ˆ˜์˜ ํƒ€์ž…์ด ๋‹ค๋ฅด๊ฑฐ๋‚˜ ๊ฐœ์ˆ˜๊ฐ€ ๋‹ฌ๋ผ์•ผ ํ•œ๋‹ค. class Calculator { public int add(int a, int b) { return a + b; } public double add(double a, double b) { return a + b; } public int add(int a, int b, int c) { return a + b + c; }}public class Main { public static void main(String[] args) { C..

Backend/Java 2021.08.18

[์ž๋ฐ”] ์ธํ„ฐํŽ˜์ด์Šค(Interface)์™€ ์ถ”์ƒํด๋ž˜์Šค(Abstract)

์ธํ„ฐํŽ˜์ด์Šค  ์ผ์ข…์˜ ์ถ”์ƒ ํด๋ž˜์Šค๋กœ interface ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ์„ ์–ธํ•˜๊ณ ,์ƒ์†์‹œ implements ํ‚ค์›Œ๋“œ๋ฅผ ํ†ตํ•ด ์ผ๋ฐ˜ ํด๋ž˜์Šค์—์„œ ์ธํ„ฐํŽ˜์ด์Šค๋ฅผ ๊ตฌํ˜„ํ•  ์ˆ˜ ์žˆ๋‹ค.์ธํ„ฐํŽ˜์ด์Šค๋Š” ์ž์ฒด๋กœ๋Š” ๊ฐ์ฒด ์ƒ์„ฑ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๊ณ  ๋‹ค์ค‘์ƒ์†์ด ๊ฐ€๋Šฅํ•˜๋‹ค. // ์ธํ„ฐํŽ˜์ด์Šค ์ •์˜interface Animal { void makeSound(); // ์ถ”์ƒ ๋ฉ”์„œ๋“œ void move(); // ์ถ”์ƒ ๋ฉ”์„œ๋“œ}// ์ธํ„ฐํŽ˜์ด์Šค ๊ตฌํ˜„ ํด๋ž˜์Šคclass Dog implements Animal { @Override public void makeSound() { System.out.println("๋ฉ๋ฉ"); } @Override public void move() { System.o..

Backend/Java 2021.08.18