전체 글
2023.12.06 TIL - 스프링 시큐리티 RequestMatchers
오늘 한 것 팀 프로젝트 팀 프로젝트 오늘은 어제 작성한 일정대로 시큐리티 인증/인가, 로그인, 회원가입을 구현했다. 전 프로젝트 때도 맡았던 역할이라 구현하는데 어려움은 없었지만 코드 병합 후 다른 팀원이 사용하면서 문제가 하나 발생했다. 시큐리티에서 url 을 검사하는 requestMathcers 에 내가 사용하는 api 만등록을 해두었었다. .requestMatchers(PathRequest.toStaticResources().atCommonLocations()).permitAll() .requestMatchers(PathRequest.toH2Console()).permitAll() .requestMatchers(this.whiteListMapToMvcRequestMatchers(mvc)).perm..
2023.12.05 TIL - 팀 프로젝트 시작
오늘 한 것 팀 프로젝트 S.A 작성 팀 프로젝트 오늘 부터 팀프로젝트를 시작했다. 팀 프로젝트 주제는 백오피스로 SNS, 배달, 익명 커뮤니티를 주제로 개발을 하고 서비스 관리를 위한 백오피스까지 구현하는 것이다. 프로젝트 발제 후 팀원들과 같이 프로젝트 S.A를 작성했다. 꽤나 많은 요구사항이 있어 프로젝트 설계를 하는데 오래 걸렸다. 그래도 기본적인 설계는 잘 잡고 들어가는 것 같아서 만족스럽다. 이제 다시 9 to 9에서 9 to 4 로 돌아갈 때가 됐다. 이번 프로젝트도 맡은 역할에 충실히 하고 팀원들과 잘 협업해서 프로젝트를 잘 마쳤으면 좋겠다. 프로젝트 소개는 따로 포스팅해서 올립니다. 2023.12.05 - [프로젝트] - [프로젝트] ipv4 조 - 'X보다 더 나은 Y' ( thread..
[프로젝트] ipv4 조 - 'X보다 더 나은 Y' ( threads, 참고하여 sns + 백오피스 만들기 프로젝트)
프로젝트 소개 SNS + 백 오피스 구현을 경험하기 위한 프로젝트 입니다. Threads, X를 벤치마킹하여 필요한 필수 요구사항 및 추가 요구사항을 구현합니다. 프로젝트 설계 더보기 기술 스택 - SpringBoot 3.1.5 - Java 17 - Gradle - Jpa - MySQL 8.4 - H2 ERD 와이어프레임 API 명세 & S.A 노션 https://teamsparta.notion.site/IPv4-218de468d40644bab98a9c20760ea6b6 IPv4 A new tool for teams & individuals that blends everyday work apps into one. teamsparta.notion.site 구현 기능 더보기 필수 요구사항 사용자 인증 기능 ..
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 테스트 코드를 작성하고 테스트 커버리지를 작성하면서 필요한 테스트에 대해 확인할 수 있었고 프로덕션 코드에서 추가해야될 방어로직이라던가 추가 기능들에 대해 다시 생각할 수 있는 기회가 생..
[JaCoCo] Springboot3.x.x 설정 및 커버리지 확인하기
심화과제 추가 요건 사항으로 Jacoco 를 적용하고 테스트 커버리지를 높이는 것이 있어 설정하고, 확인하는 방법을 쓰려고합니다. 우선 적용한 환경입니다. - SpringBoot 3.1.5 - Gradle: 8.4 JaCoCo 플러그인 추가하기 build.gradle에서 JaCoCo 플러그인을 추가하고 설정합니다. plugins { id 'jacoco' ... 다른 플러그인 id } jacoco { // JaCoCo 버전 toolVersion = "0.8.9" // 테스트결과 리포트를 저장할 경로 변경 // default는 "${project.reporting.baseDir}/jacoco" // reportsDir = file("$buildDir/customJacocoReportDir") } Gradle..
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..