java에서 자바 환경정보를 테이블에 정리하여 html 파일을 생성하는 과정 진행 중 내용이 중간에서 끊겨서 저장되는 문제 발생했다. 몇번을 반복해도 같은 문제가 발생해 파일에 저장하기 전 완성된 최종 문자열을 출력해봤으나 문자열에는 이상이 없었다. 아마 Buffere

스프링과 스프링부트 이 두 가지가 처음엔 같은 것이라 생각하고 사용하다가 왜 같은 것을 이름을 다르게 붙였는지 의문이 생겼다. 찾아보니 둘은 약간의 차이가 있었고 역시 이름을 다르게 붙인 이유가 있었다. 스프링과 스프링부트는 둘 다 스프링 프레임워크를 기반으로 한 자바

그동안 비전공 개발자에 SSAFY나 취업 후 프로젝트 개발에만 몰두하느라 기반이 되는 CS 지식이 많이 부족하다고 느꼈다. 특히 AI가 발전함에 따라 앞으로 코드를 작성하는 것보단 이런 기반이 되는 CS지식들, 아키텍처, 기술의 더 깊은 동작과정들을 공부해놓는 것이 개

앞서 Tomcat, Servlet 개념에 대해 공부하면서 여러 추가 질문이 생겼다.너무 오랜만에 봐서 흐릿했던 개념들과 Spring Boot에서 실제 사용되는 내장 Tomcat, DispatcherServlet이 어떻게 동작하고 Servlet의 기본 동작흐름과는 어떻게

Auto Configuration은 Spring Boot가 클래스패스, 정의한 빈, 프로퍼티 설정을 기반으로 필요한 빈을 자동으로 등록해주는 메커니즘이다. 개발자가 직접 설정 코드를 작성하지 않아도 Spring Boot가 상황에 맞게 적절한 설정을 자동으로 구성한다.설

Remote Dictionary Server의 약자로, 키-값 구조의 인메모리 데이터 저장소다. 데이터를 메모리에 저장하여 빠른 읽기/쓰기를 제공하며, 선택적으로 디스크에 영속화할 수 있다.In-Memory 기반: 모든 데이터를 RAM에 저장하여 매우 빠른 응답 속도

자바 ORM 기술의 표준 명세 (인터페이스)javax.persistence 패키지의 인터페이스 집합구현체가 없으며, 실제 동작을 위해선 구현체 필요JPA의 구현체 중 가장 널리 사용됨EntityManager, EntityManagerFactory 등 JPA 인터페이스를

게임 플랫폼의 게임 시작 및 종료 로직과 결제 로직을 개발하면서 트랜잭션 관련 문제들을 겪었다. 추후 같은 문제를 겪지 않기 위해 문제 원인과 해결과정을 기록한다. 아래 내용은 Stripe 결제 연동, 게임 세션 관리 과정에서 발생한 문제들이다.결제 API를 호출하면

프로젝트 정리 중 문득 그런 생각이 들었다. 지금껏 당연하게 사용해왔던 JPA는 어떻게 해당 데이터가 새로운 데이터인지를 판단하는지 내부 동작 과정이 궁금해졌다. ID를 기준으로 본다고 하면 가능할 것 같긴한데 만약 Auto Increment를 쓰지 않고 사용자가 ID

시리즈 구성1편: CORS 보안 취약점 발견과 개념 이해 ← 현재 글2편: CORS 설정 옵션 분석과 해결 방법3편: 실제 적용과 검증보안 취약점 발견CORS란 무엇인가?CORS 동작 원리 심층 분석문제 원인 분석프론트엔드를 로컬 환경(localhost:5173)에서

시리즈 구성1편: CORS 보안 취약점 발견과 개념 이해2편: CORS 설정 옵션 분석과 해결 방법3편: 실제 적용과 검증해결 방안 개요Spring Security CORS 통합 설정allowedOrigins vs allowedOriginPatternsCredentia

시리즈 구성1편: CORS 보안 취약점 발견과 개념 이해2편: CORS 설정 옵션 분석과 해결 방법3편: 실제 적용과 검증로컬 환경 테스트개발 서버 배포 및 테스트문제 해결 가이드결과 및 성능 개선1단계: 백엔드 로컬 실행환경 변수 설정:실행:확인사항:2단계: 프론트엔

JWT 기반 인증을 구현하고 GlobalExceptionHandler도 잘 만들어뒀다. 컨트롤러에서 발생하는 예외는 모두 깔끔하게 처리되고 있었다. 그런데 만료된 JWT 토큰으로 요청을 보내면 GlobalExceptionHandler를 거치지 않고 그냥 500 에러가

Spring Boot로 개발하다 보면 DTO 클래스를 어떻게 이름 짓는지가 은근히 고민이다. 예전 프로젝트 코드를 보면 UpdateGameRequestDto, RankingResponseDto 처럼 클래스명에 Dto가 붙어있는 경우가 많다. 하지만 최근 프로젝트들을 보