# Springboot

[SpringBoot] Swagger
springdoc-openapi 와 springfox-swagger 두 종류가 있는데, 현재 2023년 3월까지도 업데이트가 되고 있는 springdoc-openapi 를 사용하기로 하자.build.gradleapplication.ymlConfiguration사용 예시
Spring Boot Scheduler 사용 - 특정 기간이 지난 데이터 자동 삭제
현재 진행하고 있는 프로젝트에 데이터를 생성한 후에 특정 시간이 지나면 자동으로 데이터를 삭제하는 로직을 구현했어야 했다.어떻게 해야할 지 고민하다가 Spring Scheduler 라는 것을 알게 되었다.먼저, Spring Scheduler를 사용하려면 @EnableS
org.h2.jdbc.JdbcSQLNonTransientConnectionException: Database may be already in use:
테스트 코드를 실행하였을 때 발생한 에러이다. 로컬 파일을 사용하여서 h2 database를 접근할 때 로컬 서버가 구동중이라면 중복실행이 되지 않는다.따라서 로컬 서버를 중지하고 테스트 코드를 실행하면 잘 작동한다.
엔티티 설계
무분별한 Setter 사용은 객체의 일관성을 유지하기 힘들게 합니다. 때문에 new 생성자(new Member())를 사용할 수 없도록 접근 제어를 PROTECTED로 설정해주었습니다. 객체의 일관성을 유지할 수 있어야 프로그램의 유지 보수성을 끌어 올릴 수 있기 때문
Springboot Exception Handling - 예외처리 방법
통일된 Response 형식을 세팅한 후에, 해야 하는 건 바로 통일된 예외 처리이다.
Page처리에 대하여(2)
저번 게시글에서 Paging처리에 대해 알게된 내용을 추가적으로 정리하고 한다. Page객체로 받기 위해 우리는 메소드의 return값을 PageImpl()라는 형태로 리턴해준다. >PageImpl은 Page객체를 Custom해주는 클래스로 Page Interface를

[SpringBoot] WebSocket, STOMP - 실시간 채팅⑤, Service
[SpringBoot] WebSocket, STOMP - 실시간 채팅⑤, Service

Swagger/Springdoc + SpringBoot 설정
졸업프로젝트를 진행하면서 공부한 내용 정리! 프로젝트를 진행하면서 swagger를 통해 api명세서를 만들기로 하였다! 이번에 swagger를 처음 사용해보아서 사용법보다 설정 측면?에서 버벅거린 느낌이 있었다. 그래서 그런 사람들이 있다면 이 글이 도움이 되었으

JPA hibernate 설정
졸업프로젝트create : 실행될 때 기존 테이블을 삭제 + 새로 생성 (DROP + CREATE)create-drop : CREATE 속성에 어플리케이션을 종료할 때 생성한 DDL을 제거하는 옵션 추가 (DROP + CREATE + DROP)update :

[SpringBoot] WebSocket, STOMP - 실시간 채팅④, Repository, DAO
[SpringBoot] WebSocket, STOMP - 실시간 채팅④, Repository, DAO

[SpringBoot] WebSocket, STOMP - 실시간 채팅③, DTO
[SpringBoot] WebSocket, STOMP - 실시간 채팅③, DTO

Spring Data JPA 벌크 연산 사용(soft delete)
이번 프로젝트를 사용하면서 데이터를 삭제하는 경우 soft delete 방법을 사용했다. soft delete를 사용하면서 데이터 삭제와 수정 시 벌크 연산을 많이 사용하게 됐다. 이번에는 어떻게 벌크 연산을 사용했고 어떤 어려운 점이 있었는지 정리해 보려고 한다.

NoOffset?무한스크롤 구현하기!
페이징 처리란?? 무한 스크롤과 NoOffset에 대해 알아보기 전에 페이징 처리에 대해 간단히 짚어가보자!!! 페이징처리란 흔히 우리가 게시판이나 검색엔진에서 볼 수 있는 페이지를 넘어가면서 보는 것을 구현한 것이다. 즉 수 많은 데이터를 한 페이지내에 보여줄 수 없

[SpringBoot] WebSocket, STOMP - 실시간 채팅②, Entity, domain
[SpringBoot] WebSocket, STOMP - 실시간 채팅②, Entity, domain

[SpringBoot] WebSocket, STOMP - 실시간 채팅①, 정의 및 구조
[SpringBoot] WebSocket, STOMP - 실시간 채팅①, 정의 및 구조
[Spring 프로젝트] step 3 요구사항 및 피드백 정리
"Members" 탭 개발회원 수에 제한 X > 성능 저하 주의 (쿼리 튜닝, 스키마 설계, 페이징 등)특정 기준 활용한 필터링 기능findAllUsers와 같이 해당하는 모든 객체를 맵핑해야하는 메서드는 for loop보다 stream이 용이하다NullPointerE