Spring/SpringBoot

@Qualifier 사용해 보자! 들어가며개발을 하다 보면 종종 여러 구현체가 동일한 인터페이스를 구현하게 됩니다. 이럴 때 어떤 구현체를 사용할지에 대해서 지정해 주는 에노테이션입니다. 이번 포스팅에서는 사용방법에 대해서 알아보도록 하겠습니다. @Qualifier이란 @Qualifier 어노테이션은 DI할때 어떤 빈을 등록할 것인지를 명시해 줄 때 사용됩니다. 하지만  기본적으로는 @Autowired을 통해서 DI를 하게 되지만, 동인 한 인터페이스를 가진 구현체가 있을대 @Autowired를 사용하게 되면 빈이 유일하지 않다는 NoUniqueBeanDefinitionException 예외를 발생하게 됩니다.  이럴 때에 구현체를 지정해 주기 때문에 예외를 피할 수 있습니다.즉  👉🏻 동일한 Int..
SSE를 이용한 실시간 알림을 구현해 보자  들어가며팀 프로젝트를 진행하던 중, 댓글이나 좋아요가 달렸을 때 사용자에게 실시간으로 알림을 제공하는 기능의 필요성을 느끼게 되었습니다. 인스타그램이나 유튜브와 같은 플랫폼에서는 이러한 실시간 알림을 통해 사용자에게 새로운 활동을 즉시 알려줍니다. 원래 계획에는 없었지만, 팀원들과 상의 끝에 실시간 알림 기능을 추가하기로 결정했습니다.실시간 알림 기능을 구현하기 위해 두 가지 주요 방식이 있습니다: WebSocket과 SSE(Server-Sent Events). 이 중, 우리는 SSE 방식을 선택했습니다. 선택한 이유와 구현 방법에 대해 작성해 보도록 하겠습니다.   SSE  VS  WebsoketWebSocket 웹 소켓이란 서로 양뱡향으로 유지한 채로 실시..
직접 Custom 어노테이션을 만들어서 사용해 보자  들어가며프로젝트 진행 중에 기본적으로 제공되지 않는 @Valid 외에도 추가적인 검증이 필요한 필드가 있었습니다. 따라서 직접 검증을 수행할 수 있는 커스텀 어노테이션을 만들어 보겠습니다. 이를 통해 @Valid 어노테이션을 사용하는 방법을 알아보겠습니다. @Valid@Valid 어노테이션은 자바에서 Bean Validation API에서 제공되는 어노테이션 중 하나로, 주로 객체 그래프 내의 객체들에 대한 유효성 검사를 수행할 때 사용됩니다. 기본적으로 지원하는 어노테이션은  @NotNull: 필드가 null이 아닌지 확인@Size: 문자열, 컬렉션 또는 배열의 크기를 검사@Min, @Max: 숫자 필드의 최솟값 및 최댓값을 검사@Pattern: 문..
Springdoc의 스웨거(Swaager)를 사용해 보자 들어가며 팀 프로젝트를 진행하면서 API 문서를 작성하기 위해 노션을 사용했었지만, 직접 작성하는 과정에서 불편함을 느꼈습니다. 또한, 프런트엔드 개발자로서 API가 올바르게 작동하는지 확인하는 과정에서도 어려움을 겪었습니다. 이런 어려움을 해결하기 위해 Swagger를 사용하여 API 명세서를 작성하게 되었습니다. Springdoc-openAPI 스웨거란? Spring 프레임워크 기반의 RestFul API를 문서화하기 위한 Open API입니다. 그리고 스프링 구성, 클래스 구조 및 다양한 주석을 기반으로 API 의미를 추론하기 위해 런타임에 애플리케이션을 검사하는 방식으로 작동합니다. JSON/YAML 및 HTML 형식 API로 문서를 자동으..
볼트(Valut)를 사용한 정보 관리하기 들어가며 개발을 하다보면 properties,yml파일에 개인정보등이나 비밀번호 등을 작성한다. 하지만 이런 비밀정보가 그대로 노출되어 악의적인 곳에 사용할수있다. 그래서 볼트를 통해서 정보를 관리하는 방법을 알아보자. 프로젝트환경 springboot -version : 2.6.3 bulid : gradlejava -version : 11 IDE : IntelliJ _Ultimate 볼트 다운로드 및 실행 볼트 다운로드 자신의 운영체제의 맞게 다운로드를 한다.(windows 기준으로 작성) 다운 받은 zip 파일을 압축하여 자신의 사용하고자하는 위치에 두고 저장을한다. 그후에 Vault.conf 파일을 작성하여 추가한다. Vault.conf backend "inm..
JAR(Java Archive) 파일은 Java 애프릴케이션을 배포하고 실행하는데 사용되는 아카이브 형식이다. 서버를 배포하기 위해서는 jar파일로 만들어야한다. 만드는 방법 만들기전 패키지 구조 bootjar을 클릭하면 > Task :compileJava > Task :processResources > Task :classes > Task :bootJarMainClassName > Task :bootJar Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. BUILD SUCCESSFUL in 2s 4 actionable tasks: 4 executed 오후 5:15:22: Execution ..
버저닝이란 무엇인가? 버저닝이란? 버저닝 이란 API를 개발하면 시간에 따라 버전이 올라가는 것이 당연하다. 그로인해 새기능이 추가로 인해 변경될수 있다. 새 기술로 변경함에 따라 발견하지 못한 오류들이 갑작스럽게 나타날수있다. 그래서 기존 API를 사용자에게 안정적인 API를 제공하면서 새로운 버전의 API를 함께 제공하며 사용자가 원하는 API의 버전을 선택할수있는 기술을말한다. 다양한 API 버저닝 기법 URL버저닝 - URL에 버전 번호를 붙임 요청 파라미터 버저닝 - 버전 번호를 나타내는 HTTP 요청 파라미터를 추가 커스텀 HTTP 헤더 버저닝 = 버전을 구분할 수 있는 HTTP 요청 헤더를 추가 미디어 타입 버저닝 - 요청에 Accept 헤더를 사용해서 버전을 구분 프로젝트환경 springb..
코드기록사
'Spring/SpringBoot' 카테고리의 글 목록