반응형

Spring 22

[Tomcat] Post요청시 컨트롤러에서 null이 찍힐 때

기본적으로 HTTP 메서드에서 Request Body의 용량은 무제한입니다. 하지만 공부 중 Post 요청으로 엄청 긴(많은) 데이터를 보낼 때 Request Body가 특정 길이 이상이면 null이 찍히는 현상이 발생했습니다. 찾아보니 Tomcat은 기본적으로 post로 전송하는 데이터의 크기와 파라미터 갯수를 제한하고 있습니다. 데이터 크기는 기본적으로 2MB(2097152B), 파라미터 갯수는 10,000개입니다. 이보다 많은 데이터를 보내려면 설정을 바꾸어주어야 합니다. 데이터 크기는maxPostSize, 파라미터 갯수는 maxParameterCount 속성으로 설정할 수 있습니다. 각각 무제한으로 설정하려면 0보다 작은 수를 입력하면 됩니다. Apache Tomcat 9 Configuration..

Spring 2022.12.26

[Hibernate] ScriptAssert사용시 HV000232: No JSR 223 script engine found for language "javascript"

@ScriptAssert를 사용하면 HV000232: No JSR 223 script engine found for language "javascript"오류가 발생했습니다. 결론부터 얘기하면 jdk버전 문제였습니다. 조금 디테일하게는 JVM의 Javascript Engine 문제였으며 GraalVM에서 발생하는 문제였습니다. Nashorn엔진을 사용하는 버전(jdk8 ~ jdk14)을 사용하면 됩니다. 아래는 삽질기입니다. ---------------------------------------------------------------------------------------------------------------------- 인터넷을 찾아보니 단순히 jdk11버전이 아니라서 jdk11로 설정하면..

Spring 2022.01.06

[Tomcat] 캐시에 추가할 수 없습니다. 왜냐하면 만료된 캐시 엔트리들을 없애버린 이후에도 여유 공안이 충분하지 않기 때문입니다. 캐시의 최대 크기를 증가시키는 것을 고려해 보십시오.

톰캣 10.0 공식문서에 의하면 캐시의 최대 크기는 10mb라고 합니다.(8.0, 9.0도 동일) The maximum size of the static resource cache in kilobytes. If not specified, the default value is 10240 (10 megabytes). This value may be changed while the web application is running (e.g. via JMX). If the cache is using more memory than the new limit the cache will attempt to reduce in size over time to meet the new limit. If necessary, ca..

Spring 2021.08.31

[JPA] 기본 키(PK) 매핑 방법과 생성 전략

기본 키(Primary key)? 주 키 또는 프라이머리 키라고 하며, 관계형 데이터베이스에서 레코드의 식별자로 가장 적합한 것으로 선택, 정의된 후보 키입니다.(출처: 위키백과) 기본 키의 (제약) 조건 기본 키는 데이터베이 테이블의 레코드를 식별하기 때문에 따라오는 제약 조건이 있습니다. 기본 키의 값은 고유해야 하며(중복 X) 변하지 않아야 합니다. 두 개 이상의 열을 기본 키로 설정한 경우 한 열에 중복된 값이 있을 수는 있지만 기본 키에 정의된 모든 열의 값의 조합은 고유해야 합니다. 기본 키는 NULL값을 허용하지 않습니다. 테이블은 하나의 기본 키만 가질 수 있습니다. 기본 키 선택 전략 자연 키(natural key) : 주민등록번호, 이메일, 전화번호 등과 같이 비즈니스적인 의미가 있는 ..

Spring 2020.08.18

[JPA] Entity EntityManager EntityManagerFactory PersistenceContext

Entity 테이블에 대응하는 클래스입니다. Entities in JPA are nothing but POJOs representing data that can be persisted to the database. An entity represents a table stored in a database. Every instance of an entity represents a row in the table. 출처 : https://www.baeldung.com/jpa-entities EntityManager Entity 객체를 관리하는 역할을 합니다. 여기서 관리란 Entity의 Life Cycle입니다. 이는 나중에 따로 포스팅 하겠습니다. EntityManager는 관리하는 Entity를 Persis..

Spring 2020.08.05

[Spring] Spring Framework뼈대

Spring Framework (Core) 프레임워크 전체를 가리키는 동시에 프레임워크의 핵심부분을 가리키기도 합니다. DI를 위한 단독 프레임워크로 개발돼었습니다. DI 기능은 다른 라이브러리와 상관없이 개별적으로 사용할 수 있습니다. Spring AOP AOP(관점 지향 프로그래밍)을 위한 프레임워크입니다. Spring MVC Model-View-Controller 아키텍처를 이용해서 웹 애플리케이션을 개발합니다. Spring Boot Spring MVC와 함께 웹 애플리케이션을 신속하게 개발할 수 있게 도와주는 프레임워크입니다. 애플리케이션 코드를 빠르게 작성할 수 있으며 짧은 코드만으로 주요 기능을 구현할 수 있습니다. Spring Data 데이터베이스 처리를 위한 프레임워크입니다. JPA와 연계..

Spring 2020.07.17

[Spring] IoC

IoC(Inversion of Control) 제어의 역전이란 뜻입니다. 초기에는 개발자가 객체를 생성하고 의존관계를 직접 설정하였는데 이를 제어라고 합니다. 이 제어라는 행동을 컨테이너라는 것에 맡기는 것을 제어권이 역전되었다고 합니다. IoC 구현방법에는 DL(Dependency Lookup), DI(Dependency Injection) 2가지가 있습니다. 우선, 일반적인 클래스 호출방식과 IoC를 이용한 클래스 호출 방식의 차이를 도식화하여 알아보고 IoC에 대해 좀 더 자세하게 알아보겠습니다. 클래스 호출 방식 가장 기본적인 클래스 호출 방식 클래스내에 선언, 구현이 다 있기 때문에 다양한 형태로의 변환이 불가능합니다. 인터페이스 호출 방식 구현클래스의 교체 등 다양한 변화가 가능하지만 구현클래..

Spring 2020.07.10