⌨Programming/Spring
JPA 복합키 삭제 에러, 이슈
좋아요 기능을 만들기 위해 아래와 같은 ERD를 구성하였고 FK 2개를 복합키로 가지는 좋아요 테이블을 생성하였다. 그 후 좋아요에 대한 삭제를 하려는데 아래와 같은 에러를 만났다. 이렇게 FK 두개를 복합키로 가지지 않고 일반적인 테이블인 경우 형타입이 안맞아서 발생하는 에러인데 나의 경우는 여기에 해당하지 않았다. InvalidDataAccessApiUsageException: Can not set com.ownsong.api.user.entity.User field com.ownsong.api.album.entity.LikesId.user to java.lang.Long; nested exception is java.lang.IllegalArgumentException: Can not set com..
스프링에서 S3로 파일업로드하기
스프링환경에서 S3에 파일을 업로드하기 위해서는 크게 credentials과 bucket 등의 정보를 담을 yml파일과 yml정보를 통해 환경변수 설정을 할 S3Config 마지막으로S이들을 이용해서 실제로 S3에 파일을 올릴 로직을 담을 S3Service가 필요하다. credentials정보가 외부에 노출되면 안되므로 application.yml에 아래와 같이 따로 파일을 빼준다 --- spring: profiles.include: - s3 이후 application.yml파일과 동일한 위치에 application-s3.yml을 생성해준다 필요한 내용들은 아래와 같고 발급받은 정보들을 입력해준다. cloud: aws: credentials: accessKey: 발급받은 accessKey secretKe..
Springboot 개발환경에서 노출되면 안되는 설정값, 환경변수 관리하기
application.properties ? application.yml ? 자바 프로젝트를 생성하면 리소스 아래에 application.~라는 파일을 볼 수 있다. 이는 자바 애플리케이션에서 사용하는 설정값, 환경변수들을 관리하는 파일로 서버의 포트번호, 연결할 DB에 관한 정보, AWS의 연결 정보 등을 관리할 수 있다. 보통 Git을 사용해 프로젝트를 관리하곤 하는데 Git에 DB연결 관련 정보같은 내용들이 그대로 올라간다면 보안이 박살날 수 밖에 없다. 따라서 노출되면 안되는 정보들은 Git에 올라가지 않게 따로 관리를 하는데 이에 대해 작성하려한다. application-?.yml 작성 먼저 따로 관리할 값들에 대한 파일을 생성한다. 예를 들어, DB에 관한 정보를 관리할 경우 applicati..