반응형 전체 글696 Firebase Proxy 등록 정보 및 라이브러리 수정 방법 특정 업체 협업을 하던 도중, 방화벽이 IP 주소만 허용이 되서, 프록시를 사용하여 도메인주소를 변경해야 했습니다. 일단 다운받은 firebase 설정 파일(json) 에는 아래 4개 값이 도메인 주소로 되어 있습니다. auth_uri, token_url, auth_provider_x509_cert_url, client_x509_cert_url 이 도메인 주소로 설정되어 있습니다. 해당 도메인을 IP 주소로 바꾸어 프록시를 타게 설정합니다. 그리고 메시지 전송을 위해서는 firebase라이브러리 내 com.google.firebase.messaging package의 FirebaseMessagingClientImpl class 에 설정된 2개의 final 변수를 수정해 주어야 하는데, FCM_URL 과 .. Programing/JAVA 2023. 4. 11. JPA @Query 사용 시 주의점 ERROR: relation "table_name" does not exist, ConverterNotFoundException JPA에서 데이터를 조회 할 때는 보통 find로 시작하는 Query Method를 사용하여 조회합니다. 하지만 복잡한 관계에 있는 테이블들을 사용해 조회해야 할 경우에는 직접 쿼리를 작성하여 조회하는데요, 이럴 때 사용하는 Annotation이 @Query (org.springframework.data.jpa.repository.Query) 입니다. @Query 사용법 @Query(value = "query 작성", nativeQuery = true) @Query Parameter 전달 방법 @Query(value = "select userId, userNm from user where user_id = :userId", nativeQuery = true) Optional findUser(@Param(.. Programing/JPA 2023. 4. 8. JPA Sequence 자동증가 설정 @SequenceGenerator MariaDB의 auto_increasement나 postgressql 의 serial 같은 자동증가 컬럼을 기본키로 설정하는 경우 해당 시퀀스와 컬럼을 매핑해주어야 합니다. 이럴 때 사용하는 것이 @SequenceGenerator 입니다. 1. @SequenceGenerator 속성 name : 참조할 수 있는 시퀀스 제너레이터 명칭 sequenceName : DB에서 생성한 sequence 이름 initialValue : 시퀀스 시작 값 (DDL 생성 시에만 사용) allocationSize : 시퀀스 호출 시마다 증가하는 수 catalog : DB 카탈로그 schema : DB 스키마 2. @SequenceGenerator 사용법 entity 레벨에 사용할 sequenceGenerator를 명명합니.. Programing/JPA 2023. 3. 7. Swagger 잘~만들어보기 응답 Model 명확하게, 타입, 최대 최소값 표출하기 Swagger는 API를 구현할 때 Front-End와 의사소통에 있어 많은 편의를 줍니다. 하지만 적절한 정보 규격을 전달해주지 않으면 많은 오해가 생기게 됩니다. API 사용자와 보다 적절한 의사소통을 하기위해서 설정해줘야 하는 부분을 알아보도록 하겠습니다. swagger를 적용하는 방법은 아래의 Link를 확인하세요! Link : https://aljjabaegi.tistory.com/668 [API documentation 자동화] spring boot swagger UI 적용 방법 API의 Document를 자동으로 제공해주는 swagger UI 설정방법을 알아보겠습니다. springboot 2.7.7 springsecurity gradle 1. dependencies 를 추가 /*swagger.. Programing/JAVA 2023. 2. 27. java 카카오 간편 로그인 구현하기 처음부터 자세히! 여러 업체들에서 간편 로그인 기능을 제공하고 있습니다. 각 업체들마다 제공하는 정보는 조금씩 다르지만, 로직은 비슷합니다. 이번 포스팅은 그 중에서 카카오 간편 로그을 구현하는 방법을 알아보겠습니다. 간단하게 전체 과정을 알아보겠습니다. 1. 과정 요약 Kakao Developers 설정 카카오 디벨로퍼스에 애플리케이션 추가 -> 플랫폼 등록 -> Redirect URI 등록 -> 동의항목 추가 동작 순서 카카오 OAuth 주소로 Client Id, Redirect URI 전송(Front) -> 카카오는 Redirect URI 주소로 OAuth Code를 전달해줌.(Kakao) -> 서버는 받은 OAuth Code로 Token 정보 요청 -> ToKen 정보를 받아 유저 정보 요청 2. Kakao Dev.. Programing/JAVA 2023. 2. 24. 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. apache 403 forbidden error 처리방법 (apache, tomcat구성) 403 에러는 권한 관련 에러 입니다. 발생 원인은 다양합니다. 이번 포스팅에서는 apache, tomcat 구성에서 403 에러가 발생할 수 있는 몇가지 원인을 살펴보고 정상동작하게 하는 방법에 대해서 알아보겠습니다. 1. 발생원인 첫번 째 - Apache Directory 권한설정 apache 경로의 conf/httpd.conf 파일을 보시면 태그를 보실 수 있습니다. 해당 태그는 디렉토리의 권한을 설정할 때 사용하는데 deny 가 설정되어 있으면 접근에 문제가 될 수 있습니다. Options Indexes FollowSymLinks AllowOverride None Require all granted 위와같이 설정되어 있다면 문제가 되지 않겠지만 'Require all denied' 나 'Requi.. 알짜정보/IT정보 2022. 12. 21. 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. Postman 전역 변수 처리 방법 Postman으로 API를 테스트 하다보면 전역변수 사용이 유용할 때가 있습니다. 예를들어 JWT로 인증처리를 하는 경우 전달받은 토큰을 복사해서 요청하는 API Authorization에 Bearer Token 값으로 전달을 해주어야 하죠. 이럴 때 받은 토큰을 전역변수에 담고, Token 값에 전역변수의 값을 담아주면 편리하게 사용이 가능합니다. 예를들어, 아래와 같이 URI 요청에 따른 응답이 온다고 합시다. http://localhost:13707/api/authenticate 로 id, pw를 보내서 인증에 성공하면 token과 refreshToken 값을 받습니다. 1. 응답 데이터 전역변수에 담기 이제 상단에 Tests 탭으로 이동하여 아래와 같이 입력합니다. const jsonData = .. 알짜정보 2022. 12. 8. 이전 1 2 3 4 5 6 7 ··· 47 다음 💲 추천 글 반응형