2024.03.02 - [코딩테스트/취업&코테 정보] - 2024 개발자 부트캠프 무엇을 해야하나?
2024.02.25 - [코딩테스트/취업&코테 정보] - (2024.02)개발자 '연봉 5000만원'을 목표로 잡지 말자
JDBC를 도와주는
라이브러리는
1. ORM 중 대표적인 hibernate
2. Mybatis
사용한다.
JSP는 Tiles를 공부하면 화면에 중복되는 부분을 처리하는데 도움 준다.
2021 자바 개발자 로드맵은 아래와 같다.
크게보기
완전한 자바 개발자 로드맵
이제이 Java 개발자 로드맵을 함께 살펴보고 어떤 도구, 프레임 워크, 라이브러리, API를 배울 수 있는지 알아 보겠습니다.
1. 도구
도구 섹션은 여러 섹션으로 나뉩니다. 첫째, IDE는 기본 도구이며 컴파일, 실행, 디버그, 프로파일 링, 테스트, 파일 및 코드 비교, 리팩토링 등과 같이 요청한 거의 모든 작업을 수행 할 수 있습니다.
두 번째 부분은 Maven 및 Gradle 과 같은 프로젝트를 빌드하고 배포하는 데 필요한 빌드 도구 입니다. 이 중 하나이면 충분합니다. 방금 ANT를 나열했지만 레거시 프로젝트를위한 것입니다. 모든 새로운 Java 프로젝트의 경우 Maven 또는 Gradle을 선호합니다.
그리고 세 번째이자 가장 중요한 부분에는 Docker 및 Kubernetes와 같은 컨테이너 , Jenkins 및 TeamCity와 같은 CI / CD 도구, Ansible과 같은 인프라 자동화 도구가 포함됩니다.
이러한 도구에 대해 배우고 싶다면 빌드 도구와 IDE를 배울 수있는 몇 가지 유용한 과정이 있습니다.
- Java 개발자를위한 Apache Maven 학습을위한 5 가지 과정
- IntelliJIDEA를 배우는 5 개의 과정
- Eclipse IDE를 배우는 5 가지 무료 과정
- Docker 및 Kubernetes를 배우기위한 상위 5 개 과정
- CI / CD 용 Jenkins 학습을위한 상위 5 개 과정
- Ansible for Server Automation 학습을위한 상위 5 개 과정
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 를 확인하는 것이 좋습니다 . Pluralsight에 대한 Richard Warburton의 과정을 통해 Java Collection Framework를 심도있게 학습합니다.
2.2 자바 동시성
Java Collections 다음으로 Java에서 가장 중요한 API는 멀티 스레딩 및 동시성에 관한 것입니다. 유능한 Java 개발자가 되려면 Java Concurrency API에 대한 확실한 이해와 명령이 있어야합니다.
Thread, Runnable, Object locking 및 Synchronization과 같은 기본 개념에 대해 깊이 이해해야 할뿐만 아니라 교착 상태, 라이브 록, 경쟁 조건 및 처리 방법과 같은 개념에 대해서도 잘 알고 있어야합니다.
또한 Java 5 및 후속 버전에 추가 된 동기화 장치, 즉 CyclicBarrier, CountDownLatch, Phaser 및 CompleteableFuture 등과 같은 고급 Java 개념과 Futures 및 Java에서 비동기 작업을 수행하는 방법에 대해서도 배워야합니다.
많은 부분이 있기 때문에 동시성 및 디자인 패턴에 관한 권위자 인 Heinz Kabutz의 Java Concurrency in Practice 번들 과 같은 심층 과정에 참여하는 것이 좋습니다 . 이 과정은 약간 비싸지 만 훨씬 더 많은 개념을 심층적으로 배우게되므로 시간과 돈의 가치가 있습니다.
반면 가격이 문제가되는 경우이 Udemy 과정을 Efficient Java Multithreading with Executors 로 확인할 수도 있습니다 . 매월 발생하는 Udemy 플래시 판매에서 10 달러 이상 들지 않습니다. 이것은 또한 Java에서 Java 동시성 및 다중 스레딩을 배우는 훌륭한 과정입니다.
2.3 자바 IO
저는 100 명 이상의 자바 프로그래머를 인터뷰했으며 한 가지 패턴을 발견했습니다. 그들은 모두 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의 많은 필수 개념을 찾을 수 있습니다.
2.4 Java 8 기능
이제 다음으로 필요한 API 인 Java 프로그래머는 Java 8 기능을 배워야합니다. Java 8 기능은 오늘날 Java가 코딩되고 프로그래밍되는 방식을 완전히 변경했습니다. 2021 년에 Java 개발자가 되려면 Lambda 표현식, Stream API, 선택적 클래스, 새로운 날짜 및 시간 API를 사용하는 방법을 알아야합니다.
이러한 API를 알지 못하면 2021 년에 Java 애플리케이션을 작성하기가 매우 어려울 것입니다. 대부분의 라이브러리는 현재 Java 8보다 낮은 버전의 지원을 중단합니다. 즉, Java 8 기능을 나중에 더 배워야합니다. Java 8이 출시 된 지 벌써 5 년이 지났으므로 말 그대로 변명 할 여지가 없습니다.
Java 8 기능 학습과 관련하여 시장에서 사용할 수있는 우수한 리소스가 많이 있습니다. 그래도 Java를 이미 알고 있다면 Pluralsight의 Java 8의 새로운 기능 과정과 같이 Java 8 기능에만 초점을 맞춘 리소스를 선택하는 것이 좋습니다 . 이렇게하면 즉시 Java 8을 배울 수 있습니다.
Java 8 기능은 Core Java 개발자에게 필수적이지만 가능하다면 모듈, 로컬 변수의 var, 컬렉션의 정적 팩토리 메소드, 텍스트 블록, 스위치의 문자열, 레코드와 같이 Java 9에서 Java 15까지 도입 된 다른 모든 새로운 기능을 배우십시오. , 봉인 된 클래스 등이 있습니다. 리소스가 필요한 경우이 과정 목록을 확인하여 2021 년의 모든 새로운 Java 기능 을 배울 수 있습니다.
3. 프레임 워크
Java의 가장 좋은 점은 생동감있는 생태계를 가지고 있다는 것입니다. 즉, 거의 모든 것을위한 많은 프레임 워크와 라이브러리가 있음을 의미합니다. 일반적으로 Java 개발자가 자신의 프로젝트에서 프레임 워크를 사용해야 할 때까지 프레임 워크를 배우는 것은 권장하지 않습니다. 그래도 모든 Java 개발자가 Spring, Spring Boot, Hibernate, Log4j, JUnit 등과 같이 알아야 할 프레임 워크와 라이브러리가 있습니다.
3. 1 스프링 프레임 워크
2021 년에 자바 개발자가되고 싶다면 먼저 Spring Framework를 배우는 것이 좋습니다. 이것은 가장 인기있는 Java 프레임 워크 중 하나이며, 말 그대로 지난 5 년 동안 작업 한 거의 모든 Java 애플리케이션이이 프레임 워크를 사용합니다.
Spring Framework는 Dependency Injection 및 Inversion of Control과 같은 기능을 제공하여 테스트 및 유지 관리가 더 쉬운 깨끗한 코드 작성을 권장합니다. 또한 대부분의 일상적인 작업을위한 풍부한 API가 있으며, 이것이 모든 Java 개발자가 Spring 프레임 워크를 배워야하는 이유입니다.
그리고 Spring 프레임 워크를 배우고 싶다면 Spring Framework 5 : Beginner to Guru 보다 더 좋은 과정은 없습니다 . Spring 5의 최신 버전 인 Spring 5를 다루며 다른 어떤 과정보다 더 많은 실습 방식으로 Spring을 가르칩니다.
3.2 최대 절전 모드
모든 Java 개발자에게 배우도록 권장하는 두 번째 프레임 워크는 JPA (Java Persistence API)를 기반으로하는 Hibernate입니다. 정확히 말하면 Hibernate는 JPA보다 먼저 왔지만 JPA 는 Java에서 지속성 계층을 구현하는 표준 API이므로 Hibernate가이를 구현합니다.
자, 왜 Hibernate를 배워야합니까? 글쎄, 당신이 작업하게 될 대부분의 자바 애플리케이션은 데이터베이스와 상호 작용할 것이기 때문에, JDBC를 사용 하고 Hibernate와 같은 적절한 프레임 워크없이 자바에서 데이터베이스를 다루는 것은 극심한 일 이다.
즉석에서 캐싱 및 트랜잭션과 같은 몇 가지 필수 기능을 제공하므로 애플리케이션 로직에 더 많은 시간을 할애 한 다음 애플리케이션에서 캐싱을 구현할 수 있습니다. 이것은 Java 애플리케이션의 성능을 심각하게 향상시키고 지금까지 Hibernate를 사용하는 가장 중요한 이유입니다.
이제 Hibernate를 학습 할 때 시장에서 사용할 수있는 많은 리소스가 있지만 Spring & Hibernate for Beginners 과정이 제가 선호하는 것입니다. 한 돌에서 두 마리의 새를 죽일 수 있기 때문에 한 클래스에서 Spring과 Hibernate를 모두 배울 수 있기 때문입니다. 그들을 위해 별도의 과정에 참여하는 것보다.
3.3 스프링 부트
이것은 2021 년과 앞으로 모든 Java 개발자가 배우도록 권장하는 또 다른 프레임 워크입니다. Spring Boot는 Spring의 단순화 철학을 채택하여 Spring 자체로 작업하기 쉽게 만들었습니다. Spring이 Java 애플리케이션을 더 쉽게 만들 수있는 것처럼 Spring Boot는 Spring 기반 Java 애플리케이션을 더 쉽게 만들 수 있습니다.
자동 구성과 같은 기능은 Spring 애플리케이션 구성과 관련된 대부분의 고통을 덜어줍니다. 마찬가지로, 스타터 POM 기능은 일반적으로 사용되는 종속성을 단순 재사용 가능한 POM으로 그룹화합니다.
이제 Spring Boot를 배우고 싶다면 Learn Spring Boot in 100 Steps 과정 을 진행하는 것이 좋습니다 . 그것은 가장 최신이며 가장 최신이며 Spring Boot 개발자가 알아야 할 일상적인 것들에 대한 단계별 가이드를 제공합니다.
3.4 MicroProfile, Micronaut 및 Quarkus
Java로 마이크로 서비스를 개발하려면 Spring Boot 및 Spring Cloud를 배우는 것으로 충분하지만 Eclipse Microprofile, Micronaut 및 Quarkus와 같이 탐색 할 수있는 몇 가지 고급 프레임 워크가 있습니다.
3.4.1 Eclipse Microprofile마이크로 서비스 아키텍처를 위해 Enterprise Java를 최적화하는 것을 목표로하는 이니셔티브입니다. Java의 선도적 인 조직 중 하나이자 인기있는 Eclipse IDE의 배후에있는 회사 인 Eclipse가 주도합니다. MicroProfile의 Eclipse의 목표는 마이크로 서비스를 구축하기위한 표준 API를 정의하고 여러 MicroProfile 런타임에 이식 가능한 애플리케이션을 제공하는 것입니다. Eclipse Microprofile의 현재 버전은 3.2이며 2021 년에 배울 수있는 유용한 Java 프레임 워크입니다.
3.4.3 Micronaut이것은 2021 년에 배울 수있는 또 다른 Java 프레임 워크입니다. Micronaut는 모듈 식의 쉽게 테스트 할 수있는 마이크로 서비스 및 서버리스 애플리케이션을 구축하기위한 최신 JVM 기반 풀 스택 프레임 워크입니다. 다국어 프레임 워크이며 Java, Kotlin 또는 Groovy를 사용하여 애플리케이션을 만들 수 있습니다. Micronaut의 핵심 요점 중 일부는 시작 시간 감소, 초고속 처리량 및 최소 메모리 공간입니다.
3.4.3 QuarkusQuarkus는 OpenJDK HotSpot 및 GraalVM에 맞게 조정 된 Kubernetes Native Java 스택으로, 최고의 Java 라이브러리 및 표준으로 제작되었습니다. Quarkus는 GraalVM 및 HotSpot에 맞게 응용 프로그램을 조정하여 놀랍도록 빠른 부팅 시간과 믿을 수 없을 정도로 낮은 RSS 메모리 (힙 크기뿐 아니라!)를 얻습니다.
또한 컴파일 타임 부팅이라는 기술을 사용하여 Kubernetes와 같은 컨테이너 오케스트레이션 플랫폼에서 즉각적인 확장 성과 고밀도 메모리 활용도를 제공합니다. Quarkus 용 응용 프로그램을 개발할 때 익숙한 명령형 코드와 비 차단 반응 스타일을 모두 사용할 수도 있습니다.
간단히 말해, Java 개발자가 애플리케이션을 만들 수있는 최고의 플랫폼 중 하나이며 2021 년에 배울 가치가있는 것입니다.
4. 테스트
테스트는 모든 Java 개발자, 특히 단위 테스트, 통합 테스트 및 자동화 테스트에게 필수적인 기술입니다. 최소한 모든 Java 개발자는 가장 인기있는 단위 테스트 및 Mock 라이브러리 중 두 가지 인 JUnit 및 Mockito에 익숙해야합니다 .
이 두 가지를 알고 있고이를 사용하여 효과적으로 단위 테스트를 만드는 방법을 안다면,이 두 가지가없는 것보다 훨씬 더 나은 Java 개발자가 될 것입니다.
비즈니스 중심 테스트를위한 Cucumber, 통합 테스트를위한 Robot Framework와 같은 고급 라이브러리도 있지만 JUnit을 대체 할 수있는 것은 없습니다. 항상 필요합니다.
모의 라이브러리에 관해서는 PowerMock, Mockito 및 EasyMock과 같은 몇 가지 선택 사항이 있습니다. 그래도 Mockito는 방대한 라이브러리이고 많은 Java 개발자와 회사도 그렇게하고 있기 때문에 배우는 것이 좋습니다. Java에서 모의 객체를 생성하기위한 표준 라이브러리로 서서히 자리 잡고 있습니다.
JUnit과 Mockito를 배우고 싶다면 이미 책 과 강의 와 같은 많은 리소스를 공유 했으므로 자세한 내용을 확인할 수 있습니다.
5. 유틸리티 라이브러리
Java의 진정한 힘은 오픈 소스 라이브러리의 활기찬 에코 시스템에 있습니다. 로깅에서 기계 학습, HTTP 요청 전송에서 JSON 구문 분석에 이르기까지 Java에서 거의 모든 작업을 수행 할 수있는 라이브러리를 찾을 수 있습니다.
그 외에도 Java는 Apache Commons 및 Google Guava와 같은 유틸리티 라이브러리를 보유하게되어 운이 좋으며이 두 라이브러리는 JDK 라이브러리를 효과적으로 보완합니다. 또한 Java 개발자를위한 20 개의 Java API 및 라이브러리 목록을 공유 했습니다.
이 목록을 살펴 보는 것이 좋습니다. 이미 절반이 절반이지만 배우지 않으면 매우 유용하며 더 나은 Java 프로그램을 작성하고 더 빠르게 제공하는 데 도움이됩니다.
Read more: https://javarevisited.blogspot.com/2019/10/the-java-developer-roadmap.html#ixzz6jy5gV5DO
'웹(Web) > 백엔드(Backend)' 카테고리의 다른 글
Redis Slave to Master 바꾸기 (0) | 2024.03.24 |
---|---|
리눅스 터미널 명령어 모음 (1) | 2024.03.16 |
Nexus 3.xx 설치/실행 오류 해결(Windows 환경) (0) | 2023.11.18 |
[SpringBoot] java record와 DTO에 관하여... (0) | 2023.05.12 |
Spring Data JPA 페이징 (0) | 2022.09.01 |