본문 바로가기

분류 전체보기

(56)
[13] mutsa-SNS 6일차 - (2) Admin 권한 부여 기능 추가 생각보다 test code의 작성이 빨리 끝나 도전과제인 admin 권한 부여에 도전해 보았다. ADMIN 회원으로 등급업하는 기능 초기 ADMIN 회원은 하나가 존재하고 ADMIN 회원은 일반회원의 권한을 ADMIN으로 승격시킬 수 있다. ADMIN 회원이 로그인 시 자신이 쓴 글이 아닌 글에 대해 수정, 삭제 가능 밑의 두가지 기능은 이미 진행하였기 때문에, USER 회원을 ADMIN으로 등급업 하는 기능을 추가하였다. 등급업이 가능한 유저는 ADMIN 유저이다. 1. Configuration SecurityConfig @EnableWebSecurity @Configuration @RequiredArgsConstructor //WebSecurityConfigurerAdapter 는 이후 SpringB..
[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..