vo/dto차이
VO(Value Object)
:값 그 자체를 표현하는 객체
로직을 포함할 수 있으며, 객체의 불변성(객체의 정보가 변경하지 않음)을 보장
서로 다른 이름을 갖는 VO 인스턴스더라도 모든 속성 값이 같다면 두 인스턴스는 같은 객체라고 할 수 있다**
이를 위해 VO에는 Object클래스의 equals()와 hashCode()를 오버라이딩 해야한다
DTO(Data Transfer Object)
: 계층(Layer) 간 데이터 교환을 위해 사용하는 객체
즉 , 로직은 없고 데이터를 담고 ,꺼내는 getter/setter 메소드만 남는다
Entity
:실제 DB의 테이블과 매핑되는 객체
**- id를 통해 각각의 Entity를 구분
정리하면
DTO는 계층간 데이터 이동을 위해 사용되는 객체
vo는 값을 갖는 순수한 도메인
Entitiy는 이를 DB 테이블과 매핑하는 객체

java 빈즈?
자바 빈즈?
:큰 프로그램에서 독립적으로 수행되는 하나의 작은 프로그램 부품을 컴포넌트 비즈니스 로직 부분을 담당하는 자바 프로그램 단위
장점 :

StringBuffer랑 StringBuilder 차이
가장 큰 차이점은
"동기화의 유무"
StringBuffer
동기화 키워드를 지원하여 멀티쓰레드 환경에서 안전하다
고로 String도 불변성을 가지기 때문에 마찬가지로 멀티쓰레드 환경에서의 안정성 가짐
StringBuilder
동기화 지원하지 않기 떄문에 멀티쓰레드 환경에서 사용하는 것은 적합하지 않지만 동기화를 고려하지 않는 만큼 단일 쓰레드에서 StringBuffer보다 뛰어나다
정리
String : 문자열 연산이 적고 멀티쓰레드 환경일 경우
StringBuffer : 문자열 연산이 많고 멀티쓰레드 환경일 경우
StringBuilder : 문자열 연산이 많고 단일쓰레드이거나 동기화를 고려하지 않아도 되는 경우
모델 1 모델 2 차이

모델1
: 비즈니스 로직 영역(Controller(에 프레젠테이션(View)을 같이 구현하는 방식
모델2
: 비즈니스 로직 영역과 프레젠테이션 영역이 분리되어 잇는 구현 방식

[실습내용]
실제로 실습해보는 과정에서 모델 1으로 하였을 때
사용자가 잘못된 정보를 계속 보내면 
오늘의 발전
이런식으로 도배가되는 상황을 볼 수 있다
이런 것을 막기위해 모델 2로 JSP가 브라우저에 접근하지 못해야한다
webapp하위 폴더 web-INF에 jsp파일을 두면 서버쪽에서는 접근이 가능하다고 한다 !!!