| 글의 목적
그저 아무이유 없이 최신버전이기에, 그냥 사용해왔던 버전이기에 해당 기술 버전을 사용하기 보다 제가 사용하고 있는 버전이 어떠한 특징이 있는 지 확실히 알고 사용하고 싶었습니다. 그래서, 이번 기회에 전체적인 정리를 하면 좋을 것 같아 글을 작성합니다.
📌 Java Version
| Java 8 (2014.03)
- Lambda Expression (람다 표현식)
- Steram API
- new Date and Time API (LocalDateTime, ZonedDateTime 추가)
- (Date, Calendar 대체 가능)
- Optional Class 추가 -> NullPointerException 관련
- Interface 변화 (Default Method, static Method 사용가능)
- PermGen Area 제거 -> 추가 공부
| Java 11
- String 클래스의 메소드 추가
- lines(), strip(), isBlank() 등
- Collection Interface의 메소드 추가
- 사용자가 원하는 타입의 배열을 선택 및 사용가능
List list = Arrays.asList("Retrospect"); String[] arr = list.toArray(String[]::new);
- 사용자가 원하는 타입의 배열을 선택 및 사용가능
- var 변수 선언을 Lambda Expression에서 사용가능
- 새로운 Garbage Collector 사용
📌Spring Version
| Spring boot 2.x.x (Spring 5.X)
- Java 8 이상 버전 가능 -> 제네릭과 람다를 통한 가독성 향상
- HTTP/2 지원 (공식적으로 지원)
- HTTP 헤더 데이터 압축
- Kotlin 지원
- Junit 5 지원
- Spring WebFlux 도입
- 복수개의 서비스로 구성된 분산 시스템 제공
- 비동기 방식의 리액티브 개발 가능
- MSA에 적합한 형태
📌MySQL Version
| MySQL 5.7
- 성능 향상
- 보안기능 향상
- 패스워드 기간만료 기능 추가
- 계정 비활성화 기능 추가
- JSON 지원
- 구조화된 데이터의 형태로 데이터 저장
- JSON 관련 함수 사용 가능
| MySQL 8.0
- InnoDB
- Auto_Increment의 초기화 방식 변경 (Data Dictionary 시스템 테이블에 저장된 가장 큰 증가값을 이용)
- NOWAIT / SKIP LOCKED
- NOWAIT : timeout을 기다리지 않도록 설정 / 행 잠금을 기다리지 않고 쿼리가 실패해 오류가 발생
- SKIP LOCKED : 잠긴 행을 결과 집합에서 제거하도록 설정
- 5.7버전보다 성능 향상
- JSON 확장 구문 및 기능 사용 가능
'Develop' 카테고리의 다른 글
@Transactional이란? @Transactional의 옵션은?? (0) | 2021.11.15 |
---|---|
Delete Data : Soft Delete vs Hard Delete (0) | 2021.11.09 |
Deadlock - 교착상태 (0) | 2021.08.24 |