JavaRush /Java Blog /Random-KO /자바. 행동 계획

자바. 행동 계획

Random-KO 그룹에 게시되었습니다
자바.  실행 계획 - 1

콘텐츠:

  1. 섹션 0 - 자바 코어
  2. 도구
  3. JDK API
  4. 자바 8의 새로운 기능
  5. SQL, 데이터베이스, JDBC
  6. 프레임워크
  7. 테스트용 라이브러리 및 프레임워크
  8. 서비스 라이브러리
  9. API 클라이언트
  10. 디자인 패턴
  11. 추가 지식
잠재적인 Java Junior가 첫 직장을 얻거나 적어도 좋은 회사의 연수생 자리에 지원하려면 무엇을 알아야 합니까? Java 프로그래머가 다음 단계에 도달하는 데 도움이 되는 도구는 무엇입니까? 어떤 기술을 연구하고 어떤 기술을 나중에 남겨둘까요? 모든 사람에게 꼭 맞는 단일한 행동 계획이 없는 것처럼 이러한 질문에 대한 표준적인 대답도 없습니다. 일부 회사는 개발을 위해 노력하고 지속적으로 새로운 기술을 도입하고 새 버전의 언어 기능을 테스트하는 반면 다른 회사는 완고하게 이전 버전을 고수합니다. "중간" 옵션도 있으며 아마도 더 많은 옵션이 있을 수 있습니다. 그러나 우리는 야심찬 Java 개발자를 위한 로드맵을 준비했습니다. 최대한 간단하게 만들기 위해 대다수의 "javistes"에 필요한 기술과 주제만 표시했습니다. 모든 것을 자세히 연구할 필요는 없지만(위의 일부 내용은 팀으로 작업해야만 숙달할 수 있음), 일반적인 이해를 갖는 것이 나쁠 것은 없다는 점을 기억해야 합니다.

0. 섹션 0 - 자바 코어

Java를 배우려는 계획만 있고 어디서부터 시작해야 할지 모르는 사람이 여기에 올 경우를 대비하여 섹션 0을 기사에 삽입했습니다. Java Core는 초보자라도 아주 잘 알아야 할 것입니다. 즉, 기본적인 사항을 알고, 특정 문제를 해결하기 위해 언어가 제공하는 것이 무엇인지 이해하고, 간단한 경우에는 이 지식을 적용할 수 있는 것입니다. JavaRush에서 Java Core를 연습할 수 있습니다. 아직 해보지 않았다면 이 과정 을 수강해 보세요 ! 글쎄, 다른 모든 사람들을 위해 Java Core의 주요 이정표를 상기시켜 드리겠습니다.
  • 기본 Java 구문, 연산자 및 데이터 유형
  • OOP와 Java에서의 구현
  • 예외
  • 자바 컬렉션
  • 제네릭
  • 멀티스레딩

1. 도구

IDE 또는 통합 개발 환경

현대 개발자의 주요 도구는 IDE입니다. 오늘날 시장에는 많은 이름이 있지만 전문 Java 개발에는 일반적으로 두 가지 이름만 있습니다. 이것은 수년 연속으로 손바닥을 차지해 온 플러그인을 기반으로 구축된 무료 Eclipse 와 최근 몇 년 동안 Eclipse를 적극적으로 대체해 온 IntelliJ IDEA 입니다. 이는 Ultimate 버전에 대한 구독이 필요하다는 사실에도 불구하고 전문가에게는 돈이 듭니다. JavaRush 과정에서는 Ultimate에 비해 특정 기능 제한이 있는 Community IntelliJ IDEA 무료 버전을 사용한다는 점을 상기시켜 드리겠습니다. "나는 IDE를 알고 있습니다"라는 문구는 개발 환경의 기본 기능에 익숙하고 파일을 컴파일, 실행, 디버그 및 테스트하는 방법과 코드를 리팩터링하는 방법을 알고 있음을 의미합니다. 단축키를 익히는 것은 작업 속도를 높이는 데 큰 도움이 됩니다. 게으르지 말고, 몰랐던 IDE 기능에 대해 몇 시간 동안 배우고 실제로 사용해 보세요. 그리고 디버깅을 무시하지 마십시오. 이는 매우 유용한 기술입니다. 이러한 모든 조치는 작업 속도와 품질을 크게 향상시키는 데 도움이 됩니다.

자동 조립 도구

