자바의 특징
- 플랫폼 독립적이다
- JVM만 설치되면 어느 운영체제에서든지 실행가능하다
- 객체지향 언어이며, 절차지향에 비해 속도가 느리다
- 한번의 컴파일링으로 실행 가능한 기계어가 만들어지지 않고, JVM에 의해 기계어로 번역되고 실행되는 과정을 거치기 때문에 속도가 느림
- 코드 재사용성이 높음
- 캡슐화, 상속, 추상화, 다형성 등을 지원
- 자동으로 메모리 관리를 해준다
- JVM에서 Garbage Collector라고 불리는 데몬 쓰레드에 의해 GC(Garbage Collection)가 일어남. GC로 인해 별도의 메모리 관리가 필요없으며, 비지니스 로직에 집중할 수 있음
- 오버로딩과 오버라이딩
- 같은 이름의 메소드를 여러 개 정의함
- 상속에서 부모 클래스 메소드를 자식 클래스에서 재정의
- 추상클래스
- 상속 관계를 쭉 타고 올라갔을때 같은 조상클래스를 상속하는데 기능까지 완변히 똑같은 기능이 필요한 경우
- 인터페이스
- 상속 관계를 쭉 타고 올라갔을때 다른 조상클래스를 상속하는데 같은 기능이 필요할 경우 인터페이스 사용
- https://myjamong.tistory.com/150 참고
- Static
- 메모리 공간을 할당하는데 처음 설정된 메모리 공간이 변하지 않음을 의미
- DTO
- 계층간 데이터 교환을 위한 JavaBean을 말합니다. 여기서 말하는 계층이란 Controller, View, Business Layer, Persistent Layer를 말함
- DAO
- 데이터베이스의 데이터에 접근을 위한 객체이다. 데이터베이스에 접근을 하기위한 로직과 비즈니스 로직을 분리하기 위해서 사용한다. DB를 사용해 데이터를 조회하거나 조작하는 기능을 전담하도록 만든 오브젝트
- 서블릿 실행순서
- 브라우저가 웹서버에 JSP에 대한 요청 정보를 전달한다.
- 브라우저가 요청한 JSP가 최초로 요청했을 경우만 JSP로 작성된 코드가 서블릿으로 코드로 변환한다. (java 파일 생성)
- 서블릿 코드를 컴파일해서 실행가능한 bytecode로 변환한다. (class 파일 생성)
- 서블릿 클래스를 로딩하고 인스턴스를 생성한다.
- 서블릿이 실행되어 요청을 처리하고 응답 정보를 생성한다.