Archive23 [TIL] 23. 12월 CORS(Cross-Origin Resource Sharing) 프로젝트가 끝나갈 무렵 프로젝트 배포 단계에서 예상치 못한 CORS 에러를 만났다. 로컬에서는 잘 돌아갔었는데 배포 환경에서는 작동하지 않았다. 단순히 설정을 빼먹어서 생긴 문제였지만, 이번 기회에 CORS가 정확히 무엇이고 왜 필요한지 제대로 이해하고 정리해보려고 한다.CORS란?CORS는 Cross-Origin Resource Sharing의 약자로 교차 출처 리소스 공유를 의미한다.웹 브라우저는 보안상의 이유로 다른 출처(Origin)의 리소스를 요청하는 것을 기본적으로 차단한다. 이를 동일 출처 정책(Same-Origin Policy)이라고 한다.하지만 현대 웹 개발에서는 프론트엔드와 백엔드가 다른 서버에서 동작하는 경우가 많다. React는 localhost:3000에서, Spring Boot는.. 2025. 12. 21. [TIL] 22. 12월 Axios Interceptor (문제해결) Axios Interceptor로 인한 무한 루프 해결기프로젝트에서 JWT 인증을 구현하던 중, 토큰 재발급 과정에서 예상치 못한 무한 루프 문제가 발생했다. 겉보기엔 단순한 실수처럼 보였지만, 해결 과정에서 인터셉터의 동작 원리와 비동기 통신의 구조를 깊이 이해할 수 있었던 경험을 공유한다.Axios란?Axios는 브라우저와 Node.js에서 사용할 수 있는 Promise 기반 HTTP 클라이언트다.React에서 백엔드 API와 통신할 때 가장 많이 사용되는 라이브러리 중 하나다. fetch API보다 더 간편한 문법과 다양한 기능을 제공한다.// 기본적인 Axios 사용 예시import axios from 'axios';const response = await axios.get('/api/users'.. 2025. 12. 16. [TIL] 21. 12월 S3란? 팀 프로젝트에서 이미지나 파일 저장이 필요하여 AWS S3를 사용하기로 했는데, 팀원들과 본격적인 스터디를 진행하기 전에 기본 개념을 미리 정리해본다.S3란?S3는 Simple Storage Service의 약자로, AWS(Amazon Web Services)에서 제공하는 클라우드 스토리지 서비스다.쉽게 말하면 인터넷을 통해 접근할 수 있는 대용량 파일 저장소라고 생각하면 된다. 사진, 동영상, 문서 등 모든 종류의 파일을 저장할 수 있고, 언제 어디서나 접근할 수 있다.우리 서버의 디스크에 파일을 저장하는 것과 달리, S3에 저장하면 서버와 분리되어 독립적으로 관리할 수 있다는 장점이 있다.그렇다면 일반 파일 시스템이나 서버 스토리지와 정확히 어떤 차이가 있을까? 표로 정리해보면 한눈에 비교할 수 있다.. 2025. 12. 8. [TIL] 20. 12월 Redis란? 팀프로젝트 중 Redis를 사용해야하는 상황이 있었는데 팀원들과 스터디를 진행하기로 해서 미리 개념을 알아보고자 한다.팀 프로젝트에서 Redis를 사용하기로 했다. 팀원들과 본격적인 스터디를 진행하기 전에 기본 개념을 미리 알아두면 좋을 것 같아서 정리해본다.Redis란?Redis는 Remote Dictionary Server의 약자로, 메모리 기반의 키-값(Key-Value) 구조 데이터 저장소다.쉽게 말하면 데이터를 메모리(RAM)에 저장해서 빠르게 읽고 쓸 수 있는 데이터베이스라고 생각하면 된다. 일반적인 데이터베이스가 디스크에 데이터를 저장하는 것과 달리, Redis는 메모리에 저장하기 때문에 접근 속도가 매우 빠르다. 오픈소스이고 BSD 라이선스를 따르기 때문에 무료로 사용할 수 있다는 점도 장.. 2025. 12. 2. [TIL] 19. 11월 JPA란 JPA란 무엇인가?JPA(Java Persistence API)는 자바 애플리케이션과 데이터베이스 사이에서 동작하는 ORM(Object-Relational Mapping) 기술 표준이다.쉽게 말해 "자바 객체를 DB 테이블에 대신 저장해주는 통역사"라고 생각하면 된다.실제 코드 차이:데이터를 저장(save)할 때, 개발자가 작성해야 할 코드는 이렇게 달라진다.기존(JDBC/MyBatis): INSERT INTO MEMBER (ID, NAME) VALUES (...) (SQL 직접 작성)JPA: memberRepository.save(member) (메서드 호출 끝)SQL Mapper vs JPA: 무엇이 다를까? (History)▪️ 기존 방식: SQL Mapper (MyBatis, JDBC)과거(JDB.. 2025. 11. 25. [TIL] 18. 11월 JWT JWT란 무엇인가?JWT(JSON Web Token)는 사용자 인증 정보를 JSON 형태로 안전하게 전송하기 위한 토큰 기반 인증 방식이다.쉽게 말해, "이 사람이 누군지"를 증명하는 디지털 신분증이라고 생각하면 된다.실제 JWT 예시:eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJzdWIiOiIxMjM0NTY3ODkwIiwibmFtZSI6IkpvaG4gRG9lIiwiaWF0IjoxNTE2MjM5MDIyfQ.SflKxwRJSMeKKF2QT4fwpMeJf36POk6yJV_adQssw5cSession vs JWT: 무엇이 다를까?▪️기존 방식: Session 기반 인증세션 방식은 서버가 모든 것을 기억하는 방식이다.사용자가 로그인하면 서버는 세션 저장소(메모리나 DB)에 "유저 A .. 2025. 11. 18. 이전 1 2 3 4 다음