분류 전체보기 (461) 썸네일형 리스트형 스프링 시큐리티를 이용하여 로그인 화면 띄워보자 '스프링 시큐리티' 프레임워크는 스프링 서버에 필요한 인증 및 인가를 위해 많은 기능을 제공해 줌으로써 개발의 수고를 덜어 줍니다. 마치 '스프링' 프레임워크가 웹 서버 구현에 편의를 제공해 주는 것처럼요! '스프링 시큐리티' 프레임워크 추가 implementation 'org.springframework.boot:spring-boot-starter-security' '스프링 시큐리티' 활성화 우리 사이트를 접속하는 모든 사람들에게 로그인과 로그아웃 기능만 사용할 수 있도록 만드는 코드입니다. import org.springframework.context.annotation.Configuration; import org.springframework.security.config.annotation.web... 인증과 인가를 알아보자 인증 (Authentication): 사용자 신원을 확인하는 행위 인가 (Authorization): 사용자 권한을 확인하는 행위 인증: 회사 출입을 위한 출입증 확인 혹은 생체정보 (지문, 홍채) 인식 인가: 회사 건물 내 접근 권한 관리 방문자 → 회의실만 접근 가능 직원 → 회의실, 사무실 접근 가능 관리자 → 회의실, 사무실, 서버실, 물품보관실 접근 가능 인증: 로그인을 통해 본인임을 확인 (주로, 아이디와 패스워드 이용) 인가: 주로 역할에 따른 사용 권한 관리 예) 웹 카페 사이트에서 회원 랭킹 별 가능한 첨부파일 크기를 다르게 부여 [삼성 SW 역량 테스트] 구슬 탈출 2 삼성 SW 역량 테스트 문제를 풀어보겠습니다. 해당 문제는 여기서 확인하실 수 있습니다. 구슬 탈출 2 시간 제한메모리 제한제출정답맞힌 사람정답 비율 2 초 512 MB 59965 17667 9531 26.629% 문제 스타트링크에서 판매하는 어린이용 장난감 중에서 가장 인기가 많은 제품은 구슬 탈출이다. 구슬 탈출은 직사각형 보드에 빨간 구슬과 파란 구슬을 하나씩 넣은 다음, 빨간 구슬을 구멍을 통해 빼내는 게임이다. 보드의 세로 크기는 N, 가로 크기는 M이고, 편의상 1×1크기의 칸으로 나누어져 있다. 가장 바깥 행과 열은 모두 막혀져 있고, 보드에는 구멍이 하나 있다. 빨간 구슬과 파란 구슬의 크기는 보드에서 1×1크기의 칸을 가득 채우는 사이즈이고, 각각 하나씩 들어가 있다. 게임의 목표는 빨.. 빈(Bean)과 스프링 IoC 컨테이너 그런데 DI 를 사용하기 위해서는 객체 생성이 우선 되어야 했습니다. 과연 어디서 객체 생성을 해야 할까요? 바로 스프링 프레임워크가 필요한 객체를 생성하여 관리하는 역할을 대신해 줍니다. 빈 (Bean): 스프링이 관리하는 객체 스프링 IoC 컨테이너: '빈'을 모아둔 통 IOC: 제어의 역전 빈을 등록하는 2가지 방법 스프링 '빈' 등록 방법은 2가지가 있습니다. 1. @Component 어노테이션을 클래스 위에 설정 @Component public class ProductService { ... } 이렇게 빈으로 등록할 클래스 위에 Component annotation만 달아놓으면 해당 클래스의 객체를 직접 생성 할 것입니다. ProductService productService = new Prod.. DI와 IOC를 알아보자. 개념 제어의 역전 (IoC) 제어의 역전이라는 개념은 프레임 워크같은 것이 대신 호출해주는 것입니다. 프로그램의 흐름을 직접 제어하는 것이 아니라 외부에서 관리해주는 것을 제어의 역전(IoC)라고 합니다. 의존관계 주입 (DI) 애플리케이션 '실행 시점(런타임)'에 외부에서 실제 구현 객체를 생성하고 클라이언트에 전달해서 클라이언트와 서버의 실제 의존관계가 연결되는 것을 '의존관계 주입'이라 한다. 코드를 통해 개념을 확인해보자 DI를 적용하기 전, 일반적인 Controller와 Service, Repository의 코드 구성을 살펴보도록 하겠습니다. Controller는 생성자에서 Service를 생성합니다. public class Controller1 { private final Service1 se.. Request의 이해 @PathVariable get 요청일 때 사용할 수 있습니다. URL을 이용해서 값을 받아옵니다. get 요청일 때는 Requeset Header의 content type은 존재하지 않습니다. @RequestParam RequestParam annotation은 get 요청과 post 요청 둘다 사용할 수 있습니다. RequestParam은 생략이 가능합니다. form 데이터 형식으로 request를 보냈을 때 RequestParam을 사용해서 받을 수 있으며 Json 형식을 사용해서 보낼때는 RequestParam을 사용할 수 없습니다. GET 요청에서는 @RequestParam이 URL에서 값을 받아오며 POST 요청에서는 Request Body 부분에서 값을 받아오고 있습니다. @ModelAttr.. MVC 구조를 알아보자 Client -> DispatcherServlet DispatcherServlet은 가장 앞단에서 Client의 요청을 받는 부분입니다. 가장 앞단에서 요청을 받아 FrontController 라고도 불립니다. 이것은 Spring에 의해 미리 구현이 되어있는 상태입니다. DispatcherServlet -> HandlerMapping -> DispatcherServlet DispatcherServlet은 Request로 부터 URL을 받은 상태입니다. URL을 처리해줄 API를 찾아야겠죠? HandlerMapping은 API path와 Controller 메서드가 매칭이 되어있는 상태입니다. 해쉬함수에 key로 API pat를 value로 Controller 메서드가 저장되어 있다고 생각하면 편할 듯 합.. HTTP Response의 이해 (@Controller, @RestController) @Controller를 사용해본적이 있고 @RestCotroller를 사용해본적이 있어야 이해하기가 편할 것으로 생각됩니다. 들어가기에 앞서 Controller return 값에 따라 HTTP Response의 값이 어떻게 변하는지 먼저 알아보도록 하겠습니다. 위에 표를 보고 한눈에 이해하기가 쉽지 않을 수 있습니다. 같이 한번 살펴보도록 하겠습니다. 일반적으로 @Controller가 반환하는 return 타입은 1가지 나눌 수 있습니다. (String) @RestController가 반환하는 return 타입은 2가지 나눌 수 있습니다. (String, String외) 이에따라 HTTP Response는 어떻게 변하는지 살펴보도록 하겠습니다. @Controller 자, 앞서 Controller 어노테.. 이전 1 ··· 23 24 25 26 27 28 29 ··· 58 다음