์ฐธ๊ณ ํฌ์คํ https://inpa.tistory.com/entry/JAVA-%E2%98%95-JDK-JRE-JVM-%EA%B0%9C%EB%85%90-%EA%B5%AC%EC%84%B1-%EC%9B%90%EB%A6%AC-%F0%9F%92%AF-%EC%99%84%EB%B2
์ฐธ์กฐ ํฌ์คํ https://github.com/gyoogle/tech-interview-for-developer/blob/master/Language/%5Bjava%5D%20%EC%9E%90%EB%B0%94%20%EC%BB%B4%ED%8C%8C%EC%9D%BC%20%E
์ด์ ํฌ์คํ ์ ์ฌ๋ฆฌ๋ฉด์ JVM์ ์คํ์์ง์ 2๊ฐ์ง ๋ฐฉ์์ ๋ฐ๋ฅธ ๋ด๋ถ ๋์์ ๋ํ ํธ๊ธฐ์ฌ์ด ์๊ฒจ ํด๋น ํฌ์คํ ์ ์์ฑํ๊ฒ ๋์ต๋๋ค.
์ด์ ํ๋ก์ ํธ์ JPAํ์ต์ผ๋ก ๋ฏธ๋ค๋์๋ Java๋ณต์ต์ ๋๋์ด ์์ํ๊ฒ ๋์ต๋๋ค!! ใ ใ ํญ์ ํด์ผ์ง ํด์ผ์ง ํ๋ค๊ฐ ๊ฒฐ๊ตญ ํญํด99 ์ทจ์ ์ฝ์ค ์์ํ๊ณ ์ ํจ๊ป ์์์ ํ๋ค์..ใ ๊ทธ๋๋ ์ ์ ๋ดค์๋ ๋ด์ฉ์ ๋ณต์ตํ๋ ๊ฒ์ด๊ธฐ ๋๋ฌธ์ ์์ํ๊ฒ ๋์ด๊ฐ๋ฆฌ๋ผ ์๊ฐ๋ฉ๋๋ค.์ฐ์ , ์ฒ์์
์๋ฐ ๊ธฐ์ด ๊ฐ์๋ฅผ ๋ฃ๋ ์ค switch ๋ฌธ์ ๋ํ ์ค๋ช ์ ๋ฃ๊ณ , ์ค๋๋ง์ switch ๋ฌธ์ผ๋ก ์ฝ๋๋ฅผ ์ง๋ณด๋ ค๋ ์๊ฐ์ด ์ ์๋ฌ์ต๋๋ค.์ด๋ฅผ ๊ณ๊ธฐ๋ก ๋ณต์ต์ ํ๊ณ ์! ์ค๋ ๋ธ๋ก๊ทธ์ ๊ธ์ ๋จ๊น๋๋ค.Switch ๋ฌธ์ case ๋ฌธ๊ณผ ํจ๊ป ์ฌ์ฉํ๋ฉฐ if๋ฌธ ๋ณด๋ค ์กฐ๊ธ ๋ ๊ฐ๋ ์ฑ์ด ์ข์
์ฐธ์กฐ ํฌ์คํ https://davidev-wiki.tistory.com/entry/Java-%EA%B8%B0%EB%B3%B8-%EB%B0%B0%EC%97%B4-Array%EC%9D%98-%EC%84%A0%EC%96%B8-%EB%B0%8F-%ED%8A%B9%EC%
์ ๋ก๋์ค..
๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ์ดํดํ ๋, ์ฝ๋์ ์ฌ์ฌ์ฉ์ฑ, ์ ์ง๋ณด์์ฑ ๊ทธ๋ฆฌ๊ณ ์ค๋ณต๋ ์ฝ๋์ ์ ๊ฑฐ์ ์ธ๊ฐ์ง ๊ด์ ์์ ์ดํดํด์ผ ํฉ๋๋ค.๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ์ ๋ํ์ ์ธ ํน์ง 4๊ฐ์ง๊ฐ ์์ต๋๋ค.์บก์ํ์์๋คํ์ฑ์ถ์ํํ๋์ ๋ฉ์๋๋ฅผ ํ๋๋ก ๋ฌถ์ด ๊ฐ์ฒด๋ก ๋ง๋ ํ์ ๋ด๋ถ ๊ตฌํ ๋ด์ฉ์ ์ธ๋ถ์์
์๋ฐ์ ์ ์๋ฅผ ํํํ๊ธฐ ์ํ ์๋ฃํ์ int, long ๋ฑ์ด ์์ต๋๋ค.์ ์์ ๋ฒ์๋ ์ธ์ฐ๊ธฐ ์ด๋ ต๊ธฐ ๋๋ฌธ์, Wrapper ํด๋์ค์ ์์์ธ MIN_VALUE ์ MAX_VALUE๋ฅผ ์ถ๋ ฅํ์ฌ ํ์ธ์ด ๊ฐ๋ฅํ๋ค๋ ์ ๋๋ง ์๊ณ ์์ผ๋ฉด ๋ฉ๋๋ค.long ๋ณ์์ ๊ฐ ๋์ ์, ์ซ์
์ฐธ๊ณ ํฌ์คํ ์ฐ์ ์์ ํ ๋ธ๋ก๊ทธ์ฝ๋ฉ ํฉํ ๋ฆฌ์๋ฃ๊ตฌ์กฐ ์ด์งํธ๋ฆฌ์ฐ์ ์์ ํ๋ก์จ FIFO ๊ตฌ์กฐ๋ก ๋ฐ์ดํฐ๋ฅผ in/out ํ๊ฒ ๋ฉ๋๋ค.๋ฐ์ดํฐ๊ฐ ๋ค์ด์ค๋ฉด ์์๋๋ก ๋ฐ์ดํฐ๊ฐ ๋๊ฐ์ง ์๊ณ ์ฐ์ ์์๋ฅผ ๊ฒฐ์ ํ์ฌ ์ฐ์ ์์๊ฐ ๋์๋ฐ์ดํฐ๊ฐ ๋จผ์ ๋๊ฐ๋๋ก ํ๋ ์๋ฃ ๊ตฌ์กฐ์ ๋๋ค.์ ์์ ๊ฒฝ์ฐ ์์ ์ซ
์ถ์ฒ์๋ฐ์์ ์ค์ ํํ๋ฐฉ๋ฒ๊ณผ ์ ์ฅ(๋ถ๋ ์์์ )๋ถ๋ ์์์ ์ค์ฐจ๋ถ๋ ์์์ ์ด๋?(๋ถํธ)(m : ๊ฐ์)(n : ์ง์) โ ๊ฐ์ m์ 0 <= m < 1 ๋ฒ์๋ฅผ ๊ฐ์ต๋๋ค.ex) 1.23 ์ ๋ถ๋์์์ ํํ์ผ๋ก ๋ณ๊ฒฝํ๋ฉด 0.123 X 10^1์๋ฐ์์๋ ์ค์ ํํ
์ฐธ๊ณ ํฌ์คํ Comparable ๊ณผ Comparator๋ ์ ๋ ฌ ์ ๊ธฐ์ค์ ์ ์ํ๊ธฐ ์ํ ์ธํฐํ์ด์ค์ ๋๋ค. https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/lang/Comparable.html
์๋ฐ์ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ ๋ฐฉ๋ฒ ์ค ํ๋๋ก JVM ๋ด Heap ์์ญ์์ ๋์ ์ผ๋ก ํ ๋นํ๋ ๋ฉ๋ชจ๋ฆฌ ์ค ํ์์๊ฒ ๋ ๊ฐ์ฒด๋ฅผ ๋ชจ์ ์ฃผ๊ธฐ์ ์ผ๋ก ์ ๊ฑฐํ๋ ํ๋ก์ธ์ค๋ฅผ ๋งํฉ๋๋ค.์ด๋ C ์ธ์ด์ ๋ค๋ฅด๊ฒ, Java์์๋ ๊ฐ๋น์ง ์ปฌ๋ ํฐ๊ฐ ๋ฉ๋ชจ๋ฆฌ ๊ด๋ฆฌ๋ฅผ ์๋์ผ๋ก ์ํํด์ค๋๋ค. ์ด๋ก ์ธํด Java
์๋ฐ์์ String ๊ฐ์ฒด๋ ๋ถ๋ณ์ฑ์ด๋ผ๋ ํน์ง์ ๊ฐ์ต๋๋ค. ๊ทธ๋ ๋ค๋ฉด, ์๋ฐ์์ ์ String์ ๋ถ๋ณ์ฑ ๊ฐ์ฒด์ด์ด์ผ๋ง ํ๋์ง์ ๋ํด ์์๋ณด๊ธฐ ์ํด ํด๋น ํฌ์คํ ์ ์์ฑํ์ต๋๋ค.๋ถ๋ณ์ฑ์ ์๋ฏธ๋ ๋ณํ์ง ์๋ ์ฑ์ง์ ์๋ฏธํฉ๋๋ค.์ฆ, ํ๋ฒ ์์ฑ๋ ๊ฐ์ฒด์ ๊ฐ์ด ๋ณํ์ง ์์ต๋๋ค.์์
Stirng, StringBuffer, StringBuilder ๊ฐ์ ์ฐจ์ด์ ์ ๋ํ ๋ฉด์ ์ง๋ฌธ์ ๋ํ ๋ต๋ณ์ ๋ํด ์๊ฐํด๋ณด๊ธฐ ์ํด ํด๋น ํฌ์คํ ์ ์์ฑํ์ต๋๋ค.Java์์ String์ ๋ํ์ ์ธ ๋ถ๋ณ์ฑ ๊ฐ์ฒด์ ๋๋ค. ์ด๋ก ์ธํด์ ์๋ฐ์์๋ String Literal์ ๋ณ๋
์ฐธ๊ณ ํฌ์คํ ์ฐธ๊ณ ๋ธ๋ก๊ทธ(https://adjh54.tistory.com/78ํด๋น ํจํด์ ์ถ์ฒ๋ Joshua Bloch์ ์ํด 'Effective Java' ๋ด์์ ์ธ๊ธ๋ ํจํด์ ๋๋ค.์ฝ๊ฒ ์ค๋ช ํ๋ฉด, ์ด๊ธฐํํ ํ๋ ๊ฐฏ์๋งํผ ์์ฑ์์ ๋งค๊ฐ๋ณ์๋ฅผ ๊ตฌ์ฑํ๋ ํจํด์ ๋งํฉ
์ฐธ๊ณ ํฌ์คํ ์ถ์ฒ: https://inpa.tistory.com/entry/JAVA-โ-์ธํฐํ์ด์ค-vs-์ถ์ํด๋์ค-์ฐจ์ด์ -์๋ฒฝ-์ดํดํ๊ธฐ์ถ์ ํด๋์ค์ ์ธํฐํ์ด์ค์ ํน์ง์ ๋น๊ตํ์ฌ ํ ์ด๋ธ๋ก ๋ํ๋์ต๋๋ค.์ ๋ฆฌํ๋ฉด, ์ถ์ํด๋์ค์ ์ธํฐํ์ด์ค ๋ชจ๋ ์ถ์ ๋ฉ์๋๋ฅผ ํตํด ์์
์ฌ์ด๋ ํ๋ก์ ํธ ์งํ ์ค PM๋ถ๊ป์ ๊ธฐ์กด์ not null๋ก ๋ฐ๋ ๋ฌธ์์ด List ๋ฐ์ดํฐ๋ฅผ nullable ํ๊ฒ ๋ฐ์ ์ ์๋๋ก ์์ ํด๋ฌ๋ผ๋ ์์ฒญ์ด ์๋ค. ์ด๋ฅผ ์์ ํ๋ ค๊ณ ๋ณด๋, ์์ฒญ DTO๋ ๊ธฐ์กด์ ์ฝ๋ ์ปจ๋ฒค์ ์ ์๊ฑฐํ์ฌ Record๋ฅผ ์ฌ์ฉํ๊ณ ์์๋ค.์๋ฐ Recor