스프링 6

[르탄즈 2기] Spring 심화반 1주차 개발일지

안녕하세요! 르탄즈 2기의 팀 300의 김민우입니다. 1차 미션이 끝난 후에 우수활동자로 선정되어 Spring 심화반 강의를 듣게 되었습니다. 제 원하는 직종이 백엔드 개발자라서, Spring에 대해 자세히 알고 복습 차원에서 강의를 신청하게 되었습니다. 강의에서 JPA와 JWT 구현, 전반적인 MVC에 대해 알려주는 커리큘럼을 가지고 있어, 백엔드 개발을 희망하는 분들에게는 꼭 필요한 개념을 가진 강의입니다. 1주차 강의에서 중요 개념인 MVC 패턴에 대해 정리해보았습니다. 스프링 MVC 이해 스프링 MVC? MVC (Model - View - Controller) 디자인 패턴 Server 에서 HTML 을 내려 주는 경우 정적 (static) 웹 페이지 동적 (dynamic) 웹 페이지 1. 정적 웹..

thymeleaf의 특징 - 스프링 MVC 2편

[thymeleaf의 특징 3가지] 서버 사이드 HTML 렌더링 (SSR) 타임리프는 백엔드 서버에서 HTML을 동적으로 렌더링 하는 용도로 사용된다. 네츄럴 템플릿 타임리프는 순수 HTML을 최대한 유지하는 특징이 있다. 타임리프로 작성한 파일은 HTML을 유지하기 때문에 웹 브라우저에서 파일을 직접 열어도 내용을 확인할 수 있고, 서버를 통해 뷰 템플릿을 거치면 동적으로 변경된 결과를 확인할 수 있다. 스프링 통합 지원 타임리프는 스프링과 자연스럽게 통합되고, 스프링의 다양한 기능을 편리하게 사용할 수 있게 지원한다.

개발일지 (2) - 페이징 처리하기 & 제목으로 검색하기

현재 데브싱크(DevThink) 서비스를 구축하고 있다. 데브싱크는 개발자들이 사용하는 성장형 커뮤니티 앱이다. 자세한 내용은 아래 링크를 통해 확인할 수 있다! https://devthink.notion.site/devthink/185af3c83f4743f292067f206bc95acf 안녕하세요, '데브싱크' 팀 입니다 데브싱크(DevThink) 팀을 소개합니다! devthink.notion.site 데브싱크 서비스에 기본적인 게시글 기능이 필요하다. 그래서 내가 짠 전체적인 POST API에 대해 소개 하려고 한다. 일단 Controller의 개념에 대해 소개하려고 한다. Controller는 사용자의 요청이 진입하는 지점(entry point)이며, 요청에 따라 어떤 처리를 할지 결정해주며 실질적..

@RestController vs @Controller

@RestController @Controller 는 반환 값이 String 이면 뷰 이름으로 인식된다. 그래서 뷰를 찾고 뷰가 랜더링 된다. @RestController 는 반환 값으로 뷰를 찾는 것이 아니라, HTTP 메시지 바디에 바로 입력한다. Controller 대신에 @RestController 애노테이션을 사용하면, 해당 컨트롤러에 모두 @ResponseBody 가 적용되는 효과가 있다. 뷰 템플릿을 사용하는 것이 아니라, HTTP 메시지 바디에 직접 데이터를 입력한다. 이름 그대로 Rest API(HTTP API)를 만들 때 사용하는 컨트롤러이다. 참고로 @ResponseBody 는 클래스 레벨에 두면 전체에 메서드에 적용되는데, @RestController 에노테이션 안에 @Respons..

HTTP 요청 파라미터 - @RequestParam

스프링이 제공하는 @RequestParam 을 사용하면 요청 파라미터를 편리하게 사용 할 수 있다. public String requestParamV2( @RequestParam("username") String memberName, @RequestParam("age") int memberAge)) @RequestParam : 파라미터 이름으로 바인딩 @RequestParam의 name(value) 속성이 파라미터 이름으로 사용 public String requestParamV3( @RequestParam String username, @RequestParam int age) HTTP 파라미터 이름이 변수 이름과 같으면 @RequestParam(name="xx") 생략 가능 public String re..

스프링 부트 기본 메시지 컨버터

0 = ByteArrayHttpMessageConverter 1 = StringHttpMessageConverter 2 = MappingJackson2HttpMessageConverter 스프링 부트는 다양한 메시지 컨버터를 제공하는데, 대상 클래스 타입과 미디어 타입 둘을 체크해서 사용여부를 결정한다. 만약 만족하지 않으면 다음 메시지 컨버터로 우선순위가 넘어간다. ByteArrayHttpMessageConverter : byte[] 데이터를 처리한다. 클래스 타입: byte[] , 미디어타입: */* , 요청 예) @RequestBody byte[] data 응답 예) @ResponseBody return byte[] 쓰기 미디어타입 application/octet-stream StringHttpMe..