본문 바로가기

spring & boot/Spring & Spring Boot20

[Spring Boot]Jasypt 원리 및 사용방법(yml 설정 암복호화, Boot 3.x^) +String Util Class Jasypt 암복호화 라이브러리프로그래밍 공부를 하고 있는 사람들이라면, 보안에 관련된 수많은 얘기들을 듣고는 한다. 각종 정보들은 보안에 신경써야 한다고 말이다. (DB 접속정보, 사용자 정보, 파라미터 등등)서버간 통신시 암호화가 필요한 경우 라이브러리를 사용하기도 하고, 직접 암복호화 유틸을 만들어서 사용하기도 한다. 우리는 yml 의 DB 정보에 대해서 암호화를 진행해보고, 원리를 간단하게 살펴 보도록 하겠다. 공식문서를 살펴보며 유틸이나, 다른 활용방법에 대해서도 보면 좋을것 같다. 해당글에서는 다루지 않겠다.http://www.jasypt.org/general-usage.html 암호화에 대한 정보는 아래의 글에서 확인!https://lucas-owner.tistory.com/70 AES-25.. 2024. 8. 14.
[Spring Security] x-frame-option 헤더 설정(iframe) 목차 개요 iframe 이란 해킹 공격 방어 방법 해결 방법 * 도메인 ~ 에서 연결을 거부 했습니다 (net::ERR_BLOCKED_BY_RESPONSE) 최근 같은 그룹사의 다른 도메인에서 iframe 으로 내가 관리하는 도메인의 화면을 호출 하는 작업이 있었다. 하지만, 그룹사 서버 배포 이후 ERR_BLOCKED_BY_RESPONSE 등의 오류 메시지가 출력되며, 해당 화면이 노출 되지 않는 문제가 발생했다. 관련된 내용들을 알아보고, 어떤 흐름으로 해결방법을 찾았는지 기술하겠다. 단순 적용 방법이 급한 분은 목차의 '해결방법' 클릭하세요. 1. iframe 이란 우선 iframe 에 대해서 알아야 할것 같다. iframe 이란? 웹 페이지 안에 또 다른 웹페이지를 삽입하는것. 최근에는 ifram.. 2024. 4. 3.
[SpringBoot] QR코드 생성 & Test(링크이동) - zxing 1. 서론 몇년전 시작된 COVID19의 여파로 비대면, 비접촉 관련된 시스템들이 많이 생겨났다. (QR인증, QR결제 ...) 심지어 QR코드는 2000년 6월에 표준이 되었을 정도로, 오래된 기술이지만, COVID19 로 인해 사용범위, 활용성이 높아진것 같다. 더불어 옥외광고, 모바일 앱, 웹사이트 내부링크 등등 활용되는곳도 점점 많아지고, 생활에 점점더 밀접해지고 있다. 1-1. 바코드 vs QR 코드? 사실 일반인의 입장에서 보면, "바코드와 QR코드가 다른점이 뭐야? 둘다 똑같은거 아니야?" 라는 말을 하게된다. 왜 일상에서는 QR 코드를 더 많이 사용할까? 바코드 레이저(스캔물체)를 수평방향으로 인식해야 한다. 최대 20자의 정보 저장 가능. 바코드의 "I" 높이 중 일부분이 훼손되어도 인식.. 2023. 3. 24.
[SpringBoot] RestTemplate - 카카오 openAPI 연동하기(Translation, 번역기) 서론 - Spring Boot 기반의 RestTemplate 공부를 하며 local에 서버를 2개 띄워서 테스트 하는것 보다는, openAPI를 적용해보고 싶던 와중 kakao 에서 제공하는 Translate (번역) API 를 찾게 되었고 연동해보았다. - 예전에는 단순히 카카오 개발자 사이트에서, Test용 어플리케이션 등록 + Api Key로 사용이 가능했지만, 2023.03.13일 현재 kakao i cloud라는 시스템을 사용하는것으로 조금 바뀌어 있다. (호출 방식, key 같은것들이 다름.) 혹시나 하는 마음에 이전버전의 API 호출 방식을 적용해봤는데 정상적으로 동작이 되었다. 목적은 어디까지나 RestTemplate를 사용한 API호출 이었기 때문에, 예전방식으로 진행했다. * 시작전 유.. 2023. 3. 13.
[Spring] Spring-Container(IoC 컨테이너)에 관리되는 Bean 목록 확인 Spring Container가 관리하는 Bean 목록 확인 하기. - Spring의 Bean은 Spring-Container(IoC Container)가 관리하고 있으며, 객체 생성, 객체 주입 같은 것들을 개발자가 아닌 Container에서 수행하게 된다. - Spring IoC, DI, Container 에 관한 개념을 좀 더 알고싶다면 아래 링크에서 공부하고 와도 좋을것 같다. https://lucas-owner.tistory.com/39 [Spring] Spring-Container, IoC, DI, Singleton 개념 정리 목차 IoC 란? Spring Container (스프링 컨테이너) DI(Dependency Injection) 란? Singleton 패턴이란? IoC 란? IoC 란.. 2023. 2. 8.
[Spring] Spring-Container, IoC, DI, Singleton 개념 정리 목차 IoC 란? Spring Container (스프링 컨테이너) DI(Dependency Injection) 란? Singleton 패턴이란? IoC 란? IoC 란 Inversion Of Control의 약자이며, 제어의 역전 이라고 한다. 프로그래머와 프레임워크의 주체가 바뀌었다고 표현한다. 일반적인 경우라면 '개발자'가 미리 정한 순서에 따라 생성, 실행을 주도, 의도 했다면(개발자가 제어권을 가졌다.) IoC 가 등장한 이후는 객체의 생성, 생명주기, 관리까지 모든 객체에 대한 주도권을 프레임워크가 가진것이다.(프레임워크가 관리) IoC 를 통해 Application을 구성하는 객체 간의 낮은 결합도를 유지할 수 있다. IoC 의 역할을 담당하는것이 Spring Container 이다. (Sp.. 2023. 2. 8.
[SpringBoot] Swagger API 문서 자동화 간단 연동, 테스트하기(1) Swagger-ui 를 활용한 문서 자동화 - 개발한 Rest API 들의 목록을 확인하고 테스트 할 수있는 Swagger-UI를 Spring Boot 프로젝트에 연동(설정)하고    사용 하는 방법을 알아보자.   Spring Boot 3.x^ 버전에서의 적용 방법은 아래 링크를 참고하세요https://lucas-owner.tistory.com/80 [Spring boot] Spring Boot 3.x^ - Swagger 적용(2)Spring Boot 3.x 버전 Swagger 적용 Spring boot 3.x 이전 버전에서의 Swagger 적용 및 Test 관련 사항은 아래 링크에서 확인하세요! https://lucas-owner.tistory.com/28 [SpringBoot] Swagger API.. 2023. 1. 18.
[SpringBoot] Gradle Jar 빌드 & 실행 (IntelliJ, Terminal) Spring-Boot + Gradle 사용하여 Jar 파일 빌드 & 실행 방법 웹개발을 진행하다보면 만들어놓은 코드들을 빌드하여 배포까지 진행을 한다. 이때 사용하는 방법중 하나인 Jar 파일 빌드 후 실행 까지 테스트 하는 것을 알아보도록 하자! 필자는 Mac OS를 사용하며, IntelliJ Ultimate 버전 사용중이다. - Jar 파일을 빌드하는 방법은 IDE를 이용하는 방법 + 터미널을 사용하는 방법이 존재한다. * Jar 파일을 빌드하고 배포하는 이유? - 빌드 파일은 Jar/War 2가지가 존재하며 각각의 방식은 코드(애플리케이션)를 패키징 하는 방식의 차이이다! 각 프로젝트에 맞게 선택 하여 빌드를 진행 하면 된다! 해당 내용은 본문에서는 깊게 다루지 않겠다. 필자가 생각하는 차이는 아래.. 2022. 12. 31.
[spring boot] spring-boot profiles설정 & jar 실행시 프로파일 선택 spring-boot 프로파일 설정 및 jar 실행시 프로파일 선택하는 방법 목차 1. 프로파일 설정이유 2. 운영환경 3. yml 전체 코드 4. 프로파일(profiles) 설정 방법 5. Jar 실행시 프로파일 설정 방법 6. IntelliJ 에서 프로파일 지정 후 자동 실행 방법 프로파일을 설정하는 이유? Spring boot로 개발을 진행 하다보면, 상황에 따라 설정을 수정할 것들이 많아진다 ! 예를들면 운영환경, 개발환경(Local) 이와 같이 두개의 환경이 다른 경우가 있다! 제일 많이 다루는 설정이라 하면,, 보통 DB 선택과 설정이다! yml(properties)를 잘 몰랐을 때는 일일히 주석으로 막아가며 테스트와 운영개발을 진행했었다.. 하지만 프로파일 설정을 알게 된다면 개발을 좀더 편.. 2022. 12. 29.