본문 바로가기

전체 글85

[SPRING] 요청 매핑 헨들러 어댑터 HTTP 메시지 컨버터를 사용한 요청, 응답처리에 대해 정리했었는데 이 글은 컨버터를 거치치 않는 파라미터 ex) @ModelAttribute, @RequestParam 등을 어디서 주입을 받으며 다양한 리턴타입은 어디서 유기적으로 처리되는지 또 스프링MVC의 요청, 응답처리의 어느 시점에서 메세지 컨버터가 사용되는 건지 정리하였습니다. 개인적인 학습의 정리글입니다. @RequestMapping을 처리하는 핸들러 어댑터인 RequestMappingHandlerAdapter을 보면 처리과정을 확인할 수 있다. 애노테이션 기반의 컨트롤러는 다양한 파라미터를 사용할 수 있는데 HttpServletRequest, Model, @Requestparam, @ModelAttribute 같은 애노테이션은 물론 @Req.. 2022. 4. 17.
[WEB] HTTP 메서드 특성 REST API는 리소스와 리소스의 대한 행위를 분리한 URI를 설계하는데 이 때 리소스의 대한 행위는 HTTP 메서드를 통해 분리됩니다. 그렇다면 각 메서드를 통해 기대되는 행위(HTTP 스펙)는 어떨까요 HTTP Method 마다 기대되는 처리에 대해 학습한 내용을 정리합니다. HTTP 주요 메서드 GET : 단순 리소스 조회 POST : 요청 데이터를 처리(비즈니스 로직)하며 주로 데이터의 등록에 사용 PUT : 리소스를 대체한다 해당 리소스가 없으면 생성하고 있다면 수정한다.(오라클의 MERGE처럼 동작) -데이터 부분수정X PATCH : 리소스의 부분 변경(UPDATE) - 필드 전체가 아닌 필드 부분 수정 DELETE : 리소스 삭제 GET 리소스를 서버로 부터 조회할때 사용하며 서버에 전달하.. 2022. 4. 11.
[알고리즘] 숫자를 뒤집기 숫자 형식의 데이터를 뒤집어야할때 사용하기 용이한 규칙이 있다. int tmp = 123; int res = 0; while(tmp > 0) { int t = tmp % 10; // 무조건 1의자리 res = res * 10 + t; tmp = tmp / 10; } tmp에 할당된 123을 뒤집는다고 가정할때 1. 대상을 10으로 나눈 나머지를 구하면 일의자리 숫자가 리턴되게 된다. 2. 최종값이 들어갈 res변수를 0으로 초기화 하고 반복문이 실행될때 마다 곱하기 10 더하기 나머지를 해준다. 3. 10을 곱하면서 자리수를 만들게 되고 그 뒤에 나머지를 더해준다. 4. tmp에 10을 나눠서 이제 필요없어진 일의자리수를 제거한다. 5. tmp가 0보다 클때 까지 반복한다. 2022. 4. 6.
[SPRING] HTTP 메세지 컨버터 Spring 사용 시 HTML 파일을 응답하는 게 아닌 HTTP API처럼 JSON 데이터를 HTTP메시지 바디에 입력하거나 문자열을 입력할 때 HTTP 메시지 컨버터를 사용하면 편리하다. 개인적인 학습의 정리글입니다. 스프링 MVC는 다음의 경우에 HTTP 메시지 컨버터를 적용한다. HTTP 요청 @RequestBody HttpEntity(RequestEntity) HTTP 응답 @ResponseBody HttpEntity(ResponseEntity) HTTP 메세지 컨버터 인터페이스를 보면 canRead(), canWrite()로 메세지 컨버터가 해당 클래스, 미디어 타입을 지원하는지 확인하고 read(), write() : 메시지 컨버터를 통해서 메세지를 읽고 쓰는 메소드 스프링에는 HTTP 메세지.. 2022. 4. 3.
[GIT] Github - rejected-non-fast-forward 어느날 Commit and Push를 했는데 평소와 다른 메세지였고 확인결과 push가 거절됐다는 내용이였습니다. github에 들어가서 readme파일을 수정했었는데 그것이 충돌의 원인이되어 정상적으로 수행이 안되는 상황이였습니다. IDE는 STS를 사용했습니다. 1. [Git Repositories]로 perspective를 변경합니다. 2. 문제가 발생한 저장소에 오른쪽 클릭 후 merge를 수행합니다. 3. origin 항목에서 오른쪽 클릭하여 Configure Fetch 실행합니다. 4. Advanced 메뉴 클릭 후 main브런치 추가 만일 Specifications for fetch에 이미 항목이 있었다면 Remove후 추가한다. 이후 푸쉬가 하면 정상적으로 수행됩니다. 2022. 4. 1.
[SPRING] HTTP 응답의 다양한 방법 HTTP 요청에 대한 응답을 처리하는 여러 방식과 HTTP 바디에 직접 원하는 데이터를 주입하여 응답하는 주제에 대한 학습내용을 정리합니다. 개인적인 학습의 정리 글입니다. 아래와 같이 컨트롤러에서 View(HTML파일)을 리턴하면 HTTP 응답 메시지 바디에 HTML 파일의 내용이 담겨 리턴됩니다. 이처럼 HTTP 응답 메세지에 원하는 데이터를 담는 다양한 방법들이 있습니다. @GetMapping("/admin/game/regist") public String gameRegistPage(HttpServletRequest reqeust) { return "game/gameRegist"; } 1. PrintWriter @GetMapping("/response-body-writer") public void .. 2022. 3. 30.