오늘날 Java 프로젝트에서는 Maven 및 Gradle과 같은 도구를 가장 자주 사용합니다. 철저하게 연구할 필요는 없지만, 서로 어떻게 다른지, 기반이 무엇인지, 작업이 무엇인지(Gradle에서), Maven에서 목표가 있는 단계를 이해하는 것이 유용할 것입니다. 시스템에 대해 읽고 몇 가지 작은 프로젝트를 배포하는 것으로 충분합니다. 이는 매우 간단하며 실제 작업 조건에서 세부 사항을 이해할 수 있습니다.

버전 관리 시스템 및 온라인 호스팅 서비스

버전 제어 시스템은 프로그래머가 공통 프로젝트를 "중단"하지 않고 팀으로 작업하고, 여러 사람이 만든 서로 다른 코드 조각을 동기화하고, 실패한 업데이트를 롤백하고, 새 업데이트를 추가하는 데 도움이 됩니다. 가장 일반적인 것은 두 가지 버전 제어 시스템입니다. 그 중 하나는 분산형으로 Git이라고 불리고, 두 번째는 중앙 집중형으로 SVN(일명 Subversion)이라고 합니다. 오늘날 Git은 사실상의 표준입니다. 이 시스템으로 작업하는 것이 더 편리하고 쉬우며 모든 IDE(SVN 포함)에서 지원됩니다. Git으로 작업하는 것은 빠르고 쉽게 시도해 볼 수 있으며 다행히 인터넷에는 이 주제에 대한 많은 정보가 있습니다. 예를 들어 러시아어로 제공되는 대화형 교과서 GitHowTo가 있습니다 (매우 빠르게 진행됩니다). 초보 개발자가 버전 제어 시스템용 온라인 호스팅 서비스를 익히는 것은 매우 중요합니다. 대부분 Git을 기반으로 하며 Git 플랫폼이라고 합니다(그 중 일부는 다른 버전 제어 시스템에서 작동할 수 있음). 그 중 가장 인기 있는 것은 GitHub입니다. BitBucket과 GitLab도 매우 일반적입니다. 이러한 시스템은 코드를 저장하고 검색하는 데 도움이 되며 Git이 수행할 수 있는 작업을 명령줄이 아닌 인터페이스를 통해서도 수행할 수 있습니다. GitHub를 사용하면 사이트에서 직접 코드를 확인하고 문제에 대한 솔루션을 제공할 수도 있습니다. 거기에서 다른 사람의 오픈 소스 프로젝트를 찾아 이를 개선하기 위한 자신만의 솔루션을 제공할 수도 있습니다. 기본적으로 GitHub는 개발자를 위한 일종의 소셜 네트워크입니다. 따라서 아직 계정이 없다면 GitHub에서 계정을 만들고 그곳에서 프로젝트를 호스팅하세요. GitLab 및 BitBucket에 대해서도 읽어보세요. 시간이 있으면 사용해 볼 수 있으며 무료 버전도 있습니다. 그건 그렇고, 이러한 모든 플랫폼은 최신 IDE와 완전히 통합되어 있습니다. 자바.  실행 계획 - 2

2. JDK API

이 섹션에서는 현대 Java 개발자가 확실히 알아야 할 JDK API를 강조합니다. 프로그래머가 때때로 이러한 라이브러리의 소스 코드를 조사하고 탐색하고 사용해야 하는 시기와 이유를 이해하는 것은 나쁠 것이 없습니다. 부작용: 이러한 API에 정통하다면 인터뷰에 훨씬 더 쉽게 응할 수 있을 것입니다.

Java 컬렉션 프레임워크

Java Collection Framework는 Java 언어의 가장 중요한 API 중 하나이며 모든 개발자가 이를 알아야 합니다. 이는 목록, 연결 목록, 집합, 스택, 대기열, 해시 테이블 등과 같은 Java의 표준 데이터 구조 구현 및 인터페이스의 계층 구조를 나타냅니다. 개발자는 ArrayList, HashMap, HashSet, LinkedHashSet, TreeSet 및 기타 클래스를 잘 이해하고 해당 속성에 대해 알고 있어야 합니다. 특히 표준 작업(색인, 검색, 삽입, 삭제)을 위한 특정 컬렉션의 시간과 메모리 비용을 이해하고 이를 기반으로 프로젝트에 올바르게 적용해야 합니다. Java의 컬렉션은 매우 잘 구현되지만 필요한 경우 개발자가 자체 구현을 제공할 수 있습니다. 컬렉션에 정통한 프로그래머는 이미 작성된 클래스의 논리를 확장하거나 재정의하거나 모든 것을 처음부터 구현할 수 있습니다.

자바 동시성 API

