JavaRush /Java Blog /Random-KO /Java 개발자 체크리스트. 개발자가 알아야 할 사항

Java 개발자 체크리스트. 개발자가 알아야 할 사항

Random-KO 그룹에 게시되었습니다
안녕하세요! 오늘 우리는 Java 개발자의 개발 경로와 수요가 있기 위해 알아야 할 사항에 대해 이야기하겠습니다. Java 개발자 체크리스트.  개발자가 알아야 할 것 - 1인터뷰에 참석한 모든 개발자는 해당 직위에 대한 후보자를 "실패"시킬 수 있습니다. 예를 들어, 그는 현재 프로젝트에서 접한 특정 주제에 대해 질문하기 시작할 것입니다. 하지만 모든 것을 알지 못해도 괜찮습니다. 일부 질문에 대답하지 않는 것도 정상입니다. 일반적으로 모든 Java 프로그래머는 개발에 대한 기본 지식을 갖추고 있어야 합니다. 그렇다면 어떤 기술이 "기본"으로 간주되는지 살펴 보겠습니다.

1. 기본 알고리즘

프로그래밍 학습을 시작할 때 가장 먼저 해야 할 일은(이는 Java에만 적용되는 것이 아닙니다) 기본 사항을 분석하는 것입니다. 예를 들어, 알고리즘. 그 수는 무한하며, 가능한 한 많은 알고리즘을 배우려고 수년을 소비해서는 안 됩니다. 대부분은 유용하지 않을 것입니다. 필요한 최소한의 지식은 " Grocking Algorithms " 라는 책에서 얻을 수 있습니다 . 이것은 여정을 시작하기에 충분하지만 원할 경우 Robert Sedgwick과 Kevin Wayne이 쓴 " 구조 및 알고리즘 " 또는 "Java의 알고리즘" 책을 통해 배울 수 있습니다. 또한 컴퓨터 과학의 기초에 대한 지식을 향상시키는 것이 좋습니다. 이는 CS50 과정을 사용하여 JavaRush에서 수행할 수 있습니다 .

2. 자바 구문

알고리즘의 기본을 배운 후에는 Java 구문을 배워야 합니다. 결국, 우리 모두는 여기서 Java 프로그래머가 되는 법을 배우고 있는 중입니다. 그렇죠? JavaRush 과정은 이에 적합합니다. 수많은 작업을 수행하는 과정에서 Java 구문에 능숙해지며, Java 코드를 마치 모국어인 것처럼 별 생각 없이 쓰거나 읽을 수 있게 됩니다. JavaRush는 연습이며, 이에 더해 정확히 무엇을 하고 있는지 이해하려면 이론도 살펴봐야 합니다. 이를 위해 다음 중 하나와 같은 책을 읽을 수 있습니다.
  • 헤드 퍼스트 자바 ”;
  • Barry Bird의 "입문자를 위한 Java";
  • "자바. 초보자를 위한 가이드” 허버트 쉴트.
이 책을 읽은 후에는 더 어려운 책을 읽을 수 있습니다.
  • “자바의 철학”, 브루스 에켈;
  • “효과적인 프로그래밍”, 조슈아 블로흐(Joshua Bloch);
  • "자바. 완전한 가이드”, Herbert Schildt.
마지막 세 권의 책은 초보자가 읽기에는 쉽지 않지만, 자바 이론에 대한 탄탄한 기초를 제공할 수 있습니다. 또한 JavaRush의 기사도 잊지 마세요. 관심 있는 대부분의 주제에 대한 설명을 찾을 수 있기 때문입니다. 관심 있는 주제를 입력하여 필요한 기사를 찾을 수 있습니다. 또한 추상 클래스 및 인터페이스에 대한 질문 모음Java 개발자 체크리스트.  개발자가 알아야 할 것 - 2 과 같은 Java 면접 질문을 찾아보는 것이 좋습니다 . 이는 정확히 무엇을 공부해야 하는지, 어떤 질문을 준비해야 하는지 이해하는 데 도움이 될 것입니다.Java 개발자 체크리스트.  개발자가 알아야 할 것 - 3

3. 프로그래밍 패턴

