자격을 갖춘 Java 프로그래머 또는 엔지니어가 되려면 어떤 전문 기술이 필요하며, 인터뷰 전에 무엇을 준비해야합니까? 인터뷰 중에 면접관은 전문 기술이 무엇인지 알고 싶어합니다. 다음은 자격을 갖춘 Java 소프트웨어 엔지니어가 요구하는 것입니다.
1. 전문 기술
1. Java 언어를 사용하여 객체 지향 프로그래밍에 능숙하고, 프로그래밍 습관이 우수하며, 수집 프레임 워크, 멀티 스레딩 (동시 프로그래밍), I/O (NIO), 소켓, JDBC, XML, 반사 등을 포함하여 일반적으로 사용되는 Java API에 익숙합니다.
2. JSP 및 서블릿을 기반으로 한 Java 웹 개발에 익숙해지면 서블릿 및 JSP의 작업 원리와 수명주기에 대한 심도있는 이해는 JSTL 및 EL을 사용하여 대문이없는 동적 페이지를 작성하는 데 능숙하며 리스너, 필터 및 기타 웹 구성 요소 및 MVC 아키텍처 패턴을 사용하여 Java 웹 프로젝트 개발에 경험이 있습니다.
3. Spring의 IOC 컨테이너 및 AOP 원칙을 깊이 이해하고 Spring Framework를 사용하여 다양한 웹 구성 요소 및 의존성을 관리하고 트랜잭션, 로그, 보안 등을 위해 Spring을 사용하는 데 능숙하며 SpringMVC를 프리젠 테이션 계층 기술로 사용하고 Spring이 웹 프로젝트 개발을 위해 제공 한 지속성 지원에 대한 경험이 있으며 Spring의 다른 프레임 워크 통합에 익숙해집니다.
4. 최대 절전 모드 및 mybatis의 핵심 API에 익숙한 최대 절전 모드 및 mybatis와 같은 ORM 프레임 워크를 사용하는 데 능숙하며 최대 절차체의 연관성 매핑, 상속 매핑, 구성 요소 매핑, 캐싱 메커니즘, 트랜잭션 관리 및 성능 조정에 대한 심층적 인 이해를 가지고 있습니다.
5. JQuery 및 Bootstrap에 익숙한 웹 프론트 엔드 개발에 HTML, CSS 및 JavaScript를 사용하는 데 능숙하며 웹 프로젝트에서 AJAX 기술의 적용에 대한 심층적 인 이해를 가지고 있으며 프론트 엔드 MVC 프레임 워크 (AngularJS) 및 JavaScript 템플릿 엔진 (핸들 바)를 사용하여 프로젝트 개발에 대한 경험이 있습니다.
6. 일반적으로 사용되는 관계형 데이터베이스 제품 (MySQL, Oracle)에 익숙하고 SQL 및 PL/SQL을 사용하여 데이터베이스 프로그래밍에 능숙해야합니다.
7. 객체 지향 설계 원칙에 익숙하고 GOF 설계 패턴 및 엔터프라이즈 애플리케이션 아키텍처 패턴과 실제 개발에 대한 관련 경험을 심도있게 이해하고 UML을 사용한 객체 지향 분석 및 설계에 능숙하며 TDD (테스트 중심 개발) 및 DDD (도메인 중심 설계)에 경험이 있습니다.
8. Apache, Nginx, Tomcat, Wildfly, Weblogic과 같은 웹 서버 및 응용 프로그램 서버 사용에 익숙하며 여러 서버 통합, 클러스터링 및로드 밸런싱 구성에 익숙합니다.
9. 제품 프로토 타입 도구 축을 사용하는 데 능숙하며 디자인 모델링 도구 PowerDesigner 및 Enterprise Architect를 사용하는 데 능숙합니다. Java 개발 환경 Eclipse 및 Intellij는 프론트 엔드 개발 환경 웹 스톰 사용에 능숙하며 소프트웨어 버전 제어 도구 SVN 및 GIT를 사용하는 데 능숙하며 프로젝트 구성 및 관리 도구 Maven 및 Gradle을 사용하는 데 능숙합니다. 참고 : 위에 나열된 모든 항목에 익숙해야합니다. 기업 채용의 특정 요구 사항에 따라 해당 대상 준비를 할 수 있습니다. 그러나 처음 6 개 항목은 최소 요구 사항이어야하며 Java 소프트웨어 엔지니어가 보유 해야하는 전문 기술입니다.
2. 프로젝트 경험
프로젝트 소개
이 시스템은 X가 시운전 한 z 용 시스템이며 Z에 사용됩니다.이 시스템에는 A, B, C, D 및 기타 모듈이 포함됩니다. 이 시스템은 Java Enterprise 수준의 오픈 소스 프레임 워크 및 프론트 엔드 기술 F를 사용합니다. 프레젠테이션 레이어는 G 아키텍처를 사용하고 H를 컨트롤러로 사용하고 REST 스타일 요청을 구현합니다. 비즈니스 로직 계층은 J 모드를 사용하고 K를 통해 트랜잭션, 로그 및 보안 기능을 구현하고 L을 통해 캐시 서비스를 구현합니다. 지속성 계층은 m을 사용하여 CRUD 작업을 캡슐화하고 기본 계층은 n을 사용하여 데이터 액세스를 구현합니다. 전체 프로젝트는 P 개발 모델을 채택합니다.
설명 :
e는 일반적으로 Spring (Java Enterprise 수준 개발을위한 원 스톱 선택)을 나타냅니다.
F는 jQuery 라이브러리, 플러그인 또는 부트 스트랩 프레임 워크 일 가능성이 높습니다. 물론 단일 페이지 응용 프로그램 (SPA)을 구축하려면 최상의 솔루션은 프론트 엔드 MVC 프레임 워크 (예 : AngularJS) 및 JavaScript 템플릿 엔진 (예 : 핸들 바)입니다. G는 분명히 MVC (Model-View-Control)이며 가장 구현 프레임 워크는 Spring MVC입니다. 또한 Apache가 JSF 용으로 제공하는 Struts 2, JSF 및 MyFaces 구현이 있습니다.
H는 JSP입니다. JSP는 MVC에서 V입니다. 템플릿 엔진 (예 : 프리 마커 및 속도)을 사용하여 뷰 또는 다양한 문서 또는 보고서 (예 : Excel 및 PDF 등)를 생성 할 수 있습니다.
저는 서블릿 또는 사용자 정의 컨트롤러입니다. 그들은 MVC의 C입니다. 물론 Spring MVC는 Dispatcherservlet을 프론트 엔드 컨트롤러로 제공합니다.
J는 일반적으로 트랜잭션 스크립트입니다.
K는 AOP (섹션 지향 프로그래밍) 기술이어야합니다.
L은 현재 Memcached와 Redis에 의해 널리 사용됩니다.
M에는 많은 옵션이 있습니다. 가장 가능성이 높은 것은 최대 절전 모드와 mybatis입니다. 두 기술 모두 동시에 사용할 수 있지만 일반적으로 추가, 삭제 및 수정, 삭제 및 수정은 처리를 위해 최대 절전 모드로 넘겨지는 반면, 복잡한 쿼리는 Mybatis에 의해 완료됩니다. 또한, Toplink 및 Jooq는 또한 우수한 지속성 층 솔루션입니다.
N 하단의 데이터 액세스는 전통적으로 MySQL, Oracle, SQLServer, DB2 등이 될 수있는 관계형 데이터베이스를 사용하는 데 사용됩니다. 빅 데이터 시대, NOSQL (예 : MongoDB, Membase, BigTable 등) 및 기타 빅 데이터 액세스 솔루션 (예 : GFS, HDFS 등);
P는 폭포 모델, 빠른 프로토 타입 모델, 증분 모델, 나선형 모델, 분수 모델, RAD 모델 등이 될 수있는 프로젝트 개발 모델입니다.
프로젝트 개발 프로세스 :
1. 타당성 분석 : 타당성 분석 보고서, 프로젝트 개발 계획
2. 요구 사항 분석 : 요구 사항 사양
OOAD (사용 사례 다이어그램, 타이밍 다이어그램, 활동 다이어그램)
인터페이스 프로토 타입 : 비즈니스 계층을 설계 할 때 요구 사항을 이해하고 거래 스크립트를 추론하는 데 도움이됩니다.
3. 디자인 : 요약 디자인 매뉴얼 및 세부 디자인 매뉴얼 비즈니스 엔티티 (도메인 객체) : 클래스 다이어그램, ER 다이어그램 (개념 디자인 단계)
계층 구조 : 각 계층의 기술 구현 솔루션 (특히 사용 된 프레임 워크, 데이터베이스 서버, 응용 프로그램 서버 등)을 결정하십시오.
비즈니스 계층 디자인 : 트랜잭션 스크립트 모드 (트랜잭션 : 트랜잭션은 사용자가 요청을 보낼 때 트랜잭션입니다. 스크립트 : 메소드 또는 함수; 트랜잭션 스크립트 : 요청을 메소드 또는 함수로 캡슐화합니다. 트랜잭션 스크립트 모드 : 트랜잭션은 스크립트의 시작으로 시작하여 스크립트를 종료하면 종료).
비즈니스 계층에는 관련된 세 가지 유형의 객체가 있습니다 : 트랜잭션 스크립트 클래스 (비즈니스 프로세스 캡슐화), 데이터 액세스 개체 (DAO, 영구 운영 캡슐화) 및 데이터 전송 객체 (DTO, 혈액 손실/빈혈 객체 캡슐화). 세 가지 간의 관계는 트랜잭션 스크립트 클래스 조합 (Aggregation) 데이터 액세스 개체입니다. 둘 다 전방 엔지니어링 (UML 클래스 다이어그램은 Java 코드 생성) 및 리버스 엔지니어링 (Java 코드 생성 UML 클래스 다이어그램 생성) 데이터베이스 물리 디자인 (ER 다이어그램은 테이블, 라이브러리 구성 및 테이블 구성 간의 관계 다이어그램으로 변환하고 테스트 데이터를 삽입하는 도구) 사이의 관계 다이어그램으로 변환)에 의존합니다.
4. 코딩
5. 테스트 : 테스트 보고서, 결함 보고서 단위 테스트 : 소프트웨어의 최소 테스트 가능한 장치를 확인하고 확인하십시오. Java에서는 주니트 도구를 사용하여 클래스의 방법을 테스트하고 구현할 수 있습니다.
통합 테스트 : 통합 테스트를 조립 테스트 또는 공동 테스트라고도합니다. 단위 테스트를 기반으로 모든 모듈은 설계 요구 사항에 따라 테스트를 위해 서브 시스템으로 조립됩니다.
시스템 테스트 : 확인 된 소프트웨어, 하드웨어, 주변 장치, 네트워크 및 기타 요소를 결합하여 정보 시스템의 다양한 어셈블리 및 확인 테스트를 수행합니다. 시스템 테스트는 전체 제품 시스템에 대해 수행 된 테스트입니다. 목적은 시스템이 요구 사항 사양의 정의를 충족하는지 여부를 확인하고 요구 사항 사양과 일치하지 않는 것을 찾거나 모순되는 것이 더 완전한 솔루션을 제안하는 것입니다. 수락 테스트 : 소프트웨어 제품이 단위 테스트, 통합 테스트 및 시스템 테스트를 완료 한 후 제품이 출시되기 전에 수행 된 소프트웨어 테스트 활동. 전달 테스트라고도하는 기술 테스트의 마지막 단계입니다. 수락 테스트의 목적은 소프트웨어가 준비되었고 최종 사용자가 소프트웨어의 확립 된 기능 및 작업을 수행하는 데 사용할 수 있도록하는 것입니다.
6. 배달 및 유지 보수 : 사용자 설명서, 운영 매뉴얼
III. 프로젝트 관리
1. 버전 제어 : CVS/SVN/GIT
2. 자동 구성 : Ant/Maven/Ivy/Gradle
3. 지속적인 통합 : Hudson/Jenkins
IV. 시스템 아키텍처
1.로드 밸런싱 서버 : F5, A10
2. 응용 프로그램 서버 :
HTTP 서버 : Apache, Nginx (HTTP, 리버스 프록시, 메일 프록시 서버)
서블릿 컨테이너 : Tomcat, 수지
EJB 컨테이너 : Wildfly (Jboss Application Server), Glassfish, Weblogic, WebSphere
3. 데이터베이스 서버 : MySQL, Eclipse, Oracle
5. 타사 도구 (플러그인) 응용 프로그램
1. 차트 도구 : jQuery 기반 차트 플러그인 (예 : JQCHART, FLOT, Charted 등), Chart.js, Highcharts 등
2.보고 도구 : Pentaho보고, IREPORT, DynamicRorports 등
3. 문서 처리 : POI, itext 등
4. 워크 플로 엔진 : JBPM, Openwfe, Snaker, Swamp 등
5. 작업 일정 : 쿼츠, Jobserver, Oddjob 등
6. 캐싱 서비스 : Ehcache, Memcached, Swarmcache 등
7. 메시지 대기열 : Open-MQ, ZeromQ 등
8. 보안 프레임 워크 : Shiro, Picketbox 등
9. 검색 엔진 : Indextank, Lucene, Elasticsearch 등
10. Ajax 프레임 워크 : jQuery, extjs, dwr 등
11. UI 플러그인 : Easyui, Miniui 등
12. 풍부한 텍스트 상자 : ueditor, ckeditor 등
6. 인터뷰에서 질문하십시오
1. 프로젝트는 어느 회사를 위해 개발 되었습니까? 프로젝트에 대한 투자는 얼마입니까?
2. 프로젝트 개발에 얼마나 많은 사람들이 참여 했습니까? 팀 전체의 테스터, 개발자 및 프로젝트 관리자의 비율은 무엇입니까?
3. 프로젝트가 얼마나 오래 개발 되었습니까? 전체 프로젝트에는 얼마나 많은 코드가 있습니까? 얼마나 많은 코드가 있습니까?
4. 프로젝트는 어떤 종류의 개발 모델 또는 개발 프로세스를 채택합니까? 프로젝트의 아키텍처는 무엇입니까? 프로젝트의 기술 선택은 무엇입니까?
5. 프로젝트에서 어떤 책임을 맡았습니까? 회의가 있거나 자주 초과 근무가 있습니까? 프로젝트가 완료된 후 배운 이익이나 교훈은 무엇입니까?
6. 프로젝트의 가장 어려운 부분은 무엇입니까? 팀 개발 중에 발생하는 다양한 갈등을 해결하는 방법은 무엇입니까?
7. 면접 중에 면접관의 질문을 할 수 있습니다.
1. X 기술을 사용하는 것을 알았습니다. Y 문제를 어떻게 해결 했습니까?
2. 제품이 Y 기술 대신 X 기술을 사용하는 이유는 무엇입니까? 내가 아는 한, X 기술에는 A, B, C 등과 같은 이점이 있지만 D 및 E에도 문제가 있지만 Y 기술은 D 및 E 문제를 해결할 수 있습니다.
3. 나는 당신이 언급 한 X 기술에 익숙하지 않지만 좋은 해결책이라고 생각합니다. 작동 방식에 대해 더 말씀해 주시겠습니까?
4. 팀은 프로젝트를 어떻게 계획합니까? 일주일 안에 몇 개의 정기 회의가 있을까요? 주당 대략적인 코드 금액은 얼마입니까?
5. 문제 X에 대해 생각할 수있는 해결책은 현재 Y입니다.이 문제를 어떻게 해결할 것인가?
8. SAR 규칙
SAR 규칙은 먼저 문제의 시나리오를 설명한 다음 취한 작업을 설명하고 결국 결과를 명시하는 것을 나타냅니다.
9. 인터뷰 원리
1. 온건 한 목소리, 명확한 말, 웃는, 개인적 이미지 및 공손함.
2. 면접관에게 면접관을 만족시키기 위해 관심이있는 주제에 대해 면접관과 이야기하기 위해 이니셔티브를 취하십시오.
3. 주도권을 잡고 면접관에게 친숙하고 경험이 풍부한 콘텐츠와 같은 프로젝트, 기술 포인트 등에 대해 대담하게 대화하여 강점을 극복하고 약점을 피하십시오.
4. 당신은 당신이 정말로이 입장을 얻고 싶어하고 당신이 이해하지 못하는 기술을 기꺼이 배우고 싶다는 것을 표현해야합니다.
5. 실제 수준에 따라 합리적인 치료 요구 사항을 작성하십시오.
10. 자기 평가
1. 학습 능력 (IT 업계의 사람들은 새로운 기술, 도구 및 방법을 지속적으로 이해해야합니다)
2. 팀 인식 (개인 영웅주의에 비해 IT 업계는 팀워크를 더 많이 옹호합니다)
3. 압력 저항 (많은 IT 회사의 작업 강도는 상대적으로 높습니다)
위는이 기사의 모든 내용입니다. 모든 사람의 학습에 도움이되기를 바랍니다. 모든 사람이 wulin.com을 더 지원하기를 바랍니다.