Java는 원래 병렬 프로그래밍을 지원하도록 설계되었으며 버전 5.0부터 언어에는 병렬 스레드를 위한 고급 API가 포함되어 있습니다. 따라서 유능한 Java 개발자는 멀티스레딩을 잘 이해하고 java.util.concurrent.* 패키지 의 주요 API를 이해하고 있어야 합니다 . 최소한 Thread, Runnable, 객체 잠금 및 동기화가 무엇인지 알고 명확하게 이해해야 합니다. 교착상태, 라이브락, 경쟁 조건의 개념과 이에 대한 처리 방법을 반드시 이해하십시오. 자신감을 가지려면 java.util.concurrent.*에서 Semaphore, CyclicBarrier, CountDownLatch, Phaser, Exchanger<V>, CompleteableFuture 등과 같은 동기화 장치를 배우십시오. 또한 Callable 및 Future 인터페이스도 있습니다.

자바 I/O API

초보 개발자는 Java I/OJava Non-blocking I/O 에 대한 심층적인 연구를 종종 무시합니다 . 그러나 헛된 일입니다. 이러한 Java API는 스레드 작업을 더 쉽게 만들고 실제 애플리케이션에서 정기적으로 사용됩니다. 특히 Java IO API의 핵심인 java.io 패키지의 File, InputStream, OutputStream, Reader 및 Writer와 같은 클래스입니다. Java 비차단 I/O(java.nio)는 고성능 I/O 작업을 구현하도록 설계된 애플리케이션 프로그래밍 인터페이스 모음입니다. 여기에는 특히 ByteBuffer, FileChannel 및 Selector가 포함됩니다. 이러한 API를 이해하는 데 어려움을 겪으면 후회하지 않을 것입니다.

장치 클래스 개체

객체 슈퍼클래스를 이해하면 어떤 의미에서는 "기본 Java 사용자"가 되어 OOP 구조와 많은 프로세스를 훨씬 더 잘 인식하게 됩니다. java.lang.Object 클래스는 클래스 계층 구조의 맨 위에 있습니다. 무슨 일이 일어나고 있는지 더 잘 이해하는 것 외에도 클래스의 메서드를 알면 인터뷰가 훨씬 쉬워집니다. 면접관은 Object 클래스와 해당 개체를 사용하여 후보자를 테스트하는 것을 좋아합니다.

3. Java 8의 새로운 기능

Java 8 출시 이후 시간이 지났고 다른 번호가 붙은 업데이트가 이미 나타났음에도 불구하고 상징적인 버전은 8번째 버전이었습니다. 이는 Java 프로그래밍에 대한 접근 방식을 단순화하고 어떤 의미에서는 변경하는 중요한 혁신을 도입했습니다. 람다 표현식과 Java 8의 Stream API, 새로운 날짜 및 시간 API를 사용하는 방법을 이해해야 합니다.

4. SQL, 데이터베이스, JDBC

작업 중에 SQL 쿼리와 데이터베이스를 접하지 않는 Java 개발자는 거의 없습니다. 따라서 SQL 및 관계형 데이터베이스가 무엇인지, 어떻게 작동하는지 이해하고 두 테이블을 조인하는 간단한 쿼리를 작성할 수 있는 것이 중요합니다. 훈련을 위해 PostgreSQL 또는 MySQL 과 같은 DBMS 중 하나로 작업해 볼 수 있습니다 . 비관계형 데이터베이스, noSQL 접근 방식에 대한 기본 지식과 문서 지향 DBMS MongoDB 에 대한 피상적인 지식을 얻는 것도 좋을 것입니다 . 순수 Java로 데이터베이스를 작업하려면 동일한 이름의 API와 함께 JDBC 표준을 사용할 수 있습니다. JDK에 포함된 java.sql 패키지로 구현됩니다. 오늘날 순수한 형태로 사용되는 경우는 거의 없지만 이전 지원 애플리케이션에서 흔히 볼 수 있으며 보다 현대적이고 일반적으로 수용되는 도구는 종종 이 표준을 기반으로 합니다.

5. 프레임워크

오늘날 주니어 Java 개발자의 요구 사항 중에서 "Spring, Hibernate, Spring Boot에 대한 지식"을 점점 더 많이 찾을 수 있습니다. 이러한 기술을 스스로 배우는 것은 매우 어려운 작업이지만 그럼에도 불구하고 특히 피상적인 수준에서는 가능합니다. 일하면서 더 깊은 이해를 얻게 될 것입니다. 그래서.

스프링 프레임워크

요즘 Java로 구축된 거의 모든 애플리케이션은 Spring Framework를 사용합니다. 이 강력한 프레임워크는 애플리케이션이 구축되는 백본인 특정 좌표계를 제공합니다. Spring 애플리케이션은 테스트 및 유지 관리가 훨씬 쉽습니다. 그리고 모두 의존성 주입 덕분입니다.

