Skip to content

1주차 과제#14

Open
pable91 wants to merge 16 commits into
Loopers-play-dev-lab:pable91from
pable91:feature/round1
Open

1주차 과제#14
pable91 wants to merge 16 commits into
Loopers-play-dev-lab:pable91from
pable91:feature/round1

Conversation

@pable91

@pable91 pable91 commented Apr 21, 2026

Copy link
Copy Markdown
Collaborator

안녕하세요.
이번에 같이 스터디하게 된 김용권이라고 합니다. 잘부탁드립니다

1주차 과제 제출합니다!
제가 과제 내용을 잘 이해한건지 모르겠네요 하하

부족한거나 잘 못된 부분 있거든 피드백 부탁드립니다 (테스트코드는 AI로 작성했습니다)

감사합니다!

구현내용

  • LecturesServlet — GET/POST/PUT/DELETE 4개 메서드 구현
    • GET: JSP 렌더링 (RequestDispatcher.forward())
    • POST/PUT: JSON 바디 파싱 (BufferedReader + ObjectMapper)
    • DELETE: 쿼리 파라미터로 id 수신

블로커

1. JSP를 클라이언트에 어떻게 전달해야 하는가?

  • 문제

    • doGet()에서 JSP 파일을 클라이언트에 내려줘야 했는데, 순간적으로 "응답 바디에 어떻게 적어야하지?" 라는 생각이 들면서 막혔음.
  • 원인

    • JSP 렌더링은 서버사이드 렌더링 방식(SSR)을 사용했야하나, 나도 모르게 클라이언트 사이드 방식(CSR)으로 jsp를 렌더링하려고 시도하였음
  • 해결

    • Servlet API의 RequestDispatcher를 통해 Tomcat에 위임
  • 학습

    • SSR은 톰캣에게 jsp를 전달하면 톰캣이 html로 바꿔서 내려주는 방식. 그러므로 서버개발자는 톰캣에게 jsp를 전달만하면 됨
    • 반면 CSR은 클라이언트에게 데이터(예, json)를 내려주면 클라이언트가 알아서 렌더링하는 방식

2. forward 시 데이터를 어떻게 JSP에 전달하는가?

  • 문제

    • JSP에서 강의 목록 데이터를 표시해야 했는데, Servlet에서 JSP로 데이터를 어떻게 넘겨야 할지 몰랐음
  • 원인

    • forward가 request, response를 그대로 공유한다는 개념을 까먹음 ㅠㅠ
  • 해결

    • request.setAttribute()로 데이터를 담은 뒤 forward. 그러면 JSP에서 ${lectures}로 꺼내 쓸 수 있음
  • 학습

    • forward는 같은 request 객체를 공유하기 때문에 Servlet에서 담은 데이터를 JSP에서 그대로 사용할 수 있음. 반면 redirect는 클라이언트가 새로운 요청을 보내기 때문에 request가 새로 생성되어 데이터가 사라짐.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants