Til
2023.12.04 TIL - JaCoCo 플러그인 적용 (feat. 테스트 커버리지확인 플러그인)
내일배움 캠프 심화과제 추가 요건으로 테스트 커버리지 확인을 위한 JaCoCo 플러그인을 적용하기로 했습니다. https://mocha-coding.tistory.com/50 [JaCoCo] Springboot3.x.x 설정 및 커버리지 확인하기 심화과제 추가 요건 사항으로 Jacoco 를 적용하고 테스트 커버리지를 높이는 것이 있어 설정하고, 확인하는 방법을 쓰려고합니다. 우선 적용한 환경입니다. - SpringBoot 3.1.5 - Gradle: 8.4 JaCoCo 플러그 mocha-coding.tistory.com 테스트 코드를 작성하고 테스트 커버리지를 작성하면서 필요한 테스트에 대해 확인할 수 있었고 프로덕션 코드에서 추가해야될 방어로직이라던가 추가 기능들에 대해 다시 생각할 수 있는 기회가 생..
2023.12.01 TIL - 테스트 환경 (H2) 분리 중 만난 문제 (Feat. Security MvcRequestMatcher)
Repository 테스트 코드 작성을 위해 테스트 DB로 H2 를 사용하기 위해 설정을 하던 중 문제가 발생했다. 문제 application.yaml 을 환경 별로 분리하고 h2 관련 설정을 한 후 어플리케이션을 실행하니 다음과 같은 에러가 나온다. rg.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'org.springframework.security.config.annotation.web.configuration.WebSecurityConfiguration': Unsatisfied dependency expressed through method 'setFilterChains' par..
2023.11.30 TIL - 테스트의 범위..
내배캠 심화 개인 과제로 전에 했던 to-do-list 앱에 대한 계층별 단위 테스트 코드를 작성하고있다. 코드 작성 중 할 일 완료 처리 기능 에 대해 단위 테스트 코드를 작성하려니 해당 메소드 타입이 void 여서 어떻게 테스트를 작성해야할지 고민을 했다. 고민한 문제 public void completeToDo(Long toDoId, MemberDto memberDto) { ToDo toDo = toDoRepository.findById(toDoId) // 완료처리할 할 일 Find .orElseThrow(ToDoNotFoundException::new); //권한 검증 checkMember(toDo.getMember().getId(), memberDto.id(), ACCESS_DENIED_MESS..
2023.11.29 TIL - 단위테스트와 Mockito
내배캠 심화과제로 저번에 했던 개인과제 프로젝트인 to-do-list 앱에 대한 테스트코드를 작성을 해야한다. 단위 테스트와 통합 테스트 코드를 작성해야하는데, 우선 단위 테스트 코드를 작성하기로 했다. 테스트코드를 작성하기 전, 단위테스트가 무엇인지와 단위 테스트를 할 수 있게 도와주는 Mockito라이브러리에 대해 정리를 하려한다. Unit Test (단위 테스트) 란? 소스코드의 특정 모듈(프로그램 내 하나의 기능을 부르는 말)이 의도된 대로 정확히 작동하는지 검증하는 절차이며, 함수, 메서드, 개별 코드 같은 작은 단위에 대해 테스트 케이스(Test Case)로 분리하고 테스트 코드를 작성하여 테스트하는 것을 말한다. SpringMVC 기준으로 쉽게 말하자면 각 레이어 (Controller, Se..
팀 프로젝트 ( 블로그 뉴스피드) - KPT 회고
내배캠 Spring_3기 A팀 3조 팀명: 봄봄봄 일시: 2023.11.21 ~ 2023.11.27 팀원 : 정성호, 정유진, 김민중 회고 Keep 소통 중심의 프로젝트를 진행해서 좋았다. 프로젝트 진행 시 모르는 부분에 대해서 바로바로 피드백을 해결하는 과정이 매우 순조로웠다. 글로벌 exception 을 통해 예외 처리 하는 부분이 좋았다. 각자 Domain 을 하나씩 맡아서 진행하니 구조적으로 진행이 빨라져서 좋았다. 설계 ~ 배포까지 프로젝트의 모든 단계를 협업을 통해 성공적으로 완료해서 좋았다. 적절한 쉬는 시간 Problem 시도때도 없이 commit 날려 헤더가 어디있는지 모르는 상황. 정리하고 올리기 사고하지 않기, 유연한 남탓 - 구현은 가볍게, 테스트는 무겁게 오늘 할 일을 내일로 미루..
2023.11.22 TIL - 엔티티를 저장할 때, 연관관계 엔티티 저장 방법에 대해서 (feat. referenceBy)
오늘 한 것 팀 프로젝트 오늘 내가 맡은 역할 ( 예외 응답 공통 포맷, 회원 API, 인증 인가 처리 (Jwt)를 구현하였다.. 구현하면서 팀원들의 질문도 해소하는 시간을 가지다, 게시글 API 를 맡던 팀원의 질문에 답을하면서 생기던 고민이 있어 글에 정리하고자 합니다. 고민 고민이 되었던 부분은 다음과 같습니다. 게시글(Post)를 저장할 때, Post가 참조하는 Member(회원) 엔티티를 넣어주어야합니다. ex Post post = new Post(postRequest, member) postRepository.save(post) 여기서 Member 엔티티가 문제입니다. 현재 구조상 인증객체가 가지고있는 회원 정보는 Dto로 구성하야 만들었는데, 이 DTO로 임시 Entity를 만들어야 하는지..
2023.11.21 TIL
오늘 한 것 팀 프로젝트 팀 프로젝트 오늘부터 팀프로젝트 발제가 시작됐다. 이번 팀프로젝트는 주어진 시간이 얼마 없어서 오늘 하루종일 기획, 설계하는 시간을 가졌다.. 이렇게 이쁘게 팀 소개, 팀원 소개도적고 ERD, API 명세, 와이어프레임 등 기초 설계 산출물들을 작성했다. 후.. 기초 설계는 끝냈고 오늘 자기전까지 프로젝트 환경 구성만 해놔야겠다..
2023.11.17 TIL
오늘 한 것 알고리즘 스터디 개인 프로젝트 과제 알고리즘 스터디 오늘도 알고리즘 스터디를 진행했다. 프로그래머스 - 달리기 경주 문제이다. 계속 문제를 풀다보니 이제 점점 풀 수 있게 되서 다행이다. 풀이는 아래에 포스팅 해놓았다. 개인 프로젝트 과제 이어서 프로젝트 과제를 진행중이다. 오늘은 밀린 강의를 듣느라 많이 진행은 못하고 회원 API와 할 일 생성 API를 구현했다. 구현하면서 dto의 역할과 RESTFul한 url 에 대해 고민을 많이했다. 다음 주 월요일까지 3일 정도남았는데.. 주말에 열심히 해야겠다.