Hello, World ๐ป
-
Live Study - Java ExceptionHello, World ๐ป/Java โ๏ธ 2021. 1. 23. 12:54
ํ๋ก๊ทธ๋จ ์ค๋ฅ, Error / Exception์ ์ฐจ์ด ํ๋ก๊ทธ๋จ์ด ์คํ ์ค์ ์ด๋ค ์์ธ์ผ๋ก ์ค์๋ํ๊ฑฐ๋, ์ ์์ ์ผ๋ก ์ข ๋ฃ๋์ง ์๋ ๊ฒฝ์ฐ๊ฐ ์๋ค. ์ฌ๊ธฐ์ '์ด๋ค ์์ธ'์ ์๋ฌ(Error) ํน์ ์ค๋ฅ(Exception)๋ผ๊ณ ํ๋ค. ์๋ฌ์ ์ค๋ฅ์ ์ฐจ์ด๋ ๋ญ๊น? ์๋ฌ, Error ์๋ฌ๋ ์์คํ ๋ ๋ฒจ์์ ๋ฌธ์ ๊ฐ ๋ฐ์ํ ๊ฒฝ์ฐ๋ฅผ ๋งํ๋ค. ๋ฉ๋ชจ๋ฆฌ ๋ถ์กฑ(OutOfMemoryError), ์คํ์ค๋ฒํ๋ก์ฐ(StackOverflowError)์ ๊ฐ์ด ์ด๋ฌํ ์๋ฌ๊ฐ ๋ฐ์ํ๋ฉด ๋ณต๊ตฌํ ์ ์๋ ์ฌ๊ฐํ ์ค๋ฅ์ด๋ค. ์์ธ, Exception ์์ธ๋ ์ฌ์ฉ์๊ฐ ํ๋ก๊ทธ๋จ์ ์ ๋ชป ์ฌ์ฉํ๊ฑฐ๋, ํ๋ก๊ทธ๋๋จธ์ ์ค์๋ก ์ธํ ๋ฌธ์ ๋ฅผ ๋งํ๋ค. ์ด๋ค ์๋ฅผ 0์ผ๋ก ๋๋ด๊ฑฐ๋(ArithmeticException) ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๋ฒ์ด๋์ ์ ๊ทผ(IndexOutOf..
-
Live Study - Java InterfaceHello, World ๐ป/Java โ๏ธ 2021. 1. 7. 21:14
์ธํฐํ์ด์ค๋ฅผ ์ ์ํ๋ ๋ฐฉ๋ฒ public interface ์ธํฐํ์ด์ค๋ช { public static final ํ์ ์์๋ณ์๋ช = ๊ฐ; // public static final ์๋ต ๊ฐ๋ฅ public abstract ๋ฐํํ์ ๋ฉ์๋๋ช (); // public abstarct ์๋ต ๊ฐ๋ฅ static ๋ฐํํ์ ๋ฉ์๋๋ช () { } default ๋ฐํํ์ ๋ฉ์๋๋ช () { } private ๋ฐํํ์ ๋ฉ์๋๋ช () { } private static ๋ฐํํ์ ๋ฉ์๋๋ช () { } } ์ธํฐํ์ด์ค์๋ - ์์ - abstract method (Java 7 ๋ถํฐ) - static method (Java 8 ๋ถํฐ) - default method (Java 8 ๋ถํฐ) - private method (Java 9 ๋ถํฐ) - priva..
-
Live Study - Java PackageHello, World ๐ป/Java โ๏ธ 2020. 12. 30. 22:49
package - ๊ด๋ จ๋ ํด๋์ค, ์ธํฐํ์ด์ค, Enum, Annotation ๋ค์ ๋ฌถ์, ๋ฌผ๋ฆฌ์ ์ผ๋ก ํ๋์ ๋๋ ํ ๋ฆฌ์ด๋ค. - ์ ๊ทผ ์ ์ด, namespace ๊ด๋ฆฌ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. - ์ค์ ํด๋์ค์ ์ด๋ฆ์ ํจํค์ง ๋ช ์ ํฌํจํ ๊ฒ์ด๋ค. me.ohhhmycode ํจํค์ง์ Study ํด๋์ค๊ฐ ์๋ค๋ฉด ์ค์ ํด๋์ค ์ด๋ฆ์ me.ohhhmycode.Study ์ด๋ค. ํจํค์ง + ํด๋์ค๋ช ์ ๋ถ์ธ ๊ฒ์ Fully Qualified Name ์ด๋ผ๊ณ ํ๋ค. - ๋๋ ํ ๋ฆฌ๊ฐ ๋๋ ํ ๋ฆฌ๋ฅผ ํฌํจํ ์ ์๋ ๊ฒ ์ฒ๋ผ, ํจํค์ง๋ ๋ค๋ฅธ ํจํค์ง๋ฅผ ํฌํจํ ์ ์๋ค. '.' ์ ์ผ๋ก ๊ตฌ๋ถํ๋ค. package ์ ์ธ - ํจํค์ง ์ ์ธ์ ์ฃผ์๊ณผ ๊ณต๋ฐฑ์ ์ ์ธํ๊ณ ์ฒซ๋ฒ์งธ๋ก ์์ผํ๋ค. ๋จ ํ๋ฒ๋ง ํ์ฉ๋๋ค. - ํด๋์ค๋ ์ ์ธํ ํจํค์ง ์ด๋ฆ๊ณผ ๋๊ฐ์ ๋๋ ํ ๋ฆฌ์ ..
-
Live Study - Java ์์ (Inheritance)Hello, World ๐ป/Java โ๏ธ 2020. 12. 23. 22:15
์ ๋ฆฌํ ๋ด์ฉ - Java ์ ์์๊ณผ ํน์ง - Super - ์ค๋ฒ๋ผ์ด๋ฉ - ์ ์ด์ - ๋คํ์ฑ - Dynamic Method Dispatch - ์ถ์ ํด๋์ค - Object ํด๋์ค Java ์ ์์(Inheritance)๊ณผ ํน์ง ํด๋์ค๋ฅผ ์์ ๋ฐ๋ ๋ค๋ ๊ฒ์ ๊ธฐ์กด์ ํด๋์ค๋ฅผ ์ฌ์ฌ์ฉํด์ ์๋ก์ด ํด๋์ค๋ฅผ ์์ฑํ๋ ๊ฒ์ด๋ค. ์์์ ๋ชฉ์ ๋ ๊ฒฐ๊ตญ ์ค๋ณต์ ์ ๊ฑฐ์ธ ๊ฒ ๊ฐ๋ค. ํ๋ก๊ทธ๋๋ฐ์ ๋ง์ ๊ฐ๋ ์ ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ์ ๋์ด๊ณ , ์ค๋ณต์ ์ ๊ฑฐํ๊ธฐ ์ํด ๋ง๋ค์ด์ง๊ณ ๋ฐ์ ๋๋ ๊ฒ๋ค์ด ์ ๋ง ๋ง์๊ฒ ๊ฐ๊ณ , ์์์ด๋ผ๋ ๊ฐ๋ ๋ ๊ทธ ๊ณผ์ ์์ ์ฐ๋ฌผ์ด๋ผ๊ณ ์๊ฐํ๋ค. Java ์์ ํด๋์ค๋ฅผ ์์ ๋ฐ๊ธฐ ์ํด์๋ extends ๋ผ๋ ํค์๋๋ฅผ ์ฌ์ฉํ๋ค. class Product { String productCode; String productTyp..
-
Live Study - Java ์ ClassHello, World ๐ป/Java โ๏ธ 2020. 12. 14. 20:37
์ ๋ฆฌํ ๋ด์ฉ - ํด๋์ค๋ฅผ ์ ์ํ๋ ๋ฐฉ๋ฒ - ๊ฐ์ฒด๋ฅผ ๋ง๋๋ ๋ฐฉ๋ฒ, new ์ฐ์ฐ์ ์ดํดํ๊ธฐ - ๋ณ์ ์ ์ธํ๊ธฐ - ๋ฉ์๋ ์ ์ธํ๊ธฐ - ์์ฑ์ ์ ์ํ๊ธฐ - this ํค์๋ ์ดํดํ๊ธฐ Class, ํด๋์ค๋ ๊ฐ์ฒด๋ฅผ ์ ์ํด ๋์ ๊ฒ์ด๊ณ , ์ฌ์ฉ์ ์ ์ ํ์ (User-Defined Type)์ด๋ค. ์ธ์ด์์ ์ ๊ณตํ๋ ์๋ฃํ(primitive type) ์ธ์ ๊ฐ๋ฐ์๊ฐ ์๋ก ๊ด๋ จ๋ ๋ณ์๋ค์ ๋ฌถ์ด์ ํ๋์ ํ์ ์ผ๋ก ์๋ก ์ถ๊ฐํ๋ ๊ฒ์ ์ฌ์ฉ์ ์ ์ ํ์ ์ด๋ผ๊ณ ํ๋ค. ์ฌ๊ธฐ์ '๊ฐ์ฒด'๋ ๋ฌด์์ธ์ง, ๊ฐ์ฒด์งํฅ์ ๋ฌด์์ธ์ง.. ์ ๋ํ ๋ด์ฉ์ ์ฐ๊ฒ๋๋ฉด ๊ธ๋ ํ์์ด ๊ธธ์ด์ง๊ณ ์ ๋ฆฌ๋ ํ๋ค ๊ฒ ๊ฐ์์ ๋จ์ํ ํ๋ก๊ทธ๋๋ฐ์ ์ธ ๊ด์ ์์ ์ ๋ฆฌํด๋ณด๋ ค๊ณ ํ๋ค. ๋์ด๊ฐ๊ธฐ ์ ์ ํ๋ก๊ทธ๋๋ฐ์์ ๋ฐ์ดํฐ ์ฒ๋ฆฌ๋ฅผ ์ํ ์ ์ฅ ํํ์ ๋ฐ์ ๊ณผ์ ์ ์ง์ด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค. ..
-
Spock Test Framework ์ ๋ฆฌHello, World ๐ป/Test โ 2020. 12. 7. 23:54
JUnit 5 ์ ์ข ๋ ์ธ์ธํ๊ฒ ๊ณต๋ถํด๋ณผ๊น ํ๋ค ์๋ก์ด ์ธ์ด์ ํ๋ ์์ํฌ๋ฅผ ์ฌ์ฉํด๋ณด๊ณ ์ถ์ด์ Spock Framework ๋ฅผ ๊ณต๋ถํ๊ฒ ๋์๋ค. Spock ๋ Java, Groovy ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ํ ์คํธ ํ๋ ์์ํฌ๋ค. BDD(Behaviour-Driven Development) ํ๋ ์์ํฌ๋ผ๊ณ ๋ ํ๋ค. Groovy ์ธ์ด๋ก ์์ฑํ ์ ์๊ณ , ์๋ฆ๋ต๊ณ ํํ๋ ฅ์ด ๋ฐ์ด๋๋ค๊ณ ์๊ฐํ๊ณ ์๋ค(ใ ใ ). JUnit Runner ๋๋ถ์ ๋๋ถ๋ถ์ IDE, ๋น๋ ํด, CI ์๋ฒ์์ ๊ตฌ๋์ํฌ ์ ์๋ค๊ณ ํ๋ค. ์งง๊ฒ ์ผ์ฃผ์ผ์ ๋ Spock ๋ฅผ ์ข ์จ๋ณด๊ณ ๋๋ ์ ์ ํ์คํ JUnit ๋ณด๋ค ๋ ์ฝ๊ณ ๋ช ์์ ์ธ ๋๋์ด ์์๋ค. ์๋ฅผ ๋ค์ด JUnit ์ ์ธ ๋ ํ ์คํธ ๋ฉ์๋์ ์ฃผ์์ผ๋ก given, when, then ์ด๋ผ๊ณ ์์ฑํ๋๋ฐ..
-
Live Study - Java ์ ํ๋ฌธ, ๋ฐ๋ณต๋ฌธHello, World ๐ป/Java โ๏ธ 2020. 12. 6. 15:18
์ฝ๋๋ ์์์ ์๋๋ก ํ ๋ฌธ์ฅ์ฉ ์์ฐจ์ ์ผ๋ก ์ํ๋๋ค. ์ฝ๋๋ฅผ ์์ฑํ๋ค ๋ณด๋ฉด ์ด๋ค ์กฐ๊ฑด์ ๋ฐ๋ผ ์ด๋ค ์ฝ๋๋ ๊ฑด๋๋ฐ๊ณ ์ํํ๊ณ , ๊ฐ์ ์ฝ๋๋ฅผ ๋ฐ๋ณต์ ์ผ๋ก ์ํ์ํฌ ๋๊ฐ ์๋ค. ํ๋ก๊ทธ๋จ์ ํ๋ฆ์ ๋ฐ๊พธ๋ ์ญํ ์ ํ๋ ๊ฒ์ '์ ์ด๋ฌธ'์ด๋ผ๊ณ ํ๊ณ ์ ์ด๋ฌธ์๋ ์ ํ๋ฌธ๊ณผ ๋ฐ๋ณต๋ฌธ์ด ์๋ค. ์ ํ๋ฌธ ์ ํ๋ฌธ์๋ if, switch ๋ฌธ์ด ์๋ค. ์ ํ๋ฌธ์ ์กฐ๊ฑด๋ฌธ์ด๋ผ๊ณ ๋ ํ๋ค. if if ๋ฌธ์ ๊ฐ์ฅ ๊ธฐ๋ณธ์ ์ธ ์กฐ๊ฑด๋ฌธ์ด๋ค. ์๋์ ๊ฐ์ด ์กฐ๊ฑด์, ๊ดํธ๋ก ์ด๋ฃจ์ด์ ธ ์๋ค. if (์กฐ๊ฑด์) { // ์ฝ๋ ๋ธ๋ก } ์กฐ๊ฑด์์ด True ์ด๋ฉด ์ค๊ดํธ ๋ด์ ๋ฌธ์ฅ์ ์ํํ๋ค. ์กฐ๊ฑด์์ ์ผ๋ฐ์ ์ผ๋ก ๋น๊ต ์ฐ์ฐ์, ๋ ผ๋ฆฌ ์ฐ์ฐ์๋ก ๊ตฌ์ฑ๋๋ค. >, 1 (๋ง ์ถ๋ ฅ!) switch switch ๋ฌธ์ if else ์ ๋ค๋ฅด๊ฒ ํ๋์ ์กฐ๊ฑด์ผ๋ก ์ฌ๋ฌ ๋ถ๊ธฐ๋ฅผ ๊ฐ์ง ์ ์๋ค...
-
Live Study - Java ๊ฐ ์ ๊ณตํ๋ ๋ค์ํ ์ฐ์ฐ์Hello, World ๐ป/Java โ๏ธ 2020. 11. 24. 21:28
ํ์ต๋ด์ฉ ์ฐ์ฐ์ ์ฐ์ ์์ ์ฐ์ ์ฐ์ฐ์ ๋นํธ ์ฐ์ฐ์ ๊ด๊ณ ์ฐ์ฐ์ ๋ ผ๋ฆฌ ์ฐ์ฐ์ ์ผํญ ์ฐ์ฐ์ assignment(=) operator instanceof ํ์ดํ(->) ์ฐ์ฐ์ (optional) Java 13. switch ์ฐ์ฐ์ ์ฉ์ด ์ ๋ฆฌ ํผ์ฐ์ฐ์ - ์ฐ์ฐ์๊ฐ ์ฐ์ฐ์ ์ํํ๋ ค๋ฉด ์ฐ์ฐ์ ๋์์ด ์์ด์ผ ํ๋ค. ์ด ๋์์ 'ํผ์ฐ์ฐ์' ๋ผ๊ณ ํ๋ค. ํผ์ฐ์ฐ์๋ก ์์, ๋ณ์, ์ ๋ฑ์ ์ฌ์ฉํ ์ ์๋ค. ์ - ์์ ์ฐ์ฐ์์ ํผ์ฐ์ฐ์๋ฅผ ์กฐํฉํด ๊ณ์ฐํ๊ณ ์ ํ๋ ๋ฐ๋ฅผ ํํํ ๊ฒ์ '์'์ด๋ผ๊ณ ํ๋ค. ์) 10 * x + 20 ์ฐ์ฐ์์ ์ข ๋ฅ ์ข ๋ฅ ์ฐ์ฐ์ ์ฐ์ ์ฐ์ฐ์ +, -, *, /, %, ๋น๊ต ์ฐ์ฐ์ >, =, y * 2 ์ฐ์ ์ฐ์ฐ์ (+, -, *, /, %) ๊ฐ ๋น๊ต ์ฐ์ฐ์ (>, =, , 0 || x > 5 && x ..