전체 글

spring

Spring SQLIntegrityConstraintViolationException cannot add or update a child row 해결

이전의 포스트에서 flyway를 적용시키고 테이블의 컬럼을 추가했습니다. 2023.08.19 - [spring] - Spring flyway 적용하기 Spring flyway 적용하기 다들 아시다시피 jpa의 ddl-auto는 create, create-drop, update 옵션을 사용하면 엔티티를 만들면 자동으로 DDL을 작성하여 테이블을 생성하고 수정하는 편리한 기능입니다. 하지만 운영환경에서도 이 기 hjsdev.tistory.com 현재 프로젝트에서 테스트 코드를 작성할 때 @Sql 어노테이션을 사용해 미리 작성한 sql파일로 필요한 데이터를 넣고 있어 추가된 컬럼을 수정했습니다. 이전 Sql insert into student_lesson values (1, false, 1, 1); inser..

spring

Spring flyway 적용하기

다들 아시다시피 jpa의 ddl-auto는 create, create-drop, update 옵션을 사용하면 엔티티를 만들면 자동으로 DDL을 작성하여 테이블을 생성하고 수정하는 편리한 기능입니다. 하지만 운영환경에서도 이 기능을 적용하면 실수로 테이블이 삭제되거나 변경사항이 적용되지 않은 채 배포되는 등 문제를 일으킬 수 있기때문에 validate 나 none 옵션을 사용합니다. 프로젝트를 진행하다 테이블 컬럼을 추가해야되는 일이 생겼는데 구글링을 하던 도중 flyway라는 라이브러리를 알게되어 적용시켜 보았습니다. Flyway 란 flyway는 데이터베이스의 형상관리를 목적으로 사용하는 툴입니다. Git을 사용하여 코드를 관리하는 것 같이 flyway는 데이터베이스의 DDL 버전을 쌓아가면서 이력을 ..

java

Jar 파일 배포시 FileNotFoundException 문제

문제 상황 배포 환경은 Jenkins에서 빌드 후 jar 파일과 기타 파일을 전송하고 EC2 인스턴스에서 docker로 컨테이너를 올립니다. Firebase 관한 Config 설정 후 로컬에서 제대로 작동하는 것을 확인하고 배포를 했는데, Docker의 로그를 확인하니 다음과 같은 예외가 발생하여 앱 실행에 실패했습니다. 문제가 생긴 부분은 새로 추가한 부분인 FirebaseConfig 클래스 였고 코드는 다음과 같습니다. @Configuration public class FirebaseConfig { @Value("${firebase.keyPath}") private String keyPath; @PostConstruct void init() throws IOException { FileInputStr..

java

JAVA - 기본 타입(primitive type)

기본 자료형 데이터 타입은 데이터가 메모리에 어떻게 저장되고, 프로그램에서 어떻게 처리되어야 하는지를 명시적으로 알려주는 역할을 한다. 자바에서는 여려 형태의 타입을 미리 정의하여 제공하는데 이것을 기본 타입이라고 한다. 자바에는 8종류의 기본 타입이 제공되며, 크게 정수형, 실수형, 문자형, 논리형 타입으로 나눌 수 있다. 정수형 타입 자바의 기본 타입 중 정수를 나타내는 타입은 다음이 있다. byte short int long 각각의 정수형 타입에 따른 메모리의 크기 및 데이터의 표현 범위는 다음과 같다. 타입 메모리 크기 표현 범위 byte 1 byte -128 ~ 127 short 2 byte $ -2^{15} $ ~ $2^{15} - 1 $ int 4 byte $-2^{31} $ ~ $2^{31..

고만실
하기나해