# RestController

63개의 포스트

어노테이션 들여다보기 - 1

😖문제 상황 생각 없이 기존의 구조를 따라서 코딩을 하다보니 각 어노테이션이 어떤 의미를 가지고 있고 어떤 차이점이 있는지 전혀 모르고 사용하고 있었다. 단순하게 api를 하나 더 추가했는데 아예 해당 api의 컨트롤러로 요청이 들어오지 않는 상황이 발생했다. 문제 코드 ) 🤓문제 해결 과정 step1. 디버깅을 통해 어느 함수에서 문제가 발생하는지 확인했다. (컨트롤러 자체를 들어오지 않는 것으로 확인) step2. 다른 컨트롤러에서 해당 api를 작성해서 요청이 컨트롤러로 들어오는지 확인했다.(컨트롤러로 해당 요청이 잘 들어와서 break point에 걸리는 것을 확인) step3. 컨트롤러의 세팅 자체를 확인했다. 🧐문제의 원인 파악 문제의 원인은 controller 클래스의 어노테이션에 있었다. 해당 컨트롤러는 다른 컨트롤러들과 다르게 @controller어노테이션이 붙어 있었다. 그동안의 작업한 다른 컨트롤러들은

2023년 9월 8일
·
0개의 댓글
·

@RestController란?

@RestController >@RestController = @Controller + @ResponseBody @RestController의 주 용도는 Json 형채로 객체 데이터를 반환하는 것이다. REST API를 개발할 때 주로 사용하며 객체를 ResponseEntity로 감싸서 반환한다. =>@Controller + @ResponseBody와 완벽히 동일

2023년 7월 28일
·
1개의 댓글
·
post-thumbnail

Spring Boot (5)

검색 기능 형식 > https:// www.google.com - 도메인 /search - 엔드포인트 ?q=폴라리스&ie=UTF-8 - 쿼리스트링 > 쿼리스트링 - 주소에 변수를 담아 보낼 때 사용 ?변수=값&변수=값&... @PathVariable >경로에서 매개변수를 받을 때의 표현식 변수 이름은 동일해야 함 @RequestParam >- 쿼리스트링을 자바 변수로 받을 수 있다 꼭 필요한 값이 아니면 required = false 디폴트 값은 null, 지정하고 싶을 시 defaultValue = (디폴트 값) name = "firstName"은 생략 가능(변수명이 같을 때) > java List findByFirstNameContainingIgnoreCase(String firstName); java public List getSearchEmpTablePage

2023년 7월 20일
·
1개의 댓글
·
post-thumbnail

[SpringBoot] @Controller와 @RestController

@Controller > 📌 @Controller : Client의 Request를 처리한 후 → 정해진 View에 객체를 넘겨줌 Client의 Request가 진입하는 시점 (entry point) Request에 따라 어떤 처리를 할 지 결정 → 실질적 처리는 @Service에 넘겨서 처리함 사용자에게 View(or View에 Model을 적용한 것) → Response로 보내줌 대규모서비스에서 하나의 클래스가 몰아서 처리하는 것 ⛔️ Controller라는 중간제어자 역할 → A 요청은 A Controller가 맡아 로직을 처리하게 함 ⭐️ MVC 패턴 (Model - View - Controller) 준수 ✅ @ResponseBody > 📌 @ResponseBody : 해당 메서드의 return 값 → HTTP response Body에 넣어 반환함 1️⃣ @Response

2023년 7월 19일
·
1개의 댓글
·
post-thumbnail

@Component를 감싸는 애너테이션들

@Configuration 블로그 : bean 생성 + 싱글톤(각 클래스마다 인스턴스를 하나만 생성해서 인스턴스가 하나임을 보장하고 어느 곳에서도 접근할 수 있게 제공하는 패턴) 설정 파일(configuration file)은 소프트웨어에서 사용되는 설정 정보를 저장하는 일반적인 파일이며, 소프트웨어가 실행될 때 로드되어 소프트웨어를 구성합니다. @Configuration이라고 하면 설정파일을 만들기 위한 애너테이션 or Bean을 등록하기 위한 애노테이션을 말한다. @Repository ORM 해주는 애너테이션. 근데 그게 뭔데 ORM(Object-Relational Mapping, 객체-관계 매핑) 은 객체 지향 언어(OOP)와 관계형 데이터베이스(RDB)의 데이터를 자동으로 매핑(변환-연결, 마치 통역사)하여 개발자가 직접 SQL 쿼리를 작성하지 않고도 데이터베이스에 접근할 수

