◇ JVM 한눈에
컴파일·로더·실행엔진·GC
자바가 어떻게 OS 위에서 돌아가는지를 한 번에. 깊이 들어가지 않고 그림으로.
◇ Call by Value
참조형도 「값」을 복사한다
메서드 안에서 객체를 바꿨는데 원본이 안 바뀌는, 또는 그 반대인 경우를 코드로 뜯어본다.
◇ 클래스 vs 인스턴스
객체가 메모리에 만들어지는 방식
클래스 한 개로 인스턴스 여러 개가 어떻게 찍혀 나오는지. 각 인스턴스가 가지는 독립된 데이터.
◆ new의 함정
강한 결합을 손으로 느껴본다
DI 를 배우기 전에, 일부러 new 로 결합한 코드를 써보고 부품 하나 바꿀 때 무엇이 부서지는지 체감.
◇ IoC — 제어 역전
제어권은 누구에게 있는가
객체 생성·소멸의 권한이 개발자에서 컨테이너로 넘어간다. 그게 왜 좋은지를 코드로 본다.
◆ DI — 의존성 주입과 @Autowired
전 차시의 코드를 다시 쓴다
「new 의 함정」에서 짠 코드를 DI 로 다시 짜며 결합도가 어떻게 풀리는지 Before/After 로.
◇ Spring vs Spring Boot
우리는 왜 Legacy 로 시작하는가
자동 설정과 내장 서버를 제공하는 Boot 의 편리함과, 우리가 굳이 XML 부터 보는 이유.
◇ Maven & pom.xml
의존성 관리의 작동 원리
의존성 한 줄을 추가하면 어디에 무엇이 다운로드되는지. Maven Update 누락의 함정.
▣ 개발 환경 구축
Eclipse + STS + Tomcat 연동
실제로 손가락이 움직이는 환경 만들기. 끝까지 따라가면 첫 빨간 줄이 사라진다.
▣ 첫 Spring 프로젝트 + Bean 주입
흐름도에 첫 박스를 그린다
Spring Legacy Project 를 만들고, Bean 한 개를 컨테이너에 등록한 뒤 주입받아본다.