반응형 Programing497 Java RSA 비대칭 암호화 구현 개인키, 공개키 생성 RSA 란 RSA 는 간단히, 공개키로 암호화를 하고 개인키로 복호화를 하는 암호화 알고리즘 입니다. SSL에서 가장 많이 사용되고 대부분의 인터넷 뱅킹에서 RSA-2048을 사용한다고 합니다. 자세한 내용이 궁금하신 분들은 구글링 하면 정보가 많이 나오니 참고하시기 바랍니다. 특징 위에서 얘기한 것처럼 서버에서는 공개키(Public Key)와 개인키(Private Key) 쌍을 생성하여 요청하는 Client에게 공개키를 전달 합니다. Client 는 받은 공개키를 사용해 개인정보를 암호화 한 후 server로 전달합니다. Server는 공개키로 암호화된 데이터를 개인키를 사용하여 복호화 합니다. 구현 이제 구현을 해보겠습니다. 키는 서버 어플리케이션이 실행될 때 특정 폴더에 키가 있으면 기존키를 사용하.. Programing/Spring 2023. 2. 23. Yaml 파일 객체화 yaml 파일 읽기 snakeyaml 이번 포스팅에서는 .yaml 파일을 읽어 활용하는 방법을 알아보겠습니다. snakeyaml 이라는 라이브러리를 사용할 것이고, 의존성 주입은 아래의 링크를 참고하세요! Link : https://mvnrepository.com/artifact/org.yaml/snakeyaml 1. gradle 의존성 주입 implementation group: 'org.yaml', name: 'snakeyaml', version: '1.33' 2. test.yml 파일 생성 [test.yml] user: name: aljjabaegi blog: aljjabaegi.tistory.com 3. yaml 파일을 구조체할 class 생성 [YamlTest.java] import lombok.Getter; import lombo.. Programing/JAVA 2023. 2. 17. JPA MapStruct Date format 설정 timestamp, date, string MapStruct 를 활용하는 경우 Date type의 format을 설정하는 방법을 알아보겠습니다. DB는 PostgreSQL 입니다. 1. User Table 위와 같은 테이블이 있고 Entity 설정은 아래와 같습니다. 2.User Entity @Entity @Getter @Setter @ToString @NoArgsConstructor @Table(name = "m_op_user", schema = "carbon") public class User implements Serializable { private static final long serialVersionUID = 1L; @Column(name = "user_id") @Id private String userId; @Column(name .. Programing/JPA 2023. 2. 7. JPA MapStruct, ModelMapper 설정 방법, 차이 Entity to DTO, DTO to Entity JPA 에서 Entity를 DTO로 DTO를 Entity 로 변환 해주는 2가지 라이브러리가 있습니다. MapStruct와 ModelMapper 인데요. 이번 포스팅에서는 둘의 설정방법과 차이에 대해서 알아보도록 하겠습니다. 1. 간단한 비교 springboot와 jpa 관련 설정에 대해서는 제외를 하고 진행하겠습니다. 우선 간단하게 둘의 차이를 설명드리면 이렇습니다. 종류 설정방법 속도 ModelMapper 간단 ↓에 비해 느리다 MapStruct 살짝복잡 ↑에 비해 빠르다 2.설정 2.1 ModelMapper 설정 2.1.1 gradle 의존성 주입 implementation 'org.modelmapper:modelmapper:2.4.2' 2.1.2 ModelMapper Config Class 구현 .. Programing/JPA 2023. 2. 3. [API documentation 자동화] spring boot swagger UI 적용 방법 API의 Document를 자동으로 제공해주는 swagger UI 설정방법을 알아보겠습니다. springboot 2.7.7 springsecurity gradle 1. dependencies 를 추가 /*swagger*/ implementation group: 'io.springfox', name: 'springfox-boot-starter', version: '3.0.0' /*security*/ implementation group: 'org.springframework.boot', name: 'spring-boot-starter-security', version: '2.7.5' 2.WebMvcConfig.java 생성 import org.springframework.context.annotation... Programing/Springboot 2023. 1. 26. Java List<?> 정렬, 다중조건정렬, 오름, 내림차순 Comparator java.util.Comparator 를 사용하여 List 를 정렬하는 방법을 알아보도록 하겠습니다. 아래와 같은 VO Class가 있습니다. import lombok.Getter; import lombok.Setter; import lombok.ToString; @Getter @Setter @ToString public class signalVO{ private String link_id; private String signal_id; private int dir; private String intersec_no; private String result; } 1. 단일조건 정렬 (오름차순) 위 VO를 link_id로 정렬한다고 하면 아래와 같이 활용합니다. ArrayList list = new Arra.. Programing/JAVA 2023. 1. 25. React useEffect Hook 알짜만 빼먹기! 이전의 클래스 방식에서는 아래와 같은 메서드를 활용해서 state의 변화에 따른 작업을 처리했습니다. 1. Class 방식에서의 컴포넌트 갱신 메서드 1.1. componentDidMount() 컴포넌트가 마운트된 직후에 호출되는 메서드 1.2. componentDidUpdate() 갱신이 일어난 직후 호출되는 메서드. 최초 렌더링 시에는 호출되지 않음 컴포넌트가 갱신되었을 때 DOM 조작하기 위해 활용 1.3. componentWillUnmount() 컴포넌트가 마운트 해제되어 제거되기 직전에 호출되는 메서드. clear method. 이 외에도 다양한 메서드가 존재하지만, 자주 사용되지 않으니 필요하다면 아래 링크를 확인하세요. Link : https://ko.reactjs.org/docs/react.. Programing/React 2022. 12. 14. React useState Hook 알짜만 빼먹기! 이번 포스팅에서는 React 에서 상태를 관리하는 State에 대해서 알아보겠습니다. React 프로젝트가 없으신 분은 아래의 Link를 참고하여 프로젝트를 생성해주세요! Link : https://aljjabaegi.tistory.com/655 Vite 기반 React Project 생성하기 Vite의 장단점 등에 대한 소개는 아래의 링크를 참조하세요! 1.Vite 소개 Link : https://vitejs-kr.github.io/ Vite Vite, 차세대 프런트엔드 개발 툴 vitejs-kr.github.io 2. Node.js 설치 시작하기를 보시면 Vite는 Node.js aljjabaegi.tistory.com 1. State란? State는 React의 핵심기능 중에 하나이며, 동적인 값을.. Programing/React 2022. 12. 8. Custom Annotation 생성하기 @interface 알짜만 빼먹기 @Annotation을 생성하는 방법에 대해 알아보겠습니다. 1. annotation의 생성 annotation은 @interface로 생성할 수 있습니다. public @interface CustomAnotation{}; 이렇게 생성한 어노테이션은 어디에든 붙여서 사용할 수 있습니다. @CustomAnnotation @RequiredArgsConstructor public class TestController { @CustomAnnotation private final TestService service; @CustomAnnotation @GetMapping(value="hello") public String getPage(){ return "hello" } } 2. Meta Annotation의 종류.. Programing/JAVA 2022. 11. 15. SpringBoot + JWT + Security + JPA 인증 구현, JWT란? 해당 포스팅은 인프런의 무료강의를 참고하여 작성되었습니다. Link: https://www.inflearn.com/course/%EC%8A%A4%ED%94%84%EB%A7%81%EB%B6%80%ED%8A%B8-jwt/dashboard 이해하기 쉽게 설명되어 있으니 참고하시면 좋을 것 같습니다. Link: https://jwt.io/ JWT.IO JSON Web Tokens are an open, industry standard RFC 7519 method for representing claims securely between two parties. jwt.io 1. JWT (Json Web Tokens) 란? JWT는 RFC 7519 웹 표준으로 지정된 JSON 객체를 사용해서 토큰 자체에 정보를 저장.. Programing/Springboot 2022. 11. 14. @Builder Annotation 알짜만 빼먹기 / 객체 생성 방법 @Builder Annotation은 lombok 라이브러리의 annotation 입니다. lombok의 적용은 아래의 Link를 확인하세요. Link : https://aljjabaegi.tistory.com/481 Java 필수 라이브러리 Lombok 사용, 적용방법 Java 필수 라이브러리 Lombok 사용, 적용방법 Lombok 라이브러리는 VO(Value Object) 나 DTO(Data Transfer Object) 생성 시 혁신적으로 코드를 줄여주는 라이브러리 입니다. 얼마나 혁신적으로 코드를 줄이는지 aljjabaegi.tistory.com Eclipse 이외의 다른 IDE에선 extension 설치로 사용 가능합니다. 1. @Builder Annotaion @Builder Annotati.. Programing/Design Patterns 2022. 11. 10. SpringBoot RestAPI 404 Not Found message Custom, @ControllerAdvice @ExceptionHandler SpringBoot 로 API를 개발할 때 RequestMapping 되어있지 않은 주소로 요청하면 아래와 같은 에러 메시지를 전송합니다. { "timestamp": "2022-11-09T09:35:14.441+00:00", "status": 404, "error": "Not Found", "message": "No message available", "path": "/api/" } 기존에 API 에서 전송하던 구조와 다르면 제공받는 입장에서도 처리하기 껄끄럽기 때문에 기존 응답 구조에 맞게 설정을 해주는 것이 좋습니다. 그럼 응답 구조에 맞게 처리하는 방법을 알아보겠습니다. 우선 application.yml 파일에 설정을 추가해 주어야 합니다. 1. spring boot properties 설정 [ap.. Programing/Springboot 2022. 11. 9. Spring Boot Banner 변경하기, 배너 변경하기 Spring Boot 프로젝트가 실행이 되면 위와 같은 베너가 출력되는 것을 보신적이 있으실꺼에요. 이번 포스팅에서는 요 베너를 변경하는 방법을 알아보겠습니다. 1.banner.txt 생성 Spring Boot 프로젝트에서 배너는 resources 하위에 banner.txt 파일의 텍스트를 읽어 출력합니다. 해당 경로에 파일을 추가해 줍니다. 2.banner 텍스트 복사 Link : http://patorjk.com/software/taag/ Text to ASCII Art Generator (TAAG) patorjk.com 위 사이트로 이동하여 텍스트를 입력하고 Test All 버튼을 클릭합니다. 그럼 아래와 같이 모든 텍스트가 출력됩니다. 마음에 드는 것을 골라 Select & Copy 버튼을 클릭하.. Programing/Springboot 2022. 11. 8. Vite 기반 React Project 생성하기 Vite의 장단점 등에 대한 소개는 아래의 링크를 참조하세요! 1.Vite 소개 Link : https://vitejs-kr.github.io/ Vite Vite, 차세대 프런트엔드 개발 툴 vitejs-kr.github.io 2. Node.js 설치 시작하기를 보시면 Vite는 Node.js가 설치 되어 있어야 합니다. 아래의 링크로 이동하여 Node.js를 설치해주세요. Link : https://nodejs.org/ko/download/ 다운로드 | Node.js Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine. nodejs.org 3.프로젝트 생성 command 창을 열어 프로젝트를 생성할 폴더로 이동 후 아래와 같이.. Programing/React 2022. 11. 8. Java Functional Interface 알짜만 빼먹기 Predicate/Spplier/Consumer/Function Java Functional Interface 알짜만 빼먹기 Predicate/Spplier/Consumer/Function Functional Interface 정의 Functional Interface 는 구현해야하는 abstract method가 한 개만 정의되어 있는 Interface를 말합니다. public interface TestInterface { public String getName(); } Java에서는 위와 같이 메소드가 하나만 있는 Interface를 Functional Interface 로 인식합니다. 하지만 여러 사람이 개발하다보면 실수로 메소드를 추가할 수 있기 때문에 @FunctionalInterface annotation을 붙여주는게 좋습니다. (물론 추가 시 컴파일 에러.. Programing/JAVA 2022. 10. 5. 이전 1 2 3 4 5 6 7 ··· 34 다음 💲 추천 글 반응형