뚜껑뚜
Magnolia
뚜껑뚜
전체 방문자
오늘
어제
  • 분류 전체보기 (31)
    • 웹 개발 (2)
      • Java (0)
      • Spring Boot (0)
      • JPA (0)
      • JavaScript (1)
      • jQuery (1)
      • Mustache (0)
      • MyBatis (0)
    • DB (0)
    • CS (1)
      • HTTP (0)
      • etc (1)
    • 오류 로그 (19)
    • ETC (8)
    • 백엔드 로드맵 (0)
    • 개인 프로젝트 (1)
      • XYAB (1)
    • Diary (0)

블로그 메뉴

  • 홈
  • 태그
  • 방명록
  • 글쓰기
  • 관리

공지사항

인기 글

태그

  • View
  • 어댑터
  • 로그인
  • Security
  • get
  • 헤더
  • jquery
  • 자바스크립트
  • 서블릿
  • JPA
  • HTTP
  • post
  • 컨트롤러
  • URI
  • Thymeleaf
  • Servlet
  • MVC
  • 인텔리제이
  • 프로젝트
  • 타임리프

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
뚜껑뚜

Magnolia

ETC

경로에 관하여

2022. 2. 11. 00:15

프로젝트 진행 도중 제대로 코드를 작성했다고 생각했는데 실행 결과 url이 내가 원하는대로 나오지 않는 경우가 있었다. 예를 들어 글 작성 후 redirect로 작성된 게시글의 글 조회 페이지로 이동해야 하는데 내가 원하는 url은

localhost:8080/board/{postNum}

이것인데

localhost:8080/board/board/{postNum}

이렇게 나오는 것이다.

 

당시 내가 작성했던 redirect 코드는 아래와 같았다.

return "redirect:board/{postNum}";

그리고 클래스 단위로 @RequestMapping이 "/board"로 되어 있었다. 강의를 들으면서 작성한 예제 코드를 참고하며 코드를 작성했는데, 분명 똑같이 한 거 같은데 왜 결과가 다르지? 하는 생각에 당황했다. @RequestMapping 때문인가? 하는 생각에 나는 우선 아래와 같이 코드를 수정해봤다.

return "redirect:{postNum}";

 

그랬더니 내가 원하는대로 주소가 아래와 같이 나왔다.

localhost:8080/board/{postNum}

 

그 후 이번엔 글 수정 코드를 작성하는데 이번에도 redirect가 이상하게 됐다. 내가 원하는 url은 아래와 같은데

localhost:8080/board/{postNum}
localhost:8080/board/{postNum}/{postNum}

실행된 url은 위와 같았다. 이상했다. 저번엔 board가 중복이었는데 이젠 {postNum}이 중복이다. 그때 내가 작성한 코드는 다음과 같다.

return "redirect:{postNum}";

위에서 괜찮았다면 여기서도 괜찮아야 하는 거 아닌가? 싶은 맘에 이것저것 시도하다 {postNum} 앞에 / 를 붙여봤다. 그랬더니 이번엔 localhost:8080/{postNum}이 호출됐다.

 

이때 생각난 것이 절대경로와 상대경로였다. 상대경로에서 /는 최상위를 뜻한다고 배웠다. 그러니까 localhost:8080이 되는 것이다. 그러니 /{postNum} 으로 redirect 하면 localhost:8080/{postNum}이 호출되는 것이었다. 이때 뇌리를 스친 것이, '아 나 원래 작성했던 코드에 / 를 안 붙였었나?' 였다. 위에 적어놨듯이 나는 /를 빼먹은 상태였다. 그러니 @RequestMapping의 /board 뒤에 redirect 주소가 붙어서 나오지... 하는 생각이 들었다. 아니나 다를까 다음과 같이 코드를 작성하니 정상적으로 주소가 호출이 됐다.

return "redirect:/board/{postNum}";

이래서 기초 지식이 중요한가 보다... 절대경로 상대경로를 확실히 공부해둬야겠다.

'ETC' 카테고리의 다른 글

MySQL 워크벤치에서 ERD 생성하기  (0) 2022.04.14
Entity, DAO, DTO  (0) 2022.03.15
양방향 의존 관계 오류  (0) 2022.02.28
DTO의 위치에 대해  (0) 2022.02.20
인텔리제이 단축키 모음  (0) 2021.12.16
    'ETC' 카테고리의 다른 글
    • Entity, DAO, DTO
    • 양방향 의존 관계 오류
    • DTO의 위치에 대해
    • 인텔리제이 단축키 모음
    뚜껑뚜
    뚜껑뚜

    티스토리툴바