스프링 프로젝트 구조 DTO : 계층 간(Controlelr, View, Business Layer) 데이터 교환을 위한 객체DTO는 getter / setter 메소드를 포함한다. 하지만, 이외의 다른 비즈니스 로직은 포함하지 않는다.Controller :프레젠테이션 계층으로 클라이언트의 요청을 처리서비스에 정의된 비즈니스 로직을 호출 ResponseBody에 데이터를 담아 반환Service : 프레젠테이션(뷰)에서 엔티티에 직접 접근하지않고 비즈니스 로직을 처리할 수 있도록하는 계층Repository에 정의된 비즈니스 로직을 처리하거나 엔티티에 접근Repository(DAO (Data Access Object)) : Entity를 통해 데이터를 DB에 저장 직접 DB에 접근하여 data를 삽입, 삭..
1. 스웨거 Swagger https://swagger.io/ Swagger는 OAS(Open Api Specification)를 위한 오픈소스 프레임워크입니다. 즉, API의 문서를 자동으로 정리해주는 것 입니다. 2. 설정 2-1. @EnableSwagger2 Swagger2 버전을 활성화 하겠다는 어노테이션입니다. 2-2. Docket 빈 설정 Class Docket Swagger 의 주 설정인 Docket Bean 등록 부분입니다. 1. 전체 범위 포함 @Configuration @EnableSwagger2 public class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .se..
1. H2 Database 1) 다운로드 https://www.h2database.com/html/main.html 2) 설치 압축을 해제하면 h2라는 디렉토리가 생성되고 bin 폴더안의 h2.sh라는 스크립트가 있습니다. 먼저 다음 명령어를 통해 권한을 부여합니다. chmod 755 h2.sh 그리고 실행합니다. ./h2.sh 3) 확인 다음과 같이 웹 콘솔이 실행됩니다. 2. spring 1) 의존성 설치 dependencies에 다음 2개를 넣어주고 refresh 해줍니다. // java에서 DB에 붙으려면 JDBC 드라이버가 꼭 있어야합니다. spring-data-jpa에 내장되어 있습니다. // 정말 붙었는지 테스트 하기 위해 JPA를 넣어줍니다. implementation 'org.spring..
프로시저(Procedure)란? 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합이며, 일련의 작업을 정리한 절차입니다. 데이터베이스에 대한 일련의 작업을 정리한 절차를 관계형 데이터베이스 관리 시스템에 저장한 것으로 영구저장모듈(Persistent Storage Module)이라고도 불립니다.보통 저장 프로시저를 프로시저라고 부르며, 일련의 쿼리를 마치 하나의 함수처럼 실행하기 위한 쿼리의 집합입니다.즉, 특정 작업을 위한 쿼리들의 블록입니다. 장점 하나의 요청으로 여러 SQL문을 실행시킬 수 있습니다. (네트워크 부하를 줄일 수 있음) 네트워크 소요 시간을 줄여 성능을 개선할 수 있습니다. 여러 어플리케이션과 공유가 가능합니다. (API처럼 제공가능) 기능 변경이 편합니다. (특정 기능을..
스프링시큐리티(Spring Security)란? 스프링 시큐리티는 스프링 기반의 애플리케이션의 보안(인증과 권한, 인가 등)을 담당하는 스프링 하위 프레임워크입니다. 즉 인증(Authenticate, 누구인지?) 과 인가(Authorize, 어떤것을 할 수 있는지?)를 담당하는 프레임워크를 말합니다. 스프링 시큐리티에서는 주로 서블릿 필터(filter)와 이들로 구성된 필터체인으로의 구성된 위임모델을 사용합니다. 그리고 보안과 관련해서 체계적으로 많은 옵션을 제공해주기 때문에 개발자 입장에서는 일일이 보안관련 로직을 작성하지 않아도 된다는 장점이 있습니다. 기본용어 접근 주체(Principal) : 보호된 리소스에 접근하는 대상 인증(Authentication) : 보호된 리소스에 접근한 대상에 대해 누..
DB 암호화 기술은 암복호화 모듈의 위치에 따라 Plug-in 방식, API 방식, Secure Proxy 방식, 커널 방식으로 구분할 수 있습니다. DB 암호화 기술 개인정보 보호법의 강화로 주민번호, 여권번호, 운전면허번호 같은 개인 고유식별번호 및 각종 금융정보(신용카드, 계좌, 거래명세) 등도 반드시 암호화 해야하는 대상에 속합니다. 이런 정보들이 대규모로 관리되는 데이터베이스 암호화 기술은 일반적으로 DB 서버와 이를 이용하는 응용프로그램으로 구성되며 구축환경에 따라 최적의 방식으로 암호화를 고려해야 합니다. 1. Plug-in 방식 데이터베이스의 암호화, 복호화를 담당하는 모듈이 플러그인의 형태로 DB 서버 안에 존재하는 방식입니다. 플러그인 방식 DB 암호화 위의 그림과 같이 암, 복호화를 ..
1. 양방향 알고리즘 암호화된 암호문을 복호화 할 수 있는 알고리즘 1) 대칭키 (비공개키) 방식 특징: 암복호화에 서로 동일한 키가 사용됨. 따라서 비공개키를 사용 장점: 빠른 속도 단점: 키 배송의 위험성이 존재하여 송신 측에서 수신 측에 암호 키를 전달하는 과정에서 노출우려가 있음 대칭키의 대표적 알고리즘 DES (Data Encryption Standard) 1975년 IBM에서 개발. 1979년에 미국 국가 표준 암호 알고리즘으로 지정 블록 암호 기법을 사용. 블록의 단위는 64비트로 평문을 64비트 단위로 암호화를 수행하여 64비트의 암호화 문서를 생성하며, 키 길이는 64비트이지만 패리티 비트가 8비트 추가되어 실제 키 길이(=암호화 강도)는 56비트임 *** 패리티 비트: 정보 전달 과정에..
매번 개발자가 코드를 수정하고 빌드와 테스트를 하고 배포까지 한다면 상당히 많은 시간이 소요됩니다. 하지만 git에 코드를 올리는 것만으로도 누군가가 빌드와 테스트, 배포까지 해준다면, 쓸데없는 시간을 단축시키고 개발에 더 많은 시간을 투자할 수 있을겁니다. 1. CI란? CI는 간단히 요약하자면 빌드/테스트 자동화 과정 과정입니다. CI는 개발자를 위한 자동화 프로세스인 지속적인 통합(Continuous Integration)을 의미합니다. CI를 성공적으로 구현할 경우 애플리케이션에 대한 새로운 코드 변경 사항이 정기적으로 빌드 및 테스트되어 공유 리포지토리에 통합되므로 여러 명의 개발자가 동시에 애플리케이션 개발과 관련된 코드 작업을 할 경우 서로 충돌할 수 있는 문제를 해결할 수 있습니다. 지속적..