아파치 톰캣
- 웹 어플리케이션 서버
- 동적 파일 (JSP, Servlet 등)
Servlet
String username = "홍길동";
String str = "<div>" + userName + "</div>";
JSP
<div class = "todo-footer>
<string>
<span class="count-todos"><c:out vlaue = "${todoSize}" /></span>
</strong>
항목 남았음
</div>
직렬화
- 객체를 데이터 스트림으로 만드는 것
- 객체에 저장된 데이터를 스트림에 쓰기 위해 연속적인 데이터로 변환하는 것
역직렬화
직렬화와 역직렬화를 하는 이유
- 다른 기종 간의 데이터 송수신
- java 객체 -> python객체
(호환이 되지 않아서 에러 발생)
- java 객체 -> 직렬화 -> json -> 역직렬화 -> python 객체
라이브러리와 프레임워크
프레임워크를 쓰는 이유
- 협업 : 구조가 같으니 협업이 쉬움
- 안전성 : 확인해야할 사항들을 프레임워크가 체크함
- 보안 : 웹 관련 공격을 막을 방법을 미리 세팅해 놓음
- 신입 : 가이드가 없으면 신입은 코드를 짜기가 어려움
Spring Bean
- Spring IoC 컨테이너가 관리하는 자바 객체
- 생성 방법만 명시하면 스프링이 알아서 객체를 생성하고 유지하고 소멸시킨다.
@Bean
@Component
어노테이션을 붙이면 Spring IoC 컨테이너가 자동으로 해당 객체ㅔ를 생성한다. 해당 객체를 필요로 하는 다른 객체에 주입 시켜준다 DI
단 한번도 new(생성자)를 써서 객체를 만들지 않았다 = 제어의 역전(IoC- 프레임워크가 컨트롤)
여러번 생성할 필요가 없는 개체는 스프링이 싱글톤처럼 관리한다.
DI
- 스프링 IOC 컨테이너가 관리
- ComponentScan으로 Bean/Component를 찾아서 객체를 생성
- 생성한 객체를 필요한 곳에 알아서 넣어준다