Java Technical

2020 Java Developer Roadmap

Medium Post를 통해서 접하게 된 “2020 Java Developer Roadmap” 자료를 읽게 되었다. Java 개발자라는 타이틀을 10년이상 하고 있으면서 이런 Roadmap을 모르고 있었다는 사실에 놀랍고, 역시 외국에서는 언제나 체계적으로 한다는 점에서 한번 더 놀란다.

국내에서 Java 개발자라면, 비즈니스 개발을 하는 “Back-End 개발자” 또는 “개발자 필수 언어”라고 일반적으로 쓰기까지 한다. 물론, IT 개발에 오랜 사람이라면 Java 개발 프로젝트에는 거부감 자체가 없는게 사실이다. (구현 언어가 걱정되지 않고, 비즈니스 복잡도와 고객의 요구사항이 걱정이다)

그렇지만, Java 8 부터 등장하기 시작하는 New Feature 들을 보면, “이제는 Java가 맞는가?” 부터 해서 새롭다기 보다 “과연 Java 일까?” 라는 생각이 들정도로 많이 변화하고 있다.

필요할 때 마다, 찾아보던 Java의 새로운 기능과 문법들을 Roadmap을 보면서, 스스로가 알고 있던 부분의 조각이 어디까지 이며, 부족한 면은 어떤 것이 있는지, 또 앞으로는 또 어떻게 변화 하려는지 번역본을 기재하여 같이 공감했으면 한다.

이하 내용은 “https://javarevisited.blogspot.com/2019/10/the-java-developer-roadmap.html” 에서 인용하여 자동 번역된 내용입니다.


2020 년 자바 개발자 로드맵

모든 Java 개발자를위한 필수 기술

1. Git & Github
가장 인기있는 버전 관리 시스템 중 하나입니다. 더 이상 Git 없이는 살 수 없습니다.  Udemy에서 Git Complete Guide 를 확인하십시오  .

2. Linux
웹 개발자 일뿐 아니라 모든 프로그래머에게 Linux 명령 줄은 매우 중요하므로, 배우는 데 시간을 할애하는 것이 좋습니다. 이 무료 Linux 과정  을 사용하여 Linux 학습 을 시작할 수 있습니다 .

5. 데이터 구조 및 알고리즘
이것은 모든 프로그램의 구성 요소이며, 다음 작업 또는 현재 상황을 잘 수행하기 위해서는 알고리즘 및 데이터 구조에 대한 지식이 필요합니다.

최소한 배열, 링크 된 목록, 해시 테이블, 이진 트리, 큐, 스택 및 그래프와 같은 필수 데이터 구조에 익숙해야합니다.

Trie, B-Tree, AVL tree와 같은 고급 데이터 구조를 알고 있다면 훌륭합니다. 그러나 모르는 경우 데이터 구조 및 알고리즘 : Java를 사용한 심층 다이빙과 같은 포괄적 인 과정에 참여하여 모든 기본 사항에 대한 모든 것을 배울 수 있습니다.

3. HTTP / HTTPS
HTTP 프로토콜은 웹의 중추이며, 웹 개발자에게는 HTTP와 HTTPS에 대한 좋은 지식이 필요합니다

7. 컴퓨터 과학 기초
전 세계 여러 언어로 정보를 표시하는 전역 응용 프로그램을 만드는 경우 문자 인코딩에 대해 잘 알고 있어야합니다. 기본적으로 브라우저에 데이터를 표시하는 방법을 알려줍니다.

8. 디자인 패턴
모든 프로그래머가 Git과 Github을 버전 관리 및 코드 저장소 측면에서 표준으로 알고 있어야한다는 것은 의심의 여지가 없습니다. Git과 Github을 배우고 익히려면이  과 코스 목록을 확인 하여 디자인 패턴을 배울 수 있습니다.

자바에서 디자인 패턴을 배우기위한 최고의 코스

완전한 Java 개발자 로드맵

이제이 Java 개발자 로드맵을 함께 살펴보고 학습 할 수있는 도구, 프레임 워크, 라이브러리, API를 알아 보겠습니다.

1. 도구

도구 섹션은 여러 섹션으로 나뉩니다. 첫째, IDE는 기본 도구이며 컴파일, 실행, 디버그, 프로파일 링, 테스트, 파일 및 코드 비교, 리팩토링 등과 같은 거의 모든 작업을 수행 할 수 있습니다.

