Spring

· AWS
기본적인 AWS S3를 생성 및 권한 설정 후 Spring Boot에 적용하는 것을 정리해보았다. AWS S3 Bucket 생성 1. 버킷 이름과 리전을 선택하고 모든 퍼블릭 엑세스 차단을 선택 해체해 버킷을 생성한다. AWS S3 정책 편집 버킷 정책 편집 1. 생성된 bucket의 권한 탭을 클릭 해 버킷 정책을 편집한다. 2. 버킷 ARN을 복사하고 정책 생성기를 클릭 버킷 정책을 생성 Select Type of Policy → S3 Bucket Policy Principal → * Actions → Get Object, Put Object ARN → 이 전에 복사한 ARN 1. 정보 입력 후 Add Statement 버튼을 클릭 2. 생성하려는 정책을 다시 확인 후 Generate Policy 버..
· Apache Kafka
[Kafka] Local에서 Kafka 명령어 날리기 [Kafka] EC2 생성 후 접속, Kafka 설치 및 설정 AWS EC2 생성 후 Inbound rule 추가 1. AWS Console 로그인 후 EC2에 접속 2. EC2 인스턴스 생성 3. 키 페어 생성 4. Inbound rule 추가 Inbound rule은 필요한대로.. devbksheen.tistory.com 앞서 Local에서 여러가지 Kafka 명령어를 날려보았다. 이제는 Spring Boot에 연동해 실제 프로젝트에 적용해보자 Spring Boot에 Kafka를 연동 Java(11) Amazon Corretto JDK(11) Spring Boot(2.5.5) 1. Kafka 의존성 추가 dependencies { ... // re..
· Spring
Flyway란? 오픈소스 마이그레이션 툴 자바나 c++같은 프로그램의 소스 코드는 svn, git과 같은 형상관리 툴로 쉽게 관리할 수 있지만 테이블의 스키마나 데이터는 위와 같은 툴로 변경이력을 관리할 수 없습니다. 따라서 SQL 스크립트문을 실행하거나 직접 DB 콘솔이나 Toad 같은 툴을 통해 직접 수동으로 처리해줘야 하는 단점이 있습니다. Flyway는 버전 관리 목적인 SCHEMA_VERSION 테이블을 통해 SQL 스크립트의 변화를 추적하면서 자동적으로 관리하는 방법으로 위와 같은 문제를 해결합니다. 구현 예제 1. build.grade 설정 dependencies { ... // flyway implementation 'org.flywaydb:flyway-core' // jpa impleme..
· JPA
JPA란? 자바 ORM 기술에 대한 표준 명세로, JAVA에서 제공하는 API 자바 어플리케이션에서 관계형 데이터베이스를 사용하는 방식을 정의한 인터페이스이다. SQL을 매핑하지 않고 자바 클래스와 DB테이블을 매핑한다. ORM이란? Object Relation Mapping의 약자로 객체를 통해 간접적으로 DB를 다루고 객체와 데이터를 자동으로 매핑한다. Query가 아닌 메서드로 데이터를 생성하고 조작할 수 있다. JPA 동작 과정 JPA는 애플리케이션과 JDBC 사이에서 동작한다. 개발자가 JPA를 사용하면, JPA 내부에서 JDBC API를 사용하여 SQL을 호출하여 DB와 통신한다. 즉, 개발자가 직접 JDBC API를 쓰는 것이 아니다. JPA 특징 데이터를 객체지향적으로 관리할 수 있기 때문..
· Spring
Spring AOP란? AOP는 Aspect Oriented Programming의 약자로 관점 지향 프로그래밍이라고 불린다. 관점 지향은 쉽게 말해 어떤 로직을 기준으로 핵심적인 관점, 부가적인 관점으로 나누어서 보고 그 관점을 기준으로 각각 모듈화하겠다는 것이다. 여기서 모듈화란 어떤 공통된 로직이나 기능을 하나의 단위로 묶는 것을 말한다. AOP에서 각 관점을 기준으로 로직을 모듈화한다는 것은 코드들을 부분적으로 나누어서 모듈화하겠다는 의미다. 이때, 소스 코드상에서 다른 부분에 계속 반복해서 쓰는 코드들을 발견할 수 있는 데 이것을 흩어진 관심사 (Crosscutting Concerns)라 부른다. AOP 주요 개념 Aspect 위에서 설명한 흩어진 관심사를 모듈화 한 것. 주로 부가기능을 모듈화..
· Spring
개발 환경 Java(11) Amazon Corretto JDK(11) Spring Boot(2.5.3) jvm.convert(3.3.2) spring-restdocs-asciidoctor spring-restdocs-mockmvc Config 1. Dependency 추가 및 설정 의존성 주입해줄 라이브러리와 플러그인을 추가하고 문서를 생성할 폴더 구조를 설정 plugins { ... // asciidoc파일을 변환해주고, Build폴더에 복사해주는 플러그인 id "org.asciidoctor.jvm.convert" version "3.3.2" ... } ... // ============== BEGIN Spring REST Docs ============== ext { snippetsDir = file..
· Spring
Spring REST Docs란? 테스트 코드를 기반으로 자동으로 API문서를 자동으로 작성해주는 프레임워크 반드시 Test가 통과되어야 문서가 자동으로 작성되기 때문에 API Spec이 변경되거나 추가/삭제 되는 부분에 대해 항상 테스트 코드를 수정하여야 하며, API 문서가 최신화 될 수 있도록 해준다. 기본적으로 asciidoc을 사용하여 문서를 작성한다. Spring REST Docs Document RESTful services by combining hand-written documentation with auto-generated snippets produced with Spring MVC Test. docs.spring.io Spring REST Docs Architecture Test C..
· ETC
JWT(Json Web Token)란? Json 포맷을 이용하여 사용자에 대한 속성을 저장하는 Claim 기반의 Web Token이다. JWT는 토큰 자체를 정보로 사용하는 Self-Contained 방식으로 정보를 안전하게 전달한다. 애플리케이션이 실행될 때, JWT를 static 변수와 로컬 스토리지에 저장하게 된다. static 변수에 저장되는 이유는 HTTP 통신을 할 때마다 JWT를 HTTP 헤더에 담아서 보내야 하는데, 이를 로컬 스토리지에서 계속 불러오면 오버헤드가 발생하기 때문이다. 클라이언트에서 JWT를 포함해 요청을 보내면 서버는 허가된 JWT인지를 검사한다. 또한 로그아웃을 할 경우 로컬 스토리지에 저장된 JWT 데이터를 제거한다. 실제 서비스의 경우에는 로그아웃 시, 사용했던 토큰을..
· Spring
Spring Security란? Spring 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크이다. Spring Security는 '인증'과 '권한'에 대한 부분을 Filter 흐름에 따라 처리하고 있다. Filter는 Dispatcher Servlet으로 가기 전에 적용되므로 가장 먼저 URL 요청을 받지만, Interceptor는 Dispatcher와 Controller사이에 위치한다는 점에서 적용 시기의 차이가 있다. Spring Security는 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서는 일일이 보안 관련 로직을 작성하지 않아도 된다는 장점이 있다. 인증(Authorizatoin)과 인가(Authentication) Spring ..
beekei
'Spring' 태그의 글 목록 (4 Page)