본문 바로가기

spring & boot15

[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.
[운영 장애 회고] TypeError: undefined is not an object 에러(JS) -#1 오류 발생에 대한 전체적인 흐름 및 회고. 아래 JS 문법에 대한 방법은 2-2번 항목에 존재. TypeError: undefined is not an object (evaluating 'this.error.use = msg') **환경 Front: Vue2 + option API Back: Spring Boot(Rest) 1. 장애 상황 및 이슈 - 글 작성일 기준일 오후중 운영환경에서 발생한 장애 이슈. 클라이언트에게 보여지면 안되는 오류얼럿 메시지가 노출되고, 사용자의 요청 결과를 출력하지 않는 이슈발생 - 흐름 프론트단에서의 클릭 이벤트 발생 -> 서버단에서의 각종 유효성 조회 및 검증 -> 검증통과시 http status 200 return - end front 의 콜백함수에는 서버단에서 발생할.. 2024. 1. 10.
[JPA]JpaRepository 원리 및 내부 분석(EntityManager 자동주입, 상속관계) JpaRepository 원리 및 내부 분석(EntityManager 자동주입, 상속관계) 1. 서론(찾아보게된 계기) - 얼마전 QueryDsl 적용을 하던 도중, 기존에 Spring Data JPA 에서 사용하던 JpaRepository 를 extends 받는 방식과 QueryDsl 을 동시에 적용하던 도중, 대다수의 블로그나 예제에서는 QueryDsl 을 사용하는 Repository에 Entity Manaer를 적용하는 방식을 사용하고 있었다. 하지만 기존에 사용하던 JpaRepository 는 EntityManager 를 자동주입을 해주어서 extends 를 받는것만으로도 EntityManager 를 별도로 설정하지 않고 사용 할 수 있었다. 그래서 기존의 JpaRepository 의 Entity.. 2023. 8. 30.
[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.
[JPA] JPA N+1 문제와, 해결방법 정리 JPA N+1 문제 이번에 볼 문제는 JPA를 사용한다면 한번쯤은 들어봤고, 자주 봤을것이다. JPA N+1 문제에 대해서 알아보고 해결법에 대해서 알아보자. - N+1 문제란? 1번의 쿼리를 실행 했을 때, N번의 쿼리가 추가적으로 실행되는것을 뜻합니다. 예를들어 member를 조회 했을때 연관관계를 맺고있는 데이터를 조회 하기 위해 N번의 조회 쿼리가 실행된다고 생각하면됩니다. 일반적인 쿼리라면 join을 사용한다면, 한번의 쿼리로 데이터를 조회 할 수 있지만. JPA에서는 member를 조회하고, member가 참조하고 있는 테이블의 연관되어있는 data를 data의 갯수만큼 조회 하기 때문입니다. JPA의 경우 즉시로딩(fetchType_EAGER), 지연로딩(fetchType_LAZY)와 같은 .. 2023. 2. 21.