안녕하세요! 오늘 우리는 Java 개발자의 개발 경로와 수요가 있기 위해 알아야 할 사항에 대해 이야기하겠습니다. 인터뷰에 참석한 모든 개발자는 해당 직위에 대한 후보자를 "실패"시킬 수 있습니다. 예를 들어, 그는 현재 프로젝트에서 접한 특정 주제에 대해 질문하기 시작할 것입니다. 하지만 모든 것을 알지 못해도 괜찮습니다. 일부 질문에 대답하지 않는 것도 정상입니다. 일반적으로 모든 Java 프로그래머는 개발에 대한 기본 지식을 갖추고 있어야 합니다. 그렇다면 어떤 기술이 "기본"으로 간주되는지 살펴 보겠습니다.
Spring이 무엇인지, 즉 Spring 컨테이너, 빈, DI, IoC 등이 무엇인지 먼저 이해해야 합니다. 말하자면, Spring 사용의 철학을 이해하십시오. 이 기반을 바탕으로 Spring 프레임워크에 대한 추가 연구가 진행될 것입니다. 당신이 배운 새로운 기술을 점차적으로 추가할 자신만의 작은 애플리케이션을 만드는 것이 가치가 있을 수 있습니다.
앞서 우리는 데이터베이스에 대한 연결을 생성하는 기술로서 JDBC 기술에 대해 이야기했습니다. 일반적으로 기술의 "적나라한" 사용은 현재 프로젝트에서는 찾아볼 수 없으므로 JDBC를 배울 필요가 없는 것처럼 보일 수도 있습니다. 그러나 그렇지 않습니다. JDBC의 뼈대를 살펴보면 낮은 수준의 기술을 볼 수 있고 문제점과 단점을 이해할 수 있습니다. Spring JDBC를 배우기 시작하면 이 프레임워크가 정확히 무엇을 개선하고, 최적화하고, 우리 눈에 숨기는지 이해하게 될 것입니다.
베어본 JDBC와 마찬가지로 이 프레임워크는 기존 기술(이 경우 Hibernate)의 사용을 향상시킵니다. Spring 없이 Hibernate를 사용하는 것을 고려한다면 Spring Hibernate를 사용하는 것의 이점이 무엇인지 정확히 이해할 것입니다.
앞서 우리는 JPA에 대해 이야기했고 그것이 단지 다양한 구현이 있는 사양일 뿐이라는 점에 대해 이야기했습니다. 이러한 구현 중에서 Hibernate가 가장 이상에 가깝습니다. Spring은 "내부적으로" Hibernate를 사용하고 JPA 사양의 이상에 최대한 가까운 이상적인 JPA 구현을 가지고 있습니다. 이 기술을 Spring JPA라고 합니다. 그건 그렇고, 데이터베이스 액세스가 크게 단순화됩니다. JDBC, Hibernate, Spring JDBC, Spring Hibernate를 배우지 않고도 JPA만 배울 수 있습니다. 그러나 이 경우 데이터베이스 연결에 대한 지식은 매우 피상적입니다.
이 기술을 사용하면 애플리케이션의 웹 인터페이스를 사용자에게 표시하고 인터페이스가 애플리케이션의 나머지 부분과 통신할 수 있습니다. 이 기술은 디스플레이를 담당하는 일부 애플리케이션이 있고 RESTful 기술을 사용하는 요청 및 응답을 사용하여 이 애플리케이션과 상호 작용하는 경우 디스플레이 없이도 작동할 수 있습니다. Spring에 대한 정보를 더 잘 이해하기 위해 YouTube의 기사와 강의 외에도 여러 책을 읽을 수 있습니다. 저는 Walls Craig의 "Spring in Action"이라는 책을 정말 좋아했습니다. 불행하게도 러시아어에는 이제 오래된 것으로 간주되는 세 번째 버전만 있습니다. 영어를 잘 아시는 분은 버전 6을 읽어보시길 권합니다. Spring에 관한 또 다른 훌륭한 책은 "Spring 5 for Professionals"입니다. 배우기가 더 어렵고 처음부터 끝까지 읽는 것보다 가까이에 두는 것이 더 나은 봄 성경 과 비슷합니다.
이 기술은 Spring 사용을 크게 단순화합니다. 이유는 "후드" 아래에 많이 숨겨져 있고 일반 Spring에 익숙하지 않은 사람에게는 많은 점이 명확하지 않거나 이해하기 어려울 수 있기 때문입니다. 첫째, Spring 프레임워크의 작동 방식을 더 잘 이해하려면 일반 Spring을 사용해야 하며 그런 다음 Spring Boot를 사용하여 얻을 수 있는 더 높은 이점을 모두 활용해야 합니다. 또한 Spring Security와 Spring AOP에 익숙해지도록 조언합니다. 하지만 위의 기술과 달리 이 두 가지에 대한 깊은 지식은 이제 필요하지 않습니다. 이 기술은 초보자를 위한 것이 아닙니다. 인터뷰 중에는 후배들에게 이에 대해 질문하지 않습니다(아마도 한 가지 피상적인 질문을 제외하고). 일반적으로 이러한 기술이 무엇인지, 어떻게 작동하는지 읽어보세요. 이 기사 전체에서 나는 책 읽기에 대해 반복해서 언급했습니다. 한편으로는 이것이 필요하지 않습니다. 기사와 교육 비디오를 통해 필요한 모든 것을 공부하고 책을 한 권도 읽지 않고도 프로그래머가 될 수 있습니다. 반면에, 현재 초보 개발자를 위한 시장 경쟁이 치열하여 초보자에게 필요한 초기 지식에 대한 기준이 높아지고 있습니다. 따라서 더 많이 알수록 첫 직장을 더 빨리 찾을 수 있으며, 귀하의 지식 수준으로 면접관에게 좋은 인상을 줄 수 있습니다. 모두에게 감사드립니다. 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.
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)”.
GO TO FULL VERSION