2023년 7월 18일
·
1개의 댓글
·
post-thumbnail

REST와 관련된 어노테이션

| 어노테이션 | 기능 | | --- | --- | | @RestController | Controller가 REST 방식을 처리하기 위한 것임을 명시한다. | | @ResponseBody | 뷰로 전달되는게 아니라 데이터 자체를 전달하기 위한 용도 | | @RequestBody | JSON 데이터를 원하는 타입으로 바인딩 처리 | | @PathVariable | URL 경로에 있는 값을 파라미터로 추출하려고 할 때 사용 | | @CrossOrigin | Ajax 크로스 도메인 문제를 해결해주는 어노테이션 | @RequestBody & @ResponseBody @RequestBody와 @ResponseBody는 요청과 응답에 관한 어노테이션으로 스프링 비동기 처리를 하는 경우 사용한다. 사용 목적

2023년 7월 16일
·
1개의 댓글
·
post-thumbnail

@Controller vs @RestController

@Controller 전통적인 Spring MVC의 컨트롤러인 @Controller는 주로 View를 반환하기 위해 사용합니다. Client는 URI 형식으로 웹 서비스에 요청을 보낸다. DispatcherServlet이 요청을 처리할 대상을 찾는다. HandlerAdapter을 통해 요청을 Controller로 위임한다. Controller는 요청을 처리한 후에 ViewName을 반환한다. DispatcherServlet은 ViewResolver를 통해 ViewName에 해당하는 View를 찾아 사용자에게 반환한다. Controller로 Data 반환하기 = RestController Spring MVC의 컨트롤러를 사용하면서 Data를 반환해야 하는 경우도

2023년 7월 12일
·
0개의 댓글
·
post-thumbnail

[Spring] 어노테이션 알아보기

어노테이션이란? (annotation, 주석) 용도 컴파일러에게 코드 작성 문법 에러를 체크하도록 정보 제공 소프트웨어 개발툴이 빌드나 배치 시 코드를 자동으로 생성할 수 있도록 정보 제공 실행시 특정 기능을 실행하도록 정보 제공 @Controller vs @RESTController 둘다 해당 클래스가 Controller임을 나타내기 위한 어노테이션 차이점 : HTTP Response Body가 생성되는 방식 • @Controller 주로 View를 반환하기 위해 사용 반환값이 String이면 View이름으로 인식한다. View를 찾고,View가 render

2023년 6월 25일
·
0개의 댓글
·
post-thumbnail

[Spring] 데이터를 Client에 반환하는 방법

