본문 바로가기

HTML & CSS & JS

Thymeleaf vs ajax

반응형

synchronous 와 asynchronous의 차이.

thymeleaf와 같은 경우 데이터를 자바로 부터 만들어서 변수에 실어 view에 뿌려주는 식으로 

화면 -> 컨트롤러 -> 화면의 순서 진행을 거친다. 즉 화면에 여러 영역이 존재하고 각 영역별로 기능이 있을 때

이 화면을 thymeleaf로 모두 구성한다고 하면 하나의 기능을 사용하기 위해 다른 기능들이 정지되거나 맞물리도록 설계해서 하나의 기능이 완료 된 후에 갱신되는 상황에 맞춰 나머지를 짜줘야함.

ajax는 어떤 이벤트에 대한 동작을 화면에 심어서 RestController로 보내고 return 된 값으로 화면에 뿌려준다. 

즉 하나의 화면에서 view - 컨트롤러 - view로 이동하는 것이 아니고 ajax영역이 비동기적으로 RestController로 데이터를 보내고 받는 작업을 하므로, 나머지 화면 영역에 대해서는 영향을 미치지 않는다 

 

즉 각각의 이벤트에 대해서 다른 처리를 해 줄 수 있다.

 

하지만 ajax는 jquery로 구성되어 있고 , 사용하기 위해서 js 파일을 심어야 한다.

 

그래서 생각한 결론.

 

최초에 화면에 접근할 때 공통적으로 뿌려주는 속성. 한 화면에서 변화하지 않는 속성과 같은 경우에는 thymeleaf를 통해 한번 뿌려주고 화면이 갱신되지는 않도록 한다.

그리고 동적 테이블과 같이 화면에서 변화하는 속성 영역은 ajax , jquery를 통한 데이터 관리를 해준다.

동기화된 화면은 참고로 Bean과 같은 경우 Multi thread safety가 보장되지 않으므로 만약 하나의 화면이 반복 갱신되고 갱신되는 순간 같은 URI에서 다른 유저가 작업할 때 서로의 자원이 간섭받을 수 있음.

따라서 하나의 화면은 작업하나에 한번의 이동이 있을 뿐 한번의 작업마다 같은 화면을 반복해서 불러오면 안됨.

Thymeleaf -form으로 Controller 객체 전달 ->@ModelAttribute

ajax RestController 객체 전달 -> post -> @RequestBody

Rest는 반환하는 값이 Http 전달로 돌아옴 -> RestController 써야함

Controller는 뷰 작업을 위해 씀. -> RestController처럼 쓰려면 ResponseBody 써야함

 

 

Get은 @RequestParam("EstmGroupId")

반응형