두 번째 부분은 Maven 및 Gradle 과 같은 프로젝트를 빌드하고 배포해야하는 빌드 도구 입니다. 이것으로 충분할 것입니다. 방금 ANT를 나열했지만 레거시 프로젝트를위한 것입니다. 모든 새로운 Java 프로젝트에는 Maven 또는 Gradle을 선호하십시오.

그리고 세 번째로 중요한 부분은 Docker 및 Kubernetes와 같은 컨테이너  , Jenkins 및 TeamCity와 같은 CI / CD 도구 및 Ansible과 같은 인프라 자동화 도구를 포함합니다.

이러한 도구에 대해 배우고 싶다면 빌드 도구와 IDE를 배우는 데 유용한 몇 가지 과정이 있습니다.

2. JDK API

다음으로 배울 중요한 것은 JDK API이며, 이는 모든 Java 개발자에게 매우 중요합니다. 이것은 꽤 큰 섹션이므로 Java Collections 프레임 워크, Java Concurrency, Java IO 및 Java 8 API와 같은 핵심 영역으로 나뉘어져 있습니다.

2.1 자바 컬렉션 프레임 워크

이것은 모든 Java 개발자가 알아야 할 가장 필수적인 Java API 중 하나입니다. 이 API는 Java와 같은 링크 된 목록, 설정, 스택, 대기열, 해시 테이블, 우선 순위 대기열 등의 표준 데이터 구조 구현을 제공합니다.

적어도 ArrayList , HashMap , HashSet ,  LinkedHashSet , TreeSet 등과 같은 모든 일상적인 객체에 대해 알아야합니다 . 각각 ArrayList와 같이 다른 속성을 가지고 있습니다. 성장 할 수있는 동적 배열입니다. HashMap은 해시 테이블의 표준 구현이며 키-값 쌍을 저장하는 데 사용됩니다.

마찬가지로 HashSet은 중복 요소를 허용하지 않는 집합 구현입니다. Java Fundamentals : Collections 를 확인하는 것이 좋습니다  . Java Collection Framework에 대한 자세한 내용은 Pluralsight에서 Richard Warburton이 제공합니다.

Java Collections를 배우는 가장 좋은 방법

2.2 자바 동시성

Java Collections 이후 Java에서 다음으로 가장 중요한 API는 멀티 스레딩 및 동시성에 관한 것이며, 유능한 Java 개발자가 되려면 Java Concurrency API에 대한 확실한 이해와 명령이 필요하다고 확신합니다.

Thread, Runnable, Object locking 및 Synchronization과 같은 기본 개념을 심층적으로 이해해야 할뿐만 아니라 교착 상태, 라이브 록, 경쟁 조건 및 이러한 개념을 처리하는 방법에 대해서도 잘 알고 있어야합니다.

또한 Java 5 및 이후 버전에 추가 된 동기화 프로그램과 같은 고급 Java 개념, CyclicBarrier, CountDownLatch, Phaser 및 CompleteableFuture 등을 비롯하여 Futures와 함께 Java에서 비동기 작업을 수행하는 방법에 대해서도 배워야합니다.

나는 많은 것들을 알고 있기 때문에 Java 챔피언 인 Heinz Kabutz의 Java Concurrency in Practice 번들 과 동시성 및 디자인 패턴에 관한 권위와 같은 심도 깊은 과정에 참여하는 것이 좋습니다 . 이 과정은 약간 비싸지 만 훨씬 더 많은 개념을 심도있게 배울 수 있으므로 시간과 돈을 완전히 가치가 있습니다.

Java 동시성을 배우는 가장 좋은 과정

반면에 가격이 문제가 될 경우이 Udemy 과정을 Executors 를 사용한 효율적인 Java 멀티 스레딩으로 확인할 수 있습니다. 매월 발생하는 Udemy 플래시 판매를 통해 10 달러 이상이 소요되지 않습니다. 또한 Java 동시성 및 멀티 스레딩을 배우는 훌륭한 과정입니다.

2.3 자바 IO

