웹서버
를 쓰면 servlet/jsp 실행 엔진이 내장돼있음. 톰캣이 알아서 객체도 만들어주고 요청이 있을때마다 알아서 클래스도 찾고,만들어주는 역할을 함. 객체를 만들어서 특정 메서드(init())도 요청함엔진
이 해주는 것임소스코드
를 만들면 되는 것규격화
돼있음(까다로움)!. service(), doGet(), doPost 메서드여야만 하고 파라미터는 무조건 request, response여야 함-> 요즘은 잘 쓰지 않지만 클라우드 시장이 나오기 전에 분산 컴포넌트 기술
(EJB, Enterprise Java Bean)이 한참 유행했었다.
클라이언트가 활성화됐다가 떨어지면 서버가 활성화되고, 서버가 활성화됐다가 떨어지면 클라이언트가 활성화됨.
-> 이때 분산 컴포넌트개발기술이 나타났는데, 여기서 컴포넌트
는 객체지향 기반에서 재사용성이 높은 큰 덩어리
라고 생각하면 됨.
스프링에서 이 컴포넌트를 자바빈(Java Bean) 이라고 한다. 자바언어 기반의 컴포넌트.
-> 자바빈이 되기 위해서는 조건이 있음. 4가지 모두 만족해야함
1) public class
2) 매개변수 없는 public 생성자
3) 객체의 프로퍼티(property)용 멤버변수(mv)는 public이면 안됨 (private으로 선언)
4) property용 멤버변수의 public으로 선언된 setter, getter가 있어야함
-> 컴포넌트화돼있어야 parameter, result타입으로 사용할 수 있는 것임 (Vo들이라고 생각?)
- EJB는 2000년대 초에 유행하던 것. servlet보다 더 강화돼있음 -> 그러나 톰캣서버로는 안됨. WAS가 있어야만 실행이 됨 -> 돈없는 회사는 사용 불가 & 분산 컴포넌트가 개발되기 위해서는 컴퓨터 환경이 엄청 좋아햐됨(비용비쌈) -> 부담스러워지기 시작함.
- 분산이라는 개념이 처음에 각광받았지만, 개발자가 쓰지 않더라. 분산이라는 개념을 쓰지 않으면 EJB을 쓸 필요가 없다.
-> 이러한 불편한 점 들 때문에 나온것이 spring framework, EJB보다 훨씬 가볍다.
단, 최소 12GB 필요함. 가볍다는 의미로 spring이라는 단어를 씀. 분산은 떨궈버리고 컴포넌트를 개발할 수 있는 기술을 만든 것이 spring임.- EJB = 자바 기반의 기술, 스프링은 spring'Framework'라고 한다.
- frameWork는 프레임이 짜여져있어서 하라는 대로 해야함.
-> 하라는대로 하면 쉬운데, 이게 왜 이렇게 동작하지? 라고 생각하면 짜기 어려워진다.- 프레임워크 : 중심이 프레임워크이고 개발자가 프레임워크에 맞춰야하는것. 하라는대로~
- 라이브러리 : 중심이 개발자, 필요하면 쓰면되고 필요없으면 다른 라이브러리로 대체해도 됨
- 스프링은 프레임워크 이기 때문에 무거움. 느림. 설정하기가 어려움(설정이 절반!)
-> 설정을 쉽게 도와주는 모듈이 있음 -> SpringBoot. 스프링부트의 기반이 스프링임.
스프링부트를 이용해서 스프링을 좀더 쉽게 설정할 수 있다는 것임. 별거없음. 스프링부트도 어차피 스프링하는것.