Spring(6)
-
[JPA] 소프트딜리트를 구현하자
개요현재 진행 중인 프로젝트에서 유저 회원 탈퇴를 소프트딜리트로 구현을 하기로 하여 만들어보았다.여러 생각을 하면서 만들다보니 소스코드가 깔끔하지는 않은데 글을 적으면서 정리를 해보기로 하였다. 소프트딜리트의 원리소프트 딜리트는 데이터를 실제로 삭제하지 않고, deleted 같은 플래그 값을 true로 바꿔서 논리적으로 삭제를 하는 방식이다.조회시 과거에는 @Where 어노테이션을 사용하였지만, 현재는 @SQLRestriction 어노테이션을 사용하여 구현한다.JPA에서는 @SQLDelete, @Where 어노테이션 등을 사용해 자동화할 수 있었지만, 최신 버전에서는 필터링 로직 구현하는 방식이 권장된다. 이번에는 간단하게 보여주기 위해 프로젝트 일부를 잘라오면서, 단순하게 구현을 하도록 하겠다. 소..
2025.07.27 -
[Spring] 트러블 슈팅 @RequestParam name없으면 생기는 문제
개요과제를 진행을 하면서 공부하는 환경을 바꿔야겠다는 생각이 들어서 사무실로 옮기게 되었다. MainPC를 사무실로 옮기고, Mini PC로 셋팅을 바꾸었다. 그러면서 생긴 문제가 있는데 똑같은 프로젝트가 각 다른 PC환경에서 생기는 문제를 서술해보겠다. 원인@GetMapping("/todos")public ResponseEntity> getTodos( @RequestParam(name = "page", required = false, defaultValue = "1") int page, @RequestParam(name = "size", required = false, defaultValue = "10") int size, @RequestParam(name = "..
2025.03.21 -
[Spring] 테스트 코드를 작성을 해보자.
개요 GitHub - mixedsider/spring-advanced: [내배캠] 심화 주차 개인 과제[내배캠] 심화 주차 개인 과제. Contribute to mixedsider/spring-advanced development by creating an account on GitHub.github.com 내배캠의 Lv.6 도전과제로 테스트 커버리지를 채우는 과제 내용이 있었다.하면서 얻은 느낀점과 아쉬운점, 방법 등에 대해서 서술해보고자 한다. 테스트 코드란테스트 코드(Test code)는 소프트웨어의 기능과 동작을 테스트하는 데 사용되는 코드이다. 잘 작성된 테스트 코드는 예상치 못한 문제를 미리 발견을 하게 해주고, 코드 수정이 필요한 상황에서 유연하고 안정적인 대응을 할 수 있다.즉, 서비..
2025.02.27 -
[Spring] Filter와 Interceptor에 대해서 알아보고 사용해보자.
개요이번 과제에서 Spring Interceptor 를 사용을 하게 되면서 Spring 의 흐름은 어떻게 되는지 알게되어서 글을 남긴다. 기본 배경 가장 먼저 흐름에 대해서 알아야한다고 생각을 한다.스프링의 영역은 Dispatcher Servlet 부터 시작을 한다. 그 Spring MVC 에서 나오는 그 Dispatcher Servlet이 맞다. 그리고 Filter 부터 Controller 까지 같은 Servlet Request, Servlet Response 를 사용을 한다. 다음에 나오는 내용들 까지 전부 설명을 하면 좋겠지만, 오늘은 Filter 와 Interceptor의 차이까지만 알아보고자 한다. Filter vs Interceptor FilterInterceptor작동 위치Tomcat..
2025.02.26 -
[Spring] SimpleJdbcInsert로 컬럼 지정하기
개요이번 내배캠에서 과제로 일정 관리 앱을 만들면서 생겼던 트러블에 대해서 이야기를 해보자. 배경가장 먼저 데이터를 삽입을 할 때 자동으로 생성시간과 수정 시간에 대해서 자동으로 입력을 해주는 방법에 대해서 찾아보았다. CREATE TABLE schedule ( id BIGINT AUTO_INCREMENT PRIMARY KEY COMMENT '스케줄 ID', todo VARCHAR(200) NOT NULL COMMENT '할일', author VARCHAR(50) NOT NULL COMMENT '작성자', password VARCHAR(15) NOT NULL COMMENT '비밀번호', createdAt TIMESTAMP DEFAULT CURRENT_TIMESTAMP COMM..
2025.02.04 -
[Spring] Swagger 사용방법에 대해 간단하게.araboza
개요백엔드 개발자는 여러 프로젝트를 진행을 하면서 프론트엔드 개발자 혹은 PM등 여러 사람과 같이 협업을 진행을 하게 된다.그럴 때 API 개요, 설명, 사용방법, 전달해야되는 데이터 등에 대해서 설명을 해주어야한다.그래서 API Docs을 정리를 해둔다. 여러가지 API 문서를 정리해주는 툴이 있다. 대표적으로 아래와 같이 있다.gitBookSpring REST DocsSwagger하지만 이번에 알아볼 Swagger는 API를 자동으로 문서화를 진행을 해준다.가장 이번에는 간단하게 적용만 하는 방법에 대해서 알아볼 것이다. 설치 과정0. 블로그 주인장 진행 환경ubuntu 22.04 LTSIntellj IDEA Ultimate Edition 2024.3.1.1openJDK 21.0.2SpringBoo..
2025.01.09