저는 100 명 이상의 Java 프로그래머와 인터뷰를했으며 한 가지 패턴을 발견했습니다. Java Collections 및 Java Multithreading API에 비해 Java IO 및 NIO API에 대한 지식이 거의 없습니다. 많은 사람들이이 두 가지 API를 배우는 데 많은 시간을 소비하지만이 중요한 API를 남길 수는 없습니다.

실제 핵심 Java 애플리케이션을 코딩해야하는 경우 Java IO API의 핵심 인 java.io 패키지의 File, InputStream , OutputStream , Reader, Writer 와 같은 클래스를 사용해야 합니다. 마찬가지로 ByteBuffer , FileChannel , Selector 및 java.nio의 기타 중요한 클래스에 대해서도 알아야합니다. 소켓 기반 응용 프로그램을 작성하려는 경우 API

불행히도 Java IO 및 Java NIO API를 가르치는 데 필요한 전용 리소스는 많지 않지만 Complete Java Masterclass 는이 API를 마스터하는 데 유용한 리소스입니다. 이 과정에서이 API에서 많은 필수 개념을 찾을 수 있습니다.

Java File API를 배우는 가장 좋은 방법

2.4 Java 8 기능

이제 자바 프로그래머가 알아야 할 다음 또 다른 API 인 Java 8 기능은 오늘날 Java 코딩 및 프로그래밍 방식을 완전히 바꿔 놓았습니다. 2020 년에 Java 개발자가 되려면 Lambda 표현식, Stream API, 선택적 클래스 및 새로운 날짜 및 시간 API를 사용하는 방법을 알아야합니다.

이러한 API를 알지 못하면 2020 년에 Java 응용 프로그램을 작성하기가 매우 어려울 것입니다. 대부분의 라이브러리는 이제 Java 8보다 낮은 버전의 지원을 중단하므로 나중에 Java 8 기능을 익혀야합니다. Java 8이 출시 된 지 벌써 5 년이 지났으므로 말 그대로 변명의 여지가 없습니다.

Java 8 기능을 배우는 데있어 시장에는 유용한 자료가 많이 있습니다. 그래도 Java를 이미 알고 있다면 Pluralsight의 Java 8 새로운 기능과 같은 Java 8 기능에만 중점을 둔 리소스를 선택하는 것이 좋습니다 . 이런 식으로 Java 8을 즉시 배울 수 있습니다.

Java 8을 배우는 가장 좋은 방법

Java 8 기능은 핵심 Java 개발자에게 필수적이지만 가능하면 Java 9에서 Java 13에 도입 된 모듈, 로컬 변수의 var, 콜렉션의 정적 팩토리 메소드, Text Block, String in Switch 및 기타와 같은 다른 모든 새로운 기능을 학습하십시오. 더. 자원이 필요한 경우이 코스 목록을 확인하여 2020 년에 모든 새로운 Java 기능 을 배울 수 있습니다.

3. 프레임 워크

Java의 가장 좋은 점은 활기찬 생태계가 있다는 것입니다. 즉, 거의 모든 프레임 워크와 라이브러리가 있습니다. 일반적으로 Java 개발자가 프로젝트에서 프레임 워크를 사용해야 할 때까지 프레임 워크를 배우는 것이 좋습니다. 여전히 모든 Java 개발자가 Spring, Spring Boot, Hibernate, Log4j, JUnit 등을 알아야한다고 생각하는 프레임 워크와 라이브러리가 있습니다.

3. 1 스프링 프레임 워크

2020 년에 Java 개발자가 되려면 Spring Framework를 먼저 배우는 것이 좋습니다. 이것은 가장 널리 사용되는 Java 프레임 워크 중 하나이며 말 그대로 지난 5 년 동안 작업 한 거의 모든 단일 Java 응용 프로그램에서이 프레임 워크를 사용합니다.

Spring Framework는 Dependency Injection 및 Inversion of Control과 같은 기능을 제공하여 테스트 및 유지 관리가 쉬운 깨끗한 코드 작성을 권장합니다. 또한 대부분의 일상적인 작업을위한 풍부한 API가 있으므로 모든 Java 개발자가 Spring 프레임 워크를 배워야합니다.

그리고 스프링 프레임 워크를 배우고 싶다면 Spring Framework 5 : Beginner to Guru 보다 나은 코스는 없습니다 . Spring 5의 최신 버전 인 Spring 5를 다루며 Spring을 다른 코스보다 더 실습 적으로 가르칩니다.

