๐ป JAVA/์ ๋ฆฌ์ ๋ฆฌ์ ๋ฆฌ
๋ชฉํ ์๋ฐ์ ํจํค์ง์ ๋ํด ํ์ตํ์ธ์. ํ์ตํ ๊ฒ (ํ์) package ํค์๋ import ํค์๋ ํด๋์คํจ์ค CLASSPATH ํ๊ฒฝ๋ณ์ -classpath ์ต์
์ ๊ทผ์ง์์(์ ๊ทผ์ ์ด์) pacakage ํค์๋ ์ฐ๋ฆฌ๊ฐ ์ปดํจํฐ์์ ํ ํด๋ ์์ ๋น์ทํ ์ฑ์ง์ด ์๋ ํ์ผ๋ค์ ๋ฃ์ด์ ์ ๋ฆฌํ๋ ๊ฒ ์ฒ๋ผ ์๋ฐ์ ํจํค์ง๋ ์ด๊ฒ๊ณผ ๋์ผํ ๊ฐ๋
์ด๋ค. ์ฅ์ pacakage๋ ํด๋์ค์ ๋ถ๋ฅ๊ฐ ์ฉ์ดํ๋ค. (๋น์ทํ ๊ฒ ๋ผ๋ฆฌ ๋ฌถ๋๋ค) ํจํค์ง๊ฐ ๋ค๋ฅด๋ค๋ฉด ๋์ผํ ํด๋์ค๋ช
์ ์ฌ์ฉํ ์ ์๋ค. Package ๊ณ์ธต FQCN (Fully Qualified Class Name) ๋ชจ๋ ํด๋์ค์๋ ํจํค์ง๊ฐ ์๋ค. String ํด๋์ค์ ํจํค์ง๋ java.lang ์ด๋ฉฐ, FQCN์ java.lang.String์ด ๋๋ค. ์์ Accountํด๋์ค์ ..
๐ป JAVA/์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ
์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ๊ธฐ๋ณธํธ์ ๊ณต๋ถํ๋ฉฐ ์ ๋ฆฌํ ๋ด์ฉ์
๋๋ค. ์๋ฐ ORM ํ์ค JPA ํ๋ก๊ทธ๋๋ฐ - ๊ธฐ๋ณธํธ - ์ธํ๋ฐ JPA๋ฅผ ์ฒ์ ์ ํ๊ฑฐ๋, ์ค๋ฌด์์ JPA๋ฅผ ์ฌ์ฉํ์ง๋ง ๊ธฐ๋ณธ ์ด๋ก ์ด ๋ถ์กฑํ์ ๋ถ๋ค์ด JPA์ ๊ธฐ๋ณธ ์ด๋ก ์ ํํํ๊ฒ ํ์ตํด์ ์ด๋ณด์๋ ์ค๋ฌด์์ ์์ ์๊ฒ JPA๋ฅผ ์ฌ์ฉํ ์ ์์ต๋๋ค. ์ด๊ธ ์น ๊ฐ๋ฐ ํ๋ก๊ทธ๏ฟฝ www.inflearn.com ๋ชฉ์ฐจ JPQL ์๊ฐ ํ๋ก์ ์
(SELECT) ํ์ด์ง ์กฐ์ธ ์๋ธ์ฟผ๋ฆฌ JPQL ํ์
ํํ๊ณผ ๊ธฐํ์ ์กฐ๊ฑด์(CASE ๋ฑ๋ฑ) JPQL ํจ์ ๐ JPQL ์๊ฐ JPQL์ ๊ฐ์ฒด์งํฅ ์ฟผ๋ฆฌ ์ธ์ด์ด๋ค. ๋ฐ๋ผ์ ํ
์ด๋ธ์ ๋์์ผ๋ก ์ฟผ๋ฆฌํ๋ ๊ฒ์ด ์๋๋ผ ์ํฐํฐ ๊ฐ์ฒด๋ฅผ ๋์์ผ๋ก ์ฟผ๋ฆฌํ๋ค. JPQL์ SQL์ ์ถ์ํํด์ ํน์ ๋ฐ์ดํฐ๋ฒ ์ด์ค SQL์ ์์กดํ์ง ์๋๋ค. JPQ..
๐ป JAVA/์ ๋ฆฌ์ ๋ฆฌ์ ๋ฆฌ
๊ฐ์ฒด, ์ธ์คํด์ค์ ๊ฐ๋
์ ์ดํดํ๊ธฐ ์ํด ์ ๋ฆฌํ๋ ๋ด์ฉ์
๋๋ค. ํด๋์ค (Class) ๊ฐ๋
๊ฐ์ฒด๋ฅผ ๋ง๋๋ ์ค๊ณ๋ ๋๋ ํ /* ํด๋์ค */ public class Car { ... } ๊ฐ์ฒด (Object) ๊ฐ๋
์ํํธ์จ์ด ์ธ๊ณ์ ๊ตฌํํ ๋์ ํด๋์ค์ ์ ์ธ๋ ๋ชจ์ ๊ทธ๋๋ก ์์ฑ๋ ์ค์ฒด ์ค๊ณ๋(ํด๋์ค)์์ ๋ง๋ค์ด๋ธ ์ ํ(?) ํน์ง ๋ชจ๋ ๋ ํผ๋ฐ์ค ํ์
์ ๊ฐ์ฒด๋ผ๊ณ ๋ถ๋ฅด๊ธฐ๋ ํ๋ค. ๊ฐ์ฒด๋ ๋ชจ๋ ์ธ์คํด์ค๋ฅผ ํฌ๊ดํ๋ ์๋ฏธ๋ฅผ ๊ฐ๋๋ค. OOP ๊ด์ ์์ ํด๋์ค ํ์
์ผ๋ก ์ ์ธ๋์์ ๋ ๊ฐ์ฒด๋ผ๊ณ ๋ถ๋ฅธ๋ค. public class Main { public static void main(String[] args) { Car santafe, tucson;// ๊ฐ์ฒด } } ์ธ์คํด์ค (Instance) ๊ฐ๋
์ค๊ณ๋๋ฅผ ๋ฐํ์ผ๋ก ์ํํธ์จ์ด ์ธ๊ณ..
๐ป JAVA/์ ๋ฆฌ์ ๋ฆฌ์ ๋ฆฌ
๋ด๊ฐ ๋๋ฌด ์๋ฐ์ ๊ธฐ์ด์ ๋ํด์ ๊ณต๋ถ๋ฅผ ์ ๋๋ก ์ํ๋ค๊ณ ์๊ฐํด์ ๋ค์ ์ ๋ฆฌํ๊ฒ ๋์๋ค.. Call By Value ? Call By Reference ? ๋ฉ์๋์์ ์ธ์๊ฐ์ ๋ฐ์ ๋, ๊ฐ์ ์ํ ํธ์ถ์ธ์ง, ์ฐธ์กฐ์ ์ํ ํธ์ถ์ธ์ง ๊ฒฐ๋ก ๋ถํฐ ๋งํ์๋ฉด ์๋ฐ๋ Call By Value ๋ฐฉ์์ด๋ค. public class Test{ static void changeString(String s){ s = new String("new"); } public static void main(String[] args){ String a = "old"; System.out.println(a); changeString(a); System.out.println(a); // old? new? ๋ญ๊ฐ ์ถ๋ ฅ๋ ๊น } } ์คํ๊ฒฐ๊ณผ old ol..
๐ป JAVA/์ ๋ฆฌ์ ๋ฆฌ์ ๋ฆฌ
ํ์ต ํ ๋ด์ฉ๋ค ์๋ฐ ์์์ ํน์ง super ํค์๋ ๋ฉ์๋ ์ค๋ฒ๋ผ์ด๋ฉ ๋ค์ด๋๋ฏน ๋ฉ์๋ ๋์คํจ์น (Dynamic Method Dispatch) ์ถ์ ํด๋์ค final ํค์๋ Object ํด๋์ค ์๋ฐ ์์์ ํน์ง ์์์ ๋งค์ฐ ์น๋ช
์ ์ธ ์คํด : "์์์ ์ฝ๋์ ์ฌํ์ฉ์ ์ํ ๋ฌธ๋ฒ์
๋๋ค." (X) "์ฐ๊ด๋ ์ผ๋ จ์ ํด๋์ค๋ค์ ๋ํด ๊ณตํต์ ์ธ ๊ท์ฝ์ ์ ์ํ ์ ์์ต๋๋ค." (O) ์์์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ํน์ฑ ๋ถ๋ชจํด๋์ค์ ํ๋, ๋ฉ์๋๋ง ์์๋๋ฉฐ, ์์ฑ์์ ์ด๊ธฐํ ๋ธ๋ก์ ์์๋์ง ์๋๋ค. ๋ถ๋ชจ ํด๋์ค์ private, default๋ก ์ค์ ๋ ๋ฉค๋ฒ๋ ์์ ํด๋์ค์์ ์์ ๋ฐ์ง๋ง ์ ๊ทผํ ์๋ ์๋ค. Animal ํด๋์ค public class Animal { String name; String bark; public void..
๐ป JAVA/์ ๋ฆฌ์ ๋ฆฌ์ ๋ฆฌ
int ํ์ ๋ฒ์๋ ์ฝ -21์ต๋ถํฐ ~ 21์ต ๊น์ง ์ด๋ค. ๋ง์ฝ์ ์๋์ ๊ฒฝ์ฐ์ ํ๊ท ์ ๊ตฌํ๋ฉด ์ด๋ค ๊ฐ์ด ๋์ฌ๊น? (์กฐ๊ฑด, num1๊ณผ num2๋ ๊ฐ ๊ฐ intํ์ ์ต๋๊ฐ์ ๋๊ธฐ์ง ์๋๋ค.) int num1 = 2_100_000_000; int num2 = 2_100_000_000; int avg = (num1 + num2) / 2; System.out.println("ํ๊ท ๊ฐ : " + avg); ์คํ ๊ฒฐ๊ณผ -47,483,648// ์ฐ๋ ๊ธฐ ๊ฐ์ด ๋์ค๊ฒ ๋๋ค.(์ค๋ฒํ๋ก์ฐ) ๊ธฐ๋ ํ๋ ๊ฐ์ 20์ต์ด์ง๋ง, 21์ต์ ๋์ด๊ฐ๋ฉด์ ์ค๋ฒํ๋ก์ฐ๊ฐ ๋ฐ์ํด์ -147.. ๊ฐ์ด ๋์ค๊ฒ ๋๋ ๊ฒ์ด๋ค. ๊ทธ๋ ๋ค๋ฉด, ์ด๋ฅผ ๋ฐฉ์งํ ํ๊ท ๊ตฌํ๋ ๋ฐฉ๋ฒ์ ? int num1 = 2_100_000_000; int num2 = 2_100_0..