Spring

· Spring
구글링 했을 때 생각보다 정확한 정보가 없길래 글을 작성하게 되었다. PresignedURL을 발급받기 위해서 다음과 같은 과정이 필요하다. AWS S3 버킷 생성 버킷 정책 설정 PresignedURL을 발급받을 IAM 생성 코드 작성 1. AWS S3 버킷 생성 AWS S3 서비스 탭으로 이동해서 버킷 생성하기를 수행하자. 버킷 이름만 잘 짓고 다른 모든 설정은 건들 필요가 없다. 그러나 이 부분은 선택 사항인데, 나의 경우 개발하는 프로젝트에서 프로필 사진을 업로드하면 해당 사진의 공개 URL을 통해서 누구나 접근할 수 있어야 하기 때문에 버킷에 대한 퍼블릭 액세스를 모두 허용해주었다. 생성하면 다음과 같이 보일 것이다. 2. 버킷 정책 설정 생성한 버킷의 세부 정책을 설정하자. (버킷 클릭 -> ..
· Spring
여러 원인이 있을 수 있다. 일단 나의 경우 다른 테이블은 정상적으로 생성되는데 Meeting 테이블이 생성되지 않는 문제였다. 오류는 command 실행 오류이고 쿼리에 문제가 있는 것이었다. 스택오버플로우를 돌아다니다가 한 답변에서 힌트를 얻을 수 있었다. postgreSQL의 예약어를 사용하여 문제가 발생했다는 답변이다. 보자마자 내 Meeting 테이블에 limit이라는 필드가 떠올랐고 MySQL에 Reserved keyword를 확인했다. (컨트롤 + F로 검색하면 편함) https://dev.mysql.com/doc/refman/8.0/en/keywords.html MySQL :: MySQL 8.0 Reference Manual :: 9.3 Keywords and Reserved Words 9..
· Spring
문제 발생 응답 메시지에 포함된 한글이 깨져서 테스트에 어려움을 겪음 해결 방법 기존의 @AutoConfigureMockMvc를 사용하는 새로운 어노테이션을 생성하고 CharacterEncodingFilter를 추가하여 해결할 수 있다. 기존 코드에서 @AutoConfigureMockMvc를 새롭게 생성한 어노테이션으로 대체해주자. @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented @AutoConfigureMockMvc @Import(EnableMockMvc.Config.class) public @interface EnableMockMvc { class Config { @Bean public CharacterEncoding..
· Spring
웹 스코프는 웹 환경에서만 동작하는데, 스프링이 해당 웹 스코프의 종료 시점까지 관리한다. 따라서 프로토타입 스코프와 다르게 종료 메서드가 호출된다. 웹 스코프의 종류는 다음과 같다. request : HTTP 요청이 들어오고 나갈 때까지 유지되는 스코프이다. 각각의 HTTP 요청마다 별도의 빈 인스턴스가 생성되고 관리된다. session : HTTP Session과 동일한 생명주기를 가지는 스코프 application : 서블릿 컨텍스트(ServletContext)와 동일한 생명주기를 가지는 스코프 websocket : 웹 소켓과 동일한 생명주기를 가지는 스코프 웹 스코프를 테스트해보기 위해서는 웹 환경을 추가해줘야 한다. 다음 의존성을 추가하자. implementation 'org.springfram..
· Spring
스프링은 다음과 같이 다양한 스코프를 지원한다. 싱글톤 : 기본 스코프, 스프링 컨테이너의 시작과 종료까지 유지되는 가장 넓은 범위의 스코프이다. 프로토타입 : 스프링 컨테이너는 프로토타입 빈의 생성과 의존관계 주입까지만 관여하고 더는 관리하지 않는 매우 짧은 범위의 스코프이다. (생성 ~ 초기화까지만 관여) 웹 관련 스코프 Request : 웹 요청이 들어오고 나갈 때까지 유지되는 스코프이다. Session : 웹 세션이 생성되고 종료될 때까지 유지되는 스코프이다. Application : 웹의 서블릿 컨텍스트와 같은 범위로 유지되는 스코프이다. 스프링 빈은 스프링 컨테이너의 시작과 함께 생성되어서 스프링 컨테이너가 종료될 때 까지 유지되므로 싱글톤 스코프이다. 스프링을 사용하면 대부분 싱글톤 스코프만..
· Spring
편리한 자동 기능을 기본으로 사용하자 스프링이 나오고 시간이 갈수록 점점 자동을 선호하는 추세라고 한다. 스프링 부트는 컴포넌트 스캔을 기본으로 사용하고, 스프링 부트의 다양한 스프링 빈들도 조건이 맞으면 자동으로 등록하도록 설계했다고 한다. 자동 빈 등록이 간편하기도 하지만 결정적으로 OCP, DIP를 지킬 수도 있어서 자동 기능을 사용하지 않을 이유가 없다. 그럼 수동 기능은 언제 사용하면 좋을까 애플리케이션은 크게 업무 로직과 기술 지원 로직으로 나뉜다고 한다. 업무 로직 빈 : 웹을 지원하는 컨트롤러, 핵심 비즈니스 로직이 있는 서비스, 데이터 계층의 로직을 처리하는 리포지토리 등이 모두 업무 로직이다. 기술 지원 빈 : 기술적인 문제나 공통 관심사(AOP)를 처리할 때 주로 사용된다. 데이터베이..
@xftg77g
'Spring' 카테고리의 글 목록 (2 Page)