25shshsh / Sample

0 stars 0 forks source link

리퀘스트 매핑 배열로 선언한 목적 #2

Open jurogrammer opened 1 year ago

jurogrammer commented 1 year ago

https://github.com/25shshsh/Sample/blob/ab1cdff5b01f0c8bbf2c9cb6ac0666628264d1ad/src/main/java/com/example/sample/controller/BoardController.java#L17C59-L17C59

25shshsh commented 1 year ago

"", "/", "/board", "/board/" 를 주소로 입력하여도 /board/list로 이동되게 설정함. 주소가 생략한 경우에도 정상적으로 게시판링크로 이동되게 하기 위해서임. 어떻게 보면 유연하게 사용할 수 있게 끔 실제로 "/" 하나 차이로 원하는 웹페이지가 로딩이 안 될 수도 있음.

하지만 /logout를 추가한 이유는 스프링시큐리티 라이브러리 사용시 로그아웃을 하게된다면 전용 로그인 창이 화면에 강제적으로 뜨는데 로그아웃 시에도 자동으로 게시판 페이지로 이동되게 하기 위해서 추가하였음 왜냐하면, 일반적인 사이트에서 계정을 로그아웃 하였을 시 로그인 창으로 리다이렉트 되지않고 메인화면으로 이동되기 때문.

jurogrammer commented 1 year ago

Controller에 설정하면 prefix로 적용되기 때문에 /logout/list 도 호출가능하게 됨 그럴 목적이였으면 /board/list 에만 request mapping을 선언하는게 적절했을 것을 보임.

스크린샷 2023-07-13 오후 11 54 16 스크린샷 2023-07-13 오후 11 54 01
jurogrammer commented 1 year ago

이런 문제가 발생한 이유는 두 기능이 한 컨트롤러에 섞임

로그아웃은 유저 기능이고 게시판 조회 등등은 게시판 기능

UserController에서 /logout 요청을 받아서 사용자를 로그아웃 시킨 뒤, 게시판 또는 메인 페이지를 지닌 BoardControllerredirect 시키는게 적절해 보임