봄 5를 배우는 가장 좋은 코스

3.2 최대 절전

모든 Java 개발자에게 권장하는 두 번째 프레임 워크는 JPA (Java Persistence API)를 기반으로하는 Hibernate입니다. 정확하게 말하면, Hibernate는 JPA보다 먼저 왔지만 JPA 는 Java로 지속성 계층을 구현하는 표준 API 이기 때문에 Hibernate는 그것을 구현합니다.

이제 왜 최대 절전 모드를 배워야합니까? 글쎄, 당신이 작업 할 대부분의 Java 응용 프로그램은 데이터베이스와 상호 작용하기 때문에 JDBC를 사용 하고 Hibernate와 같은 적절한 프레임 워크가 없으면 Java에서 데이터베이스를 처리하는 것이 절실합니다 .

캐싱 및 즉시 사용 가능한 트랜잭션과 같은 필수 기능을 제공하므로 응용 프로그램 논리에 집중 한 다음 응용 프로그램에서 캐싱을 구현할 수 있습니다. 이것은 Java 애플리케이션의 성능을 크게 향상 시키며, 지금까지 Hibernate를 사용해야하는 가장 중요한 이유입니다.

이제 최대 절전 모드를 배우는 데는 시장에 많은 유용한 자료가 있지만 초보자를위한 Spring & Hibernate 코스는 하나의 돌에서 두 마리의 새를 죽일 수 있기 때문에 내가 선호하는 것입니다. 한 클래스에서 Spring과 Hibernate를 모두 배울 수 있습니다 별도의 과정에 참여하는 대신

3.3 스프링 부트

이것은 모든 Java 개발자가 2020 년에 배우고 앞으로 나아갈 것을 권장하는 또 다른 프레임 워크입니다. Spring Boot는 Spring의 단순화 철학을 채택하여 Spring 자체로 쉽게 작업 할 수 있도록했습니다. Spring에서 Java 애플리케이션을보다 쉽게 ​​작성할 수있는 것처럼 Spring Boot를 통해 스프링 기반 Java 애플리케이션을보다 쉽게 ​​만들 수 있습니다.

자동 구성과 같은 기능은 Spring 애플리케이션 구성과 관련된 대부분의 어려움을 없애줍니다. 마찬가지로 스타터 POM 기능은 일반적으로 사용되는 종속성을 간단한 재사용 가능한 POM으로 그룹화합니다.

Spring Boot를 배우고 싶다면 100 Steps 과정 에서 Learn Spring Boot 과정을 밟는 것이 좋습니다 . 스프링 부트 개발자가 알아야 할 일상적인 것들에 대한 단계별 가이드를 제공합니다.

3.4 MicroProfile, Micronaut 및 Quarkus

Spring Boot와 Spring Cloud를 배우는 것이 Java로 Microservices를 개발하기에 충분하지만 Eclipse Microprofile, Micronaut 및 Quarkus와 같이 탐색 할 수있는 몇 가지 고급 프레임 워크가 있습니다.

3.4.1 Eclipse Microprofile
Microservice Architecture를 위해 Enterprise Java를 최적화하기위한 이니셔티브입니다. Java의 주요 조직 중 하나이며 인기있는 Eclipse IDE의 배후 인 Eclipse에 의해 구동됩니다. MicroProfile의 Eclipse 목표는 마이크로 서비스 구축을위한 표준 API를 정의하고 여러 MicroProfile 런타임에서 휴대용 애플리케이션을 제공하는 것입니다. 3.2의 현재 버전의 Eclipse Microprofile이며 2020 년에 배울 수있는 유용한 Java 프레임 워크입니다.

3.4.3 Micronaut
이것은 2020 년에 배울 수있는 또 다른 Java 프레임 워크입니다. Micronaut는 쉽게 테스트 할 수있는 모듈 식 마이크로 서비스 및 서버리스 응용 프로그램을 빌드하기위한 최신 JVM 기반 풀 스택 프레임 워크입니다. 이것은 폴리 글 로트 프레임 워크이며 Java, Kotlin 또는 Groovy를 사용하여 애플리케이션을 작성할 수 있습니다. Micronaut의 주요 요점 중 하나는 시작 시간 단축, 빠른 처리량 및 최소 메모리 공간입니다.

