수업 복습

팩토리 패턴 & 싱글톤 복습

_김영인 2025. 11. 28. 01:04

# MVC 패턴 & 레이어 구조 복습

  • 프로젝트 구성 요소:
    • Model: DAO, DTO, DB 처리 (응집도 ↑, 결합도 ↓)
    • View: JSP, EL, JSTL → 자바 코드 제거
    • Controller: FrontController(FC), 비동기 요청 처리
    • common 패키지: 공통 구조(JDBCUtil 등)
  • MVC의 장점
    1. 협업 및 병렬 개발 유리
    2. 코드 재사용성 및 유지보수성 증가
    3. 역할 분리 명확
    4. 확장성 좋음

# 비동기 처리(Ajax)

  • 주체는 스크립트(브라우저)
  • 스크립트가 서버(servlet/FC)로 요청을 보냄
  • 예시 기능
    • 회원가입 중복체크
    • 검색 기능
    •  주의:
        • 비동기 기능은 UI와 서버처리 파일을 서로 한 쌍
        • 하지만 파일 순서가 중요 → 나란히 복붙하면 오류 가능

# web.xml 설정 요소

  • Filter (EncFilter)
    • 한글 인코딩 처리
  • Listener (InitListener)
    • 서버 시작/종료 감지
  • Servlet (FrontController)
    • 스프링 MVC 패턴의 핵심
  • FC로 시작하는 스프링 MVC 패턴의 기초를 배우는 중
    → 우리는 아주 기본 버전의 스프링 MVC를 직접 구현하는 것

# Facade / Factory 패턴 도입 이유

기존 방식 문제점

  1. if-else / switch 문이 너무 길어짐 → 가독성↓
  2. Controller에서 new를 남발 → 싱글톤 패턴 위반
  3. 객체 수 증가 → 메모리 낭비 위험

티어 높아질수록 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