프로그래밍 패턴은 자주 발생하는 상황 내에서 문제에 대한 해결책을 나타내는 반복 가능한 패턴입니다. 그 중에는 자존심이 강한 모든 프로그래머가 알아야 할 기본적이고 간단한 템플릿이 있습니다. 이 주제를 이해하려면 "Head First"라는 책을 사용하십시오 . 디자인 패턴 ." 기본적인 프로그래밍 패턴을 명확하게 설명합니다. 하지만 이 책에서는 Java 에 대해 많이 이야기하므로 책을 공부할 때 이 프로그래밍 언어를 마스터해야 합니다. 패턴에 대해 더 자세히 알아보려면 "객체 지향 디자인 기법"을 읽어보세요. Gang of Four( Gang of Four: Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides를 포함하는 저자 팀 - 편집자 주) 의 Design Patterns”입니다 . 이 주제를 공부하고 나면 코드의 거의 모든 부분에서 패턴을 볼 수 있게 될 것입니다. 특히 Spring 에서 사용되는 패턴에 주의하세요 . 이는 인터뷰에서 인기 있는 질문이기 때문입니다.

4. 프로그래밍 패러다임. 코드 청결성

표준 프로그래밍 패턴 외에도 알아야 할 다양한 원칙과 패러다임이 있습니다( SOLID , GRASP ). 코드가 깨끗하고 읽기 쉬운지 확인하는 것도 필요합니다. 이 주제에 대해 알아야 할 모든 내용은 Robert Martin의 " Clean Code " 책이나 Steve McConnell의 "Perfect Code" 책에 나와 있습니다.

5.SQL

다음 단계는 관계형 데이터베이스의 언어인 SQL을 공부하는 것입니다 . 데이터베이스는 웹 애플리케이션의 정보(데이터)가 저장되는 곳입니다. 데이터베이스는 많은 테이블로 구성됩니다(휴대폰의 주소록은 이러한 테이블의 가장 간단한 예입니다). 이 기사에서 데이터베이스에 대한 자세한 내용을 읽을 수 있습니다 . Java 개발자의 책임 영역은 Java 애플리케이션뿐만 아니라 상호 작용하고 데이터를 저장하는 데이터베이스입니다. 관계형(가장 일반적인) 데이터베이스에서 모든 상호 작용은 특수 언어인 구조적 쿼리 언어(SQL)를 통해 발생합니다. 이 주제를 이해하려면 다음 책 중 하나를 읽는 것으로 충분합니다.
  • “SQL 학습”, Alan Bewley;
  • “SQL”, 크리스 피일리;
  • 린 베일리(Lynn Bailey)의 “헤드 퍼스트 SQL(Head First SQL)”.
하지만 이론 없이 실천하면 안 되겠죠? 그리고 SQL에 대한 지식을 테스트하기 위한 인터뷰에서 그들은 종종 (거의 항상) SQL 쿼리 작성에 대해 한두 가지 문제를 제시합니다. 그러므로 자신을 좋은 모습으로 보여주기 위해서는 실용적인 SQL 기술을 연마하는 것이 매우 중요합니다. SQL 연습을 위한 훌륭한 리소스는 sql-ex.ru 리소스일 수 있습니다 .

6. MySQL/포스트그레SQL

SQL 언어를 배운 후에는 특정 데이터베이스 구현에 익숙해져야 합니다. 데이터베이스에 따라 일부 명령은 크게 다를 수 있습니다. 그리고 데이터베이스 기능의 차이는 상당히 눈에 띕니다. 가장 일반적인 관계형 데이터베이스는 MySQLPostgreSQL 입니다 . Java 개발자 체크리스트.  개발자가 알아야 할 것 - 4MySQL 은 훨씬 간단하지만 PostgreSQL 에는 더 많은 기능이 있습니다. 우선, 그중 적어도 하나를 숙지하는 것으로 충분합니다. 인터넷 검색 기술을 사용하면 데이터베이스 구현을 연구할 수 있습니다. Youtube에서 필요한 기사와 튜토리얼을 찾으세요. 프로그래머는 Google 검색에서 "검은 띠를 가진" 사람이기 때문에 관심 있는 질문을 올바르게 검색하는 데 능숙해야 합니다 .

7. 메이븐/그레이들

프로젝트 조립을 위해 설계된 Gradle 또는 Maven 프레임워크 중 하나를 연구해야 합니다 . 이제 Java는 몇 가지 클래스의 작업일 뿐만 아니라 본격적인 애플리케이션을 작성하기 위한 언어이기 때문입니다. 프로젝트를 어셈블하는 방법, 어셈블리 단계, 미리 만들어진 코드로 필요한 외부 라이브러리를 로드하는 방법 등을 이해해야 합니다. Gradle이 더 새롭고 깔끔하지만 대부분의 경우 Maven이 사용됩니다. 그러므로 조립 수명주기에 특별한 주의를 기울이십시오.

