[커널아카데미] 백엔드 12기 9주차 회고

david1-p·2025년 5월 25일

회고

목록 보기
9/27

 이번주는 Spring을 공부했다.
홈페이지 앞단은 쉽게 만들 수 있었지만, 로그인시 입력했던 정보들을 뒷단에 연결하는 것을 몰랐기 때문에
과정들이 흥미로웠다. 홈페이지 들어가면 가끔 뜨는 오류들 404 NOT FOUND, 500, 503 들이 어떤 의미인지 알게 되서 더욱 재밌었고, 다음주면 DB연결해서 실제 홈페이지처럼 구현하는 것을 배울텐데 재밌을 것 같다.

 자바를 배울때는 매우 힘들었지만, 두달이 지난 지금 돌이켜보면 내가 왜 힘들어했을까? 라는 의문이 들긴 한다. 하지만 그렇게 힘들게 공부를 한 덕분에 내 실력이 향상되었다는 것을 느끼게 되는 거겠지!
이번주도 열심히 공부한 나! 칭찬해!!

1. 이번 주 목표

  • Ch2-02 Spring MVC 흐름(DispatcherServlet → Controller → ViewResolver → JSP) 이해
  • 간단한 “Hello, Spring!” 페이지 띄워보기
  • URL 매핑, 뷰 리졸버, 정적 리소스 처리 경험 쌓기

2. 실습 내용 & 고민했던 코드

2.1 DispatcherServlet 초기 설정

<!-- web.xml -->
<servlet>
  <servlet-name>dispatcher</servlet-name>
  <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
  <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
  <!-- 시도 1: *.do -->
  <servlet-name>dispatcher</servlet-name>
  <url-pattern>*.do</url-pattern>
</servlet-mapping>

2.2 Controller 매핑 & 404

@Controller
public class HomeController {
    @RequestMapping("/hello")
    public String hello(Model model) {
        model.addAttribute("msg", "Hello, Spring!");
        return "home";
    }
}
  • 문제: /hello로 접근해도 여전히 404 발생
  • 원인: web.xml에서 URL 패턴 잘못 잡혀 있어서 컨트롤러가 호출되지 않음
  • 수정: *.do → / 변경 후 /hello 매핑 정상 동작

2.3 ViewResolver & JSP 위치

<bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
  <property name="prefix" value="/WEB-INF/views/"/>
  <property name="suffix" value=".jsp"/>
</bean>
  • JSP 파일을 src/main/webapp/WEB-INF/views/home.jsp에 두니까 뷰 리졸버가 home.jsp를 잘 찾아줌
  • 깨달음: prefix/suffix가 딱 맞아야 JSP가 로드된다는 단순하지만 치명적인 사실

2.4 Model 활용

  • Model 객체로 컨트롤러에서 뷰로 데이터 넘겨보기

      model.addAttribute("user", "David");
  • JSP에서 ${user}로 바인딩 확인

  • 인사이트: Spring MVC에서 데이터 전달은 항상 Model(또는 ModelAndView) 통해 이루어짐을 체감

2.5 정적 리소스 처리

<mvc:resources mapping="/resources/**" location="/resources/"/>
  • src/main/webapp/resources/css/style.css에 스타일 작성
  • 적용
  • 느낀점! /resources/** 매핑 안 해주면 CSS/JS가 404 뜬다

3. 깨달음!

앞단과 뒷단 연결하는게 쉬운게 아니었구나! 우리는 현재 많은 개발자들의 노력을 통해 웹을 쉽게 사용하는 구나! 너무 재밌다!

profile
DONE IS BETTER THAN PERFECT.

0개의 댓글