Spring20 [SpringBoot] API를 작성하는 다양한 방법 GET API 만들기 @RequestMapping으로 구현하기 @RequestMapping은 별다른 설정 없이 선언하면 HTTP의 모든 요청을 받는다. GET 형식의 요청만 받기 위해서는 어노테이션에 별도 설정이 필요하다. @RequestMapping(value = "/hello", method = RequestMethod.GET) public String getHello(){ return "Hello world"; } method에 RequestMethod.GET을 선언해준다. 스프링 4.3 버전 이후로는 @RequestMapping 어노테이션 보다는 @GetMapping @PostMapping @PutMapping @DeleteMapping 이 사용된다. 매개변수가 없는 GET 메소드 구현 @GetM.. 2023. 9. 27. [Spring Boot] 서비스의 인증과 권한 부여 - Spring Security 보안 용어 이해 인증 사용자가 누구인지 확인하는 단계를 의미한다. 대표적인 예시 : 로그인 로그인은 데이터베이스에 등록된 아이디와 패스워드를 사용자가 입력한 아이디와 비밀번호와 비교해서 일치 여부를 확인하는 과정이다. 로그인 성공시 애플리케이션 서버는 응답으로 사용자에게 토큰을 전달한다. 로그인에 실패한 사용자는 토큰을 전달받지 못해 원하는 리소스에 접근할 수 없다. 로그인 성공 : 토큰 전달 로그인 실패 : 토큰 전달 x 인가 인증을 통해 검증된 사용자가 애플리케이션 내부의 리소스에 접근할 때 사용자가 해당 리소스에 접근할 권리가 있는지를 확인하는 과정을 의미한다. ex) 로그인한 사용자가 특정 게시판에 접근해서 글을 보려고 하는 경우 게시판 접근 등급을 확인해 접근을 허거하거나 거부하는 것 일반적으로.. 2023. 9. 24. [Spring Boot] 개발에 앞서 알면 좋은 기초 지식 서버간 통신 상황 가정 포털 사이트를 하나의 서비스 단위로 개발한다고 가정 블로그, 카페, 메일 등의 기능들을 하나의 어플리케이션에 통합 서비스를 위 상황과 같이 구성하게된다면, 서버를 업데이트 하거나 애플리케이션을 유지보수할 때마다 '유지보수 중'이라는 팻말을 걸고 작업을 해야한다. 이렇게 되면, 개발에 보수적인 입장을 취할 수밖에 없고, 서비스 자체의 규모도 커지기 때문에 서비스를 구동하는 데 시간도 길어진다. 그렇다면 어떻게 해야하는가? 마이크로서비스 아키텍처(MSA : Microservice Architecture) MSA가 무엇인가? 서비스 규모를 작게 나누어 구성한 아키텍처를 의미한다. ex) 앞에서 예로 든 포털 사이트에 마이크로서비스 아키텍처를 적용한다면, 애플리케이션 하나에 여러 기능을 .. 2023. 9. 20. [Spring boot] Spring vs Spring Boot 스프링 프레임워크는 기존 개발 방식의 문제와 한계를 극복하기 위해 다양한 기능을 제공한다. 하지만! 기능이 많은 만큼 설정이 복잡한 편이다. ex) 스프링 하이버네이트를 사용하기 위해 작성하는 설정 파일 일부 너무 복잡하다.. 이렇게 필요한 모듈들을 추가하다 보면 설정이 복잡해지는 문제를 해결하기 위해 등장한 것이 스프링 부트(Spring Boot)! 스프링 부트 공식사이트 왈 Spring Boot makes it easy to create stand-alone, production-grade Spring based Applications that you can "just run". 스프링 부트를 이용하면 단독으로 실행 가능한 상용 수준의 스프링 기반 애플리케이션을 손쉽게 만들 수 있다. 별도의 복잡한 .. 2023. 9. 18. 이전 1 2 3 4 5 다음