8. 힘내

Git은 분산 버전 관리 시스템입니다. 이 기술을 통해 개발자는 서로 간섭하지 않고 공동으로 하나의 애플리케이션을 만들 수 있습니다. 물론 이 버전 제어 시스템과 유사한 것이 있습니다. 예를 들어, Subversion . 하지만 주로 Git을 사용하므로 이를 다룰 수 있어야 합니다. Java 개발자 체크리스트.  개발자가 알아야 할 것 - 5이에 대한 교육 기사 외에도 이 기술을 단계별로 익히는 데 도움이 되는 충분한 동영상이 YouTube에 있습니다. 처음에는 일종의 인터페이스 구현이 아닌 콘솔 Git을 사용하는 것이 더 좋습니다. 왜냐하면 명령을 통해 모든 작업을 수행해야 하기 때문입니다. 인터뷰 중에 사람들은 종종 몇 가지 Git 명령을 요청 하므로 이를 적어서 가까운 곳에 보관하는 것이 좋습니다. 또한 인터뷰 전에 이를 살펴보고 기억을 되살릴 수 있도록 가장 중요한 사항을 표시할 메모를 보관하는 것이 좋습니다.

9. JDBC

이 기술은 Java 애플리케이션과 관계형 데이터베이스 간의 연결을 제공하도록 설계되었습니다. 기본 사항에 대해 알아보려면 JDBC 또는 Where It All Begins 기사를 읽어 보는 것이 좋습니다. 더 이상 순수 JDBC를 직접 사용하는 사람이 없음에도 불구하고 JDBC 기술을 설명하고 기본 예제를 제공하는 기사가 많이 있습니다.

10.JPA. 최대 절전 모드

JPA 는 JDBC와 마찬가지로 Java 애플리케이션과 데이터베이스 간의 연결을 설정하는 방법입니다. 그러나 동시에 JPA는 더 높은 수준의 기술이므로 사용하기가 더 쉽습니다. 그러나 JPA는 구현되지 않은 사양(개념)일 뿐이며 특정 구현이 필요합니다. 그러한 구현이 많이 있지만 대중적이고 개발된 JPA의 이상에 가장 가까운 것은 Hibernate로 간주됩니다 . 개발 경력을 쌓다 보면 이 기술을 두 번 이상 접하게 될 것입니다. 따라서 기사를 통해 이 기술에 대해 알아가는 것 외에도 " Java Persistence API "와 같은 관련 책을 읽는 것도 고려해 볼 가치가 있습니다.

11. 봄

Java 개발자가 되면 Spring은 더 이상 단순한 단어가 아닙니다. Java 개발자 체크리스트.  개발자가 알아야 할 것 - 6이제 이 프레임워크는 Java 언어의 구문을 알아야 할 필요성과 함께 가장 중요한 위치를 공유합니다. Spring에는 이에 상응하는 Java EE 기술이 있다고 말할 수 있습니다. 그러나 Java EE는 오래되었으며 더 이상 새 프로젝트에서 사용되지 않습니다. 현재 대다수의 Java 개발자는 Java Spring 개발자이므로 일부 기본 Spring 기술에 대한 지식은 필수입니다. Spring은 단순한 프레임워크가 아니라 프레임워크의 전체 플랫폼입니다. Java 개발자의 체크리스트.  개발자가 알아야 할 것 - 7그리고 이는 Spring이 제공하는 프레임워크의 일부일 뿐입니다. 초보자는 그 중 몇 가지만 알아도 충분합니다.

  • 스프링 코어

Spring이 무엇인지, 즉 Spring 컨테이너, 빈, DI, IoC 등이 무엇인지 먼저 이해해야 합니다. 말하자면, Spring 사용의 철학을 이해하십시오. 이 기반을 바탕으로 Spring 프레임워크에 대한 추가 연구가 진행될 것입니다. 당신이 배운 새로운 기술을 점차적으로 추가할 자신만의 작은 애플리케이션을 만드는 것이 가치가 있을 수 있습니다.

  • 스프링 JDBC

앞서 우리는 데이터베이스에 대한 연결을 생성하는 기술로서 JDBC 기술에 대해 이야기했습니다. 일반적으로 기술의 "적나라한" 사용은 현재 프로젝트에서는 찾아볼 수 없으므로 JDBC를 배울 필요가 없는 것처럼 보일 수도 있습니다. 그러나 그렇지 않습니다. JDBC의 뼈대를 살펴보면 낮은 수준의 기술을 볼 수 있고 문제점과 단점을 이해할 수 있습니다. Spring JDBC를 배우기 시작하면 이 프레임워크가 정확히 무엇을 개선하고, 최적화하고, 우리 눈에 숨기는지 이해하게 될 것입니다.

  • 봄 최대 절전 모드

