분류 전체보기

    [Inflearn] 스프링 MVC (7) HttpMessageConverter

    [Inflearn] 스프링 MVC (7) HttpMessageConverter

    김영한 강사님의 '스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술' 강의 정리 2022.02.06~02.07 진행 강의를 듣고 개인적으로 정리한 글입니다. 코드와 그림 출처는 김영한 강사님께 있습니다. 문제 있을 시 알려주세요. 언제 HttpMessageConverter 가 적용되는가 스프링 MVC는 다음의 경우에 viewResolver 대신 HttpMessageConverter를 적용한다. HTTP 요청 : @RequestBody, HttpEntity(RequestEntity) HTTP 응답 : @ResponseBody, HttpEntity(ResponseEntity) HttpMessageConverter 동작과정 HTTPMessageConverter 인터페이스를 간략히 알아보자면, 다음과 같다. p..

    [Inflearn] 스프링 MVC (6) HTTP 응답

    김영한 강사님의 '스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술' 강의 정리 2022.01.31~02.01 진행 강의를 듣고 개인적으로 정리한 글입니다. 코드와 그림 출처는 김영한 강사님께 있습니다. 문제 있을 시 알려주세요. HTTP 응답 HTTP에서 응답 데이터를 만드는 방식은 크게 3가지 이다. 정적 리소스 뷰 템플릿 사용 HTTP 메시지 사용 1. 정적 리소스 응답 - HTML 정적 리소스 응답이란, 해당 파일을 변경 없이 그대로 서비스하는 것을 말한다. 웹 브라우저에 정적인 HTML, CSS, JS를 제공할 때는 정적 리소스를 사용한다. 스프링 부트에서 src/main/resources는 클래스 패스의 시작 경로로, 리소스를 보관하는 곳이다. 스프링 부트는 클래스패스의 다음 디렉토리에 있는 ..

    직렬화(Serialize)와 역직렬화(Deserialize) - 작성중

    JSON은 Javascript Object Notation의 약자로 자바스크립트의 객체처럼 키:값으로 구성되었다고 붙여진 이름이다. 클라이언트와 서버 간 HTTP 통신을 위한 텍스트 데이터 포맷이다. 키와 값은 `""`로 감싸야 한다. 각 객체를 배열로 묶을 수 있다. 직렬화 객체에 저장된 데이터를 I/O 스트림에 출력하기 위해 연속적인(serial) 데이터로 변환하는 것 데이터를 전송하거나 받을 때 byte 문자열이어야 한다. 따라서 객체를 byte 문자열로 바꾸는 것을 말한다. 객체 -> 문자열, JSON 데이터 역직렬화(Deserialize) I/O 스트림에서 데이터를 읽어서 객체를 만드는 것 데이터를 전송받아 이런저런 처리를 하기 위해서는 객체로 변환해야 편리하다. 문자열,JSON 데이터 -> 객체

    [PS] 백준 1924번 2007년

    [PS] 백준 1924번 2007년

    문제 예제 풀이 이 문제는 영 모르겠어서 다른 분의 풀이를 참고했다. 입력받은 날짜의 요일을 출력하는 문제이고, 월마다의 일수는 다소 다르게 정해져있다. 따라서 요일을 계산하기 위해서는 해당 날짜 이전달까지의 총 일수까지 고려해서 요일을 세야한다. 예를 들어 5월 10일의 경우, (1월부터 4월까지의 총 일수 + 10일)을 7로 나눈 나머지를 계산해서 나머지가 1~6인 경우 순서대로 월~토요일, 나머지가 0인경우 일요일로 간주한다. 즉 5월 10일은 총 일수가 31+28+31+30 +10일= 130일이므로 130 % 7 = 2 이다. 그래서 화요일로 간주한다. 더 쉬운 예시로, 1월 3일은 (총 일수 3) % 7 = 3 이므로 수요일로 간주한다. 따라서 월마다의 총 일수가 저장된 배열을 선언하고, 결과에..

    [Inflearn] 스프링 MVC (5) HTTP 요청

    [Inflearn] 스프링 MVC (5) HTTP 요청

    김영한 강사님의 '스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술' 강의 정리 2022.01.28 진행 강의를 듣고 개인적으로 정리한 글입니다. 코드와 그림 출처는 김영한 강사님께 있습니다. 문제 있을 시 알려주세요. 💡 실무 핵심 정리 요청 파라미터 조회 (GET, POST) : @RequestParam, @ModelAttribute HTTP 메시지 바디를 직접 조회 : @RequestBody 1. HTTP 요청 클라이언트에서 서버로 요청 데이터를 전달하는 방식은 주로 3가지가 있다. GET - 쿼리 파라미터 전송 POST - HTML Form 전송 (메시지 Body에 쿼리 파라미터 형식으로 담음) HTTP 메시지 바디에 데이터를 직접 담아서 요청 HTTP API에서 주로 사용 (주로 JSON) 2...

    [PS] 백준 11721번 열 개씩 끊어 출력하기

    [PS] 백준 11721번 열 개씩 끊어 출력하기

    문제 예제 풀이 출력되는 문자의 인덱스를 나타내보면 다음과 같다. 0~9 10~19 20~29 30~39i = X0~X9까지 문자 10개가 출력되고 i=X9일 때 개행한다. 코드 import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.IOException; import java.io.InputStreamReader; import java.io.OutputStreamWriter; public class Main { public static void main(String[] args) throws IOException { BufferedReader in = new BufferedReader(new InputStreamReade..

    [PS] 백준 11719번 그대로 출력하기 2

    [PS] 백준 11719번 그대로 출력하기 2

    문제 예제 새로 알게 된 것 StringBuilder 클래스 String 클래스는 문자열을 생성자로 넣어 인스턴스를 한 번 생성하고 나면 인스턴스가 가진 문자열 값을 변경하지 못한다. StringBuilder 클래스는 같은 인스턴스 안의 문자열(char 배열) 필드 값을 추가하거나 변경할 수 있다. 즉 원본 문자열을 바꿀 수 있다. 문자열을 다루는 메서드도 더 많이 포함되어 있다. Oracle Java documentation - StringBuilder append() : 문자열 덧붙임 capacity() : String이 저장된 char[] 배열 사이즈를 리턴함 delete(int start, int end) : 특정 위치의 문자열 제거 deleteCharAt(int index) : 특정 인덱스의 문..