[SpringBoot] Spring Boot 4.0.0 나왔다!!
·
Develop/Spring
스프링 팀에서 2025-11-20 기준으로 Spring Boot 4.0.0 정식 버전을 공개했다.이제 Maven Central에서 바로 가져다 쓸 수 있고,스프링 부트도 3.x 세대 → 4.x 세대로 한 단계 올라간 느낌이다. 공식 블로그와 릴리즈 노트를 기준으로,백엔드 개발자 입장에서 중요한 포인트만 골라서 정리해본다. 1. 뭐가 크게 바뀐걸까? 공식 블로그 기준으로 4.0의 키워드는 대략 이렇게 정리할 수 있다Spring Framework 7 기반코드베이스 전체 모듈화 → 더 작고 집중된 JARJSpecify 기반의 널 안정성(null-safety) 향상Java 25 1급 지원 (최소 지원은 여전히 Java 17)API Versioning, HTTP Service Clients 같은 REST 개발 기..
[Java] String 은 왜 불변(Immutable)일까? ( feat. StringBuilder를 써야 하는 이유)
·
Develop/Back-End
코테 풀다가 한 번쯤 턱 맞는 포인트프로그래머스 같은 데서 이런 문제 한 번쯤 본 적 있을 거다.문자열 my_string 과 정수 k가 주어질 때,my_string 을 k번 반복한 문자열을 return 하세요.대부분 처음에는 이렇게 짠다.public String solution(String my_string, int k) { String answer = ""; for (int i = 0; i 테스트 몇 개 돌려보면 잘 동작하고, 길이도 작으면 제출해도 그냥 통과한다.근데 문자열 길이랑 k가 좀만 커지면 이런 코드 패턴이 진짜 성능 구멍이 된다.이유는 하나다.Java 의 String 은 “불변(immutable)” 이기 때문.이 글에서는String 이 불변이라는 게 정확히 무슨 뜻인지왜 그렇게 ..
구 레거시 윈도우 서버 프로젝트 (IIS / ASP) 이관 도전기
·
Develop/DevOps
목차이관 개요 및 환경 정리사전 준비 (백업/점검)IIS 설정 백업 방법웹사이트 파일/데이터베이스 이전IIS 설정 복원 및 재구성 (2012)테스트 및 마이그레이션 체크리스트FAQ & 문제 해결 팁1. 이관 개요 및 환경 정리이관 전 서버: Windows Server 2008 R2 Enterprise (IIS 7.5)이관 후 서버: Windows Server 2012 Standard (IIS 8.0)목적: 특정 사이트만 이전 (전체가 아님)주요 서비스: ASP/ASP.NET 웹사이트, MSSQL 연동, FTP 등2. 사전 준비 (백업/점검)체크리스트웹사이트 파일 백업 (웹 루트 폴더 전체)IIS 설정 백업 (ApplicationHost.config/메타베이스 등)DB 백업 (필요 시 .bak, 또는 DU..
[nssm] 윈도우(window)에서 JAR 파일 서비스로 등록하기 🤡🍯🐝
·
Develop/DevOps
nssm (Non-Sucking Service Manager)은 Windows 환경에서 Java 애플리케이션이나 기타 실행 파일을 Windows 서비스처럼 등록해서 관리할 수 있게 해주는 매우 실용적인 도구 🤡 인프라가 열악하여 api 서버를 스테이션 남는거에 돌리고 있는데정전이라도 일어나면 데이터 동기화 스케줄러들이 죽는게 아닌가 :( 그래도 외부 유지보수 업체분들이 작업하고 스테이션은 꼭 정상화 이후에 키고 가니서버라도 알아서 재부팅하게 설정해보도록 하자 도커를 사용하다가 윈도우에서는 너무 무겁고 굳이 컨테이너로 배포할 필요가 없다 그래서 찾다가 발견된 nssm !!!!! 🐝🐝🐝🐝🐝 1. 커맨드로 nssm.exe를 실행해보면 ( nssm.exe 파일이 있는 경로에서 실행!) -..
[Docker] 도커로 환경을 옮긴 후 셀레니움이 실행이 안되는 오류 해결
·
Develop/Trouble Shooting
SessionNotCreatedException: Could not start a new session Possible causes are invalid address of the remote server or browser start-up failure. 도커에 대한 이해도가 떨어졌다.. 도커는 컨테이너 개념인데 당연히 구글 크롬이 설치가 안되어 있는데드라이버로 실행하려 하니 발생한 문제.. 😓 FROM eclipse-temurin:17-jdk# Chrome 설치에 필요한 패키지와 라이브러리 설치RUN apt-get update && apt-get install -y \ wget curl gnupg2 unzip fonts-liberation \ libglib2.0-0 libnss3 lib..
[SpringBoot] When allowCredentials is true, allowedOrigins cannot contain the special value "*" since that cannot be set on the "Access-Control-Allow-Origin" response header. To allow credentials to a set of origins... 어쩌고저쩌고.. 오류 해결하기 🤔
·
Develop/Trouble Shooting
java.lang.IllegalArgumentException: When allowCredentials is true, allowedOrigins cannot contain the special value "*" since that cannot be set on the "Access-Control-Allow-Origin" response header. To allow credentials to a set of origins, list them explicitly or consider using "allowedOriginPatterns" instead. 스프링부트에서 웹소켓 서버를 만들어서간단한 플레시게임을 만드려고 했는데 엥?? 이전에는 이렇게 작성하면 별 문제 없었는데??모든 Access-Contro..
API 동시성 문제 개선하기 (MAX + 1 Key 채번)😡
·
Develop/Trouble Shooting
결제 API  동시성 이슈.. 전자락카 매출정보를 연동하는 API 동시성 문제를 개선해보자!작업 할 당시에 개발 환경은 jdk 17 , spring boot , mybatis , oracle 이다. 키오스크에서 결제를 하면 VAN 결제정보 데이터를  API를 이용하여 저장하는 단순한 구조이다.   api 응답시간 0.3초 키오스크를 이용하는 손님도 적고 문제가 생길거라고는...미처 생각하지 못했다 😒 이러고 시간이 한참 지나고나서.....이용자수가 엄청 늘었다... 혹시? 동시성 문제가 생기진 않았을까.. 로그를 보니중복키 로그가........ 😓 개선하고자테스트코드를 수정하고 디버깅을 진행 하였다.문제점 찾기예시 코드 AS-IS @Transactional(rollbackFor = Excepti..
newman 을 이용하여 node 서버 부하 테스트 및 pm2 클러스트 모드 사용 / 커넥션 풀 사용하여 부하 예방하기 🐝
·
Develop/DevOps
후기 다른 사람이 만든 코드를 유지보수한다는게 정말 쉽지 않은 것 같다..또 java/spring boot 가 아닌 node/express 환경이다 보니 정이 더 안붙는... 😒원인특정 기간에 예약이 몰려 서버에 부하가 되는 상황 확인  테스트 방법 1. 포스트맨을 이용하여 예약 api 컬렉션 준비2. node에 newman 종속성 추가 및 실행코드 작성3. pm2 모니터링  const newman = require('newman'); // Newman 모듈const instances = 900; const runNewmanInstance = () => { return new Promise((resolve, reject) => { newman.run({ collec..