์ฃผ๋์ ์์ ์ค(474)
-
[JAVA] Optional<T>
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค! ์ค๋์ Optional์ด๋ผ๋ ๊ธฐ๋ฅ์ ๋ํด์ ๊ณต๋ถ๋ฅผ ํ๋ฒ ํด๋ณด๋ ค๊ณ ํฉ๋๋ค. ๊ทธ๋ผ ๋ฐ๋ก ์์ํ๊ฒ ์ต๋๋ค! ๐ Optional์ด๋? ๐ T Type ๊ฐ์ฒด์ ๋ํผํด๋์ค - Optional ๋ํผ ํด๋์ค์ ๋ํด ์ ๋ชจ๋ฅด์ ๋ค๋ฉด ๋ํผ ํด๋์ค ํผ๋์ ๊ด์ฌ์ ์ฃผ์ธ์! Public final class Optional{ private final T value;// T ์๋ฃํ ํ์ ์ ์ฐธ์กฐ ๋ณ์ Value ์ ์ธ .... } ์ฌ๊ธฐ์ T ํ์ ์ ๋ชจ๋ ํ์ ์ ๊ฐ์ฒด๋ฅผ ์ ์ฅํ ์ ์๊ณ , Null ๋ํ ์ ์ฅํ ์ ์๋ ๊ฒ์ด์์. ๐ Optional์ ์ฌ์ฉํ๋ ์ด์ ๐ Null์ ์ง์ ๋ค๋ฃจ๋ ๊ฒ์ ์ํํ๊ธฐ ๋๋ฌธ ๐ฌ Null์ ์ ๋ชป ๋ค๋ฃจ๊ฒ ๋๋ฉด Null Point Exception์ด ๋ฐ์ํ๊ฒ ๋๋ ๊ฒ์ด์์! ๊ทธ..
2021.06.23 -
[Java] Wrapper Class
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค! ์ค๋์ ์๋ฐ์ Wrapper Class์ ๋ํด ์์๋ณด๊ณ ์ถ์ ๊ฒ์ด์์! ์๋ฐ์ Optional์์ ํ์ํ ๊ฐ๋ ์ด๋ ๊ผญ ์์ง ํ์ จ์ผ๋ฉด ์ข๊ฒ ์ด์! ๋ฐ๋ก ์์ ํด ๋ณด๊ฒ ์ต๋๋ค! ๐ ๋ํผํด๋์ค๋(Wrapper Class)? ํ๋ก๊ทธ๋จ์ ๋ฐ๋ผ ๊ธฐ๋ณธ ํ์ ์ Data๋ฅผ ๊ฐ์ฒด๋ก ์ทจ๊ธํด์ผ ํ๋ ๊ฒฝ์ฐ๊ฐ ์๋ ๊ฒ์ด์์. ์๋ฅผ ๋ค์๋ฉด? Method์ ์ธ์๋ก ๊ฐ์ฒด ํ์ ๋ง์ด ์๊ตฌ๋๋ฉด, ๊ธฐ๋ณธ ํ์ ์ Data๋ฅผ ๊ทธ๋๋ก ์ฌ์ฉํ ์๋ ์๋ ๊ฒ์ด์์. ์ด ๋์๋ ๊ธฐ๋ณธ ํ์ ์ Data๋ฅผ ๋จผ์ ๊ฐ์ฒด๋ก ๋ณํํ ๋ค ์์ ์ ์ํํด์ผ๊ฒ ์ง์? ์ด๋ ๊ฒ 8๊ฐ์ ๊ธฐ๋ณธ ํ์ ์ ํด๋นํ๋ Data๋ฅผ ๊ฐ์ฒด๋ก ํฌ์ฅํด ์ฃผ๋ ํด๋์ค๋ฅผ ๋ํผ ํด๋์ค๋ผ๊ณ ํ๋ต๋๋ค. ๋ํผ ํด๋์ค๋ ๊ฐ๊ฐ์ ํ์ ์ ํด๋นํ๋ Data๋ฅผ ์ธ์๋ก ์ ๋ฌ๋ฐ์, ํด๋น ๊ฐ์ ๊ฐ์ง..
2021.06.22 -
[JAVA] ํจ์ํ ์ธํฐํ์ด์ค
์๋ ํ์ธ์? ์ฃผ๋ํ๋ ์ ๋๋ค! ์ค๋์ Lamda์ ๊ฐ๋ ์์ ์ฐ์ฅ์ ์์ธ ํจ์ํ ์ธํฐํ์ด์ค์ ๋ํด ๊ณต๋ถ ํด ๋ณด๋๋ก ํ๋ ๊ฒ์ด์์. Lamda๊ฐ ๋ฌด์์ธ์ง ๋ชจ๋ฅด์ ๋ค๋ฉด? ๋๋ค ํผ๋์ ๊ด์ฌ์ ์ฃผ์ธ์! ๐ ํจ์ํ ์ธํฐํ์ด์ค๋? ๐ ๋จ ํ๋์ ์ถ์ Method๋ง ์ ์ธ๋ ์ธํฐํ์ด์ค interface MyFunction { /* ํจ์ํ ์ธํฐํ์ด์ค ์์ ์ฝ๋ */ public abstract int max ( int a, int b ); } ์์ ๊ฐ์ ๋ ์๋์ ๊ฐ์ด ํด ์ฃผ๋ ๊ฒ์ด ์ข์ ๊ฒ์ด์์! @FunctionalInterface interface MyFunction { public abstract int max ( int a, int b); } ์ปดํ์ผ๋ฌ๊ฐ Annotation์ ๋ณด๊ณ , ์ฌ๋ฐ๋ฅธ์ง๋ฅผ ํ์ธ ํด ์ฃผ๊ธฐ ๋๋ฌธ์ ์ ..
2021.06.21 -
[Java] Lamda Function
์๋ ํ์ธ์? ์ฃผ๋ํ๋์ ๋๋ค! ์ค๋์ JDK 1.8๋ถํฐ ์ง์์ด ๋๋ Lamda์ ๋ํด ๊ณต๋ถ ํด ๋ณด๋๋ก ํ ๊ฒ์ด์์! Spring Boot๋ก Web Project๋ฅผ ํ๊ณ ์๋๋ฐ, Lamda์ Optional์ด ์ฌ์ฉ๋๊ธฐ์ ๊ณต๋ถ๋ฅผ ํด ๋ณด๋ ๊ฒ์ ๋๋ค. ์ด๊ฒ์ ์ค๋ช ํ๊ธฐ์ ์ ์จ ์ฐ๋ฆฌ๋ ํจ์ํ ์ธ์ด์ ๋ํด์ ์ ํ์๊ฐ ์๋ ๊ฒ์ด์์. ์๋ฐ๋ ์ฐ๋ฆฌ๊ฐ ์ ๋ฏ OOP์ธ์ด(๊ฐ์ฒด ์งํฅ ์ธ์ด)์ธ๋ฐ, JDK 1.8 ๋ถํฐ ํจ์ํ ์ธ์ด์ ๊ธฐ๋ฅ์ ์ถ๊ฐํ ๊ฒ์ด์์. ์ฌ์ค ํจ์ํ ์ธ์ด ๊ธฐ๋ฅ์ ๊ฐ์ก๋ค๋ผ๊ณ ํ๊ธฐ์๋ ์ฝํ๊ณ , ๊ทธ ๊ธฐ๋ฅ์ ํฌํจํ๋ค๋ผ๊ณ ๋ณด๋ ๊ฒ์ด ๋ง์ต๋๋ค! ํ์ด์ฌ, JavaScript ์ญ์ OOP์ด์ง๋ง, ํจ์ํ ์ธ์ด ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์๋ต๋๋ค! ๊ทธ๋ผ ์์ ํด ๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค! ๐ ๋๋ค์(Lambda Expression) ๐ ํจ์(M..
2021.06.21 -
[Java] Enum (์ด๊ฑฐํ)
Enum์ด๋? ์ปดํจํฐ ํ๋ก๊ทธ๋๋ฐ์์ ์ด๊ฑฐํ(enumerated type, enumeration), ์ด๋(enum), ํฉํฐ(factor ← R ํ๋ก๊ทธ๋๋ฐ ์ธ์ด์ ํต๊ณํ์ ๋ฒ์ฃผํ ๋ณ์์์ ๋ถ๋ฅด๋ ๋ช ์นญ)๋ ์์, ๋ฉค๋ฒ๋ผ ๋ถ๋ฆฌ๋ ๋ช ๋ช ๋ ๊ฐ์ ์งํฉ์ ์ด๋ฃจ๋ ์๋ฃํ์ธ ๊ฒ์ด์์. ์ด๊ฑฐ์ ์ด๋ฆ๋ค์ ์ผ๋ฐ์ ์ผ๋ก ํด๋น ์ธ์ด์ ์์ ์ญํ ์ ํ๋ ์๋ณ์์ด์ง์. ์ผ๋ถ ์ด๊ฑฐ์ ์๋ฃํ์ ์ธ์ด์ ๊ธฐ๋ณธ ์์๋์ด ์์ ์ ์๋ ๊ฒ์ด์์. ๋ถ๋ฆฌ์ธ ์๋ฃํ์ ์๋ก ๋ค๋ฉด ๊ฑฐ์ง(False)๊ณผ ์ฐธ(True)์ ๊ฐ์ด ๋ฏธ๋ฆฌ ์ ์๋ ์ด๊ฑฐํ์ผ๋ก ๋ณผ ์ ์์ง์. ์๋ง์ ์ธ์ด๋ ์ฌ์ฉ์๋ค์ด ์๋ก์ด ์ด๊ฑฐํ์ ์ ์ํ ์ ์๊ฒ ํ๊ณ ์๋ต๋๋ค. ์ด๊ฑฐํ์ ๊ฐ๊ณผ ๋ณ์๋ ์ผ๋ฐ์ ์ผ๋ก ๊ณ ์ ๊ธธ์ด์ ๋นํธ ๋ฌธ์์ด๋ก ๊ตฌํ๋๋ฉฐ, ์ด๋ ์ผ๋ถ ์ ์ํ๊ณผ ํธํ๋๋ ํฌ๋งท๊ณผ ํฌ๊ธฐ๋ก ๋์ด ์๋ต๋..
2021.06.20 -
Lombok Annotation ๊ด๋ จ
lombok์ด๋? Getter์ Setter๋ฅผ Annotationํํ๋ก ์ฌ์ฉํ์ฌ Method๋ฅผ ๊ตฌํํ์ง ์๊ณ , ์ฌ์ฉํ ์ ์๊ฒ ํด์ฃผ๋ ๊ฒ Java Compile ์์ ์์ ํน์ Annotation์ผ๋ก ํด๋น Code๋ฅผ ์ถ๊ฐํ ์ ์๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ. ๊ฐ๋ ์ฑ๊ณผ ์ ์ง๋ณด์์ ๋ง์ ๋์์ ์ฃผ๊ฒ๋๋, ์ ๋ชป ์ฌ์ฉํ ๊ฐ๋ฅ์ฑ์ด ๋งค์ฐ ๋์ Library. ๐ @Data ์ฌ์ฉ์ NoNo!! @Data๋ ์๋ Annotation์ ํ๋ฒ์ ํฌํจํ๋ ๊ฐ๋ ฅํ Annotation์ธ ๊ฒ์ด์์. @ToString, @EqualseAndHashCode, @Getter, @Setter, @RequiredArgsConstructor ๋ฌธ์ ๋ @Setter๋ฅผ ํฌํจํ๊ณ ์๋ค๋ ๊ฒ์ด๊ฒ ์ง์? @Setter ๋ ๊ทธ ์๋๊ฐ ๋ถ๋ช ํ์ง ์๊ณ , ๊ฐ์ฒด(์ธ์คํด์ค ๋ณ..
2021.06.17