🗓️12월 3주차 (8주차) 회고록 ✨
8번째 주차별 회고이다. 이번 주에는 서블릿과 스프링의 기초를 학습하며 백엔드 구조를 익혔다
📝 KPT 회고 내용
1. KEEP (유지할 점) ✅
- 학습한 이론을 개인 프로젝트(FoodInventory)에 즉시 적용하는 실습 습관 유지.
- 교시별 학습 키워드 리스트 작성을 통해서 당일 수업에 어떤걸 배웠는지 떠올리기 용이하게 하기.
2. PROBLEM (문제점) 🛑
- 템플릿의 가독성이 낮아 기록을 찾아보기 번거로움. 개인 페이지 레이아웃 개편 예정
- 기록의 효율성: 수업 중 모든 내용을 적기보다 핵심 흐름과 요약 위주로 기록하는 훈련이 더 필요함.
3. TRY (시도할 점) 🚀
- 단순 기능 구현에서 벗어나 확장성을 고려해 학습용 프로젝트 진행해보기
- 배운 내용을 개념 중심으로 요약(분류화)해서 정리하기
이번주 학습한 내용 정리 (중요)
01. 서블릿 (Servlet) - 웹의 컨트롤러
- 싱글톤 구조: 메모리에 단 하나의 객체만 생성하여 공유하므로 자원 효율성이 뛰어남.
- 멀티스레드 모델: 요청마다 별도의 스레드가 생성되어 service()를 호출하므로 공유 자원 관리(Thread-safe)가 필수임.
- 생명주기: init() 초기화 -> service() 로직 처리 -> destroy() 소멸 순으로 동작함.
02. GET vs POST - 데이터 전송의 핵심
- GET: URL 뒤에 쿼리스트링(?key=value)으로 전달. 데이터 조회에 적합하며 캐싱이 가능함
- POST: HTTP 본문(Body)에 데이터를 숨겨 Payload로 전송. 보안이 필요하거나 대용량 데이터를 보낼 때 필수임.
03. Forward vs Redirect - 페이지 전환의 원리
- Forward: 서버 내부의 요청 위임. URL이 유지되며 Request/Response 객체를 공유함. (데이터 전달 및 화면 출력용)
- Redirect: 브라우저에게 새 주소 접속을 명령. URL이 변경되며 새로운 Request 객체가 생성됨. (작업 완료 후 흐름 전환용)
04. 스프링 IoC 컨테이너 - 제어의 역전
- IoC (Inversion of Control): 객체의 생성 및 관리 주도권을 개발자에서 프레임워크로 넘기는 설계 방식.
- Bean 관리: ApplicationContext가 Bean의 생성부터 주입(DI), 소멸까지 생명주기를 전담함.
이번주 학습한 내용 정리 (참고)
01. Filter & Listener
- Filter: 요청 전후 공통 로직 처리(인코딩, 보안). Wrapper를 사용하여 요청 객체 기능을 변조할 수 있음
- Listener: Context, Session, Request 등 주요 객체의 상태 변화를 실시간 감지함.
02. JSP & EL & JSTL
- JSP Elements: 지시자, 선언문, 스크립틀릿, 표현식을 통한 동적 페이지 구성.
- EL/JSTL: 자바 코드를 대체하는 표현식(${ })과 표준 태그 라이브러리를 통해 화면 가독성 증대.
진행한 학습용 프로젝트
잘하고 계십니다! 오히려 수업 내용들을 모두 적기보다 요약해서 적는 것이 더 어려운 난이도일겁니당 ㅎㅎ 어설프게 알고 있으면 요약하기도 어려울테니까요!
그래도 그 습관이 생겨서 나중에 빠르게 복습할 때도 도움이 되었으면 좋겠네요 ㅎㅎ
저희 수업 끝나고 나서 복습 시간에 더 자주 자주 만나요~!!