Response 트렌드의 변화 과거에는 서버가 주로 요청을 받아 html/css/js 파일을 반환해주곤 했다. 하지만 최근의 경향은 다르다. 웹 생태계가 고도화 되는 과정중에 상대적으로 프론트엔드와 백엔드가 각각 따로 발전하게 되면서, 느슨하게 결합하는 방식을 더 많이 채택하게 되었다. 그래서 최근에는 서버가 직접 뷰(html/css/js)를 반환하기 보다는 요청에 맞는 특정한 정보만 반환하는 것을 조금 더 선호하기도 한다. 서버에서는 데이터 교환 포맷 중 주로 JSON 형태로 데이터를 반환한다. ![](

2023년 6월 24일
·
0개의 댓글
·
post-thumbnail

Spring Tips (1)

@Controller, @RestController RestController를 사용할 경우 반환하는 값은 자동으로 ResponseBody에 담겨서 반환된다. 요즘의 경우 데이터를 담당하는 백엔드 서버 뷰를 담당하는 프론트 서버를 나눠서 백엔드에서는 뷰에 관련된 html파일 등을 반환하지 않고 오로지 데이터만 반환해주는 서버로 활용하는게 추세라고 한다. 하여 데이터만 반환하는 컨트롤러를 개발하는 경우엔 RestController를 사용하는 것이다. JSON 타입 자동 변환 위 코드를 보면 Star객체가 있다. 특별한게 없는 그냥 자바 클래스 객체이다. 그러나 스프링에서는 이러한 클래스 객체를 반환할때 자동으로 json타입으로 바꿔서 반환해준다. 클래스 객체를 반환했지만 JSON타입으로

2023년 6월 23일
·
0개의 댓글
·

Streampark 기능 메모장

RestController 닉네임 조회 RestController 조회하는 RestController를 만든다 Postman Postman에서 조회해보자. db에 등록되어 있지 않은 닉네임을 입력하면 위 사진처럼 뜨고 db에 등록되어 있는 닉네임을 입력하면 위 사진처럼 뜬다. Postman의 주소를 잘 보면 /nickname.do 뒤에 내가 입력한 키값, value값이 추가된다. html에도 위 주소와 일치시켜야 한다. html ![](https://velog.v

2023년 5월 25일
·
0개의 댓글
·
post-thumbnail

빅데이터 Java 개발자 교육 (Spring - RestController & JS]

RestController 🚩 대표 4가지 어노테이션 1. @GetMapping 방식 2. @PostMapping 방식 3. @PutMapping 방식 4. @DeleteMapping 방식 JavsScrpit 1. @GetMapping 2. @PostMapping 3. @PutMapping 4. @DeleteMapping + 추가 페이지 실행시 함수 즉시실행

2023년 5월 24일
·
0개의 댓글
·
post-thumbnail

[Spring] @Controller 와 @RestController

@Controller Spring MVC 컨트롤러를 선언할때 주로 사용 HTML View를 생성하거나 JSP와 같은 뷰 템플릿 엔진을 사용하여 웹 애플리케이션의 사용자 인터페이스를 생성하는데 사용 @RestController RESTFul 웹 서비스를 제공하는데 사용 메서드 반환값 👉 HTTP 응답 본문에 쓰여진다. (Ajax 요청 응답에 적합) : HTTP 응답 본문으로 JSON, XML 또는 기타 형식의 데이터로 반환 Ajax를 사용하여 서버와 비동기적 통신 시 사용 Ajax (비동기화 통신) 비동기적으로 서버와 브라우저간에 데이터를 교환할 수 있는 웹 개발 기술 : 새로고침 하지 않아도 데이터를 서버로부터 가져와 브라우저 동적 업데이트 : 주로 JavaScript 구현, jQuery 사용시 더 쉽게 Ajax요청 가능 Ajax 요청 처리 주로 JSON 형식으로 데이터를 주고받기

2023년 5월 4일
·
0개의 댓글
·
post-thumbnail

@Controller와 @RestController의 역할과 차이점은?

@Controller와 @RestController의 역할과 차이점에 대해 알아보기 전에, 둘의 근본이 되는 Controller의 역할에 대해 이야기하겠습니다. (여기서 Controller는 Spring MVC에서의 Controller를 의미합니다.) Controller의 역할은? 제가 생각하는 Controller의 역할은 다음과 같습니다. 사용자의 요청을 처리한다. 입력되는 데이터를 처리한다. 사용자의 요청에 따라 수행할 비즈니스 로직을 결정한다. 요청의 결과를 반환한다. 이때, 사용자의 요청을 URI와 매핑하여 각기 다르게 처리합니다. 이를 위해 @RequestMapping 을 이용하여 어떤 URI 요청을 처리할지 결정합니다. @Controller, @RestController 살펴보기 우선 [@Controller docs](https://docs.spring.io/spring-framework/docs/current/

2023년 4월 17일
·
0개의 댓글
·
post-thumbnail

빅데이터 Java 개발자 교육 - 48일차[RestController, Postman]

RestController pom.xml에 새로운 dependency인 RestController를 추가했다. RestController란 스프링프레임워크 4.x 버전 이상부터 사용가능한 어노테이션으로, @Controller에 @ResponseBody가 결합된 어노테이션이다. 기본적으로 json문서는 타입을 바꿔서 보내야 인식이 가능하기 때문에 번거롭다. 하지만, RestController를 이용하면 컨트롤러 클래스 하위 메서드에 @ResponseBody 어노테이션을 붙이지 않아도 문자열과 JSON 등을 전송할 수 있게된다. PostMan API 백엔드의 특성상 React.js, Andriod, ios 개발과 RestController개발간 서로서로 잘 구현이 되는지에 대해서 테스트를

2023년 4월 8일
·
0개의 댓글
·
post-thumbnail

[JSCODE] Spring Boot 프로젝트 생성하기

공부 자료 ✅ @Controller와 @RestController의 차이 문득 @Controller와 @RestController의 차이를 정확히 알고 있나?라는 생각이 들어 찾아보게 되었다. > @RestController = @Controller + @ResponseBody @Controller : 컨트롤러가 viewName을 반환하면, viewResolver가 그에 해당하는 뷰를 찾는다. ![](https://velog.velcdn.com/images/0sunset

2023년 3월 14일
·
0개의 댓글
·

@Controller와 @RestController 차이

@Controller와 @RestController는 스프링 프레임워크에서 컨트롤러를 정의할 때 사용되는 어노테이션이다. @Controller @Controller 어노테이션은 전통적인 웹 애플리케이션에서 사용되며, 데이터를 생성하거나 웹 뷰를 반환하는 등의 기능을 수행한다. 일반적으로 @Controller는 View를 반환하기 위해 사용되며, View와 관련된 뷰 리졸버(View Resolver)를 사용한다. 따라서 @Controller가 반환하는 값은 주로 HTML, JSP 등과 같은 뷰 템플릿이다. @RestController @RestController 어노테이션은 RESTful 웹 서비스에서 사용된다. RESTful 웹 서비스에서는 JSON, XML, TEXT 등의 데이터 포맷으로 데이터를 반환해야 한다. 따라서 @RestController는 JSON/XML 등의 데이터를 반환하기 위해 사용되며, __@Controller의 기능에

2023년 3월 5일
·
0개의 댓글
·

컨트롤러

Controller Spring MVC 모델의 C에 해당한다. Model ( Service, Repository )과 View( JSP, Thymeleaf .. ) 사이를 이어주는 역할을 담당한다. 클래스 앞에 @Controller 애노테이션을 작성하여 사용한다. @Component 를 상속받아, Spring Bean으로 등록된다. 문자열을 반환하면, ViewResolver 과정을 거친다. src/main/resource/static 경로에서 해당 문자열과 같은 이름의 파일을 찾아 ModelAndView를 생성한다. RestController 클래스 앞에 @RestController 애노테이션을 작성하여 사용한다. Controller 와 ResponseBody 를 상속받으며, 클라이언트에게 String, Map, JSON 등의 형태로 응답할 때 사용된다. 클라이언트에게 응답을 보낼 때, Return

2023년 2월 11일
·
0개의 댓글
·
post-thumbnail

[Spring MVC] 동기 비동기 / @Controller @RestController

동기 (Synchronous)와 비동기(Asynchronous) 동기 방식은 서버에서 요청을 보냈을 때 응답이 돌아와야 다음 동작을 수행할 수 있다. 즉 A작업이 모두 진행 될때까지 B작업은 대기해야한다. 비동기 방식은 반대로 요청을 보냈을 때 응답 상태와 상관없이 다음 동작을 수행 할 수 있다. 즉 A작업이 시작하면 동시에 B작업이 실행된다. A작업은 결과값이 나오는대로 출력된다. 동기적 처리 (Synchronous) ![https://velog.velcdn.com/images%2Fdaybreak%2Fpost%2F08e6d11b-8370-4f97-8ae6-addef3d6ef00%2F%E1%84%89%E1%85%B3%E1%84%8F%E1%85%B3%E1%84%85%E1%85%B5%E1%86%AB%E1%84%89%E1%85%A3%E1%86%BA%202020-07-08%2015.10.22.png](https://velog.velcdn.com/images%2Fda

2023년 2월 6일
·
0개의 댓글
·
post-thumbnail

@RestController @Controller

@Controller 와 @RestController Spring에서 컨트롤러를 지정하기 위한 어노테이션은 @Controller와 @RestController가 있다. @Controller의 역할은 Model 객체를 만들어 데이터를 담고 View를 반환하는 것이고, @RestController는 단순히 객체만을 반환하고 객체 데이터는 JSON 또는 XML 형식으로 HTTP 응답에 담아 전송한다. @Controller 도 @ResponseBody를 추가해서 @RestController처럼 사용할 수 있다. 아래 코드는 Spring MVC에서 동일한 동작을 한다. Spring 에서 @Controller와 @RestController의 차이점 @Controller는 클래스를 Spring MVC 컨트롤러로 표시하는데 사용되고, @RestController는 RESTful 웹 서비스에서 사용되는 특수 컨트롤러이며 @Controller

2023년 2월 2일
·
0개의 댓글
·