최대 절전 모드

Java 개발자에게 가장 중요한 또 다른 프레임워크는 Hibernate입니다. 이는 ORM(객체 관계형 매핑) 문제를 해결하는 JPA(Java Persistence API) 사양을 구현합니다. 대부분의 Java 애플리케이션은 데이터베이스와 상호 작용하며 관계형 데이터베이스에 대해 이야기하는 경우 Hibernate 없이 작업하는 것은 불편합니다. 이 프레임워크는 개발자에게 여러 가지 중요한 기능, 특히 즉시 사용 가능한 캐싱 및 트랜잭션을 제공하므로 개발자는 애플리케이션 로직 개발에 집중할 수 있으며 관계형 데이터베이스로 작업할 때 프로그래머는 많은 하위 수준 작업에서 벗어날 수 있습니다. . 이는 개발자 생산성을 크게 향상시킵니다.

스프링 MVC

이 프레임워크는 느슨하게 결합된 기성 구성 요소를 사용하여 모델 - 뷰 - 컨트롤러 패턴에 따른 애플리케이션 개발을 보장합니다. 이 패턴(디자인 패턴은 아래에 설명되어 있음)과 Spring MVC의 논리를 연구하세요. 실제로는 꽤 자주 사용됩니다.

스프링 부트

적절한 기술을 사용하면 Spring을 사용하여 Java 애플리케이션을 쉽게 만들 수 있습니다. 결과적으로 Spring Boot를 사용하면 Spring 기반 Java 애플리케이션을 쉽게 만들 수 있습니다. Spring Boot를 사용하면 최소한의 노력으로 시작할 수 있는 본격적인 Enterprise Spring 애플리케이션을 쉽게 생성할 수 있습니다. 자동 구성을 사용하면 Spring 애플리케이션 구성과 관련된 대부분의 번거로움이 제거됩니다.

6. 테스트를 위한 라이브러리 및 프레임워크

미래의 일부 개발자들은 테스트 코드가 자신의 관심사가 아니라 테스터라고 불리는 특별한 사람들의 관심사라고 확신합니다. 실제로는 그렇지 않습니다. 테스트, 특히 단위 테스트(가장 흔히 단위 테스트라고 함)는 모든 프로그래머에게 매우 중요한 기술입니다. 더욱이, 이제 막 업무를 시작한 신입사원은 누군가의 코드를 단위 테스트로 커버하는 임무를 맡는 경우가 많습니다. 따라서 JUnit 라이브러리를 배우고 코드에 대한 단위 테스트를 작성하는 습관을 기르는 것이 좋습니다. 또한 JUnit과 함께 사용하여 모의 종속성 클래스를 생성할 수 있는 Mockito 프레임워크를 확인하세요.

7. 서비스 라이브러리

Java에는 개발자가 직면한 거의 모든 문제를 해결하는 데 도움이 되는 수많은 서비스 라이브러리가 있습니다. 그것들을 모두 연구하는 것은 불가능하며 그렇게 하는 데 특별한 의미가 없습니다. 그러나 그것들을 탐색하는 것은 좋은 생각입니다. 여기서는 실제로 자주 사용되는 몇 가지 기능만 강조하겠습니다.

로깅용 라이브러리

우선, log4jSlf4j를 언급할 수 있습니다 . 이러한 라이브러리는 Java 애플리케이션이 실행되는 동안 발생하는 일상적인 로깅 작업의 구현을 숨기도록 설계되었습니다.

JSON용 라이브러리

클라이언트에서 서버로 정보를 전송하는 형식인 JSON은 오늘날 가장 일반적으로 사용되는 형식입니다. JSON과 함께 작동하는 몇 가지 좋은 라이브러리가 있으며, 가장 인기 있는 라이브러리는 Jacksongoogle-gson 입니다 .

구글 구아바

Guava 는 Google이 개발한 핵심 Java 라이브러리가 포함된 프로젝트입니다. 여기서는 새로운 유형의 컬렉션(멀티맵, 멀티셋 등), 불변 컬렉션, 그래프, 기능적 컬렉션, 병렬 처리용 유틸리티, I/O, 해싱, 문자열 처리 등을 찾을 수 있습니다.

아파치 커먼즈

