전체 글

꾸준히 성장하는 개발자 WONOW 입니다. 🤗
· TIL
@DataJpaTest @DisplayName("User Entity JPA 테스트") class UserTest { @Autowired private TestEntityManager entityManager; PasswordEncoder passwordEncoder = new BCryptPasswordEncoder(); @Test @DisplayName("유저 저장 시 아이디, 비밀번호, role이 일치해야 한다 / 비밀번호는 Encode 해서 저장") void 유저_저장_성공() { // Given String username = "username"; String rawPassword = "password"; String encodedPassword = passwordEncoder.encode(raw..
· TIL
@Test @DisplayName("댓글 수정 테스트") void 댓글_수정_테스트() throws Exception { //given mockUserSetup(); String content = "수정댓글"; Long commentId = 1L; CommentRequestDto requestDto = new CommentRequestDto(); requestDto.setContent(content); String requestJson = objectMapper.writeValueAsString(requestDto); CommentResponseDto responseDto = new CommentResponseDto(); responseDto.setAuthor("username"); responseDto..
· TIL
Before - After 모든 테스트 코드 단위 @BeforeAll 모든 테스트가 수행되기 전에 최초로 수행되는 메서드 static으로 만들어야 한다. @AfterAll 모든 테스트가 수행된 후에 마지막으로 수행되는 메서드 static으로 만들어야 한다. 각각의 테스트 코드 단위 @BeforeEach 각각의 테스트 코드가 실행되기 전에 수행되는 메서드 @AfterEach 각각의 테스트 코드가 실행된 후에 수행되는 메서드 테스트 반복하기 @RepeatTest 해당 테스트 메서드를 반복할 수 있다. value로 반복 값 설정가능 name 속성을 사용하여 네이밍 가능 RepetitionInfo를 사용하여 현재 반복 횟수 및 총 횟수 확인가능 @RepeatedTest(value = 5, name="테스트 {c..
· TIL
프로젝트를 하면서 계속 테스트 코드의 필요성을 간과했었다. 어차피 개인 프로젝트로 배포되지 않을 프로젝트이니, 이 단계에서는 테스트 코드는 작성할 필요가 없다고 생각했다. 근데 내가 회사에 들어가서 실제로 고객이 이용하는 서비스 개발을 맡게된다면? 고객 경험이 회사의 입장에서 정말 중요한데, 당연히 나와야 될 값이 안 나오거나, 버그가 있다면 회사의 이미지에 타격을 줄 수 있다. 근데 그게 신입 개발자인 나 때문이라면? 거기다 돈 문제까지 걸려있다면? 이런 테스트 코드 작성에 익숙해져야 ETA도 지키고 좀 더 완성도 높은 서비스를 개발 할 수 있을 것이다. Development: 개발 Unit Test(단위 테스트): 개발자 테스트 QA Testing: 블랙박스 테스팅 주로 QA 팀이 Production..
· TIL
오늘은 OAuth에 대한 간략한 작동 방식을 머릿속에 이미지화 했다. OAuth를 코드상으로 공부하기 전에 작동방식에 대해 무조건 이해하고 가라는 선배들의 조언들 때문에 정리했다. 이해를 못하고 시작하면 코드상으로 되게 이해하기 힘들다고 해서.. 어쨌든 이해 한 내용 시작!OAuth란?사용자들이 특정 서버에 바로 아이디를 보내지 않고 제 3의 서비스 (카카오톡이나, 구글 등)의 서버로 아이디를 보내서 특정 서버의 접근 권한을 부여할 수 있는, 접근 위임을 위한 개방형 표준이다. 사용자가 특정 서버에게 모든 권한을 넘기지 않고 사용자 대신 서비스를 이용할 수 있게 해주는 HTTP 기반의 보안 프로토콜이다. OAuth 이전의 방식은?OAuth 이전의 방식은 이런 방식으로 회원가입을 구현했다고 한다. Cons..
· TIL
개요 팀 프로젝트를 진행하며, 마지막 단계에 들어섰는데, 예외 처리를 하는 부분이었다. 예외 처리...를 할 건데 늘 하는 방식으로 예외 처리를 하기엔 너무 진부했다. try catch로 잡고 catch에서 리스폰스 엔티티에 body 채워서 클라이언트 반환... 좋다.. 좋은데.. 작업 방식이 너무 똑같아지고, 재미도 없었다. 그래서 어떤 방법이 좋을까? 고민했는데 첫 번째로 나온 의견이 Global Exception Handler 였다. 그리고 두 번째로 나온 의견이 Enum이었다. 사실 내가 말한 건데, 일부러 모르는 부분을 도전해보고 싶어서 핸들러랑 열거형 클래스를 말했다. 기존의 작업 방식 @DeleteMapping("/{reviewId}") public ResponseEntity deleteRe..
wonow_
wonow_