2024-02-01 목요일
계기 개발을 하다 보면 Bean이 아닌 클래스인데 Bean을 참조해야 하는 경우가 있다. 그런 경우 이런 방식으로 ApplicationContextProvider를 만들어 주면 된다. Spring Bean이 아닌 클래스에서 Bean 가져오기 Spring Boot가 실행될 때는 ApplicationContext가 인 상황이 없을 줄 알았다. 하지만 개발 중…
2024-01-11 목요일
ApplicationContextProvier 구현 Bean 가져오기 Bean name에 주의 혹시 모르니 체크는 해주는게 좋을듯 References Spring 빈이 아닌 클래스에서 빈 얻기 를 좀 편하게 쓸 수 있게 변경하였다. 사용하는 쪽에서 체크 하지 않아도 된다. 해당 클래스의 유일한 Bean일 경우 을 입력하지 않아도 된다.
2024-01-09 화요일
에러 발생 외부 API를 이용해서 데이터를 받아오는 로직을 추가하고 있었다. API Response Body DTO를 작성해서 RestTemplate을 이용하여 API 요청을 하고 응답을 받았는데 DTO로 Parsing 하던 중 에러가 발생했다. 해결 과정 해당 에러를 검색해보니 자료가 좀 있었는데, 나랑은 상황이 좀 다른 글들이 많았다. (e.g. 을…
2023-04-12 수요일
Spring에서 설정 파일 내용을 불러올 때 를 사용한다. 그런데 개발을 하다보면 이 값이 없을 때에 대해서도 처리를 해야할 때가 있다. (e.g. 운영 환경에서는 password가 필요한데 개발 환경에서는 password가 필요하지 않음) 그럴 경우에는 이런 방식으로 하면 된다. 이렇게 하면 저 설정 값이 없을 경우에는 null이 들어가게 된다. 만약에…
2023-03-22 수요일
거의 참고 글 복붙이지만 자료 조사 과정에서 깔끔하고 제대로 설명된 내용이 이 것 말고는 없었기에 기록용으로 작성한다. Spring Boot에서 Redis를 연결할 때 보통은 Lettuce를 사용한다. Spring Boot에서 Lettuce를 사용하는 방법은 자료가 많이 있다. 하지만 그냥 사용하면 로컬에만 연결될 뿐이다. Redis를 Cache로 사용할…
2022-11-17 목요일
Spring Boot에서 Redis를 사용하려고 블로그들을 보며 테스트하던 중 서버 실행까지는 문제없이 되는데 Redis를 사용할 때 이런 에러가 발생했다. 파일에서 를 만들어주는 메서드를 이렇게 작성했는데 문제가 있었다. 저 메서드를 일반적인 방법으로 Bean에 등록해서 사용했을땐 문제가 없었던 것 같은데 Redis 두 곳에 연결하기 위해서 조금 변형…
2022-08-12 금요일
의 위치는 이다. 개발용 환경과 프로덕션용 환경 분리를 위해 파일을 분리하여 관리하는 방법이다. 개발용에는 DB를 H2로 사용한다던지 또는 테스트시에만 H2로 사용한다던지 설정할 수 있다. 우선 파일을 만들어준다. 과 해당 파일은 에 추가해서 외부로 노출되지 않게 해준다. 이제 설정 파일에 각각 원하는 내용을 작성해준다. 그럼 intellij에서 실행…
2022-07-18 월요일
TypeOrm 에는 softDelete 기능이 있다. Entity파일에서 을 추가해주면 된다. 데이터를 영구 삭제하고 싶지 않을 때 사용하는 방식이다. 데이터를 softDelete 하게 되면 이 이었다가, 삭제된 시점으로 값이 들어간다. 그럼 TypeORM에서 조회할 때 이 이 아닌 row 는 자동으로 반환하지 않는다. (내부 select 쿼리…
2022-06-29 수요일
문제 Typeorm + Postgresql 을 사용하던 중 enum 타입으로 적용해놨던 컬럼에서 enum 타입의 구성을 바꾸는 과정을 진행했다. 기존 데이터를 보존하며 migration이 되게 진행해야 했다. 그냥 문자열 컬럼이었다면 간단했겠지만 enum 타입이라 많이 까다로웠다. typeorm의 로 생성된 코드로는 제약 조건 오류가 발생하므로 직접 쿼리…
2022-05-30 월요일
발단 NestJS 프로젝트에 버전을 적용하려고 했다. V1, V2 이런 API Versioning 말고 에 Version을 작성해서 그 값을 Frontend에서 확인할 수 있게 하자는 취지였다. 문제 Version용 Application Module을 만들었고, 에 버전 쓰는 것까지는 좋았는데 Version을 반환해주는 API를 만들면서 문제가 생겼다. …