TIL

142일차(모험 51일차)

haedal-uni 2022. 2. 2. 23:39
728x90

기존 html이 실행이 되지 않고 db 전체가 띄워져서 구글링을 해봤지만

@RestController 얘기 말곤 답이 없어서 헤맸는데 오늘 새벽에 그 답을 찾았다.

 

 

결론은

location.href = "/space"; // 페이지 변환

가 아닌 

location.href = "space.html"; // 페이지 변환

코드로 작성해야 했다.

 

 

다른 팀원에게 물어봐서 그 이유에 대해 들었고 요약하면 아래와 같다.

 

백엔드를 거쳐야 프론트로 가는걸 서버 사이드 렌더링이라고 하고

프론트랑 백엔드가 만나는 유일한 접점이 url 인 것은 서버 사이드 렌더링을 배제한 것이다.

 

→ 서버사이드 렌더링에 대해서 좀 더 찾아봤다.  CSR과 SSR

 

 

 

 

내가 한 코드로 얘기하면 

서버사이드 렌더링을 배제하려면 homeController 자체가 없어야한다.

//homeController 일부 코드

@GetMapping("/login")
public String login(Model model) {
    model.addAttribute("data","data");
    return "home";
}

@GetMapping("/10s") // 10s 페이지
public String ten(Model model) {
    model.addAttribute("data","data");
    return "tenseconds";
}


→ 코드를 보면 /login을 입력했을 때 home이라는 html이 실행된다. (서버사이드 렌더링 배제 x)

 

 

 

 

ajax를 작성하기 이 전에는 Controller를 아래와 같이 작성했다. 

    @GetMapping("/space") // space 페이지
    public String space(Model model) {
        model.addAttribute("data","data");
        return "space";
    }

return으로 space가 있지만 사실상 space.html이라고 볼 수 있다.

 

 

 

 

 

ajax 작성 후 위 코드를 주석처리하고 Controller를 db에 get 방식으로 가져오는 코드를 작성했다.

 

그리고 registry.html에서 페이지 변환으로 location.href="/space"로 했는데

location.href = "/space"; // 페이지 변환

 

이걸 백엔드에서 보면

@GetMapping("/space")
public List<Registry> doTest() {
    return registryService.doTest();
}

controller에서 /space는 html 반환이 적혀있지 않았고, 그래서 db만 반환된 것이다.

 

 

 

location.href = "space.html"; // 페이지 변환

그래서 space.html이라고 적어야 서버사이드렌더링을 배제한 것이다. 

 

 

 

 

 

 

 

 

 

728x90

'TIL' 카테고리의 다른 글

144일차(모험 53일차)  (0) 2022.02.05
143일차(모험 52일차)- front & backend  (0) 2022.02.03
141일차(모험 50일차)  (0) 2022.02.02
140일차(모험 49일차) - 프로젝트(backend)  (0) 2022.01.31
137일차(모험 46일차) - 프로젝트  (0) 2022.01.28