javareVisited 에서 공유한 [2020년 자바 개발자 로드맵] 자료를 번역/의역 하여 공유 합니다.~

 

안녕하세요 여러분, 우선 2020 년 새해 복 많이 받으시기 바랍니다 . 웹 개발자 , DevOps 엔지니어 및 최근 React.js 개발자 가되기위한 많은 로드맵을 공유하고 있습니다 . 많은 독자로부터 받은 요청 중 하나는 Java Developer Roadmap 을 작성 하는 것이 었습니다 . Java는 저의 전문 기술이므로 Java Developer Roadmap을 작성하는 데는 문제가 없었지만 시간이 제한되어 있기 때문에 Java Developer Roadmap을 작성하는 데 약간의 시간이 걸렸습니다. 어쨌든, 나는 마침내 Java 개발자 RoadMap을 당신과 공유 할 준비가 되었습니다. 이 로드맵에는 저의 오랜 경험과 Java 전문가가 되는 방법을 제공 합니다. Java 개발자가 어떤 기술을 배워야하는지 등 여러 가지 뜨거운 질문에 답변 드립니다. 더 나은 Java 개발자를 만드는 도구는 무엇인지? 그리고 Java 개발자가 반드시 알아야하는 프레임 워크를 소개 합니다.

내가 이 로드맵으로 시도했던 것 중 하나는 가능한 독자분의 시간을 아끼기 위해, 특히 라이브러리와 툴에 관한 한, 그리고 산업 표준 툴과 라이브러리를 유지하며, 많은 대안들의 언급을 것을 피했다는 것입니다.

나는 사람들의 대부분이 그것을 따를 수 있도록 최소한의 필수 자료들을 포함시켰지만, 만약 충분한 의욕이 있다면, JVM internals, Profiling, Java 9 Modules, Cloud Native Java, 그리고 AWS, GCP, Azure와 같은 다른 클라우드 플랫폼, 그리고 더욱 성장하기 위한 Java Developer RoadMap 2.0을 게시할 생각 입니다.

관심이 있으시면 추가 학습 섹션에 나열된 별도의 블로그에서 더 구체적인 목록을 찾을 수 있을 것입니다. 어쨌든,이 Java Developer RoadMap을 통해 2020 년에 Java 개발자가되는 방법을 알아 보겠습니다.


어째거나, 당신은 결코 성공한 개발자가되기 위해 이 로드맵의 모든 것을 이해할 필요는 없습니다. 사실, 원하지 않으면 진지하게 받아 들일 필요조차 없습니다. 대신,이 지도를 출발점으로 사용하여 학습을 시작 하세요.




 

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


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


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

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


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

최소한 array, linked list, hash table, 이진 트리, 큐, 스택 및 그래프와 같은 필수 데이터 구조에 익숙해야 합니다.

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


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


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




완전한 Java 개발자 로드맵

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

1. 도구

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

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

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

이러한 도구에 대해 배우고 싶다면 빌드 도구와 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가 확장 가능한 동적 배열인 것처럼 서로 다른 속성을 가지고 있으며, 해시맵은 해시 테이블의 표준 구현이며 키-값 쌍을 저장하는 데 사용될 수 있습니다.

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



2.2 자바 동시성

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

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

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

나는 많은 것들을 알고 있는 Java 권위자인 Heinz Kabutz의 Java 연습 in 실전 꾸러미 과 동시성 및 디자인 패턴에 관한 권위있고 심도깊은 과정에 참여하는 것이 좋습니다. 이 과정은 약간 비싸지 만 훨씬 더 많은 개념을 심도있게 배울 수 있으므로 시간과 돈이 아깝지 않을 것입니다..



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

2.3 자바 IO

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

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

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



2.4 Java 8 기능

이제 자바 프로그래머가 알아야 할 다음으로 필요한 API는 Java 8의 기능인데, 오늘날 Java 코드 및 프로그래밍 방식을 완전히 바꿔 놓았습니다. 2020 년에 Java 개발자가 되려면 Lambda 표현식, Stream API, Optional Class 및 새로워진 날짜 및 시간 API를 사용하는 방법을 알아야합니다.

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

Java 8 기능을 배우는 데있어 시장에는 유용한 자료가 많이 있습니다. 그래도 Java를 이미 알고 있다면 Pluralsight의 새로운 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을 다른 코스보다 더 실습 적으로 가르칩니다.



3.2 Hibernate

모든 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 년에 학습 할 가치가있는 응용 프로그램과 무언가를 만들 수있는 최고의 플랫폼 중 하나입니다.



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 내부, 프로파일링, Modules, Cloud Native Java, 컨테이너 등과 같은 고급 기능을 추가하려고 합니다.

 

원본 : https://javarevisited.blogspot.com/2019/10/the-java-developer-roadmap.html#axzz64YOHJ2TL

 

 

+ Recent posts