전체 글 281

[error] ORA-01461: LONG 값은 LONG 열에 삽입할 때만 바인드할 수 있습니다

🚨에러ORA-01461: LONG 값은 LONG 열에 삽입할 때만 바인드할 수 있습니다검색 결과 LONG, CLOB 컬럼에 잘 못된 타입의 데이터를 넣으려 할 때 발생하는 에러라고 한다.하지만, 나는 테이블에 LONG, CLOB 컬럼이 없고 BLOB이 있는데 에러가 발생!!⭐ 정확한 기준은 모르겠지만 나는 기존 테스트 통과한 코드였는데 길이가 긴 데이터 등록할 때에만 해당 에러가 났다!! 📖기존 코드 MERGE INTO TB_GENR_DOC_MGMT target USING( SELECT #{boardId} AS boardId,#{sno} AS sno, #{title} AS title,#{contBlob, jdbcType=BLOB} AS cont FROM DUAL ) source ON (targe..

error 2025.09.01

Connection Pool과 Size 선정 기준 (with HikariCP)

🔍 1. 커넥션 풀(Connection Pool)이란?데이터베이스와 연결(Connection)을 미리 만들어 풀(Pool)에 보관해두고, 요청이 들어오면 즉시 꺼내서 사용하고 다시 반납하는 구조. ✅ 장점매번 DB 연결을 새로 만들지 않아도 돼서 속도 빠름DB 커넥션 수를 제한해 과부하 방지 🔍 2. HikariCP란?Spring Boot의 기본 커넥션 풀 구현체.빠르고 가벼운 커넥션 풀로, 성능이 뛰어나서 널리 쓰인다.📌 3. HikariCP 설정✅ 3-0. yaml 예시spring: datasource: hikari: maximum-pool-size: 30 minimum-idle: 30 idle-timeout: 60000 connection-timeo..

MSA 필수 개념

📌 1. 서비스 등록 & 통신 ✅ 1-1. Spring CloudSpring Framework를 기반으로 한 마이크로서비스 아키텍처(MSA)에서 사용할 수 있는 도구와 라이브러리 모음!!서비스 간 통신, 설정 관리, 로드밸런싱, 장애 처리, 메시징 등을 편리하게 지원 📊 주요 기능 / 구성 요소기능Spring Cloud 모듈설명서비스 등록 & 검색Eureka서비스가 어디에 있는지 등록하고 조회로드밸런싱Spring Cloud LoadBalancer클라이언트 측에서 요청을 여러 인스턴스로 분산API GatewaySpring Cloud Gateway단일 진입점에서 라우팅, 필터링, 로드밸런싱 지원설정 관리Spring Cloud Config분산 서비스의 공통 설정을 중앙에서 관리메시징Spring Cloud ..

summernote - 에디터 라이브러리

0. 라이브러리 선택 기준기존 다른 editor 라이브러리를 사용하고 있었는데 불필요한 기능들이 많고 모바일뷰에서 적합하지 않아서 새로운 무료 라이브러리를 찾아보았다. 내 선택 조건은 아래와 같았다.무료 라이센스모바일 최적화JSP 환경많은 기능 필요x에디터에 사진 넣을 수 있어야함. 대부분 에디터 라이브러리가 react, vue 기준이거나 pc 기준인 것이 많았는데내 조건에 맞는 라이브러리로 summernote를 찾았다. 1. 사용방법1-1. 라이브러리 다운로드 및 적용다운로드 링크https://summernote.org/ 적용 위치/resources/js/plugins/summernote 1-2. Script, link 태그로 불러오기 1-3. Html 작성form 없이 썸머노트를 사용하려면 div에 ..

Frontend/javaScript 2025.08.31

JUnit 단위 테스트 적용, JaCoCo 커버리지 측정

📌 목차JUnit이란?JUnit 적용 방법JUnit 적용 예시DB 연동 단위 테스트 방법테스트 실행테스트 커버리지란?테스트 커버리지 측정 방법 - JaCoCo한글 경로 문제 해결 방법테스트 결과 확인 🎯 0.JUnit 단위 테스트 적용하기기존 테스트 코드를 작성하지 않고 직접 프로그램을 로컬에서 실행해서 테스트하고 있었다. => 코드 변경 시 마다 기능을 재테스트 하는데 시간이 소요되고, 테스터가 놓치는 부분이 있을 수 있음.이를 개선하기 위해 JUnit 기본 사용법을 알아보고 ‘일정 시스템’에 적용해보기로 했다!! 📌 1. JUnit이란?Java에서 가장 많이 쓰이는 단위 테스트 프레임워크역할: 테스트 작성 → 자동 실행 → 결과 확인Spring Boot에서는 spring-boot-starter-..

Backend/JAVA 2025.08.27

[error] ORA-06502: PL/SQL: 수치 또는 값 오류: 원시 변수 길이가 너무 깁니다 (For Select & Insert)

[error] ORA-06502: PL/SQL: 수치 또는 값 오류: 원시 변수 길이가 너무 깁니다 (For Select & Insert) 📌에러 환경공지사항에 길이가 긴 글 등록 시 오류.오라클 DB 사용.게시글 데이터 타입은 BLOB. 🚨에러1### Error updating database. Cause: java.sql.SQLException: ORA-06502: PL/SQL: 수치 또는 값 오류: 원시 변수 길이가 너무 깁니다ORA-06512: "SYS.UTL_RAW" 📖 기존 sql- Insert MERGE INTO TB_NOTI_MGMT target USING ( SELECT #{sno} AS sno, #{title} AS tit..

error 2025.08.09

Stream API란? (for-loop와 비교)

📌 1. Stream API란?Stream API는 Java 8에서 도입된 기능으로, 컬렉션(List, Set 등)이나 배열의 데이터를 함수형 스타일로 처리할 수 있는 API. 간결하고 직관적인 코드를 작성할 수 있으며, 반복문보다 가독성이 좋고 병렬 처리도 지원한다. 📌 2. Stream의 특징원본 데이터를 변경하지 않음 (불변성 유지)중간 연산(Intermediate)과 최종 연산(Terminal)으로 나뉨병렬 처리(parallelStream()) 가능 📌 3. Stream API 기본 동작 흐름Stream API는 "데이터(Stream) 생성 → 중간 연산 (필터링, 변환 등) → 최종 연산 (리스트로 변환, 출력 등) " 의 구조로 작동한다. 📖 예제: 숫자 리스트에서 짝수만 골라 제곱 후..

Backend/JAVA 2025.08.09

HTTP 상태 코드 정리

HTTP 상태 코드 (HTTP Status Codes)웹서버나 클라이언트 간 통신에서 응답 상태를 나타내는 3자리 숫자 코드 상태 코드의미설명1xx정보 응답(Informational)요청을 받았고 처리 중임을 알림2xx성공(Success)요청이 정상적으로 처리됨200OK성공적으로 요청 처리 완료201Created요청이 성공적으로 수행되어 자원 생성됨3xx리다이렉션(Redirection)클라이언트가 추가 작업 필요301Moved Permanently요청한 리소스가 영구적으로 다른 위치로 이동됨302Found요청한 리소스가 임시로 다른 위치로 이동됨4xx클라이언트 오류(Client Error)요청에 오류가 있어 서버가 수행 불가400Bad Request잘못된 요청401Unauthorized인증 필요403Fo..

SOAP과 WSDL: REST와 비교 및 Java 예제

📌 1. SOAP 개념과 REST와의 비교REST와 SOAP는 각기 다른 두 가지의 온라인 데이터 전송 방식. SOAP는 프로토콜, REST는 아키텍처 스타일이다.📌 1-1. SOAP (Simple Object Access Protocol)✅ 1-1-1. SOAP 기본 개념SOAP은 XML 기반의 메시징 프로토콜. 즉, 두 시스템이 데이터를 주고받는 방식에 대한 규격을 정해놓은 표준.SOAP 메시지는 XML 포맷으로 요청과 응답을 주고받고, 이를 기반으로 시스템 간의 상호작용을 정의.✅ 1-1-2. SOAP 특징프로토콜 기반: SOAP은 네트워크 프로토콜에 종속적이지 않지만, HTTP, SMTP, FTP 등 다양한 프로토콜을 사용할 수 있다.메시지 포맷: SOAP은 XML 포맷을 사용하여 데이터를 주..

[Spring, JSP] session 생성 차단

jwt 방식 로그인을 사용하기 때문에 세션을 생성하지 않도록 Spring Security 에서 아래와 같이 설정했다.근데도 JSESSIONID가 생기고 있었다. 나는 jsp를 사용하는게 문제였다!!📌 1. 목적: 완전한 무상태(Stateless) 서버 만들기Spring Security에서 SessionCreationPolicy.STATELESS를 설정JWT 기반 인증이나 토큰 기반 인증을 쓸 때는 세션이 필요 없으므로, JSESSIONID 쿠키도 없어야 정상.http .cors(Customizer.withDefaults()) .csrf(csrf -> csrf.disable()) .sessionManagement(session -> session .sessionCreation..