Java는 프로젝트를 수행하기 위한 것입니다! Java의 주요 응용 분야는 엔터프라이즈급 프로젝트 개발입니다! 엔터프라이즈 수준의 프로젝트 개발에 참여하려면 다음 사항을 숙지해야 합니다.
1. 프로젝트 개발의 기본 단계를 숙지하세요
2. 강력한 객체지향 분석 및 설계 능력 보유
3. 유스 케이스와 아키텍처 중심의 주류 개발 방법을 마스터하십시오.
평생 동안 일부 코드 구현 기술을 습득하는 데 만족하고 싶은 사람은 없습니다. 다른 사람들은 무엇을 구현해야 할지 알려주고, 다른 사람들의 요구 사항을 구현하기 위해 코드를 사용하기만 하면 됩니다. 전체 프로젝트의 관점에서 생각하는 법을 배워야 합니다! 당신이 프로젝트 매니저라면 생각하는 법을 배워야 합니다! 건축가라면 생각하는 법을 배워야 합니다! 특정 문제 영역에 대한 분석 방법을 마스터해야 합니다!
기본 결핵 지식에 관하여: 이러한 명사 또는 지식 포인트를 보고 하나, 둘, 셋 또는 넷을 말할 수 있는지 확인할 수 있습니다.
자바SE
―-기본 구문, 데이터 유형, 연산자 등: int, long, Integer, Long, if, else, for, while
―-객체 지향: 클래스, 객체, 인스턴스, 상태, 동작, 필드, 메서드, 신규, 가시성(액세스 제어), 속성, 속성, 패키지, 가져오기, 정적 변수, 클래스 변수, 인스턴스 변수, 힙, 메서드 영역, 스택, GC(가비지 수집), 재정의, 오버로드, 객체 변환(캐스팅), 다형성, this, super
―-예외 처리: 컴파일 시간 오류와 런타임 오류의 차이점 이해, Exception, RuntimeException, 확인된 예외, 확인되지 않은 예외, try, catch, finally, throw new XXXException, throws XXXException 및 예외 처리의 기본 원칙
―-배열 및 컬렉션: 배열의 정의 및 사용, Collection, List, Set, Map, ArrayList, HashSet, HashMap, Iterator, equals, hashCode, Comparable, Comparator
―-자주 사용되는 클래스: String, intern, Constant pool, StringBuffer, java.util.Date, SimpleDateFormat, Regex(정규식)
―-반사 메커니즘: Class, Method, Field, Invoke, newInstance, BeanUtils(apache-commons), PropertyUtils(apache-commons)
―-입력 및 출력 스트림: InputStream, OutputStream, Reader, Writer, Adapter 디자인 패턴 및 원본 스트림 클래스, Decorator 디자인 패턴 및 패키지 스트림 클래스, 객체 직렬화 및 역직렬화
―-여러 스레드: 스레드, 실행 가능, 절전, 대기, 알림, 동기화, 잠금
서블릿과 JSP
―-HttpServlet, doGet, doPost, HttpServletRequest, HttpServletResponse, request.getParameter(), request.setAttribute(), request.getAttribute(), request.getSession(), ServletContext, 필터, web.xml, tomcat, 전달 및 리디렉션, http 프로토콜, 쿠키, JSP 범위 개체, <c:out의 상태 비저장 …/>, <c:forEach …>
HTML과 자바스크립트
―-일반적인 웹 페이지 태그를 이해하고, 웹 페이지에 JavaScript를 도입하는 방법, JavaScript의 기본 구문 및 사용법을 이해할 수 있어야 합니다.
위 내용은 Java를 더 배우기 위해 필요한 기본 지식입니다. 특히 일부 전문용어나 명사 등이 친아버지를 보는 것처럼 친근하게 느껴진다면 이는 자바에 대한 기본 지식에 매우 익숙하다는 의미입니다.
다음은 SSH입니다.
초보자들에게는 이 세 가지 주요 프레임워크가 너무 많은 수수께끼를 안겨주고, 가장 중요한 지식인 것 같습니다! 하지만 다년간의 Java 개발 경험이 있는 전문 기술 인력, Java에 능숙한 사람들에게는 이 세 가지 주요 프레임워크에 별로 관심이 없습니다! 중요하지 않나요?
현재 많은 기업이 이 세 가지 주요 프레임워크를 사용하고 있기 때문에 많은 기업에서는 이 세 가지 주요 프레임워크를 숙지하는 것을 채용의 전제 조건으로 간주합니다. 이 세 가지 주요 프레임워크를 사용하지 않는 대기업이 많다는 것은 부인할 수 없는 사실입니다. 이러한 기업은 수년간의 개발을 통해 일정량의 기술을 축적하고 고유한 기술 프레임워크 시스템을 형성했습니다. 이 세 가지 주요 프레임워크는 매우 중요하다고 할 수도 있고 중요하지 않다고 말할 수도 있습니다.
이것이 중요한 이유는 이 세 가지 주요 프레임워크가 JavaEE 개발의 일반적인 문제에 대한 아름다운 솔루션을 제공하기 때문입니다. 여기에는 업계 대부분의 NB 개발자의 노력과 아이디어가 포함되어 있으므로 이 세 가지 주요 프레임워크를 배울 수 있습니다. 기술의 정점에 있는 이들 인재들이 문제에 대해 어떻게 생각하는지, 그리고 문제를 해결하기 위해 어떤 디자인 아이디어를 사용하는지 엿보세요. 그렇다면 당신은 프로젝트 개발 경험이 많지 않은데, 당신의 경험은 어떻습니까? 경험이란 어떤 문제가 발생할 수 있는지, 각 문제에 대해 어떤 솔루션을 사용할 수 있는지, 특정 상황에서는 어떤 솔루션이 더 나은지, 어떤 방법이 좋지 않은지 등을 아는 것을 의미합니다! 어떤 프로젝트도 해본 적이 없다면 어떤 문제가 발생할 수 있는지 알지 못할 것이며 이러한 문제는 종종 매우 중요합니다! 잘 해결되지 않으면 프로그램의 안정성, 확장성 등에 영향을 미치게 됩니다! 세 가지 주요 프레임워크는 초보자에게 앞으로 발생할 수 있는 문제에 대한 이해와 이러한 문제에 대한 솔루션을 제공합니다!
이 세 가지 주요 프레임워크가 왜 중요한지 이해하면 이 세 가지 주요 프레임워크가 중요하지 않다고 말할 수도 있는 이유도 이해할 수 있습니다. 많은 프로젝트를 개발하고 다양한 문제에 직면했다면 기술력을 바탕으로 이러한 문제를 하나씩 극복한 것입니다. 이들의 눈에는 세 가지 주요 프레임워크(N 프레임워크가 있습니까? ㅎㅎ)가 모두 클라우드입니다!
당신은 어떤 사람에 속해 있나요? 프로젝트 개발 경험이 많지 않다면 세 가지 주요 프레임워크가 매우 중요합니다! 또한 이를 통해 세 가지 주요 프레임워크를 배우는 방법도 알 수 있습니다. 세 가지 주요 프레임워크에 대한 연구에서는 문제를 보여주고 자신의 적극적인 사고를 촉발하는 데 중점을 둡니다. 어쩌면 여러분의 아이디어가 바보 같을 수도 있지만 결국에는 여러분 자신의 아이디어입니다. 위대한 사람들이 어떻게 생각하는지 모르면서 자신의 생각이 바보라는 것을 어떻게 알 수 있습니까? 이러한 아이디어의 충돌 과정에서 당신은 점차적으로 자신을 향상시킬 것입니다! 따라서 세 가지 주요 프레임워크를 배운 후에는 구성 파일만 많이 보면 안 되고, 일부 작업, 일부 서비스, 일부 매핑 파일만 보면 안 됩니다. struts2에 다수의 인터셉터가 있다는 것만 알면 안 되고, 다수의 jar 패키지만 보면 안 됩니다...
여러 jar 패키지를 복사하고 일련의 구성 파일을 정의한 후에 세 가지 주요 SSH 프레임워크가 실행되고 작동할 수 있다는 것을 알고 있다면 안타깝게도 아직 세 가지 주요 프레임워크를 마스터하지 못한 것입니다. 다음 질문에 답해 주십시오.
스트럿츠2:
모든 요청에 대해 Action 객체를 생성해야 하는 이유는 무엇입니까?
ModelDriven 인터셉터 구성에서 RefreshModelBeforeResult는 어떤 문제를 해결합니까?
web.xml에 구성된 StrutsPrepareAndExecuteFilter가 모든 요청을 필터링하는 이유는 무엇입니까?
ValueStack에 대해 알려주실 수 있나요?
Struts2는 MVC 디자인 패턴을 어떻게 구현합니까?
봄:
왜 스프링을 사용해야 할까요?
IOC/DI에 대해 말씀해 주시겠어요?
선언적 트랜잭션 관리란 무엇입니까? 선언적 트랜잭션 관리를 사용하는 이유는 무엇입니까? Spring은 선언적 트랜잭션 관리를 어떻게 구현합니까?
Spring과 Hibernate를 통합하고 트랜잭션 관리 기능을 정의할 때, 추가, 삭제, 업데이트 연산 이외의 메소드, 즉 주로 쿼리 작업을 수행하는 메소드를 왜 읽기 전용으로 정의해야 할까요?
최대 절전 모드:
OR 매핑에 대한 이해를 공유해 주시겠습니까?
많은 사람들이 Hibernate가 대규모 프로젝트에 적합하지 않고 성능 문제가 있다고 말합니다. 어떻게 이해하시나요?
Hibernate는 왜 데이터베이스 식별자를 정의해야 합니까?
Hibernate는 왜 당신의 엔터티 클래스가 hashCode와 equals 메소드를 구현하도록 권장합니까?
Hibernate 엔터티 클래스의 데이터베이스 식별자와 데이터베이스 기본 키 사이의 관계에 대한 당신의 이해에 대해 이야기해 주시겠습니까?
Hibernate 연관 매핑과 데이터베이스 외래 키 사이의 관계에 대한 당신의 이해에 대해 말씀해 주시겠습니까?
session.save() 메소드를 호출할 때 최대 절전 모드가 확실히 삽입 문을 발행합니까? 당신의 이해에 대해 이야기하십시오
session.update() 메서드를 호출할 때 최대 절전 모드가 확실히 업데이트 문을 발행합니까? 당신의 이해에 대해 이야기하십시오
다음 명사, 개념 또는 사용법에 대해 이야기해 보세요:lazy,lazy=”extra”, inverse, fetch, fetch=”join”, fetch=”subselect”, 배치 크기
lazy="true"로 구성하면 지연 로딩이 달성됩니까?
Hibernate의 "N+1" 문제에 대해 이야기해주세요.
Hibernate의 모범 사례가 무엇인지 말씀해 주시겠습니까?
위의 내용이 SSH의 핵심 질문이 전부는 아니지만 SSH 프레임워크를 유연하게 사용할 수 있는지 테스트할 수 있습니다! 이러한 문제를 깊이 이해하고 적절한 실제 프로젝트 교육을 병행한다면 점차 전문가가 될 것입니다!
마지막으로 프로젝트 개발 능력이 있습니다.
Java를 배우든 다른 기술을 배우든 기본 목적은 고객을 위한 가치를 창출하는 것입니다! 그렇지 않으면, 당신이 열심히 배우려고 노력한 것들은 기술이 발전하고 업데이트됨에 따라 곧 낡은 것이 될 것입니다! 그러므로 기술의 핵심은 기술을 활용하여 가치 있는 결과를 창출하는 것입니다! 즉, 고객이 필요로 하는 것이 무엇이든 기술을 사용하여 고객이 필요로 하는 것을 만들어야 합니다! 회사가 다양한 복지 조건으로 여러분을 유지하기 위해 최선을 다하는 이유는 여러분이 회사에 엄청나게 높은 혜택을 가져올 수 있기 때문입니다! 그렇다면 기업이 사용할 수 있는 것은 무엇입니까? 회사에서는 귀하의 어떤 능력을 가장 중요하게 생각합니까?
프로젝트를 수행하기 위해서는 많은 능력이 필요하며, 그 중 가장 핵심적이고 기본적인 것은 모델링 능력입니다(현재 가장 주류는 객체지향 모델링입니다!). 모델링 능력이란?
면접 질문 하나 드리겠습니다:
보험사의 보험카드 관리모듈 : 영업사원이 보험카드 정보(보험카드 수량, 카드번호, 수령일자)를 수집한 후 고객에게 직접 판매하는 방식으로, 판매 완료 후 보험카드 정보를 입력합니다. 보험사 시스템에(판매원 정보, 카드번호, 수령일자 정보, 구매자 정보, 구매한 보험 카드 수, 카드 번호 등) 고객이 보험사 웹 사이트에 로그인하여 보험 카드를 활성화해야 합니다. (보험카드번호, 개통비밀번호, 보험정보, 수혜자정보)
요구 사항은 다음과 같습니다. 이 모듈이 귀하에게 넘겨지면 어떻게 하시겠습니까? 어떤 문제를 해결하려고 하시나요? 그림을 그려서 당신의 아이디어가 무엇인지 설명해 주실 수 있나요?
이것은 단지 몇 가지 간단한 문장으로 구성된 인터뷰 질문이므로, 소위 모델링이 해결해야 할 문제가 무엇인지 여러분에게 알려주고자 여기에 넣었습니다. 사업분야에는 문제가 너무 많아요! 아마도 수십, 수백 페이지에 달하는 요구사항 문서가 특정 비즈니스 분야의 문제를 명확하게 설명할 수 있으며, 이를 구현하는 것은 귀하의 책임입니다!
어떤 회사에서 근태 관리 시스템을 개발하고 싶어하는데, 기존 인사 시스템과의 연계를 요구하고 있는데, 주요 기술 담당자이신가요?
ERP 프로젝트는 교대근무 관리 모듈을 구현하고 이를 완료하도록 맡겨야 합니다.
프로젝트 관리자가 정보를 너무 적게(몇 문장만) 제공했다고 불평하지 마십시오. 고객이 자신의 요구 사항을 명확하게 설명하지 않았다고 불평하지 마십시오. 모든 문제를 정리하고 다양한 방법을 사용하는 것이 귀하의 가치입니다. 원하는 정보를 얻고, 어떤 생각에 따라 요약하고, 정해진 시간 내에 하나씩 풀어가는 것을 의미합니다!
Java를 배우는 것은 탱크 전투, 네트워크 스피드스터, CMS, DRP 또는 OA만큼 간단하지 않다는 점을 깨달아야 합니다. 이러한 기술적 세부 사항에 집착해서는 안 됩니다(필요하지만 너무 과용하지 마십시오). CRUD 스타일 프로젝트 요구사항(이것이 기초의 기초임에도 불구하고)을 사용하면 항상 따라잡기 위해 열심히 노력해야 하는 목표가 있습니다.
앞으로는 더 복잡한 요구 사항에 직면하게 될 것입니다. 연구 프로젝트의 유일한 목적은 요구 사항을 구현으로 변환하는 방법, 요구 사항을 분석하는 방법, 개념 모델을 설정하는 방법, 다양한 개념 간의 관계를 정리하는 방법 등을 배우는 것입니다. 설계 방법, 설계 계획을 구현하기 위해 적절한 기술을 선택하는 방법, 구현을 테스트하는 방법, 직면하는 다양한 문제(성능, 수요 변화 등)를 해결하는 방법. 실제로 몇 년 동안 회사에서 개발에 참여해 보시면 제 말에 동의하실 겁니다!
Java를 사용하여 일자리를 구하려면 프로젝트 경험이 필요합니다. 프로젝트 경험은 프로젝트 개발의 기본 프로세스 이해, 프로젝트 분석 방법 이해, 프로젝트 설계 아이디어 이해, 프로젝트 구현 기술 이해, 프로젝트 테스트 방법 이해, 그리고 프로젝트 경험을 의미합니다. 프로젝트의 다양한 측면을 이해하여 문제에 대한 해결책을 찾아보세요! ! !
이제 목표를 알아야 할 때입니다!