반응형

전체 글 201

[HTTP] HTTP 요청 방법 3가지

1. GET - 쿼리 파라미터 /url?username=hello&age=20 메시지 바디 없이, URL의 쿼리 파라미터에 데이터를 포함해서 전달 예) 검색, 필터, 페이징등에서 많이 사용하는 방식 2. POST - HTML Form content-type: application/x-www-form-urlencoded 메시지 바디에 쿼리 파리미터 형식으로 전달 username=hello&age=20 예) 회원 가입, 상품 주문, HTML Form 사용 3. HTTP message body에 데이터를 직접 담아서 요청 HTTP API에서 주로 사용, JSON, XML, TEXT 데이터 형식은 주로 JSON 사용 POST, PUT, PATCH

Back-end/HTTP 2022.11.15

[Spring] 컴포넌트 스캔 @ComponentScan

컴포넌트 스캔(@ComponentScan)을 사용하면 @Component 어노테이션이 붙은 클래스를 다 인식해서 스프링 컨테이너에 등록한다. AppConfig에서 컴포넌트 스캔 어노테이션을 달게되면, 해당 패키지와 그 하위 패키지 까지의 범위를 스캔하게된다. 컴포넌트 스캔이 스캔하는 어노테이션 종류 @Component : 컴포넌트 스캔에서 사용 @Controlller : 스프링 MVC 컨트롤러에서 사용 @Service : 스프링 비즈니스 로직에서 사용 @Repository : 스프링 데이터 접근 계층에서 사용 @Configuration : 스프링 설정 정보에서 사용

Back-end/Spring 2022.11.07

[Spring] Java Persistence API 사용

Java Persistence API의 개요 JPA를 사용을 위한 Dependency 추가와 설정 pom.xml 에 아래와 같이 추가한다. (h2는 버전이 1.4.197 이하로 했을 때 진행 됐었다. —>1.3.176) org.springframework.boot spring-boot-starter-data-jpa com.h2database h2 runtime 1.3.176 위처럼 pom.xml을 설정하고 http://localhost:8088/h2-console로 접속하면 아래와 같이 로그인 화면이 나온다.(기존에 설정한 유저와 패스워드를 입력하면된다.) 하지만, 이전 시간에 적용한 security 때문에 접속이 안된다. 그래서 SecurityConfig.java 에서 아래와 같은 오버라이드 메서드로 ..

Back-end/Spring 2022.11.06

[Spring] Spring Boot API 사용

REST API Level3을 위한 HATEOAS 설정 버전별 차이가 있음 스프링 2.2 이상의 버전이기 때문에, 아래와 같이 소스코드 작성했다. @GetMapping("/users/{id}") public EntityModel retrieveUser(@PathVariable int id) { //알아서 인티저로 변경해서 사용하려면 형을 정확하게 입력해ㅝ야함 User user = service.findOne(id); if (user == null) { throw new UserNotFoundException(String.format("ID[%s] not found",id)); } // HATEOAS EntityModel model = EntityModel.of(user); WebMvcLinkBuilder..

Back-end/Spring 2022.11.06

[Spring] RESTful Service 기능 확장

Validation Controller에는 아래와 같이 @Valid 어노테이션 사용해야함 @PostMapping("/users") // 체크하는 순서는 Post인지 먼저 체크하고, uri를 체크해서 이쪽으로 오게됨 public ResponseEntity createUser(**@Valid** @RequestBody User user) { //오브젝트 형식의 데이터를 전달하려면 @RequestBody가 필요함 User savedUser = service.save(user); URI location = ServletUriComponentsBuilder.fromCurrentRequest() .path("/{id}") .buildAndExpand(savedUser.getId()) .toUri(); return ..

Back-end/Spring 2022.11.06

[Spring] User Service API 추가

유저에 관한 서비스 정의 내용 파일 구조 User Domain 생성 User.java package com.example.restfulwebservice.user; import lombok.AllArgsConstructor; import lombok.Data; import java.util.Date; @Data @AllArgsConstructor public class User { //lombok으로 프로퍼티만 만들어도 됨 private Integer id; private String name; private Date joinDate; } GET 사용방법 UserController.java package com.example.restfulwebservice.user; import org.springfra..

Back-end/Spring 2022.11.06

[Spring] Spring Boot로 개발하는 RESTful Service

Spring Boot 개요 스프링 프레임 워크에 필요한 많은 API를 쉽게 사용할 수 있음 다양한 설정 기능도 쉽게 사용할 수 있음 내장형 톰캣 제티 등이 있기 때문에 별도의 어플리케이션을 설치할 필요 없음 http://start.spring.io 에서 스프링 부트 시작할 수 있음 REST API 설계 Spring Boot Project 생성, 실행 IntelliJ IDEA Ultimate Postman http://start.spring.io에서 아래와 같이 프로젝트 생성한다. ‘GENERATE’를 선택하면 zip 파일이 생성 된다. 압축을 풀고 인텔리제이로 해당 폴더를 오픈하면 된다. HelloWorld Controller 추가 HelloWorld Bean 추가 DispatcherServlet, 프로..

Back-end/Spring 2022.11.06

[Spring] Web Service와 Web Application

웹서비스 - 네트워크 상에서 서로 다른 종류의 컴퓨터들 간에 상호작용하기 위한 소프트웨어 시스템 웹 어플리케이션 - 웹메일, 온라인 쇼핑몰, 커뮤티니 등 - 사용자는 웹 브라우저를 사용해서 웹어플리케이션을 사용한다. SOAP vs RESTful API SOAP (Simple Object Access Protocol) RESTful API (REpresentational State Transfer) - SOAP 보다 개발하기 수월함 - Resource의 Representation에 의한 상태 전달 - HTTP Method를 통해서 Resource를 처리하기 위한 아키텍처 RESTful - HTTP Method : 프로토콜을 통해서 클라이언트가 서버에 목적을 알려줄수 있다. - HTTP Status Code..

Back-end/Spring 2022.11.04

[웹 개발] 상태 코드 종류

1xx (Informational) : 요청이 수신되어 처리중 2xx (Successful) : 요청 정상 처리 - 200 OK : 결과를 정상적으로 처리 했을 때, 가장많이 보는 케이스 - 201 Created : 신규 자원으로 등록해달라고 요청하면(POST) 서버에서 자원이 생성 완료 했다는 의미 - 202 Accepted : 배치 처리 같은 곳에서 사용, 요청을 받아들이긴 했지만 바로 실행하지 않을 때 사용됨 - 204 No Content : 서버가 요청을 성공적으로 수행했지만, 응답 페이로드 본문에 보낼 데이터가 없음 3xx (Redirection) : 요청을 완료하려면 유저 에이전트의 추가 행동이 필요 리다이렉션 : 웹 브라우저는 3xx 응답의 결과에 Location 헤더가 있으면, Locati..

Back-end 2022.08.20

참고하면 좋은 URI 설계 개념

1. 문서(document) - 단일 개념(파일 하나, 객체 인스턴스, 데이터베이스 row) - 예) /members/100, /files/star.jpg 2. 컬렉션(collection) - 서버가 관리하는 리소스 디렉터리 - 서버가 리소스의 URI를 생성하고 관리 - 예) / members 3. 스토어(store) - 클라이언트가 관리하는 자원 저장소 - 클라이언트가 리소스의 URI를 알고 관리 - 예) /files 4. 컨트롤러(controller), 컨트롤 URI - 문서, 컬렉션, 스토어로 해결하기 어려운 추가 프로세스 실행 - 동사를 직접 사용 - 예) /memebers/{id}/delete

Back-end 2022.08.20
반응형