0. Introduction
자바를 공부하면서 이제 막 졸업한 학부생이 기존 지식에서 벗어나 조금 더 잘 사용하기 위해 어떤 걸 공부하면 좋을지 개인적으로 생각해봤습니다. 어디까지나 개인의 경험과 생각으로 모두에게 적합하다고는 할 수 없습니다. 피드백은 댓글로 부탁드립니다.
1. 자바의 버전
학부생때는 개발을 하면서 자바의 버전에 크게 신경을 쓰지 않았습니다. 왜냐하면 책이나 교수님이 받으라는 버전만 받으면 되는 거였거든요. 근데 왜 그 버전을 사용해야 할까요? 그건 자바의 버전에 따라 책이나 수업에서 사용하는 API가 변하기 때문입니다. 즉 우리는 자바의 버전에 따라 더 좋은 API를 사용할 수 도 있습니다.
하지만 우리는 회사에서 일을 하죠. 자바의 버전은 정해져있고 그 버전에 맞춰서 개발을 해야 하기에 어떤 버전에서 어떤 일들이 일어났는지는 가벼운 정도로 알 필요가 있습니다.
아래 두 링크를 참고해서 보면 가볍게 볼 수 있습니다.
https://medium.com/swlh/from-java-8-to-java-15-in-ten-minutes-f42d422a581e
From Java 8 to Java 15 in Ten Minutes
This blog will give you samples of awesome new feature added since Java 7. I’ll showcase at least one major improvement for each Java…
medium.com
https://howtodoinjava.com/java-version-wise-features-history/
Java Version History and Features - HowToDoInJava
Learn about the different version history of java and features. This page covers all versions from JDK 1 to the latest Java 17 release.
howtodoinjava.com
특히 자바 8부터 드디어 Functional Programming이 자바에서도 가능합니다! Optional, Stream 등 다양한 기능이 도입되었습니다
2. JVM
JVM을 듣기만 하고 정확히 어떤일을 하는지는 교수님이 대충 말해줬겠지만 잊어먹었을 확률이 높습니다. 근데 알면 좋습니다. 회사에 가도 처음에는 JVM을 왜 알아야 하는지 의문이 들 수 있습니다. 근데 분명히 사용할 일이 있습니다. 이직하거나 회사에 취업하려고 해도 JVM을 물어보는 경우가 있습니다.
이전에 제가 정리한 글이 하나 있습니다.
https://developer-youn.tistory.com/38?category=817604
JVM 구조
이 글을 쓰면서 너무 중구난방 한 글을 작성하지 않나 하는 생각이 머릿속을 계속 접근하고 있습니다.. class 파일의 내부 정의 키워드를 넣지 않는 등 일부 당장 필요가 없다고 판단되는 부분들
developer-youn.tistory.com
(요약은 추후 올리도록 하겠습니다)
JVM 요약
대충 이전에 만든 JVM 구조를 더 요약해서 자바 컴파일 과정까지 다 설명
Hotspot? DalviK?
- 우리가 일반적으로 사용하는 Oracle jdk는 Hotspot JVM을 사용합니다
- 안드로이드 플랫폼에서즌 Dalvik JVM을 사용합니다
- 왜 알아야 하냐면 회사에서 안드로이드 기반 코드를 빌드하려고 했는데 Dalvik JVM은 안드로이드 플랫폼에서 쓰는 JVM이라 사용을 못했던 경험이 있기 때문입니다
3. Enum
다른 언어에도 열거형이라고 해서 Enum이 존재합니다. Enum을 왜 쓰냐 라는 생각이 든 적도 있을 거고 아마 다른 책에서도 간략하게 설명하고 넘어갔을 겁니다. 근데 JAVA에서의 Enum은 더 확장된 Enum입니다. 무려 Enum을 클래스로 만들 수 있습니다. 클래스로 사용했을 때 장점은 여러가지가 있습니다.
- 내부적으로 변수, 함수도 만들 수 있습니다.
- 싱글톤으로 유지가 됩니다. (막 졸업하면 디자인 패턴은 잘 모를 수 있는데 뒤에 객체지향 부분에서 더 설명하겠습니다.)
- 그 말은 즉 데이터의 유일성을 보장합니다.
- 이펙티브자바에서도 싱글턴은 Enum 클래스로 사용하라고 권장합니다.
- 배민에서 만든 글이 진짜 정리가 잘 되어있는데 링크 첨부합니다.
Java Enum 활용기 | 우아한형제들 기술블로그
{{item.name}} 안녕하세요? 우아한 형제들에서 결제/정산 시스템을 개발하고 있는 이동욱입니다. 이번 사내 블로그 포스팅 주제로 저는 Java Enum 활용 경험을 선택하였습니다. 이전에 개인 블로그에 E
techblog.woowahan.com
더 정리되는 대로 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 |