0. Introduction
자바를 공부하면서 이제 막 졸업한 학부생이 기존 지식에서 벗어나 조금 더 잘 사용하기 위해 어떤 걸 공부하면 좋을지 개인적으로 생각해봤습니다. 어디까지나 개인의 경험과 생각으로 모두에게 적합하다고는 할 수 없습니다. 피드백은 댓글로 부탁드립니다.
1. 자바의 버전
학부생때는 개발을 하면서 자바의 버전에 크게 신경을 쓰지 않았습니다. 왜냐하면 책이나 교수님이 받으라는 버전만 받으면 되는 거였거든요. 근데 왜 그 버전을 사용해야 할까요? 그건 자바의 버전에 따라 책이나 수업에서 사용하는 API가 변하기 때문입니다. 즉 우리는 자바의 버전에 따라 더 좋은 API를 사용할 수 도 있습니다.
하지만 우리는 회사에서 일을 하죠. 자바의 버전은 정해져있고 그 버전에 맞춰서 개발을 해야 하기에 어떤 버전에서 어떤 일들이 일어났는지는 가벼운 정도로 알 필요가 있습니다.
아래 두 링크를 참고해서 보면 가볍게 볼 수 있습니다.
https://medium.com/swlh/from-java-8-to-java-15-in-ten-minutes-f42d422a581e
https://howtodoinjava.com/java-version-wise-features-history/
특히 자바 8부터 드디어 Functional Programming이 자바에서도 가능합니다! Optional, Stream 등 다양한 기능이 도입되었습니다
2. JVM
JVM을 듣기만 하고 정확히 어떤일을 하는지는 교수님이 대충 말해줬겠지만 잊어먹었을 확률이 높습니다. 근데 알면 좋습니다. 회사에 가도 처음에는 JVM을 왜 알아야 하는지 의문이 들 수 있습니다. 근데 분명히 사용할 일이 있습니다. 이직하거나 회사에 취업하려고 해도 JVM을 물어보는 경우가 있습니다.
이전에 제가 정리한 글이 하나 있습니다.
https://developer-youn.tistory.com/38?category=817604
(요약은 추후 올리도록 하겠습니다)
JVM 요약
대충 이전에 만든 JVM 구조를 더 요약해서 자바 컴파일 과정까지 다 설명
Hotspot? DalviK?
- 우리가 일반적으로 사용하는 Oracle jdk는 Hotspot JVM을 사용합니다
- 안드로이드 플랫폼에서즌 Dalvik JVM을 사용합니다
- 왜 알아야 하냐면 회사에서 안드로이드 기반 코드를 빌드하려고 했는데 Dalvik JVM은 안드로이드 플랫폼에서 쓰는 JVM이라 사용을 못했던 경험이 있기 때문입니다
3. Enum
다른 언어에도 열거형이라고 해서 Enum이 존재합니다. Enum을 왜 쓰냐 라는 생각이 든 적도 있을 거고 아마 다른 책에서도 간략하게 설명하고 넘어갔을 겁니다. 근데 JAVA에서의 Enum은 더 확장된 Enum입니다. 무려 Enum을 클래스로 만들 수 있습니다. 클래스로 사용했을 때 장점은 여러가지가 있습니다.
- 내부적으로 변수, 함수도 만들 수 있습니다.
- 싱글톤으로 유지가 됩니다. (막 졸업하면 디자인 패턴은 잘 모를 수 있는데 뒤에 객체지향 부분에서 더 설명하겠습니다.)
- 그 말은 즉 데이터의 유일성을 보장합니다.
- 이펙티브자바에서도 싱글턴은 Enum 클래스로 사용하라고 권장합니다.
- 배민에서 만든 글이 진짜 정리가 잘 되어있는데 링크 첨부합니다.
더 정리되는 대로 2편 올리겠습니다
'JAVA' 카테고리의 다른 글
f-lab 백엔드 면접 질문 답해보기(아직 만드는 중) (2) | 2022.12.01 |
---|---|
내 자바 코드 스타일 바꿔보기, 근데 함수형을 곁들인 - filter (0) | 2022.05.07 |
짤막한 개발 메모 - watchdog (0) | 2021.11.23 |
자바 인터뷰 질문 - 심화(1) (0) | 2021.07.16 |
자바 인터뷰 질문 - 기본기 (2) (0) | 2021.07.03 |