[spring] spring 인강 1주차 - 1.controller 와 Restcontroller
나는 개발자가 됬다. 비전공자이며 학원을 1년 6개월 정도 다니며 전반적인 개발의 지식을 쌓앗다.
학원에서는 코드한줄 가르쳐주 않았고 , 몸으로 부딪히고 밤새 검색하면서 코드와 싸웟다.
그리고 공부를 할때 전혀 사용해보지않은 spring을 사용하는회사로 취업을 하였다.
spring에 개념이 전무한 상태로 취업이 되었지만 , 계속 해왓던 대로 몸으로 부딪히고 공부하며 업무를 진행하고있다.
업무를 하면서 spring framework에 대한 전반적인 지식이나 이해가 부족햇지만 , 주어진 업무를 개발하는것 자체에는 큰무리가 되지 않앗다. 하지만 일을 하면서 spring에대한 이해도가 필요하다고 생각되어 spring 관련 기초 인강을 듣고있다. 인강을 듣으면서 조금씩 내가 사용하는 방식과 다른 방식 , 혹은 다르게 이해햇던 부분이 나오면 적어보려고한다.
오늘 다룰 주제는 결과는 같은데 방식이 조금다른 부분이 있어 기록하려고한다.
이전 개시글에서 Google search console에 등록할 일이있어는데 이때 string을 반환해야하는 일이 있었다. 나는 당연히 return type 을 String으로 해서 반환하였지만 텍스트를 반환하지 못해서 고생한적이있다. 그때 string을 반환할때 ResponseBody 를 붙이면 Controller에서 view를 반화하지않고 text를 반환하는것을 알게되었다. 이전에도 JSON으로 데이터를 주고받는 작업을 수업이 해왔지만 Responsebody가 무슨역활을 하는지 모르고 사용하였는데 ... 이렇게 확실하게 알게되었다.ㅋㅋㅋ
(GoogleSearchConsole등록하기 - programmerk.tistory.com/9)
하지만 오늘 인강에서 json type을 반환할떄 RestController를 사용하면 된다는것을 알게되었다. 이것만 알았아도 3~4시간 뻘짓은 안할 수있엇는데... 간단하게 개념설명만하고 테스트한 이미지를 보고 마무리하겟습니다.
컨트롤러는 클라이언트 요청이 들어오면 서블릿을 통해 제일먼저 마주하게되는 녀석으로 요청을받아 요청을 행동시키기고 그 결과를 view에담아 다시 클라이언트에게 전달하는 녀석이다.
즉 클라이언트 요청을 받아 처리하고 반환해주는 역활을 한다. 클라이언트의 요청을 view로 전달할수도있지만 여기서처럼 데이터로 전달할수도있다.
일반 컨트롤러에서 클라이언트의 요청에 view가 아니라 데이터를 전달하려면 해당 부분에 @ResponseBody를 붙여주면 view가 아니라 데이터를 전달하게된다.
만약 @ResponseBody를 붙이지 않는다면 view를 찾지못해 에러가 발생한다
하지만 Controller로 선언하지않고 @RestController를 사용한다면 @ResponseBody를 사용한 효과를 볼수있다.
제가본 자료중에 아래 자료가 가장 도움이됬던거같아 링크 추가합니다.