본문 바로가기

스프링 스터디

(9)
Controller 통합 테스트 코드 작성 / 2022-02-18 그동안 작성한 기능들을 테스트하기 위한 테스트 코드를 작성하였다. 기능 - 에러를 세트로 구현한다. 테스트를 위해 필요한 기본 세팅이다. MockMvc mvc; @Autowired private WebApplicationContext context; @BeforeEach public void setUp(){ mvc= MockMvcBuilders .webAppContextSetup(context) .addFilters(new CharacterEncodingFilter("UTF-8", true)) .build(); } 게시글 생성 @Test public void 게시글_생성() throws Exception{ PostRequestDto postRequestDto = new PostRequestDto("tes..
게시글 삭제 기능 및 수정 기능 구현 / 2022-02-17 게시글의 id를 검색하여 삭제하거나 수정하는 기능을 구현한다. 게시글 삭제 게시글 삭제 기능은 먼저 게시글의 id를 url를 통해 받는다. 받은 id를 검색하여 없으면 에러를 띄워주고, 있으면 해당되는 게시글을 삭제한다. controller.PostYwooController @DeleteMapping("/{id}") public void deletePost(@PathVariable long id){ postYwooService.deletePost(id); } service.post.PostYwooService @Transactional public void deletePost(long id){ postYwooRepository.findById(id).orElseThrow(()->{ throw new Ap..
에러 고치기 한바탕 [Error] Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is java.lang.NullPointerException] with root cause java.lang.NullPointerException: null at com.second.spring_study.service.PostYwooService.createBoards(PostYwooService.java:23) ~[classes/:na] at com.second.spring_study.service.PostYwooService$$FastClassBy..
게시글 추가 기능 구현 / 2022-02-15 유저가 게시글을 작성하면 해당 유저를 확인하고 게시글을 올립니다. dto.request.PostRequestDto package com.second.spring_study.dto.request.ywoo; import lombok.AccessLevel; import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; import javax.validation.constraints.NotNull; @Getter @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) public class PostRequestDto { @NotNull Strin..
1주차 스프링 스터디 회고록 프로젝트라고 하기엔 소규모이지만 처음으로 제대로 된 스터디를 진행해봤기에 회고를 통해 경험한 것을 기록해보고자 합니다. 단순히 느낀 점을 쓰는 게 아닌 제대로 된 '프로젝트 회고'를 작성해보기 위해 KPT 방법을 사용하여 작성합니다. Keep : 유지 스프링 스터디를 진행하면서 좋았던 점, 기억해야할 점을 유지합니다. Problem : 문제 기능 구현하던 중 생겼던 이슈나 제대로 해보고 싶은 점을 파악합니다. Try : 시도 파악한 문제점을 어떻게 해결하고자 했는지 기록합니다. 2022-02-04 ~ 2022-02-11 까지 진행된 '스프링으로 CRUD 구현하기' 프로젝트에 대한 회고입니다. 🔗 : 프로젝트 보러가기 시작한 계기 기존에 같은 반 친구들끼리 코딩테스트와 같은 공부를 같이 하기 위해 스터디를..
Controller 전역 예외 처리(Custom Exception) / 2022-02-10 사용자의 id가 없을 경우를 대비해 에러를 만들어서 멘트를 보여주자!고 하다가 다른 여러 개의 에러들을 custom 해봤다. 똑같은 id를 가진 유저를 생성하려는 경우 없는 id를 가진 유저를 찾는 경우 크게 두가지로 나누어졌다. 그외 나머지 에러는 handler를 통해 처리했다. exception.ErrorCodeEnum package com.second.spring_study.exception.ywoo; import lombok.AllArgsConstructor; import lombok.Getter; import org.springframework.http.HttpStatus; @Getter @AllArgsConstructor public enum ErrorCodeEnum { USER_NOT_FOU..
회원 정보 수정 / 2022-02-09 회원의 id를 템플릿 변수로 받고, 변경할 이름과 비밀번호를 body로 받아 수정했다. RequestBody를 통해 들어오는 데이터의 정보 형식을 맞추기 위해 dto를 작성했다. UserRequestUpdateDto package com.second.spring_study.dto.request.ywoo; import com.sun.istack.NotNull; import lombok.*; @Getter @AllArgsConstructor @NoArgsConstructor(access = AccessLevel.PROTECTED) public class UserRequestUpdateDto { @NotNull String user_password; @NotNull String user_name; } 형식 {..
회원 전체 조회 및 상세 조회 / 2022-02-08 User에 관한 정보를 Response 해줄 때 형식을 맞추기 위해 DTO를 사용하였다. UserResponseDto @Builder @Getter public class UserResponseDto { private Long id; private String user_id; private String user_name; private String user_password; //of를 사용해 entity to of public static UserResponseDto of(UserYwoo userYwoo){ return UserResponseDto.builder() .id(userYwoo.getId()) .user_id(userYwoo.getUser_id()) .user_name(userYwoo.getU..