๋ชฉ๋ก๐ฅ BE ๋ฐฑ์๋ (118)
Bibi's DevLog ๐ค๐
๋๋ค ์ฐธ๊ณ : ''์๋ฐ์ ์ ์'' ์ ๋ณด๊ณ ๊ณต๋ถํ์ต๋๋ค. ๋๋ค์ Lambda expression JDK1.8๋ถํฐ ๋์ ๋ ๊ฐ๋ ์ด๋ค. ๋๋ค์์ ๋์ ์ผ๋ก ์๋ฐ๋ ๊ฐ์ฒด์งํฅ์ธ์ด์ธ ๋์์ ํจ์ํ ์ธ์ด๊ฐ ๋์๋ค. ๋๋ค์์ด๋? : ๋ฉ์๋๋ฅผ ํ๋์ ์(expression)์ผ๋ก ํํํ ๊ฒ. ๋๋ค์์ผ๋ก ํจ์๋ฅผ ๊ฐ๋ตํ ์์ผ๋ก ํํํ ์ ์๋ค. (๋๋ค์์ ์ต๋ช ํด๋์ค์ ๊ฐ์ฒด์ ๋๋ฑํ๋ค) ๋ฉ์๋๋ฅผ ๋๋ค์์ผ๋ก ํํํ๋ฉด ๋ฉ์๋ ์ด๋ฆ๊ณผ ๋ฆฌํด๊ฐ์ด ์์ด์ง๋ค. ๋๋ฌธ์ ๋๋ค์์ '์ต๋ช ํจ์ anonymous function' ๋ผ๊ณ ๋ ํ๋ค. (i) -> (int)(Math.random()*5)+1; int method() { return (int)(Math.random()*5) + 1; } ์์ ๋๋ค์..
StringBuilder, StringBuffer ๊ทธ๋ฆฌ๊ณ String ์ฐธ๊ณ : ์๋ฐ์ ์ , ์๋ฐ์ ์ ์ ์๋ฐAPI (๋ก์น์ ์ถ์ฒ๐), ๊ตฌ๊ธ๋ง String๊ณผ StringBuilder, StringBuffer์ ์ฐจ์ด์ String์ immutableํ ๊ฐ์ฒด, ์ฆ ๋ถ๋ณ๊ฐ์ฒด์ด๋ค. ํ ๋ฒ ๋ง๋ค์ด์ง๋ฉด ๋ ์ด์ ๊ทธ ๊ฐ์ ๋ฐ๊ฟ ์ ์๋ค. ์๋ฅผ ๋ค์ด String๋ฌธ์์ด A์ B๋ฅผ ๋ํ๋ฉด, A์ B๋ฅผ ๋ํด AB๊ฐ ๋๋ค (โ) AB๋ผ๋ ์๋ก์ด ๊ฐ์ฒด๋ฅผ ๋ง๋ค๊ณ ๊ธฐ์กด ๊ฐ์ฒด A๋ ๋ฒ๋ ค์ง๋ค . (โญ) ๊ทธ๋ ๊ธฐ ๋๋ฌธ์, ๋ง์ฝ ํ๋์ String์ ๊ณ์ ๋ํ๋ ์์ ์ ํ๋ ์ฝ๋๋ฅผ ์ง ๋ค๋ฉด ๊ณ์ ๋ฒ๋ ค์ง๋ ์ฐ๋ ๊ธฐ๋ฅผ ๋ง๋ค๊ฒ ๋๋ค. ์ด๋ฌํ String์ ๋จ์ ์ ๋ณด์ํ๊ธฐ ์ํด ๋์จ ๊ฒ์ด StringBuffer์ StringBuilder์ด๋ค. Stri..
์๋ฐ try-with-resources ์ฐธ๊ณ : ๐badldung, stackoverflow, ๊ตฌ๊ธ๋ง1, ๊ตฌ๊ธ๋ง2 ๊ฐ์ฌํฉ๋๋ค๐โ๏ธ try-with-resources๋? : try()์ ์์ ๊ฐ์ฒด๋ฅผ ์ ์ธํด ์ฌ์ฉํ๋ฉด, try ๋ธ๋ก์ด ๋๋ ๋ ํด๋น ์์์ ์๋์ผ๋ก ์ข ๋ฃ(close())ํด ์ค๋ค. ๋จ, ์ ์ธ๋ ์์์ AutoCloseable ์ธํฐํ์ด์ค๊ฐ ๊ตฌํ๋ ๊ฐ์ฒด์ฌ์ผ ํ๋ค. try-with-resources์ฌ์ฉํ๊ธฐ try () ์๊ดํธ ๋ด์ ์ฌ์ฉํ ์์์ ์ ์ธํ๋ค. AutoCloseable ์ธํฐํ์ด์ค๊ฐ ๊ตฌํ๋์ด ์์ด์ผ ํ๋ค. try (PrintWriter writer = new PrintWriter(new File("test.txt"))) { writer.println("Hello World"); } ์ฌ์ฉ์ ์ง..
์๋ฐ Value Object (VO) ๊ฐ ๊ฐ์ฒด ValueObject๋?์ ๋ณด๊ณ ๊ณต๋ถํ์ต๋๋ค. ValueObject๋ ๊ฐ์ผ๋ก๋ง ์ด๋ฃจ์ด์ง ๊ฐ์ฒด์ด๋ค. ์ ํํ ์๋ฏธ๋ Value Object Pattern ์ผ๋ก, ๊ฐ์ฒด๋ฅผ ๊ฐ์ฒ๋ผ ์ธ ์ ์๋ค. Primitive Obsession - ๊ฐ์ฒด๋ฅผ ๋ํ๋ด๊ธฐ ์ํด ๊ธฐ๋ณธํ์ ์ ์ฐ๋ ๋์ ๊ด์ต. ๊ฐ ๊ฐ์ฒด๋ฅผ ๋ํ๋ด๊ธฐ ์ํด์๋ ๊ธฐ์กด ์๋ฃํ์ ์ฌ์ฉํ๋ ๊ฒ ์๋ ๊ทธ ๊ฐ์ฒด๋ฅผ ์ํ ์๋ฃํ์ ๋ง๋ค์ด ์ฌ์ฉํ๋ ๊ฒ์ด ์ข๋ค. Value Object๋ ๊ทธ ์ค ํ๋์ด๋ค. Value Object ๊ฐ ๊ฐ์ฒด ๋.. ๊ฐ์ฒด์ ์ธ์คํด์ค๋ณ์๊ฐ ์์ฑ์๋ฅผ ํตํด ์ค์ ๋ ํ์๋ ๊ฒฐ์ฝ ๋ณํ์ง ์์์ ๋ณด์ฅํจ. (๊ฐ์ฒด์งํฅ์ ์ผ๋ก) uniqueํ ๊ตฌ๋ถ์๊ฐ ์๋ค. ๊ฐ์ฒด๋ฅผ ์๋ณํ๋ ๊ฒ ๋ฌด์๋ฏธํ๊ธฐ ๋๋ฌธ. (๋จ์ํ ''๊ฐ''์ด๊ธฐ ๋๋ฌธ์..
์๋ฐ enum ์ด ๊ธ์ '์๋ฐ์ ์ ์' ๋ฐ ๊ตฌ๊ธ๋ง, ์์ ๋ด์ฉ์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ๋์์ต๋๋ค. enum (์ด๊ฑฐํ) ์ด๋? : ์๋ก ์ฐ๊ด๋ ์ฌ๋ฌ ์์๋ฅผ ์ ์ํ ์ ์๋ ์๋ฃํ(ํด๋์ค). java.lang.Enumํด๋์ค๊ฐ ๋ชจ๋ enum์ ์กฐ์ ํด๋์ค์ด๋ค. ์์๋ค์ ๊ฐ, ๊ทธ๋ฆฌ๊ณ ํ์ ๊น์ง ๊ด๋ฆฌํ ์ ์๋ค. enum์ ํน์ง enum์ ์์ฑ์๋ ํญ์ private์ด๋ค. ์ฆ, enum์ ์์ฑ์๋ ๋ด๋ถ์ ์ผ๋ก private์ผ๋ก ์ ์ธ๋์ด ์๊ธฐ ๋๋ฌธ์ ์ธ๋ถ์์ ํธ์ถํ ์ ์๋ค. ์ฐ๋ฆฌ๊ฐ enum ์ธ์คํด์ค๋ฅผ ๋ง๋๋ ๊ฒ ์๋ JVM์ด ์ง์ ๋ง๋ค์ด ์ฃผ๊ธฐ ๋๋ฌธ. ๊ฐ์ ๋ฐ๊ฟ ์ ์๊ฒ ํ๊ธฐ ์ํด ์์ฑ์๊ฐ ํญ์ private์ด๋ค. enumํด๋์ค์ enum์์๋ฅผ ์ ์ฅํ๊ธฐ ์ํ ์ธ์คํด์ค ๋ณ์๋ ๋ณดํต final์ด์ด์ผ ํ๋ค. ๊ฐ์ en..
final ('์๋ฐ์ ์ ' ์ ์ฐธ๊ณ ํ๋ฉฐ ๋ด์ฉ์ ์ ๋ฆฌํ์ต๋๋ค) ์๋ฐ ์์ฝ์ด ์ค ํ๋์ธ final ์ ํด๋์ค, ๋ฉ์๋, ๋ณ์์ ์ฌ์ฉ ๊ฐ๋ฅํ๋ค. final ํด๋์ค ํด๋์ค๋ฅผ final๋ก ์ ์ธ ์, ๋ค๋ฅธ ํด๋์ค์์ ํ์ฅํด์ ์ธ ์ ์๋ค. (extendsํ ์ ์๋ค) public final class FinalClass() { ... } ์ ๊ทผ์ ์ด์์ class ์ฌ์ด์ ์ถ๊ฐํ๋ค. ๋ ์ด์ ํ์ฅํด์๋ ์ ๋๋ ํด๋์ค์ ์ฌ์ฉํจ ๋๊ตฐ๊ฐ ์ด ํด๋์ค๋ฅผ ์์๋ฐ์ ๋ด์ฉ์ ๋ณ๊ฒฝํ๋ ๊ฒ์ ๋ฐฉ์งํจ final ๋ฉ์๋ ๋ฉ์๋๋ฅผ final๋ก ์ ์ธ ์, ํด๋น ๋ฉ์๋๋ฅผ Overridingํ ์ ์๋ค. public final void finalMethods() { ... } ๋๊ตฐ๊ฐ ์ด ๋ฉ์๋๋ฅผ ์ค๋ฒ๋ผ์ด๋ฉํด ๋ฎ์ด์ฐ๋ ๊ฒ์ ๋ฐฉ์งํจ f..
this์ this() (์ด ๋ด์ฉ์ ''์๋ฐ์ ์ ์''์ ์ฐธ๊ณ ํด ์์ฑ๋์์ต๋๋ค.๐โ๏ธ) this์ this()๋ ๋น์ทํด ๋ณด์ด์ง๋ง ์ ํ ๋ค๋ฅธ ๊ฒ์ด๋ค. ์์ฝํ์๋ฉด this๋ "์ฐธ์กฐ ๋ณ์"์ด๊ณ , this()๋ ์์ฑ์์ด๋ค. this ์ธ์คํด์ค ์์ ์ ๊ฐ๋ฆฌํค๋ ์ฐธ์กฐ๋ณ์์ด๋ค. ์ธ์คํด์ค๋ณ์์ ์์ฑ์์ ๋งค๊ฐ๋ณ์์ ์ด๋ฆ์ด ๊ฐ์ ๋, ์ธ์คํด์ค๋ณ์๋ฅผ ๋ํ๋ด๊ธฐ ์ํด ์ฌ์ฉํ๋ ์๋ฐ ์์ฝ์ด์ด๋ค. ์ธ์คํด์ค์ ์ฃผ์๊ฐ์ด ์ ์ฅ๋์ด ์๋ค. this๋ ๋ชจ๋ ์์ฑ์์ ์ธ์คํด์ค๋ฉ์๋์ ์ง์ญ๋ณ์๋ก ์จ๊ฒจ์ ธ ์๋ค. โป this๋ ์ธ์คํด์ค ๋ฉค๋ฒ๋ง ์ฌ์ฉํ ์ ์๋ค. this() ๋๋ this(๋งค๊ฐ๋ณ์) ๊ฐ์ ํด๋์ค์ ๋ค๋ฅธ ์์ฑ์๋ฅผ ํธ์ถํ ๋ ์ฌ์ฉํ๋ ๊ตฌ๋ฌธ์ด๋ค. ์์ฑ์ ๊ฐ์ ์๋ก ํธ์ถํ ์ ์๋ ๋ ๊ฐ์ง ์กฐ๊ฑด ์์ฑ์ ์ด๋ฆ์ผ๋ก..
List ๋ฆฌ์คํธ = ArrayList ๋ก ์ ์ธํ๋ ์ด์ ์ถ์ฒ : List์ ArrayList, ์ ์บ์คํ ์ ํ๋ ์ด์ . ๊ฐ์ฌํฉ๋๋ค๐ List list = new ArrayList();` `ArrayList list = new ArrayList(); ๋๋ถ๋ถ์ ArrayList๋ ์๋๋ณด๋จ ์์ ๊ฐ์ ํํ๋ก ์ ์ธํ์ฌ ์ฌ์ฉ๋๋ค. ArrayList์ ๊ฐ์ ๊ตฌํ์ฒด ํด๋์ค๊ฐ ์๋, List๋ผ๋ ์ธํฐํ์ด์ค๋ก ์ ์ธํ๋ ์์ด๋ค. ์์ ๊ฐ์ด ์ฝ๋ฉํ๋ ๊ฒ์ ๋ง์ด ๋ณด๊ธฐ๋ ํ๊ณ , ์ค๋ ํผ๋๋ฐฑ๋ ๋ฐ์์ ์ ArrayList๋ฅผ ์ฃผ๋ก ์ ๋ ๊ฒ ์ ์บ์คํ ํด์ ์ ์ธํ๋์ง ๊ทธ ์ด์ ๋ฅผ ์์๋ณด์๋ค. ์์ฝ : ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ผํ์ผ๋ก, ๋คํ์ฑ์ ์ง์ํ๊ธฐ ์ํด์์ด๋ค. ์ฒ์๋ถํฐ ๋ณ๊ฒฝ์ ์ ์ฐํ ๊ตฌ์กฐ๋ก ๋ฏธ๋ฆฌ ์ค๊ณํ๋ ๋ฐฉ์์ด๋ผ๊ณ ํ ์ ์๋ค ์๋ฅผ ๋ค์ด..