# MVC 패턴 & 레이어 구조 복습
- 프로젝트 구성 요소:
- Model: DAO, DTO, DB 처리 (응집도 ↑, 결합도 ↓)
- View: JSP, EL, JSTL → 자바 코드 제거
- Controller: FrontController(FC), 비동기 요청 처리
- common 패키지: 공통 구조(JDBCUtil 등)
- MVC의 장점
- 협업 및 병렬 개발 유리
- 코드 재사용성 및 유지보수성 증가
- 역할 분리 명확
- 확장성 좋음
# 비동기 처리(Ajax)
- 주체는 스크립트(브라우저)
- 스크립트가 서버(servlet/FC)로 요청을 보냄
- 예시 기능
- 회원가입 중복체크
- 검색 기능
- 주의:
-
- 비동기 기능은 UI와 서버처리 파일을 서로 한 쌍
- 하지만 파일 순서가 중요 → 나란히 복붙하면 오류 가능
-
# web.xml 설정 요소
- Filter (EncFilter)
- 한글 인코딩 처리
- Listener (InitListener)
- 서버 시작/종료 감지
- Servlet (FrontController)
- 스프링 MVC 패턴의 핵심
- FC로 시작하는 스프링 MVC 패턴의 기초를 배우는 중
→ 우리는 아주 기본 버전의 스프링 MVC를 직접 구현하는 것
# Facade / Factory 패턴 도입 이유
기존 방식 문제점
- if-else / switch 문이 너무 길어짐 → 가독성↓
- Controller에서 new를 남발 → 싱글톤 패턴 위반
- 객체 수 증가 → 메모리 낭비 위험
티어 높아질수록 new를 줄인다 (싱글톤 원칙 준수)
하나 있으면 충분한 객체는 단 하나로!
Factory 패턴
특징설명
| FC 자판기 구조 | 요청(command)에 따라 객체(Action) 반환 |
| Map 활용 | key 요청 → value 행동(Action) |
| 싱글톤 유지 | Factory 객체는 전체 앱 시작~끝까지 딱 1개 |
정리
“요청하면 거기에 맞는 Action을 줄게!”
getAction() = Getter가 아니라 Factory의 ‘배급 기능’
# 싱글톤 패턴의 핵심 철학
- “같은 기능 객체는 1개면 충분하다”
- DB 연결 도구(JDBCUtil)도 이 기준
- Spring 에서는 싱글톤 위반 시
NullPointerException 90% 발생!!
* Factory 객체는 FC가 보유
→ 서버 종료까지 단 한 번만 생성됨
# 개발 실수 예방 팁
- 자바 / JSP / SQL 복사할 때 파일별로 따로
→ 줄 위치 꼬임 방지 - 에러는 발생 순서에 의미 있음
- “다 똑같은 코드”라도 순서 틀리면 동작 안 함
- 웹앱 구조 나누는 작업 → 내일 계속 분리 예정
# 프로젝트 요소 예시 정리
역할예시
| Member, Board(글), Reply | 각각 DAO/DTO |
| 페이지 구성 | 게시판, 회원관리 등 |
| 비동기 | 회원가입, 검색 기능 |
최종 핵심 한줄 요약
오늘 수업은 MVC + 비동기 + Factory 패턴을 연결하면서
스프링 MVC 철학(싱글톤/FC 구조)을 미리 체화시키는 단계
'수업 복습' 카테고리의 다른 글
| Spring Framework (1) | 2026.01.13 |
|---|---|
| 커스텀 태그 복습 (0) | 2025.12.01 |
| 비동기 통신 & FC 패턴 복습 (0) | 2025.11.27 |
| JS 내장객체 (0) | 2025.11.18 |
| HTML 복습 및 코드리뷰 피드백 (0) | 2025.11.11 |