Commons는 다양한 목적에 유용한 많은 Java 유틸리티를 포함하는 거대한 프로젝트입니다. 따라서 Apache Commons 라이브러리는 Tomcat, Hibernate 및 기타 여러 대규모 프로젝트의 기초가 됩니다. Apache Commons에는 많은 라이브러리가 있습니다. I/O 작업을 단순화하는 Commons IO, csv 파일 작업을 위한 Commons CSV, 복잡한 수학 및 통계 작업과 계산 작업을 위한 Commons Math, 명령줄 인수 분석을 위한 Commons CLI를 언급해 보겠습니다.

8. API 클라이언트

REST는 사람이 읽을 수 있는 형식으로 네트워크를 통해 리소스에 액세스하기 위한 엔드포인트의 명명 스타일입니다. 현대 Java 개발자는 REST 이데올로기를 이해하고 REST 클라이언트를 생성하는 데 매우 유용한 라이브러리인 Spring RestTemplate 도 아는 것이 더 좋습니다 .

9. 디자인 패턴

초보 개발자가 디자인 패턴, 즉 Java 프로그래밍의 예절 규칙에 익숙하고 이를 실제로 적용하는 방법까지 알고 있다면 노동 시장에서 즉시 가치가 높아질 것입니다. 초보자는 공부하면서 복잡한 응용 프로그램을 거의 만들지 않기 때문에 패턴을 과소평가하는 경우가 많습니다. 그러나 심각한 프로젝트에 패턴이 적용되지 않으면 코드를 유지하고 조정하는 것이 매우 어려운 작업이 됩니다. 그러니 게으르지 말고 패턴을 연구하고 개인 프로젝트에 적용하세요. 미래의 고용주는 이에 대해 매우 감사할 것입니다.

10. 추가 지식

알고리즘 및 데이터 구조

"알고리즘 및 데이터 구조"는 기술 대학에서 가르치는 전체 과정의 이름입니다. 다양한 데이터 구조를 구성하기 위한 이론적 기초를 보여줍니다. 그리고 실제 수업에서 그들은 데이터를 넣고 검색하고 검색하고 정렬하는 등 작업하는 방법을 배웁니다. 실제로 이 문구에서 "알고리즘"은 정확히 정렬 및 검색을 의미합니다. 수년에 걸쳐 컴퓨터 과학자들은 많은 알고리즘을 개발했습니다. 그들 중 일부는 본질적으로 교육적입니다. 왜냐하면 상대적으로 구현이 용이함에도 불구하고 운영에는 그다지 효과적이지 않기 때문입니다. 예를 들어, 느리게 작동하며 이는 대규모 데이터 풀에서 눈에 띄게 나타날 수 있습니다. 아니면 메모리를 많이 소모합니다. 다른 알고리즘은 매우 효과적인 것으로 입증되었습니다. 대부분의 프로그래밍 언어의 공식 라이브러리에 포함되어 있습니다. 따라서 오늘날에는 그러한 알고리즘을 독립적으로 개발할 필요가 없습니다. 그들이 어디에 있는지 아는 것만으로도 충분합니다. 하지만 대부분의 숙련된 개발자는 초보자에게 "알고리즘 학교"를 거치면서 공부하면서 스스로 구현하는 것을 권장합니다. 이것은 프로그래머의 사고를 발전시킵니다. 인터뷰에도 도움이 됩니다. 그들은 정렬하고 검색하는 문제를 묻는 것을 정말 좋아합니다.

서블릿

서블릿은 사용자 요청을 처리하는 방법입니다. 오늘날 그들은 모든 곳에서 사용되지 않으며 항상 그런 것은 아니지만 이에 대한 아이디어를 얻는 것이 유용할 것입니다.

HTML과 CSS

누구나 레이아웃의 기본을 알아야 합니다. 이 지식은 얻기가 매우 쉽습니다. 아직 해보지 않았다면 이 수업에 며칠을 투자하십시오. 동시에 좀 더 복잡한 주제에서는 잠시 휴식을 취하게 됩니다.

XML

Extensible Markup Language는 Java 개발에서 어디에나 사용되었습니다. 점차적으로 JSON으로 대체되고 있지만 오늘날에도 여전히 XML이 사용됩니다. 배우기가 어렵지 않으니 이 언어에 조금만 주의를 기울이시면 됩니다.

자바스크립트

개발자를 대상으로 한 설문조사에 따르면 프런트엔드 개발과 전혀 관련이 없는 사람이라도 때때로 JavaScript로 스크립트를 작성하는 것으로 나타났습니다. 이 언어의 기본을 아는 것은 좋은 매너의 규칙으로 간주될 수 있으므로 게으르지 말고 읽어보고 12~2개의 스크립트를 만들어 보세요. 그것은 중복되지 않습니다.
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION