분류 전체보기
-
Spring MVC 기본 동작을 갈아엎지 않고 필요한 부분만 커스터마이징하는 인터페이스이다✅ 1. 어디에 쓰는가?Spring Boot 는 기본적으로 내부에서 MVC 설정을 자동으로 해준다WebMvcConfigurer 인터페이스를 구현하면 DispatcherServlet 과 관련된 MVC 설정(인터셉터, CORS, 리소스 핸들링, 뷰 설정 등) 을 Java 기반으로 커스텀할 수 있다여기서 기본 설정은 그대로 두고 필요한 부분만 커스터마이징하기 때문에 전체 설정을 다시 만드는것보다 간편하다@Configurationpublic class WebConfig implements WebMvcConfigurer {}이렇게 설정하게 되면 Spring MVC 설정에 끼어들 수 있다 1️⃣ 정적 리소스 매핑@Overrid..
Spring WebMvcConfigurerSpring MVC 기본 동작을 갈아엎지 않고 필요한 부분만 커스터마이징하는 인터페이스이다✅ 1. 어디에 쓰는가?Spring Boot 는 기본적으로 내부에서 MVC 설정을 자동으로 해준다WebMvcConfigurer 인터페이스를 구현하면 DispatcherServlet 과 관련된 MVC 설정(인터셉터, CORS, 리소스 핸들링, 뷰 설정 등) 을 Java 기반으로 커스텀할 수 있다여기서 기본 설정은 그대로 두고 필요한 부분만 커스터마이징하기 때문에 전체 설정을 다시 만드는것보다 간편하다@Configurationpublic class WebConfig implements WebMvcConfigurer {}이렇게 설정하게 되면 Spring MVC 설정에 끼어들 수 있다 1️⃣ 정적 리소스 매핑@Overrid..
2026.04.23 -
Spring Boot 에서 특정 파일을 /static 리소스 경로에 생성하고 그 파일을 브라우저의 Audio 기능을 통해 음성파일을실행했어야 했는데 파일을 생성한 후 실행하려고 보니까 에러가 났다. 에러의 원인은 파일 리소스를 어플리케이션에서 reload 를 해주기 직전에는 리소스를 인식하지 못하는 이유였다. 해당 원인을 해결하기 위해 특정 파일 경로를 설정하고 특정 요청으로 왔을 때 파일이 있는 실제경로를 매핑하여 실행하면 해결된다. WebMvcConfigurer 설정@Slf4j@Configuration@Profile("!test")public class WebMvcConfig implements WebMvcConfigurer { @Value("${urgent.preview.upload.use}") ..
Spring Boot WebMvcConfigurer addResourceHandlers 설정Spring Boot 에서 특정 파일을 /static 리소스 경로에 생성하고 그 파일을 브라우저의 Audio 기능을 통해 음성파일을실행했어야 했는데 파일을 생성한 후 실행하려고 보니까 에러가 났다. 에러의 원인은 파일 리소스를 어플리케이션에서 reload 를 해주기 직전에는 리소스를 인식하지 못하는 이유였다. 해당 원인을 해결하기 위해 특정 파일 경로를 설정하고 특정 요청으로 왔을 때 파일이 있는 실제경로를 매핑하여 실행하면 해결된다. WebMvcConfigurer 설정@Slf4j@Configuration@Profile("!test")public class WebMvcConfig implements WebMvcConfigurer { @Value("${urgent.preview.upload.use}") ..
2026.04.23 -
에러 내용은 아래와 같다.Modal 창을 제어하다가 Modal 창을 닫을 때 숨겨질 영역안의 버튼이나 input에 포커스가 남아 있으면, 보조기술 입장에서는포커스는 거기에 있는데 그 역역은 숨겨져 있는 모순 상태가 된다. 즉, 본인은 Modal 창을 닫을 때 닫기 버튼에 대한 포커싱이 남아있어서 브라우저 콘솔창에 경고가 찍혔다. 원인은 Bootstrap 의 modal 속성에 aria-hidden="true" 를 적용하자 브라우저가 "포커스된 요소를 숨기면 안된다" 고경고를 띄운것이다.Blocked aria-hidden on an element because its descendant retained focus. The focus must not be hidden from assistive technolo..
Javascript 접근성 경고(focus management)에러 내용은 아래와 같다.Modal 창을 제어하다가 Modal 창을 닫을 때 숨겨질 영역안의 버튼이나 input에 포커스가 남아 있으면, 보조기술 입장에서는포커스는 거기에 있는데 그 역역은 숨겨져 있는 모순 상태가 된다. 즉, 본인은 Modal 창을 닫을 때 닫기 버튼에 대한 포커싱이 남아있어서 브라우저 콘솔창에 경고가 찍혔다. 원인은 Bootstrap 의 modal 속성에 aria-hidden="true" 를 적용하자 브라우저가 "포커스된 요소를 숨기면 안된다" 고경고를 띄운것이다.Blocked aria-hidden on an element because its descendant retained focus. The focus must not be hidden from assistive technolo..
2026.04.17 -
new Promise 로 return 을 하는 함수가 있다.Promise 함수 내부에서 jquery 의 ajax 를 통해 api 요청을 한 후 count 값이 0일 경우 "return;" 을 사용했더니promise 를 await 로 호출한 부분 이후의 로직이 실행되지 않았다. 이유는 new Promise 가 resolve 또는 reject 를 줄 때 까지 await 는 계속 대기하고 있기 때문에이후 로직이 실행되지 않는다. new Promise 함수 예시function checkData() { return new Promise((resolve, reject) => { $.ajax({ url: '/api/data', success: (response..
async await 사용 시 promise 의 resolve 와 return; 차이new Promise 로 return 을 하는 함수가 있다.Promise 함수 내부에서 jquery 의 ajax 를 통해 api 요청을 한 후 count 값이 0일 경우 "return;" 을 사용했더니promise 를 await 로 호출한 부분 이후의 로직이 실행되지 않았다. 이유는 new Promise 가 resolve 또는 reject 를 줄 때 까지 await 는 계속 대기하고 있기 때문에이후 로직이 실행되지 않는다. new Promise 함수 예시function checkData() { return new Promise((resolve, reject) => { $.ajax({ url: '/api/data', success: (response..
2026.03.10 -
Spring Boot, Thymeleaf 환경에서 URL 자체를 넘겨 HTML 의 img src 속성에 설정했다.접근한 URL 과 불러오는 이미지 URL 자체의 도메인이 달랐기 때문에 CORS 문제가 터졌다.안드로이드 폰에서는 이미지 자체를 잘 불러왔으나 아이폰에서는 안나와서 찾아보니iOS 의 브라우저는 CORS 정책이 엄격하다고 한다. 그래서 여러가지 방법을 찾아보다가 가장 안정적이고 쉬운 방법은 backgroud-image css 설정을사용해 화면에 보여주는걸로 해결했다. 처음에 시도했던 방법은 CSS background-image 사용 예시 VS span[background-image] 차이점 정리 항목 span + background-image 브라우저 CORS 검사엄격 (iOS에서 차단)..
img 태그 src 속성 아이폰 브라우저 CORS 문제 해결Spring Boot, Thymeleaf 환경에서 URL 자체를 넘겨 HTML 의 img src 속성에 설정했다.접근한 URL 과 불러오는 이미지 URL 자체의 도메인이 달랐기 때문에 CORS 문제가 터졌다.안드로이드 폰에서는 이미지 자체를 잘 불러왔으나 아이폰에서는 안나와서 찾아보니iOS 의 브라우저는 CORS 정책이 엄격하다고 한다. 그래서 여러가지 방법을 찾아보다가 가장 안정적이고 쉬운 방법은 backgroud-image css 설정을사용해 화면에 보여주는걸로 해결했다. 처음에 시도했던 방법은 CSS background-image 사용 예시 VS span[background-image] 차이점 정리 항목 span + background-image 브라우저 CORS 검사엄격 (iOS에서 차단)..
2026.03.09 -
1️⃣ OAuth 2.0이란 무엇인가?OAuth 2.0은 권한 위임(Authorization) 프로토콜이다.즉, 🔐 사용자의 비밀번호를 공유하지 않고 🎫 Access Token 을 이용해 📡 다른 서버의 리소스(API) 에 접근하도록하는 표준이다. OAuth 2.0이 해결하는 문제예를 들어 어떤 사이트에서 이런 버튼을 본적 있을것이다. Google 로그인Kakao 로그인GitHub 로그인 이때 사용자는 아이디/비밀번호를 그 서비스에 직접 입력하지 않고외부 인증 서버가 대신 인증을 해준다. 즉 구조는 이렇게 된다.사용자 → 내 서비스 → Google 로그인 → Google 인증 → 내 서비스 내 서비스는 사용자의 비밀번호를 몰라도Google 이 인증한 사용자라는 것만 확인하면 된다. 👉 이것이 ..
Spring Security OAuth2.01️⃣ OAuth 2.0이란 무엇인가?OAuth 2.0은 권한 위임(Authorization) 프로토콜이다.즉, 🔐 사용자의 비밀번호를 공유하지 않고 🎫 Access Token 을 이용해 📡 다른 서버의 리소스(API) 에 접근하도록하는 표준이다. OAuth 2.0이 해결하는 문제예를 들어 어떤 사이트에서 이런 버튼을 본적 있을것이다. Google 로그인Kakao 로그인GitHub 로그인 이때 사용자는 아이디/비밀번호를 그 서비스에 직접 입력하지 않고외부 인증 서버가 대신 인증을 해준다. 즉 구조는 이렇게 된다.사용자 → 내 서비스 → Google 로그인 → Google 인증 → 내 서비스 내 서비스는 사용자의 비밀번호를 몰라도Google 이 인증한 사용자라는 것만 확인하면 된다. 👉 이것이 ..
2026.03.03