🏗️ Spring Legacy: 웹 애플리케이션 개발 (Part 2)
1. 웹 계층 구조 및 구동 흐름
Spring 6 레거시 프로젝트는 여러 설정 파일이 유기적으로 연결되어 구동됨. 각 설정 파일의 역할과 빈(Bean) 관리 범위를 이해하는 것이 핵심임.
- web.xml: 웹 애플리케이션의 시작점. ContextLoaderListener와 DispatcherServlet 설정 포함.
- root-context.xml: 비즈니스 로직(Service), 데이터베이스 관련(Mapper, DataSource) 등 공통 빈을 설정하는 곳.
- servlet-context.xml: 웹 요청 처리와 관련된 빈(Controller, ViewResolver, 정적 리소스 경로)을 설정하는 곳.
- 흐름: web.xml → root-context (Service/Repository) → servlet-context (Controller) 순으로 로드됨.
2. 코드 최적화: 리스트 출력
MyBatis를 통해 가져온 데이터 리스트를 로그로 확인할 때, 기존의 향상된 for문 대신 자바 8 이상의 람다(Lambda)를 활용하여 간결하게 표현 가능함
// 기존 방식 (for-loop)
List<BoardDTO> list = boardMapper.list();
for (BoardDTO dto : list) {
log.info(dto);
}
// 최적화 방식 (Lambda forEach)
boardMapper.list().forEach(dto -> log.info(dto));
⚙️ Eclipse & Tomcat 컨텍스트 루트(Context Root) 설정
프로젝트 접속 경로를 http://localhost:8080/project_name에서 http://localhost:8080/으로 변경하는 3가지 방법
- 서버 모듈 편집: Servers 탭 → Tomcat 더블클릭 → Modules 탭 → 프로젝트 선택 → Edit → Path를 /로 수정
- 프로젝트 속성 변경: 프로젝트 우클릭 → Properties → Web Project Settings → Context root를 /로 수정
- server.xml 직접 수정: Servers 프로젝트 내 server.xml 파일 하단의 <Context docBase="..." path="" ... /> 부분에서 path 속성 값을 빈 값("")으로 수정
⚛️ React: 감정 일기장 프로젝트 (Button Section)
재사용 가능한 버튼 컴포넌트를 활용하여 일기장 하단의 컨트롤러 섹션을 구현함
- 진행 범위: 교재 p.454~ 버튼 섹션 구현 완료
- 주요 포인트:
- 공통 버튼 컴포넌트 활용: text, type, onClick 등의 props를 전달하여 일관된 디자인 유지
- 스타일링: 버튼이 하단에 고정되거나 특정 영역에 나열되도록 CSS Flexbox 또는 Grid 활용
✏️ 내일의 계획 및 메모
- Spring: 게시판 디자인(UI) 레이아웃 적용 및 CRUD 기능 구체화 예정
- React: 감정 아이템 선택 섹션 및 작성 페이지 로직 완성 목표
- 참고: 레거시 환경에서는 web.xml 설정 하나만 어긋나도 서버 구동이 안 되므로 설정 파일 간의 xmlns와 xsi:schemaLocation 버전을 항상 체크할 것
'⏳ Time Log > 1. One Day (Daily · TIL)' 카테고리의 다른 글
| Day 36 (12/8) – 스프링 레거시 CRUD 실습: Todo 프로젝트 및 테스트 전략 (0) | 2026.02.20 |
|---|---|
| Day 35 (12/5) – Apache Maven 표준 디렉터리 구조 (0) | 2026.02.20 |
| Day 33 (12/3) – Spring Web MVC 컨트롤러 활용 및 MyBatis 연동 실습 (0) | 2026.02.20 |
| Day 32 (12/2) – Spring Legacy 프로젝트 환경 구축 (Day 1) (0) | 2026.02.20 |
| Day 31 (12/1) - Spring Boot 전환 및 React Router 동적 라우팅 실습 (0) | 2026.02.20 |