목차

    불편함을 코드로 지웁니다.

    개발 공부 노트, 개발 도구와 문제를 해결한 과정, AI 프롬프트와 Obsidian 활용법을 정리합니다.

      ⏳ Time Log/TIL · 하루

      Day 34 (12/4) – Spring Legacy: 웹 애플리케이션 개발 (Part 2)

      this.Serena 2026. 2. 20. 12:14

       

      🏗️ 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가지 방법

      1. 서버 모듈 편집: Servers 탭 → Tomcat 더블클릭 → Modules 탭 → 프로젝트 선택 → Edit → Path를 /로 수정
      2. 프로젝트 속성 변경: 프로젝트 우클릭 → Properties → Web Project Settings → Context root를 /로 수정
      3. 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 버전을 항상 체크할 것