본문 바로가기
728x90

🍃 𝗦𝗽𝗿𝗶𝗻𝗴 𝗕𝗼𝗼𝘁36

@Controller와 @RestController 차이 Spring @Controller와 @RestController 차이 @controller @controller는 주로 view를 반환하기 위해 사용한다. 아래와 같은 흐름으로 Client의 요청에 맞는 View를 반환한다. 1. 클라이언트가 요청을 보내면 dispatche Servlet으로 요청을 받는다. 2.dispatcher servlet은 요청에 해당하는 Controller로 위임 처리를 하도록 Handler Mapping 에게 위임을 처리한다. 3. view Resolver는 Controller 가 반환한 논리 뷰 이름을 실제 물리뷰 경로로 변경하고 View 객체를 반환환한다. @RestController 그렇다면 View가 아닌 Data를 반환해야하면 어떻게 해야할까? 그럴때 사용하는 것이 @.. 2022. 3. 10.
Spring Controller required 속성 bind.MissingServletRequestParameterException: Required request parameter 위 에러를 해결하며 알아본 스프링 Spring Controller required 속성 정리 ✅ Spring Controller required 속성 [ required=false 예제] public String hello(@RequestParam("name") String name, // required 조건이 없으면 기본값은 true, 필수 파라미터. // 파라미터 pageNo가 존재하지 않으면 Exception 발생. @RequestParam(value="pageNo", required=false) String pageNo){ // 파라미터 pageNo가 존재하지 않으면.. 2022. 3. 10.
컨트롤러 @RequestParam 기본값 설정하기@RequestParam(required = false) 컨트롤러 @RequestParam 기본값 설정하기 @RequestParam(required = false) @Controller에서 파라미터를 하나 받아보자. @GetMapping("/test/{cnt}") public String methodName(@RequestParam int cnt){ // TODO.. return "test"; } 위와 같이 코드를 작성하면 "localhost:8080/test/3"과 같이 호출했을 때 cnt 값이 3이 된다. 여기서 만약 "localhost:8080/test"와 같이 변수를 넣어주지 않으면 에러가 발생한다. Resolved [org.springframework.web.bind.MissingPathVariableException: Missing URI templ.. 2022. 3. 7.
스프링부트 검색기능 구현 : Get방식으로 넘긴 Param 받기, 검색 쿼리문(where 컬럼명 like) 스프링부트, 리액트로 검색 기능 구현하는데 가장 먼저 한 부분을 정리한다. (Spring Boot로 Parameter 전달 받는 방법, Spring Boot Get방식으로 넘긴 값 받기) 검색은 get 방식이다. get 방식으로 검색어를 입력하면 입력된 단어를 받는다. 스프링부트 get 방식으로 넘긴 값을 전달 받아보자. java 클래스에 아래와 같이 추가한다. @GetMapping("/search") public void getSearchProducts( @RequestParam(value = "search") String search) { try { List getProductResList = productService.getSearchProducts(word); return new BaseRespo.. 2022. 3. 2.
스프링부트, MVC 패턴 View의 역할과 생성 Spring Boot 🍃 View(뷰)의 역할과 생성 Thymeleaf ​ MVC 패턴은 애플리케이션의 역할을 모델(Model), 뷰(View), 컨트롤러(controller)로 나누어, 이들 사이 상호작용을 통제하는 아키텍처 패턴이다. 이번 포스팅에서는 View의 역할과 생성 방법을 알아본다. 컨트롤러에 대한 포스팅 링크 ​ 📍 View (뷰) 뷰는 사용자가 보는 화면, 즉 컨트롤러가 사용자에게 보내주는 것에 해당한다. 그러나 뷰를 만들 수 있는 것은 여러가지가 있다. 전통적으로는 html, jsp. 그리고 '템플릿엔진'이다. ​ '템플릿엔진' 이란? 템플릿엔진이란, 동적 컨텐츠를 생성하는 방법이다. ​ view만 만드는데 사용하는 것이 아니다. 여러 가지 용도(code generation, email.. 2021. 8. 4.
스프링부트, MVC 패턴 Controller(컨트롤러)의 역할과 생성 (URI) Spring Boot 🍃 Controller(컨트롤러)의 역할과 생성 ​ ​ 🧐 MVC 패턴 애플리케이션의 역할을 모델(Model), 뷰(View), 컨트롤러(controller)로 나누어, 이들 사이 상호작용을 통제하는 아키텍처 패턴이다. 1. 모델(Model) : 비즈니스 규칙을 표현 2. 뷰(View) : 프레젠테이션을 표현 3. 컨트롤러(Controller) : 위 두가지를 분리하기 위하여 양측 사이에 배치된 인터페이스. ​ 이번 포스팅에서는 MVC 패턴의 개념과 Controller의 개념, 그리고 스프링 부트에서 Controller 생성 하는 방법을 알아본다. ​ ​ 1. Controller의 두가지 역할 Controller는 MVC 패턴의 C에 해당하고, 주로 사용자의 요청을 처리 한 후 지정.. 2021. 8. 4.
인텔리제이(IntelliJ) 프로젝트와 깃(Git) 연동하기 인텔리제이(IntelliJ) 프로젝트와 깃(Git) 연동하기 GitHub에 새로운 remote repository를 만들고 기존 IntelliJ 프로젝트(모듈)을 연동하는 방법에 대해 다룬다. 과정은 다음 순서로 진행된다. ​ 1) IntelliJ에 GitHub 계정 연동 2) Git에서 새 레포지토리 만들기 (GitHub Remote Repository 생성) 3) 리모트 레포지토리 등록하기 4) 로컬 레포지토리 만들기 5) commit, push ​ 1. IntelliJ에 GitHub 계정 연동 깃 계정 연동 맥에서의 Preferences, 윈도우에서 Settings 를 클릭한다. ​ 좌측의 GitHub 탭을 클릭하고, 계정 정보를 입력 후 [Log In]을 클릭한다. ​ 버튼을 눌러 깃에 로그인 혹.. 2021. 8. 4.
Spring Boot🍃 스프링부트 프로젝트 생성, 스프링부트 프로젝트 구조 Spring Boot 🍃 스프링부트 프로젝트 생성하는 법과 스프링부트 프로젝트 구조 (src/main/java, src/main/resources, src/test/java, build.gradle) 에 대해 알아본다. ​ ​ 1. 스프링부트 프로젝트 생성 [New Project] [ Spring initializr ] ​ ​ 위와같이 설정 하고 Next, ​ Next, ​ Next, ​ 마지막으로 앞에 입력했던 프로젝트 이름을 입력하고 Finish를 클릭하면 스프링부트 프로젝트가 생성된다. ​ ​ ​ 2. 스프링부트 프로젝트 구조 프로젝트를 생성했다면, 이제 스프링부트 프로젝트의 구조에 대해 알아보자. 다음 네 파트로 나누어 설명한다. ​ (1) src/main/java (2) src/main/reso.. 2021. 8. 4.
스프링, 스프링부트 ! (Spring boot) 1. 스프링 프레임워크 1) 스프링이란? 자바 플랫폼을 위한 오픈 소스 애플리케이션 프레임워크 로서 간단히 스프링이라고도 한다. 큰 규모 프로젝트에 주로 사용되고, 동적인 웹 사이트를 개발하기 위한 여러 가지 서비스를 제공. 대한민국 공공기관의 웹 서비스 개발 시 사용을 권장하고 있는 전자정부 표준프레임워크의 기반 기술로서 쓰이고 있다. * 프레임워크란? 개발자들이 생산하는 코드 품질 및 개발 속도를 상향 평준화시키기 위해 고안된 규약이자 표준 개발 방법을 제공해주는 어플리케이션. 쉽게 생각하면 일종의 공정. 공장에서 어떤 제품을 생산할 때 공정을 지키면서 물건을 생산하면 예상된 시간과 품질이 보장되는 것과 같은 의미! 2. 스프링 핵심 기능 - 의존 주입 (Dependency Injection) - 관.. 2021. 7. 21.
728x90