
Thirdparty cookie를 처리하면서 발생한 문제. BE 도메인 : api.[메인 도메인 주소].com FE 도메인 : web.[메인 도메인 주소].com 도메인 주소의 전체 이름은 다르지만 하위 도메인 주소를 뺀 부분이 같다. 떄문에 별 생각 없이 쿠키의 도메인을 [메인 도메인 주소].com으로 지정해줬다. 이럴 경우 web.[메인 도메인 주소].com에서 해당 쿠키를 확인할 수 없다. 하위 도메인에서 쿠키를 확인할 수 있도록 해야하기 때문에, "."을 반드시 포함시켜서 .[메인 도메인 주소].com 으로 지정해줘야 한다. 작업할 당시에는 쿠키에 별 생각 없이 아래와 같이 도메인을 붙였다. public Cookie setCookie(String guestId) { int maxAge = 24 *..

이번 주에 발생했던 따끈따끈한 문제 문제 상황은 이렇다. 1. 비로그인 사용자를 구분하기 위한 id를 부여하고 싶다. 2. id를 어디서 부여하고 저장할까? - 보안상의 이유로 단순 로컬스토리지보다는 쿠키에 저장하는 게 좋을 것 같다. 3. 누가 쿠키를 발행할 것인가? fe가 가능할 것 같다고해서 별 생각 없이 ok 4. fe 서버에서 쿠키에 강제로 domain을 부여하니까 localhost에서 쿠키를 사용할 수 없는 문제 발생 5. 결국 서버에서 쿠키를 만들기로 하는데.... 결론부터 이야기하자면 모두가 쿠키에 대한 제대로된 지식이 없어서 발생한 문제였다. 정확히는 Thirdparty cookie와 cookie의 도메인에 대한 지식이 부족했다. 어떤 문제가 발생했는지 차근 차근 밟아나가보자. 이슈 1...

그동안 서버에서 비동기 처리를 할 일이 많지 않았었는데 이번에 멀티쓰레드를 처음 사용해볼 기회가 생겼다. 다행히 스프링 부트는 멀티쓰레드 개발의 초심자인 사람도 편하게 사용할 수 있게끔 다양한 기능을 제공해 주고 있었다. 이 내용을 소개해 보려고 한다. 비동기(Asynchorous)란? 멀티 쓰레드가 필요한 이유. 비동기는 다른 곳에서도 많이 다루기 때문에 간단히 말하고 넘어가려고한다. 한줄 요약하면, 앞선 작업이 끝나기를 대기하며 수행(동기적)되는게 아니라 앞선 작업의 종료까지 대기하지 않고, 다음 작업을 바로 수행(비동기)한다는 의미이다. 다들 한번쯤 봤을 만한 그림을 첨부한다. @Async 이 어노테이션 하나면 비동기적으로 동작하게 코드를 구현할 수 있다. 자바에서 Thread를 상속받거나 Runn..

흔히 볼 수 있는 교차 출처 리소스 공유(Cross-Origin Resource Sharing, CORS) 에러... CORS를 간단히 정리하면 아래와 같다. CORS는 다른 도메인 간에 리소스를 공유할 때 발생하는 보안상의 이슈를 해결하기 위해 만들어진 매커니즘. 웹 브라우저에서는 보안상의 이유로 다른 출처(Origin)에 있는 리소스를 직접 요청할 수 없다. 자세히 정리된 곳은 많으니 따로 정리하진 않겠다. 스프링 프레임워크에서는 간단히 해결이 가능하다. @Configuration public class CorsConfig implements WebMvcConfigurer { @Override public void addCorsMappings(CorsRegistry registry) { registr..
- Total
- Today
- Yesterday
- JWT
- Kotlin
- lambda
- AWS EC2
- elasticsearch
- AWS
- docker
- CloudFront
- 오블완
- 티스토리챌린지
- Spring
- cache
- java
- 스프링부트
- 후쿠오카
- OpenAI
- serverless
- AOP
- 람다
- object
- S3
- terraform
- Elastic cloud
- springboot
- ChatGPT
- EKS
- MySQL
- openAI API
- Log
- GIT
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |