목록어플리케이션개발/springboot실습 (8)
코딩공작소

AWS 서비스 구성 . EC2 : AWS에서 제공하는 원격 서버 . 오토 스케일링 그룹 . 타킷 그룹 . 로드 밸란서 . RDS : AWS에서 제공하는 원격 데이터베이스 가상의 PC 또는 서버 EC2 EC2는 클라우드 컴퓨팅 서비스로 가상의 PC, 즉, 서버 한 대를 임대하는 서비스 유동적으로 EC2를 관리해주는 오토 스케일링 그룹 트래픽이 늘어남에 따라 EC2가 늘어날 수 있고, 이때 오토 스케일링 그룹이 사용자의 요청 횟수에 따라 EC2를 늘리거나 줄인다. 요청을 분산시켜주는 로드 밸런서 요청이 동시에 많이 들어오게 되면, 로드밸랜서가 분산을 시켜준다. 또한, 요청을 어디로 분산시킬지 그룹을 정해야하는데 이를 대상 그룹이라고한다. 데이터 저장소 RDS 범용 데이터베이스인 아마존 관계형 데이터 베이스로..

의존성 추가하기 OAuth2를 사용하기 위한 스타터 추가 쿠키 관리 클래스 추가 addCookie : 요청 값을 바탕으로 HTTP 응답에 쿠키를 추가합니다. 쿠키 이름을 입력받아 쿠키를 삭제한다. 실제 삭제 방법은 없어서 파라미터로 넘어온 키의 쿠키를 빈 값으로 바꾸고 만료기간을 0으로 설정해서 쿠키가 재생성 되자마자 만료처리한다. serialize : 객체를 직렬화해 쿠키의 값으로 들어갈 값으로 변환 deserialize : 쿠키를 역직렬화해 객체로 변환 OAuth2 서비스 구현 사용자 정보를 조회해 users 테이블에 사용자 정보가 있다면 리소스 서버에서 제공해주는 이름을 업데이트 정보가 없다면 새 사용자를 생성해 데이터베이스에 저장하는 서비스를 구현 domain 패키지의 User.java 파일에 사..

OAuth란? 제3의 서비스에 계정관리를 맡기는 것. 리소스 오너 정보를 취득하는 4가지 방법 권한 부여 코드 승인 타입 암시적 승인 타입 리소스 소유자 암호 자격증명 승인 타입 클라이언트 자격증명 승인 타입 권한 부여 코드 승인 타입 권한 요청이란? 클라이언트, 즉, 스프링 부트 서버가 특정 사용자 데이터에 접근하기 위해 권한 서버, 즉, 카카오나 구글 권한 서버에 요청을 보내는 것 GET spring-authorization-server.example/authorize? client_id=66a36b4c2& redirect_uri=http://localhost:8080/myapp& response_type=code& scope=profile client_id : 인증 서버가 클라이언트에 할당하나 고유..

토큰 기반 인증이란 무엇일까 ? 사용자 인증 확인 방법에는 서버 기반 인증과 토큰 기반 인증이 있다. 먼저, 지난 실습 (3) 글에서 정리한 내용이 세션 기반인증 토큰을 이용한 인증이 이번 장에서 설명한 토큰 기반 인증이다. 토큰 인증 과정 클라이언트가 로그인요청을 서버로 보낸다 서버는 유효성 검증을 하고, 통과하면 토큰을 생성하여 응답한다. 클라이언트는 토큰을 저장한다. 이후 인증이 필요한 API를 사용할 때 토큰을 함께 보낸다. 서버는 토큰의 유효성을 검증한다. 토큰이 유효하다면 클라이언트가 요청한 내용을 처리한다. 토큰 기반 인증의 특징 무상태성 : 서버 입장에서 클라이언트의 인증 정보를 저장하거나 유지하지 않아도 되기 때문에 완전한 무상태으로 검증할 수 있다. 확장성 : 하나의 토큰으로 결제 서버..

스프링 시큐리티 인증과 인가 인증이란 사용자의 신원을 입증하는 과정. 즉, 누구인지를 확인 인가란 권한을 확인하는 것 스프링 시큐리티를 통해 인증과 인가를 편하게 구현할 수 있다. 스프링 기반 애플리케이션의 보안을 담당하는 하위 프레임워크로, CSRF공격, 세션 고정 공격을 방어해주고, 요청 헤더도 보안 처리를 해주므로 개발자가 보안 관련 개발을 하는 부담을 줄여준다. 기본적으로, 필터 기반으로 동작한다. UsernamePassworedAuthenticationFilter, FilterSecurityInterceptor 그 중, 중요한 필터인데, 각각 인증 요청을 위임하는 인증 관리자 역할과 접근 제어 결정을 하는 관리자 역할을 한다. (* SecurityFilterChain에 대하여 궁금하면 검색!) ..

의존성 추가 타임리프를 사용해서 뷰를 만들기 위해 그레이들에 타임리프 의존성을 추가해준다. 화면들은 resources/templates/OOO.html 위치에 존재한다. 목록 화면에 대한 개발 뷰에서 사용할 모델을 담는 DTO를 생성해준다. 뷰 컨트롤러를 만들고, 목록을 조회해준 후 해당 모델 DTO를 세팅해주고 화면으로 뿌려준다. aritcles에 대한 데이터를 가져와서 화면을 구성해준다. 이렇게 템플릿을 통해 화면이 구성된다. 블로그 상세보기 화면 개발 엔티티에 생성시간, 업데이트시간 칼럼 추가. @EnableJpaAudition 어노테이션을 통해 Date를 자동 업데이트하도록 세팅해준다. DTO에도 생성시간 칼럼을 담도록 추가해준다. 블로그 글 상세보기에 대한 컨트롤러 API를 추가한다. artic..

RestAPI 를 통한 블로그 API 엔티티 생성 빌더 패턴을 사용하면 객체를 유연하고 직관적으로 생성할 수 있기 때문에 개발자들이 애용하는 디자인 패턴입니다. 또한, 객체 생성 코드의 가독성을 높이며 간편하게 빌더 패턴을 사용해 객체를 만들 수 있다. 또한, 롬복의 애너테이션을 통해 반복된 코드를 줄여 가독성을 향상시킬 수 있다. DTO 생성 DTO는 단순히 계층끼리의 데이터 교환을 위해 사용되는 객체다. 별도의 비즈니스 로직을 포함하지 않는다. toEntity()를 통해 DTO를 엔티티로 만들어준다. 서비스에 저장 로직 개발 request 값을 엔티티로 만들어서 리포지토리의 저장 로직을 호출한다. @RequiredArgsConstructor는 빈을 생성자로 생성하는 롬복에서 지원하는 애너테이션으로, ..

처음에는 그레이들을 세팅해주고 새로고침을 해서 의존성들을 받아와준다. 그리고는 첫 시작이 되는 자바 애플리케이션을 만든다. 이렇게 기초 세팅 완료! 스프링 부트 스타터 spring-boot-starter-web : Spring MVC를 사용해서 RESTful 웹 서비스를 개발할 때 필요한 의존성 모음 spring-boot-starter-test : 스프링 애플리케이션을 테스트하기 위해 필요한 의존성 모음 spring-boot-starter-validation : 유효성 검사를 위해 필요한 의존성 모음 spring-boot-starter-actuator : 모니터링을 위해 애플리케이션에서 제공하는 다양한 정보를 제공하기 쉽게 하는 의존성 모음 spring-boot-starter-data-jpa : ORM을..