3.4.3 Quarkus
Quarkus는 최고의 Java 라이브러리 및 표준으로 만들어진 OpenJDK HotSpot 및 GraalVM에 맞게 조정 된 Kubernetes Native Java 스택입니다. Quarkus는 GraalVM 및 HotSpot에 맞게 응용 프로그램을 조정하여 부팅 시간이 놀라 울 정도로 빠르고 RSS 메모리가 매우 적습니다 (힙 크기뿐 아니라).

또한 컴파일 타임 부팅이라는 기술을 사용하여 Kubernetes와 같은 컨테이너 오케스트레이션 플랫폼에서 즉각적인 확장 성과 고밀도 메모리 활용을 제공합니다. Quarkus 용 응용 프로그램을 개발할 때 익숙한 명령 코드와 비 차단 반응 스타일을 모두 사용할 수 있습니다.

간단히 말해서, Java 개발자가 2020 년에 학습 할 가치가있는 응용 프로그램과 무언가를 만들 수있는 최고의 플랫폼 중 하나입니다.

Java 2020에서 배울 수있는 주요 프레임 워크

4. 테스트

테스팅은 Java 개발자, 특히 단위 테스팅, 통합 테스팅 및 자동화 테스팅에 필수적인 기술입니다. 최소한 모든 Java 개발자는 가장 인기있는 단위 테스트 및 Mock 라이브러리 중 하나 인 JUnit 및 Mockito에 익숙해야합니다 .

이 두 가지를 알고 단위 테스트를 효과적으로 작성하는 데 사용하는 방법을 알고 있다면 Java 개발자가없는 것보다 훨씬 나은 Java 개발자가 될 것입니다.

비즈니스 중심 테스트 용 Cucumber, 통합 테스트 용 로봇 프레임 워크와 같은 고급 라이브러리도 있지만 JUnit을 대체 할 수는 없습니다. 항상 필요합니다.

모의 라이브러리와 관련하여 PowerMock, Mockito 및 EasyMock과 같은 몇 가지 선택 사항이 있습니다. 그럼에도 불구하고 Mockito는 방대한 라이브러리이기 때문에 많은 Java 개발자와 회사가 그렇게하고 있기 때문에 Mockito를 배우는 것이 좋습니다. 자바에서 모의 ​​객체를 만들기위한 표준 라이브러리로 서서히 발전하고 있습니다.

JUnit과 Mockito를 배우고 싶다면 이미  과 코스 와 같은 많은 리소스를 공유 했으므로 자세한 내용을 확인할 수 있습니다.

5. 유틸리티 라이브러리

Java의 진정한 힘은 오픈 소스 라이브러리의 활기찬 생태계에 있습니다. 로깅에서 기계 학습, HTTP 요청 전송에서 JSON 구문 분석에 이르기까지 거의 모든 작업을 수행하는 라이브러리를 찾을 수 있습니다.

그 외에도 Java에는 Apache Commons 및 Google Guava와 같은 유틸리티 라이브러리가있어 운이 좋으며이 두 라이브러리는 JDK 라이브러리를 효과적으로 보완합니다. 또한 Java 개발자를위한 20 개의 Java API 및 라이브러리 목록을 공유 했습니다.

나는 당신이 그 목록을 살펴볼 것을 권한다. 당신이 이미 반을 썼을 가능성이있다. 그러나 당신이 그것들을 배우지 않는다면 그것들은 매우 유용하고 더 나은 Java 프로그램을 작성하고 더 빨리 제공하도록 도와 준다.

이것이  2020 Java 개발자 로드맵에 관한 것입니다. 2020 년에 Java를 배우고 더 나은 Java 개발자가되기위한 훌륭한 자료입니다. 나는 대부분의 사람들이 그것을 따르고 중요한 것들만 포함 할 수 있도록 간단하게 유지했지만, 충분한 욕구가 있다면 Java Developer RoadMap 2.0을 게시하여 JVM 내부, 프로파일 링, 모듈과 같은 고급 기능을 추가하려고합니다. , Cloud Native Java, 컨테이너 등이 있습니다.

댓글 남기기

이 사이트는 스팸을 줄이는 아키스밋을 사용합니다. 댓글이 어떻게 처리되는지 알아보십시오.

%d 블로거가 이것을 좋아합니다: