#spring@Configuration은 어떻게 빈을 등록하고, 싱글톤으로 관리할까?어노테이션을 사용해서 빈을 생성하는 방법은 크게 두 가지가 있다. 과 을 사용해 빈 설정 정보 클래스 생성 와 이를 상속한 , 어노테이션등을 사용해 자바 컴포넌트 생성 은 어떻게 빈을 등록하고, 싱글톤으로 관리하는지 알아보자! @Configurat…
#springExceptionHandler와 ControllerAdvice를 알아보자콘솔 애플리케이션을 구현할 때, 우리는 예외를 핸들링하기 위해 try / catch문을 사용했습니다. 그러나 웹 애플리케이션에서는 예외 처리 방법이 조금 다릅니다. 이번 글에서는 스프링을 사용한 웹 애플리케이션 적용할 수 있는 예외 처리 방법인 와 …
#spring스프링 이벤트 적용기상황 스모디 프로젝트를 하면서 랭킹 기능을 도입하기로 했습니다. 랭킹 기능은 유저가 활동을 했을 때, 활동에 따라 랭킹 점수를 부여해야 합니다. 저희 서비스는 챌린지에 도전하고 매일 챌린지에 해당하는 활동을 인증하여 총 3회 인증 시 성공하는 사이클…
#sseSpring에서 Server-Sent-Events 구현하기웹 애플리케이션을 개발하다보면 클라이언트의 요청이 없어도 서버에서 데이터를 전달해줘야 하는 경우가 있습니다. 대표적으로 뉴스피드나 댓글 알림처럼 실시간으로 서버의 변경사항을 웹 브라우저에 갱신해줘야 하는 경우를 예로 들 수 있을 것 같습니다. 제가 …
#websocket웹 소켓에 대해 알아보자! - 테스트 편이 글은 웹 소켓으로 만든 채팅방을 어떻게 테스트할지 고민하는 독자를 위해 작성되었다. 웹 소켓은 어떻게 테스트하면 좋을까? Babble 팀의 데모데이 날 부스에서 질문을 받았다. “웹 소켓은 테스트를 어떻게 해야 할 지 감이 안 잡히는데 어떻게 구…
#databaseSpring Data Elasticsearch 설정 및 검색 기능 구현실습 Repository에서 코드를 확인할 수 있습니다. 1. Elasticsearch Elasticsearch는 Apache Lucene 기반의 Java 오픈소스 분산형 RESTful 검색 및 분석 엔진입니다. 방대한 양의 데이터에 대해 실시간으로…
#springPageable을 이용한 Pagination을 처리하는 다양한 방법Spring Data JPA에서 Pageable 를 활용한 Pagination 의 개념과 방법을 알아본다. Pageable을 활용한 Pagination이 무엇인가? 많은 게시판은 모든 글을 한 번에 보여주지 않고 페이지를 나눠 쪽수별로 제공한다. 정…
#springJPA와 연관관계JPA란? RDBMS를 사용하던 우리는 java를 이용한 객체지향 프로그래밍을 통해 객체 간 관계가 더욱 복잡해질수록 패러다임 불일치의 문제를 마주하게 된다. 상속과 참조가 쉬워 객체 간 관계를 쉽게 지정할 수 있는 것과 다르게 RDBMS의 테이블에…