1, 전문 기술
객체 지향 프로그래밍에 Java 언어 사용에 능숙하고, 프로그래밍 습관이 우수하며, 컬렉션 프레임워크, 멀티 스레드 (동시 프로그래밍), I/o 를 포함한 공통 JavaAPI 에 익숙합니다
JSP 및 서블릿 기반 Java 웹 개발에 익숙하고, 서블릿과 JSP 의 작동 방식 및 라이프 사이클에 대해 잘 알고 있으며, JSTL 및 EL 을 사용하여 스크립트 없는 동적 페이지 작성, 리스너, 필터 등의 웹 구성 요소 사용, MVC 스키마 모델을 사용한 Java 웹 프로젝트 개발 경험이 있습니다
Spring 의 IoC 컨테이너 및 AOP 원리에 대한 심층적인 이해, 다양한 웹 구성 요소 및 종속성 관리, 트랜잭션, 로그, 보안 등을 위한 Spring 사용에 능숙한 관리, 프레젠테이션 계층 기술로 Spring MVC 사용, Spring 사용
Hibernate, MyBatis 등의 ORM 프레임워크를 능숙하게 사용하고 Hibernate 및 MyBatis 의 핵심 API, Hibernate 에 대한 연결 매핑, 상속 매핑, 구성 요소 매핑, 캐싱 메커니즘, 트랜잭션 관리 및 성능에 대해 잘 알고 있습니다
HTML, CSS 및 JavaScript 를 사용한 웹 프런트 엔드 개발, jQuery 및 Bootstrap 에 익숙 함, 웹 프로젝트에 Ajax 기술 적용 이해, 프런트 엔드 MVC 프레임워크 (AngularJS) 사용
일반적으로 사용되는 관계형 데이터베이스 제품 (MySQL, Oracle) 에 익숙하고 SQL 및 PL/SQL 을 사용한 데이터베이스 프로그래밍에 능숙합니다.
객체 지향 설계 원칙, GoF 설계 패턴 및 엔터프라이즈 애플리케이션 아키텍처 모델에 대한 심층적인 이해 및 실제 개발 경험, UML 을 사용한 객체 지향 분석 및 설계, TDD (테스트 중심 개발) 및 DDD (영역 중심 설계) 경험 등을 숙지했습니다.
Apache, NginX, Tomcat, WildFly, Weblogic 등 웹 서버 및 애플리케이션 서버 사용에 익숙하고 다양한 서버 통합, 클러스터 및 로드 밸런싱 구성에 익숙합니다.
제품 프로토타입 도구 Axure 의 숙련 사용, 디자인 모델링 도구 PowerDesigner 및 Enterprise Architect 의 숙련 사용, Java 개발 환경 Eclipse 및 IntelliJ 의 숙련 사용, 프런트 엔드 개발 환경 WebStorm 의 숙련 사용
설명:? 위에 열거된 모든 것이 다 마음에 익혀야 하는 것은 아니며, 기업 채용의 구체적인 요구 사항에 따라 그에 맞는 준비를 할 수 있다. (윌리엄 셰익스피어, 윈스턴, 일명언) 하지만 상위 6 개 항목은 최소 요구 사항이어야 하며 Java 소프트웨어 엔지니어로서 반드시 갖추어야 하는 전문 기술입니다.
2, 프로젝트 경험
프로젝트 소개
이 시스템은 x 가 y 에 의뢰하여 개발한 z 용 시스템으로 a, b, c, d 등의 모듈이 포함되어 있습니다. 이 시스템은 Java 엔터프라이즈 개발의 오픈 소스 프레임워크 E 와 프런트 엔드 기술 F 를 사용합니다. 프레젠테이션 계층은 G 아키텍처를 사용하며 H 를 뷰 I 로 컨트롤러로 사용하고 REST 스타일 요청을 구현합니다. 비즈니스 논리 계층은 J 모델을 활용하고 K 를 통해 트랜잭션, 로그, 보안 등의 기능을 구현하고 L 을 통해 캐시 서비스를 구현합니다. 지속성 계층은 M 캡슐화 CRUD 작업을 사용하고, 맨 아래는 N 을 사용하여 데이터 액세스를 수행합니다. 전체 프로젝트는 P 개발 모델을 채택했다.
-응? 설명:? E 는 일반적으로 spring(Java 엔터프라이즈 개발을 위한 원스톱 선택) 을 의미합니다. -응? F 는 jQuery 라이브러리와 플러그인 또는 Bootstrap 프레임워크일 가능성이 가장 높습니다. 물론 SPA (단일 페이지 응용 프로그램) 를 구축하려는 경우 가장 좋은 시나리오는 프런트 엔드 MVC 프레임워크 (예: AngularJS) 및 JavaScript 템플릿 엔진 (예: Handle Bars) 입니다. G 는 분명히 MVC (모델-뷰-제어) 이고, 가장 가능성이 높은 구현 프레임워크는 spring MVC 이며, Struts 2, JSF 및 Apache 가 JSF 에 제공하는 MyFaces 구현도 있습니다. -응? H 는 JSP 이고 JSP 는 MVC 의 v 로 Freemarker 및 Velocity 와 같은 템플릿 엔진을 사용하여 뷰를 생성할 수 있으며 Excel, PDF 등과 같은 다양한 문서나 보고서가 될 수 있습니다. -응? I 는 서블릿 또는 맞춤형 컨트롤러로 MVC 의 C 이며 물론 Spring MVC 에서 프런트엔드 컨트롤러인 Dispatcher 서블릿을 제공합니다. -응? J 는 일반적으로 트랜잭션 스크립트입니다. -응? K 는 AOP (단면 지향 프로그래밍) 기술이어야합니다. -응? L 현재 널리 사용되고 있는 것은 memcached 와 Redis; 입니다. -응? M 의 선택은 다양하다. 가장 가능성이 높은 것은 hibernate 와 MyBatis, 두 가지 기술을 동시에 운용할 수 있지만, 일반적으로 증쇄를 hibernate 에 맡기고 복잡한 쿼리는 MyBatis 에 의해 완성된다. 또한 TopLink, jOOQ 도 우수한 지속층 솔루션이다. -응? N 기반 데이터 액세스는 전통적으로 관계형 데이터베이스를 사용하여 MySQL, Oracle, SQL 서버, HDFS 등이 될 수 있으며, 큰 데이터 시대가 도래함에 따라 NoSQL (예: MongoDB, MemBase, BigTable 등) 을 사용할 수 있습니다. -응? P 는 폭포수 모델, 신속한 원형 모델, 증분 모델, 나선형 모델, 분수 모델, RAD 모델 등이 될 수 있는 프로젝트의 개발 모델입니다.
프로젝트 개발 프로세스
1, 타당성 분석: 타당성 분석 보고서, 프로젝트 개발 제안서
2, 수요 분석: 수요 사양 설명서 OOAD (유스 케이스 다이어그램, 타이밍 다이어그램, 활동 다이어그램);
인터페이스 프로토타입: 요구 사항 이해, 비즈니스 계층 설계 시 트랜잭션 스크립트 도출 지원
3, 설계: 요약 설계 설명서, 상세 설계 설명서
* 추출 운영 단위 (도메인 객체): 클래스 다이어그램, E-R 다이어그램 (개념 설계 단계);
계층형 아키텍처: 각 계층에 대한 기술 구현 시나리오 파악 (사용된 프레임워크, 데이터베이스 서버, 애플리케이션 서버 등);
* 비즈니스 계층 설계: 트랜잭션 스크립트 패턴 (트랜잭션: 사용자가 한 번 요청을 보내는 것은 트랜잭션입니다.
스크립트: 메서드 또는 함수
* 트랜잭션 스크립트: 요청을 메서드 또는 함수로 캡슐화합니다. 트랜잭션 스크립트 모드: 트랜잭션이 스크립트 열기에서 시작되고 스크립트 종료에서 종료됩니다.
* 비즈니스 계층에 관련된 객체는 트랜잭션 스크립트 클래스 (비즈니스 프로세스 캡슐화), 데이터 액세스 객체 (DAO, 영구 작업 캡슐화), 데이터 전송 객체 (DTO, 출혈/빈혈 영역 객체 캡슐화) 의 세 가지 유형입니다. 둘 다 데이터 전송 객체 포워드 엔지니어링 (UML 클래스 다이어그램 생성 Java 코드 생성) 및 리버스 엔지니어링 (Java 코드 생성 UML 클래스 다이어그램 생성) 데이터베이스 물리적 설계 (ER 차트를 테이블 간 관계 다이어그램으로 변환, 데이터베이스 구축 및 테이블 구축, 도구를 사용하여 테스트 데이터 삽입) 에 의존합니다.
3, 인코딩
4, 테스트: 테스트 보고서, 결함 보고서
* 단위 테스트: 소프트웨어의 최소 테스트 가능 단위를 검사하고 검증합니다. Java 에서는 JUnit 도구를 사용하여 구현할 수 있는 클래스의 메서드를 테스트합니다.
* 통합 테스트: 통합 테스트는 조립 테스트 또는 공동 테스트라고도 합니다. 단위 테스트를 기준으로 모든 모듈을 설계 요구 사항에 따라 하위 시스템으로 조립하여 테스트합니다.
* 시스템 테스트: 확인된 소프트웨어, 하드웨어, 주변 장치, 네트워크 등의 요소를 결합하여 정보 시스템의 다양한 조립 테스트 및 확인 테스트를 수행합니다. 시스템 테스트는 전체 제품 시스템에 대한 테스트로, 시스템이 요구 사항 사양의 정의를 충족하는지 확인하고 요구 사항 사양과 일치하지 않거나 상충되는 부분을 찾아내는 것입니다.
* 수락 테스트: 소프트웨어 제품이 단위 테스트, 통합 테스트 및 시스템 테스트를 완료한 후 제품 출시 전에 수행된 소프트웨어 테스트 작업입니다. 기술 테스트의 마지막 단계이며 전달 테스트라고도 합니다.
수락 테스트의 목적은 소프트웨어가 준비되었는지 확인하고 최종 사용자가 소프트웨어의 설정된 기능 및 작업을 수행하는 데 사용할 수 있도록 하는 것입니다.
5, 제공 및 유지 보수: 사용 설명서, 사용 설명서;
3, 프로젝트 관리
버전 관리: CVS/SVN/Git
자동 구축: A10;/maven/
애플리케이션 서버: HTTP 서버: Apache, NginX(HTTP, 리버스 프록시, 메일 프록시 서버);
서블릿 컨테이너: Tomcat, Resin
EJB 컨테이너: WildFly(JBoss Application Server), gll
데이터베이스 서버: MySQL, Eclipse, Oracle;;
5, 타사 도구 (플러그인) 애플리케이션
차트 도구: jQuery 기반 차트 플러그인 (예: jQchart, Flot, Charted 등), com
보고 도구: Pentaho Reporting, iReport, 동적 보고서 등.
문서 처리: POI, iText 등.
워크플로우 엔진: jBPM, OpenWFE, Snaker, SWAMP 등.
작업 일정: Quartz, JobServer, Oddjob 등.
캐시 서비스: EhCache, memcached, SwarmCache 등.
메시지 대기열: Open-MQ, ZeroMQ, ActiveMQ 등.
보안 프레임워크: Shiro, PicketBox 등.
검색 엔진: IndexTank, Lucene, ElasticSearch 등.
Ajax 프레임워크: jQuery, ExtJS, DWR 등.
UI 플러그인: EasyUI, MiniUI 등.
리치 텍스트 상자: UEditor, CKEditor 등.
6, 면접 질문
프로젝트가 어느 회사를 위해 개발되었습니까? 프로젝트의 투입은 얼마입니까?
얼마나 많은 사람들이 프로젝트 개발에 참여했습니까? 팀 전체에서 테스터, 개발자, 프로젝트 관리자 비율은 얼마나 됩니까?
프로젝트 개발 기간은 얼마나 되었습니까? 프로젝트의 총 코드 양은 얼마입니까? 코드의 양은 얼마입니까?
프로젝트에 어떤 개발 모델 또는 개발 프로세스가 사용됩니까? 프로젝트의 구조는 무엇입니까? 프로젝트의 기술 선택은 무엇입니까?
당신은 프로젝트에서 어떤 책임을 지고 있습니까? 자주 회의를 하거나 야근을 합니까? 프로젝트가 완료된 후 어떤 수확이나 교훈이 있습니까?
프로젝트에서 가장 어려운 부분은 무엇입니까? 팀 개발 중 발생하는 다양한 충돌을 어떻게 해결합니까?
7, 면접에서 면접관의 질문
을 반문할 수 있습니다. 저는 당신들이 X 기술을 사용했다는 것을 알아차렸습니다. 당신들은 Y 문제를 어떻게 해결했습니까?
제품이 y 기술 대신 x 기술을 사용하는 이유는 무엇입니까? 제가 알기로는 X 기술은 A, B, C 등의 장점이 있지만 D 와 E 문제도 있고 Y 기술은 D 와 E 문제를 해결할 수 있습니다.
제가 말씀드린 X 기술에 익숙하지 않지만, 좋은 해결책인 것 같습니다. 작동 원리에 대해 좀 더 말씀해 주시겠습니까?
너희 팀은 어떻게 프로젝트 계획을 세웠니? 일주일에 몇 번의 정기 모임이 있습니까? 매주 코드량은 대략 얼마입니까?
x 문제에 대해 제가 생각할 수 있는 해결책은 현재 y 밖에 없습니다. 이 문제를 어떻게 해결하시겠습니까?
8, S.A.R. 법칙 s.a.r 법칙은 먼저 문제를 설명하는 장면을 가리킨 다음 당신이 취한 행동을 설명하고 마지막으로 결과를 진술하는 것이다.
9, 면담원칙
면접관과 관심 있는 주제에 대해 적극적으로 이야기하며 면접관을 만족시킨다.
면접관과 친숙한 내용: 프로젝트, 기술점 등을 적극적으로 대담히 이야기하며 장점을 살리고 단점을 피한다.
이 자리를 몹시 원하고 모르는 기술을 배우고 싶다는 것을 꼭 표현해야 한다.
는 자신의 실제 수준에 따라 합리적인 대우 요구를 한다.
10, 자기 평가
학습 능력 (IT 업계에 종사하는 사람들은 새로운 기술, 도구 및 방법을 지속적으로 이해해야 함)
팀 인식 (개인 영웅주의보다 IT 산업이 더 많다