Spring

@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로 문서를 자동으..
JWT토큰을 사용해서 로그인을 간단하게 구현해 보자! 들어가며 이전 포스팅까지 JWT토큰의 대해서 이론적으로 설명했습니다. 이번 포스팅에서는 이론적인 부분은 설명하지 않고 코드로만 JWT토큰을 사용해 간단하게 로그인 기능을 구현해 보도록 하겠습니다. 만약 이론적은 부분이 궁금하시다면 이전 포스팅을 참고해 주시면 감사하겠습니다. JWT(JSON Web Token) 토큰 [1] JWT(JSON Web Token) 토큰 [2] 프로젝트환경 springboot -version : 2.7.18 java -version : 17 DB : Mysql_8.0.33 IDE : IntelliJ _Ultimate 기본적인 SpringBoot, SpringSecurity, MySQL등과 같은 지식이 있다는 전재로 설명하도록 ..
JWT토큰이란? 들어가며 이전 포스팅에서는 JWT 토큰이 만들어지기 전에 왜 필요한지 간단히 살펴보았습니다. 이번 포스팅에서는 JWT가 무엇인지와 함께 JWT가 보안을 유지하는 데 어떤 알고리즘을 사용하는지에 대해 알아보겠습니다. 이전 포스팅을 한번 읽어보고 오시는 걸 추천드립니다. "JWT-등장배경" JWT JWT(JSON 웹 토큰) 는 당사자 간에 정보를 JSON 개체로 안전하게 전송하기 위한 간결하고 독립적인 방법을 정의하는 개방형 표준( RFC 7519 )입니다. 이 정보는 디지털 서명이 되어 있으므로 확인하고 신뢰할 수 있습니다. JWT는 비밀( HMAC 알고리즘 사용) 또는 RSA 또는 ECDSA를 사용하는 공개/개인 키 쌍을 사용하여 서명할 수 있습니다. JWT를 암호화하여 무결성을 증명하고..
JWT토큰을 사용하게 된 이유를 간단하게 알아보자 들어가며 JWT(JSON Web Token) 토큰은 현대 웹개발에 많은 부분을 차지하고 있습니다. 이번 포스팅에서는 JSON 토큰이 왜 등장하게 되었는지 간단하게 알아보도록 하겠습니다. OSI 7 계층 OSI(Open Systems Interconnection) 모델은 데이터 통신의 프로세스를 이해하고 설명하는 데 사용되는 개념적인 모델입니다. 이 모델은 7개의 계층으로 구성되어 있으며, 각 계층은 특정한 역할을 담당합니다. 물리계층 : 실제 데이터가 전송되는데 필요한 하드웨어계층(bit 단위로 처리되며 0,1로 이진수 형태로 전송) 랜선, 리피터, 허브등과 같은 장비를 가지고 있다. 데이터 링크 계층 : 물리적인 데이터를 전송하기 위한 프레임 구조 및 ..
· Spring
Dispatcher Servlet과 MVC 패턴에 대해서 알아보자 들어가며 스프링 프레임워크를 이용하여 웹 개발을 시작하려면 Dispatcher Servlet과 MVC 패턴에 대한 기본적인 이해가 필요합니다. 먼저, Servlet이란 무엇인지, 어떻게 동작하는지에 대해 알아보겠습니다. 그리고 MVC 패턴은 어떻게 구성되어 있으며 왜 사용되며, 실제로 어떻게 동작하는지를 자세히 살펴보겠습니다. 이러한 기본적인 이해는 원활한 스프링 기반 웹 개발을 위한 필수적인 요소이기 때문에 이번 시간에 알아보도록 하겠습니다. Servlet이란? 서블릿은 자바의 웹 프로그래밍 기술 중 하나로, 동적인 웹 페이지를 생성하고 처리하는 역할을 합니다. 웹 페이지에서는 클라이언트와 서버 간의 통신은 웹 어플리케이션을 통해 이루어..
코드기록사
'Spring' 카테고리의 글 목록