1. 어노테이션이란 스프링 프레임워크를 사용하면 어노테이션을 자주 사용하게 됩니다. 아래는 스프링 웹 MVC를 사용한 예로 GET HTTP 요청(/helloworld)이 있으면 “Hello World”를 담아서 뷰에 전달되는 코드입니다. 이런 어노테이션은 내부적으로 어떻게 코드화되어 사용되는지 알아봅시다. @Controller public class HelloWorldController { @RequestMapping(value="/helloworld", method=RequestMethod.GET) public ModelAndView example() { return new ModelAndView("helloworld", "message", "Hello World"); } } 자바 어노테이션은 JDK5..
자바 개발을 하다 보면 하나의 JDK 버전이 아니라 여러 버전을 설치해야 할 때가 종종 있습니다. 진행하는 프로젝트마다 개발하는 JDK 버전이 조금씩 다를 수 있고 새로 릴리스한 버전을 설치해서 스터디하고 싶을 때 여러 버전이 존재하게 됩니다. 한 시스템에 여러 버전이 존재하지만, 쉽게 한 버전에서 다른 버전으로 변경할 수 있는 명령어를 JDK에서는 제공하지는 않습니다. 개발자가 알아서 수동으로 변경해야 합니다. 본 포스팅에서는 맥 환경을 대상으로 어떻게 여러 버전의 JDK로 쉽게 변경할 수 있는지 알아보겠습니다. 1. 여러 JDK 버전 설치하기 일단, 먼저 여러 JDK 버전을 설치해 볼까요? brew 명령어로 3가지 JDK 버전을 설치하도록 하겠습니다. ># brew cask install java j..
Gatsby로 블로그 마이그레이션을 하여 이 링크를 클릭하면 해당 포스팅으로 갑니다. 감사합니다. http://blog.advenoh.pe.kr 1. 개요 final 키워드를 떠올릴 때면 그냥 상수로만 생각할 때가 종종 있습니다. final을 클래스, 메서드, 변수에 선언하면 조금씩 할 수 있는 부분들이 제안됩니다. 너무 당연한 내용이지만, 시간이 지니니까 기억에서 사라져버려서 이번에 다시 한번 상기하기 위해 정리를 해보았습니다. 자바에서 final 키워드는 여러 컨텍스트에서 단 한 번만 할당될 수 있는 entity를 정의할 때 사용됩니다. (위키피니아) final 키워드는 총 3가지에 적용할 수 있습니다. 각각에 대해서 세부적으로 알아보죠. final 변수 원시 타입 객체 타입 클래스 필드 메서드 인자..
Gatsby로 블로그 마이그레이션을 하여 이 링크를 클릭하면 해당 포스팅으로 갑니다. 감사합니다. http://blog.advenoh.pe.kr 자바10 언어 JEP 286: Local Variable Type Inference JVM/Compiler JEP 304: Garbage-Collector Interface JEP 307: Parallel Full GC for G1 JEP 316: Heap Allocation on Alternative Memory Devices JEP 317: Experimental Java-Based JIT Compiler 기타 변경 및 개선사항 JEP 296: Consolidate the JDK Forest into a Single Repository JEP 310: App..
Gatsby로 블로그 마이그레이션을 하여 이 링크를 클릭하면 해당 포스팅으로 갑니다. 감사합니다. http://blog.advenoh.pe.kr 자바Beyond JEP 301: Enhanced Enums - 현재 보류중 JEP 302: Lambda Leftovers - Candidate JEP 305: Pattern Matching - Candidate JEP ???: Data Classes JEP 312: Switch Expressions - Proposed to Target (JDK12) JEP 326: Raw String Literals - Candidate 자바의 릴리스 주기가 6개월로 변경되면서 새로운 기능, 개선사항들이 빠르게 반영될 것으로 기대하고 있습니다. 아직 반영되지는 않았지만, 추후 ..
Gatsby로 블로그 마이그레이션을 하여 이 링크를 클릭하면 해당 포스팅으로 갑니다. 감사합니다. http://blog.advenoh.pe.kr 자바11 JEP 181: Nest-Based Access Control JEP 309: Dynamic Class-File Constants JEP 315: Improve Aarch64 Intrinsics JEP 318: Epsilon: A No-Op Garbage Collector JEP 320: Remove the Java EE and CORBA Modules JEP 321: HTTP Client (Standard) JEP 323: Local-Variable Syntax for Lambda Parameters JEP 324: Key Agreement with ..
Gatsby로 블로그 마이그레이션을 하여 이 링크를 클릭하면 해당 포스팅으로 갑니다. 감사합니다. http://blog.advenoh.pe.kr 자바9 Java Platform Module System JEP 222: Jshell - REPL JEP 158: Unified VM logging JVM component에 대한 공통 로깅 시스템 제공 (-Xlog) HTML5 Javadoc HTML5 형식의 API를 생성할 수 있는 도구 Language Update try-with-resources 개선 private interface method interface에서는 항상 public로 정의해야 했는데, private도 가능하도록 함 diamond operator 익명 내부 클래스에서도 diamond op..
Gatsby로 블로그 마이그레이션을 하여 이 링크를 클릭하면 해당 포스팅으로 갑니다. 감사합니다. http://blog.advenoh.pe.kr 자바8 언어 람다식 표현 스트림 Method Reference Default Method Type inferece 개선 Optional 새 자바스크립트 엔진 (Nashorn) JDK11에서 제거될 예정 Joda Time 방식의 새 날짜 API 변경 JavaFX 메타 데이터 지원 보완 IO/NIO 확장 Concurrency API 개선 Heap에서 영속 세다(Permanent Generation) 제거 자바8에 추가된 여러 기능 및 개선 사항은 다음 링크를 참조해주세요. https://www.oracle.com/technetwork/java/javase/8-wha..