베어본 JDBC와 마찬가지로 이 프레임워크는 기존 기술(이 경우 Hibernate)의 사용을 향상시킵니다. Spring 없이 Hibernate를 사용하는 것을 고려한다면 Spring Hibernate를 사용하는 것의 이점이 무엇인지 정확히 이해할 것입니다.

  • 스프링 JPA

앞서 우리는 JPA에 대해 이야기했고 그것이 단지 다양한 구현이 있는 사양일 뿐이라는 점에 대해 이야기했습니다. 이러한 구현 중에서 Hibernate가 가장 이상에 가깝습니다. Spring은 "내부적으로" Hibernate를 사용하고 JPA 사양의 이상에 최대한 가까운 이상적인 JPA 구현을 가지고 있습니다. 이 기술을 Spring JPA라고 합니다. 그건 그렇고, 데이터베이스 액세스가 크게 단순화됩니다. JDBC, Hibernate, Spring JDBC, Spring Hibernate를 배우지 않고도 JPA만 배울 수 있습니다. 그러나 이 경우 데이터베이스 연결에 대한 지식은 매우 피상적입니다.

  • 스프링 MVC

이 기술을 사용하면 애플리케이션의 웹 인터페이스를 사용자에게 표시하고 인터페이스가 애플리케이션의 나머지 부분과 통신할 수 있습니다. 이 기술은 디스플레이를 담당하는 일부 애플리케이션이 있고 RESTful 기술을 사용하는 요청 및 응답을 사용하여 이 애플리케이션과 상호 작용하는 경우 디스플레이 없이도 작동할 수 있습니다. Spring에 대한 정보를 더 잘 이해하기 위해 YouTube의 기사와 강의 외에도 여러 책을 읽을 수 있습니다. 저는 Walls Craig의 "Spring in Action"이라는 책을 정말 좋아했습니다. 불행하게도 러시아어에는 이제 오래된 것으로 간주되는 세 번째 버전만 있습니다. 영어를 잘 아시는 분은 버전 6을 읽어보시길 권합니다. Spring에 관한 또 다른 훌륭한 책은 "Spring 5 for Professionals"입니다. 배우기가 더 어렵고 처음부터 끝까지 읽는 것보다 가까이에 두는 것이 더 나은 봄 성경 과 비슷합니다.Java 개발자 체크리스트.  개발자가 알아야 할 것 - 8

  • 스프링 부트

이 기술은 Spring 사용을 크게 단순화합니다. 이유는 "후드" 아래에 많이 숨겨져 있고 일반 Spring에 익숙하지 않은 사람에게는 많은 점이 명확하지 않거나 이해하기 어려울 수 있기 때문입니다. 첫째, Spring 프레임워크의 작동 방식을 더 잘 이해하려면 일반 Spring을 사용해야 하며 그런 다음 Spring Boot를 사용하여 얻을 수 있는 더 높은 이점을 모두 활용해야 합니다. 또한 Spring Security와 Spring AOP에 익숙해지도록 조언합니다. 하지만 위의 기술과 달리 이 두 가지에 대한 깊은 지식은 이제 필요하지 않습니다. 이 기술은 초보자를 위한 것이 아닙니다. 인터뷰 중에는 후배들에게 이에 대해 질문하지 않습니다(아마도 한 가지 피상적인 질문을 제외하고). 일반적으로 이러한 기술이 무엇인지, 어떻게 작동하는지 읽어보세요. 이 기사 전체에서 나는 책 읽기에 대해 반복해서 언급했습니다. 한편으로는 이것이 필요하지 않습니다. 기사와 교육 비디오를 통해 필요한 모든 것을 공부하고 책을 한 권도 읽지 않고도 프로그래머가 될 수 있습니다. 반면에, 현재 초보 개발자를 위한 시장 경쟁이 치열하여 초보자에게 필요한 초기 지식에 대한 기준이 높아지고 있습니다. 따라서 더 많이 알수록 첫 직장을 더 빨리 찾을 수 있으며, 귀하의 지식 수준으로 면접관에게 좋은 인상을 줄 수 있습니다. 모두에게 감사드립니다. Java가 여러분과 함께하기를 바랍니다 .Java 개발자 체크리스트.  개발자가 알아야 할 것 - 9
코멘트
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION