AWS RDS에서 트리거 생성 쿼리를 실행했을 때 아래와 같은 에러가 발생했다.Error Code: 1419. You do not have the SUPER privilege and binary logging is enabled (you might want to use the less safe log_bin_trust_function_creators variable) 원인 분석단서1에러메세지: 슈퍼권한이 없다. 안전하지 않은 log_bin_trust_function_creators 변수를 사용했을 수 있다. 단서2로컬에서 사용하던 테스트 DB에서는 정상적으로 생성되었던 Trigger가 RDS에서만 에러를 발생시킴.에러메세지를 구글링해본 결과 RDS에서 파라미터 그룹에 log_bin_trust_functi..
문제 발생JPA를 통해 Entity를 생성할 때 name 속성으로 "USER_TB" 이렇게 대문자로 지정해줬는데서버를 실행하고 나니 'user_tb'을 찾을 수 없다는 에러가 발생했다.뭔가 이상해서 ddl-auto를 create로 지정해서 DB에 Table이 어떻게 생성됐는지 확인해 봤는데user_tb로 소문자로 이루어진 테이블이 추가로 생겼다. 원인 분석이에 관해 google에 검색해본 결과 Spring boot의 DB Physical Naming Strategy이 원인이었다.DB Physical Naming Strategy는 모든 테이블 명을 소문자로 작성하고, 카멜 케이스 대문자는 밑줄로 대체하는 전략이다. 해결아래 코드를 통해 네이밍 전략을 변수 이름을 그대로 사용하도록 바꿔주었다.spring: ..
프로젝트 진행 중 상수 클래스를 선언할 일이 생겼는데, 메모리에 미리 올려두고 다른 클래스에서 사용하기 위해서 상수 클래스를 구현하였다.그런데 갑자기 "static도 프로그램 실행 시에 가장 먼저 메모리에 변수를 등록하는 것인데 Bean도 싱글톤 객체로 메모리에 미리 올려두고 사용하는 것이니까 둘 다 똑같지 않은가?"라는 생각이 들었다. static으로 선언하는 것과 spring bean으로 등록하는 것의 차이를 비교해보았다. Staic과 Bean의 공통점공유가 가능하다Static으로 선언된 객체와 빈으로 등록된 인스턴스 모두 공유 될 수 있는 인스턴스이고, Static 객체는 클래스의 모든 인스턴스가 공유하고 빈은 스프링 컨테이너를 통해 공유 된다.라이프 사이클이 존재한다빈은 스프링 컨테이너에 의해 ..
IaaS (Infrastructure as a Service)서버, 스토리지, 네트워크를 가상화 환경으로 만들어, 필요에 따라 인프라 자원을 사용할 수 있게 서비스를 제공하는 형태.이해하기 편하게 설명하자만, 컴퓨터의 하드웨어를 가상화 환경에서 제공하는 것IaaS를 사용하는 개발자는 OS 설치부터 각종 서버 환경을 직접 세팅해야한다. ex) AWS EC2 PaaS (Platform as a Service)애플리케이션이나 서비스가 동작할 수 있는 환경을 제공하는 형태. IaaS에서 '동작환경세팅'이 이루어진 형태이며, SaaS의 개념을 개발플랫폼에도 확장한 것이다. 애플리케이션의 시작을 위한 복잡한 환경 세팅이 필요없고, 사용자는 오로지 비즈니스 모델 및 로직에 집중할 수 있다. (예: Google App..