[Vue] Chrome에서 파일 다운로드 시 "위험한 파일 차단" 우회하기
·
Javascript
개요 시스템 운영 중 zip 파일을 다운로드하는 기능이 계속 차단된다는 이슈가 보고되었다. 확인해 보니 다운로드를 시도할 때 위험한 파일로 분류되어 다운로드가 차단되었다. 해당 이슈를 비교적 간단하게 우회할 수 있는 방법이 떠올라 해당 방법으로 적용했고, 해당 이슈뿐만 아니라 각종 파일 다운로드 시 공통으로 사용할 수 있는 방식이기도 하여 정리 겸 포스팅하게 되었다. 문제상황 파일을 다운로드하는 경우 보통 해당 파일의 경로를 a 태그의 href에 기입하는 방식으로 다운로드를 구현하곤 하는데, 이때 크롬에서 zip 파일을 다운로드하려고 할 때 아래와 같이 다운로드 파일이 차단되었다. 확인해 보니 크롬 환경에서 zip 파일 등 일부 다운로드를 차단하는 경우가 존재했다. https://support.googl..
Gmail에 도메인 DKIM 설정하기 with AWS Route 53
·
Setting
개요 업무 중에 PM 분의 메일이 계속 스팸 처리되는 문제가 있어 SPF를 적용하면서 추가적인 보안 조치인 DKIM까지 적용한 내용을 기록하게 되었다. SPF 설정에 대한 내용은 아래 포스팅을 참고해 주세요 :) https://hojun-dev.tistory.com/entry/Gmail에-도메인-SPF-설정하기-with-AWS-Route-53 Gmail에 도메인 SPF 설정하기 with AWS Route 53 개요 업무 중에 PM 분의 메일이 계속 스팸으로 처리되고 클라이언트가 수신조차 하지 못하는 경우가 계속 발생했다. 확인해 보니 회사 메일에 SPF가 설정되지 않아서 스팸으로 처리되거나 수신 hojun-dev.tistory.com DKIM이란? DKIM이란 DomainKeys Identified Ma..
Gmail에 도메인 SPF 설정하기 with AWS Route 53
·
Setting
개요 업무 중에 PM 분의 메일이 계속 스팸으로 처리되고 클라이언트가 수신조차 하지 못하는 경우가 계속 발생했다. 확인해 보니 회사 메일에 SPF가 설정되지 않아서 스팸으로 처리되거나 수신 거부되는 것으로 확인하였고, 해당 이슈를 해결한 내용을 기록하게 되었다. SPF란? SPF란 Sender Policy Framework의 약자로 스푸핑으로부터 도메인을 보호하고 발신 메일이 수신 서버에 스팸으로 표시되지 않도록 하는 표준 이메일 인증 방법이다. 이메일 스푸핑이란 공격자가 이메일 주소를 사칭하여 수신자가 신뢰할 수 있는 출처에서 보낸 메시지라고 생각하도록 만드는 기법인데, 수신 메일 서버는 SPF를 사용하여 내 도메인에서 전송된 것처럼 보이는 수신 메일이 내가 승인한 서버에서 전송된 것인지 확인하여 스푸..
[Spring] QueryDsl transform 및 SqmCaseSearched 오류 해결방법 with Hibernate 6.x
·
Java & Spring
들어가기 전에 해당 포스팅은 아래 환경 기준으로 작성되었습니다. JDK 17 Spring Boot 3.1.0 JPA + QueryDsl 5.0.0 Hibernate 6.2.2 개요 QueryDsl로 쿼리를 작성하던 중 transform을 사용하던 곳에서 아래와 같은 오류가 발생했다. 쿼리를 작성하는 부분은 아무리 봐도 문제가 없고 이전 버전에서 잘 동작하던 쿼리이기도 했다. 코드를 들어가 보니 hibernate 6.x 버전으로 넘어오면서 ScrollableResults에서 get(int) 메소드가 사라져서 발생한 문제였다. 해당 이슈를 구글링해 보니 아래와 같은 해결책이 존재했다. @Bean public JPAQueryFactory jpaQueryFactory() { return new JPAQueryF..
유용한 사이트 정리
·
Setting
개요 다양한 업무를 하다 보면 여러 작업이 필요한 경우가 있다. 필자 기준 가장 유용하게 사용하는 사이트들을 정리한다. 유용한 사이트가 생기면 지속적으로 업데이트될 예정. 개발 관련 인코딩/디코딩 인코딩, 디코딩 결과가 필요한 경우 유용하게 사용할 수 있다. 엄청나게 많은 인코딩 기법의 결과를 한 눈에 볼 수 있다. https://dencode.com/ DenCode | Encoding & Decoding Online Tools Encoding and Decoding site. e.g. HTML Escape / URL Encoding / Base64 / MD5 / SHA-1 / CRC32 / and many other String, Number, DateTime, Color, Hash formats! d..
HSTS 설정으로 HTTPS 강제 적용하기
·
Setting
개요 업무 중 하나의 시스템에서 GS인증을 적용해야 했는데, 인증을 받기 위해서는 그 서비스의 기본 도메인에 HSTS를 적용하고 크롬의 HSTS Preload List에 등록해야 했고, 그에 따라 서브 도메인들에도 필연적으로 HTTPS를 적용해야 했다. 대응을 위해 여러 설정 및 적용을 해보며 HSTS 및 도메인에 대한 전반적인 내용을 기록한다. 해당 포스팅은 https 리다이렉트에 대한 기초적인 지식이 필요합니다. https 리다이렉트 관련한 내용은 아래 포스팅을 참고해 주세요 :) https://hojun-dev.tistory.com/entry/http-https-리다이렉트 http를 https로 리다이렉트하는 여러가지 방법 개요 웹 사이트를 개발하고 도메인을 연동할 때 실제 사용자가 접속하는 페이지..
[Spring] JPA 다중 서버 환경 DB 동시성 문제 해결하기
·
Java & Spring
개요 서비스를 운영하다 보면 동시성 문제에 의해 DB에 잘못된 업데이트가 발생하거나 중복 insert 등의 경우를 종종 마주칠 수 있다. 단일 서버라면 Java에서 제공하는 synchronized 블록을 이용해서 대응을 할 수 있겠지만, synchronized 블록은 하나의 Application 내에서만 동작하기 때문에 로드 밸런서를 통해 여러 대의 서버를 구성하였다면 완전한 동기화를 적용할 수 없다. 따라서 다중 서버 환경과 비슷하게 테스트해 보고 DB 동시성 문제를 해결해 보자. 만약 단일 서버라면 아래와 같은 방식으로 해결할 수도 있다. (synchronized + JPA) https://hojun-dev.tistory.com/entry/JAVA-JPA-중복-Insert-방지하기 [JAVA] JPA..
JMeter로 API 테스트 및 TPS 측정하기
·
Setting
개요 API의 성능을 테스트하기 위해 JMeter를 이용하여 API를 테스트해 보고, 추가로 TPS를 구하는 방법에 대해 알아보자. JMeter 설치는 아래 포스팅에서 확인할 수 있다. https://hojun-dev.tistory.com/entry/JMeter-설치하기 JMeter 설치하기 개요 JMeter는 기능을 테스트하고 성능을 측정하는 대표적인 소프트웨어이다. 프로젝트의 성능 향상을 위해서는 성능 테스트가 필수적인데, 보통 기능 개발하기에도 바빠 뒷전으로 미루게 된다. hojun-dev.tistory.com API 테스트 1. Test Plan에서 우클릭 후 Add > Threads (Users) > Thread Group 추가 2. Thread Group 내 속성 설정 Action to be ..