๋ชฉ๋กโ๏ธ/Java (6)
DevLog ๐ถ
๐ฑ ๋ค์ด๊ฐ๊ธฐ ์ ์ด๋ฒ ์๋์ฐจ ๊ฒฝ์ฃผ ๋ฏธ์ ์ ์งํํ๋ฉด์ ๋ ๋ฒจ 1 ๋ ํ๋ ์ฝ๋๋ฅผ ๋ฆฌํฉํฐ๋ง์ ํ๋ค ๋ณด๋ ํ์ด์ '๋ถ๋ณ ๊ฐ์ฒด๋ก ๋ง๋๋ ๊ฒ ์ด๋ ๋๋ ์๊ฒฌ์ ๋ฐ์๋ค. ๋น์ ๋ ๋ฒจ 1 ๋ฏธ์ ์ ์งํํ ๋๋ ๋ถ๋ณ ๊ฐ์ฒด์ ์ ์์ ๋ํด์ ์ ์์ง ๋ชปํ์๊ณ , ๋ฏธ์ ์ ์งํํ๋ฉด์ ๋ถ๋ณ์ผ๋ก ๋ง๋๋ ๊ฒ ์ฌ๋ฌ ๊ฐ์ง ์ด์ ์ด ์๋ค๋ ๊ฑธ ๊ณต๋ถํ์๊ธฐ ๋๋ฌธ์ ๋ณ ์๊ฐ ์์ด ๊ทธ๋ ๊ฒ ์งํํ๊ณ ์ ํ๋ค. public class Car { private static final int CAR_FORWARD_NUMBER = 4; private final CarName name; private final CarPosition position; ... public Car move(final int power) { if (power >= CAR_FORWARD_N..
์ผ๋ง ์ ์ ์ฐํ ์ฝ์์ ์ฒด์ค ํผ๋๋ฐฑ 2 ๊ฐ์๋ฅผ ๋ค์ผ๋ฉด์, ๋ํธ๋ก์ดํธ ํํ (classicist) vs ๋ฐ๋ ํํ (Mockist)์ ๋ํด์ ๋ฃ๊ฒ ๋์๋ค. ๋ ๋ค ์ฒ์ ๋ค์ด๋ณธ ์ฉ์ด์ฌ์ ๊ถ๊ธํ ๋ง์์ ์ด๊ฒ์ ๊ฒ ์ฐพ์๋ณด๋ฉฐ ์์ฑํด๋ณด๊ณ ์ ํ๋ค. (์ ๋ฐ์ ์ธ ๋ด์ฉ์ ํ ์ฝํก ๋ฐํ ๋ด์ฉ์ ๋ง์ด ์ฐธ๊ณ ํ์์ต๋๋ค ๐โ๏ธ) โ๏ธ ๋จ์ ํ ์คํธ๊ฐ ๋ฌด์์ผ๊น? ๋จ์ ํ ์คํธ๋ ๋ค์๊ณผ ๊ฐ์ ํน์ง์ ๊ฐ์ ธ์ผ ํ๋ค. 1. Low-level ํ ์คํธ๋ฅผ ๋ค๋ฃจ์ด์ผ ํ๋ค. 2. ์ผ๋ฐ์ ์ธ ํ ์คํธ ๋๊ตฌ๋ฅผ ์ฌ์ฉํด์ผ ํ๋ค. 3. ๋นจ๋ผ์ผ ํ๋ค. ์ฌ๊ธฐ์ ๋จ์๋ ๋ฌด์์ผ๊น? ๋ง์ฝ, ๊ธฐ๋ฅ ๋จ์๋ผ๊ณ ๊ตฌ์ฑ๋๋ค๋ฉด ๊ฐ์ฒด์งํฅ์ ๊ด์ ์์๋ ํด๋น ๊ธฐ๋ฅ์ ๊ตฌํํ๋ ํด๋์ค์ ์งํฉ์ด ๋จ์๊ฐ ๋ ์๋ ์๋ค. ์ฐ๋ฆฌ๋ ์ด๋ฌํ ๋จ์ ํ ์คํธ๋ฅผ ์งํํ๊ธฐ ์ํด์, ์ด๋ ํ ๋จ์๊ฐ ์ํธ ์์ฉํ ์ ์๋..
๐ฌ ๋ชจ๋ ์๋ฐ๋ฅผ ๊ณต๋ถํ๋ ๋์ค์, ์ฑ ์์ ๋์๋ ์์ ๋ฅผ ์ปค์คํ ํ๋ ค๋ค๊ฐ ์ด๋ฐ ์ํฉ์ ๋ง๋ฌ๋ค. โ๏ธ ๋ฌธ์ ์ํฉ ๋จผ์ , ์ฌ์ฉํ ํฌ๋ฃจ ํด๋์ค์ ๋ํ ์ ๋ณด์ด๋ค. public class Crew { private String name; private String nickname; private int age; private Course course; private Crew() { // ์ธ๋ถ์์ ์ธ์คํด์คํ ๋ง๊ธฐ } public static Crew createByName(final String name, final int age, final Course course) { Crew crew = new Crew(); crew.name = name; crew.age = age; crew.course = course; r..
์ฐํ ์ฝ์์ ๋ฌธ์์ด ๊ด๋ จ ์์ ์ ๋ฃ๋ค๊ฐ, ์ด๊ฒ์ ๊ฒ ๊ถ๊ธํด์ ์ฐพ์๋ดค๋๋ฐ ๋ธ๋ก๊ทธ ๊ธ๋ก ์์ฑํ๋ฉด ์ข์ ๊ฒ ๊ฐ์์ ์ด๋ ๊ฒ ์์ฑํ๋ค ๐ค ์์์ ํ๋ฆ๋๋ก ๊ถ๊ธํ ์ ๋ค์ ์ฐพ์๋ณธ ๊ฑฐ์ฌ์ ์๋นํ ๋์๊ฐ ์์ ๊ฒ ๊ฐ๋ค ๐ฅฒ โ๏ธ String๊ณผ String pool String์ ๋ฌธ์์ด์ ์ ์ฅํ๊ณ ์ฒ๋ฆฌํ๋ ํด๋์ค์ด๋ค. ๋ถ๋ณ ํด๋์ค์ด๊ธฐ ๋๋ฌธ์, ํ ๋ฒ ์์ฑ๋๋ฉด ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ๋ค. ๋ํ, final ํด๋์ค๋ก ๋์ด ์๊ธฐ ๋๋ฌธ์ ์์์ด ๋ถ๊ฐ๋ฅํ๋ค. UTF-16 ์ธ์ฝ๋ฉ์ ํ์ฉํ์ฌ, ์ธ์ฝ๋ฉ๋ ๋ฌธ์์ด์ ์ ์ฅํ๊ธฐ ๋๋ฌธ์ ๊ฐ ๋ฌธ์๋ฅผ 2๋ฐ์ดํธ (=16๋นํธ) ์ ๋์ฝ๋ ๋ฌธ์๋ก ํํํ๋ค. public String(int[] codePoints, int offset, int count) { checkBoundsOffCount(offset, count,..
์ฐํ ์ฝ ์์ ๋ค์๋ ๋ด์ฉ ์ค์์ ๊ฐ๋จํ๊ฒ ๋ด ์๊ฐ์ ์ ๋ฆฌํ๊ณ ์ถ์ด์ ์์ฑํ๋ ๊ธ! โจ ํ ์คํธ ์ฝ๋์ ๋ฒ์ ํ ์คํธ ์ฝ๋๋ ์ด๋ ์ ๋๋ก ์๊ฒ ๋ง๋ค์ด์ผ ๋ ๊น ๊ณ ๋ฏผ์ ๋ง์ด ํ๋ค. ์ฌ์ค ์ด์ ์๋ ํ ์คํธ ์ฝ๋๋ฅผ ๊ฑฐ์ ์์ฑํ ๊ฒฝํ๋ ์๊ณ , given-when-then๋ง ๊ตฌ๊ตฌ์ ์ ์๊ณ ์์์ด์ ํ ์คํธ ์ฝ๋์ ๋ฒ์๊น์ง๋ ์ ๋๋ก ์๊ฐํด ๋ณธ ์ ์์๋ค. (์ ์ง์ง ์๋์ด๋ค!) ๊ฐ์ธ์ ์ธ ์๊ฐ์ผ๋ก ํ ์คํธ ์ฝ๋๋ ํด๋น ๊ฐ์ฒด์ public ๋ฉ์๋์ ๋ํด์๋ ์ ๋ถ ํ ์คํธ๋ฅผ ํ๋ ๊ฒ ๋ง๋ค๊ณ ์๊ฐํ๋ค. ๋ฌผ๋ก , private ๋ฉ์๋๋ public์์ ํธ์ถํด์ ๊ฐ์ ์ ์ผ๋ก ํ ์คํธ ํ ์ ์๋๋ก ๋ง๋๋ ๊ฒ์ด ์ข๋ค๊ณ ์๊ฐํ๋ค. ์ด๋ฐ์ ํ์ด ํ๋ก๊ทธ๋๋ฐ์ ์งํํ ๋, private ๋ฉ์๋๋ฅผ ํ ์คํธํ๋ ค๊ณ ๋ฆฌํ๋์ ๊น์ง ์จ๊ฐ๋ฉด์ ์งํํ๋ค. ์ฐ์ , Car..
- ๊ฐ์ธ์ ์ผ๋ก ๊ฐ๋ฐ์ ์งํํ๋ฉด์ DTO ๋จ์ ๋ฉ์๋ ์ด๋ฆ์ ์ง์ ๋ of๋ฅผ ์๋ฌด ์๊ฐ ์์ด ์ฌ์ฉํ๊ณ ๋ ํ์๋๋ฐ, Orcale ๊ณต์ ๋ฌธ์์์ ์๋ฐ์ ๋ฉ์๋ ๋ค์ด๋ฐ ์ปจ๋ฒค์ ์ ๊ดํ ๊ธ์ด ์๋ ๊ฑธ ํ์ธํด์... ๊ฐ๋จํ๊ฒ ์ ๋ฆฌํด๋๊ณ ์ ํ๋ค. Method Naming Conventions (The Java™ Tutorials > Date Time > Date-Time Overview) The Java Tutorials have been written for JDK 8. Examples and practices described in this page don't take advantage of improvements introduced in later releases and might use technology no..