본문 바로가기

분류 전체보기

(55)
[12] mutsa-SNS 6일차 - (1) Post 삭제, 수정 Test Code 추가 post 삭제와 수정에 대한 테스트 코드를 추가하였다. 두 method의 로직이 비슷하여 테스트 코드가 거의 비슷하여 비교적 편했다... 1. PostControllerTest @WebMvcTest(PostController.class) class PostControllerTest { @Autowired MockMvc mockMvc; @MockBean PostService postService; @Autowired ObjectMapper objectMapper; ... @Test @DisplayName("post 수정 성공") @WithMockUser void post_modify_success() throws Exception { PostModifyRequest postModifyRequest = Po..
[11] mutsa-SNS 5일차 - (2) Post 삭제, 수정 기능 추가 Post의 삭제와 수정 기능을 추가하였다. 해당 기능은 아래의 조건을 충족했을 때만 가능하다. JWT token을 갖고 있는 자 (로그인 한 유저) UserRole = ADMIN인 경우 모든 글에 대하여 삭제와 수정 가능 UserRole = USER인 경우 자신의 글에 대하여 삭제와 수정 가능 1. Configuration SecurityConfig @EnableWebSecurity @Configuration @RequiredArgsConstructor //WebSecurityConfigurerAdapter 는 이후 SpringBoot에서 잘 안쓰게 됨 public class SecurityConfig { ... @Bean public SecurityFilterChain securityFilterChai..
[10] mutsa-SNS 5일차 - (1) Post 조회 기능 TestCode 추가 post 조회 기능에 대한 testCode를 추가하였다. postController와 postService에 대하여 testCode를 추가하였다. 1. PostControllerTest @WebMvcTest(PostController.class) class PostControllerTest { @Autowired MockMvc mockMvc; @MockBean PostService postService; @Autowired ObjectMapper objectMapper; //포스트 상세 테스트 @Test @DisplayName("1번글 조회 성공") @WithMockUser void post_detail_success() throws Exception { PostDto postDto = PostDto.b..
[09] mutsa-SNS 4일차 - Post 조회 기능 추가 등록한 post를 조회하는 기능을 추가하였다. postId를 통해 1개의 글 조회 전체 Post 조회 1. Domain Post public class Post extends BaseEntity{ @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private int id; private String body; private String title; @ManyToOne(fetch = LAZY) @JoinColumn(name = "user_id") private User user; public PostDto toResponse() { return PostDto.builder() .id(this.getId()) .userName(this.getUser().g..
[02] 221223 게임 개발 일지 - 데미지 함수 버그 해결하기 (1) 데미지 함수를 만들고 있는 도중 버그가 참 많이 나고 있다. 하나하나씩 다시 살펴가면서 고치고 있다.... 1. 명중률 문제 1) 몬스터의 명중률이 0 이상인데 계속 miss가 떴다. 이는 명중률 처리 함수에서 몬스터 데미지 함수 밖의 hit 변수를 참조해야 되는데 local로 새로 선언해 버려 나는 문제였다... 항상 변수 선언할 때 조심하자.... 2) 명중률을 통해 miss 처리해도 데미지가 들어가는 버그가 있었다. 이는 명중률 적용 함수가 된 후 return을 통해 빠져나오지 못하고 그 뒤의 데미지 처리 함수가 실행되었던 것으로 밝혀졌다. 뒤의 데미지 처리 함수가 실행되지 않도록 명중률 외에도 전투 외 스킬사용, 무적 버프 등의 함수 처리에서 miss index를 추가하여, index에 대한 if..
[08] mutsa-SNS 3일차 - (3) JwtTokenFilter Exception 추가 낮에 JwtTokenFilter에서 Exception을 추가를 시도해 보았지만, AuthenticationEntryPoint를 추가하지 않아 오류가 났었다. 곰곰히 생각해보니, JwtTokenFilter에서 토큰이 없거나, 토큰이 잘못된 경우 Exception을 throw하여 json형식으로 view에 출력하는 것이 좋을 것 같아 추가해 보았다. 다만, Jwt token형식을 주어 token이 잘못되었을 때 testcode를 작성하고 싶었으나, 실패하였다. 이에 대해서는 좀 더 고민이 필요 할 듯 하다. 1. Configuration JwtTokenFilter @RequiredArgsConstructor @Slf4j public class JwtTokenFilter extends OncePerReques..
[07] mutsa-SNS 3일차 - (2) 글쓰기 기능 글쓰기 기능을 추가해 보았다. 글쓰는 기능은 유효한 토큰을 가지고 있는 유저만 사용 가능하게 하였다. 1. Configuration JwtTokenUtil public class JwtTokenUtil { private static Claims extractClaims(String token, String key) { return Jwts.parser().setSigningKey(key).parseClaimsJws(token).getBody(); } public static boolean isExpired(String token, String key) { Date expiredDate = extractClaims(token, key).getExpiration(); return expiredDate.bef..
[06] mutsa-SNS 3일차 - (1) User 수정 1. UserRole type 수정 post 작성 기능을 만들기 전 User Entity에서 userRole을 enum에서 string으로 변경했던 것이 생각이 났다. 그 때에는 계속 db에 enum의 name이 들어가지 않고, index가 들어갔었는데, 이는 User에서 column지정을 할 때 어노테이션을 붙여주지 않았기 때문으로 추정된다. @Enumerated(EnumType.STRING) private UserRole role; ERD에서 요청했던 사항은 userRole을 enum으로 설정하라 지시하였기 때문에, 그것이 맞는 것 같아 다시 enum으로 고쳐주었다. 그 과정에서 ADMIN과 USER를 구분하는 것을 int index로 enum에서의 순서대로 지정해 주었다. UserService in..