일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 | 31 |
- 달빛캠퍼스
- 프로그래머스
- 노마드코더
- React.js
- 달빛클럽
- dfs
- React
- 달빛클럽1기
- 달빛클럽 1기
- 리액트
- 경제공부
- SWEA
- HashMap
- Java
- Array
- programmers
- 카카오블라인드코딩테스트
- BOJ
- 알고리즘
- SoftwareExpertAcademy
- ReactJS로 영화 웹 서비스 만들기
- Stack
- 완전탐색
- 노마드코더 강의
- JPA
- 인플레이션에서 살아남기
- 재귀
- 백준
- 자바
- Algorithm
- Today
- Total
th42500의 TIL

❓ 발생한 문제 좋아요 기능 테스트 진행 중 Result에 Null 값이 담겨 테스트에 실패하게 되었다. 🔎 왜 Null값이 담길까? 원인을 알아보고자 디버깅을 통해 RecipeRestControllerTest.java 와 RecipeRestController.java 에서의 userName이 다르다는 것을 확인할 수 있었다. 💡 해결 방법 @WithMockUser 에 테스트하고자 하는 userName을 설정해줌으로써 해결할 수 있었다. package com.woowahan.recipe.controller.api; import com.fasterxml.jackson.databind.ObjectMapper; import com.woowahan.recipe.domain.dto.recipeDto.*; impo..

❓ 발생한 문제 이번 팀 프로젝트에서 Infra 담당을 맡게 되어 배포를 하게 되었다. CI/CD를 구축한 후 당연히 배포가 잘 될것이라 생각했으나 EC2 주소를 통해 들어가 보았을 때 서비스가 띄워지지 않았다. Docker Container를 조회한 결과 Exit(1) 상태에서 컨테이너가 실행되지 않고 바로 종료되버리는 것을 확인할 수 있었다. 🔎 왜 발생했을까? 원인을 찾아보고자 컨테이너 로그를 조회해보았다. docker logs [container_id] 확인 결과, UnsaupportedClassVersionError에러가 발생한 것을 확인할 수 있었다. 세부 설명으로는 프로젝트 JarLauncher(Jar 파일을 실행하기 위한 클래스)는 최신 버전(version 61.0)에 의해 컴파일 되었지만..

발생한 오류 포스트 및 댓글 삭제 시 DB에서 완전히 제거되는 것이 아닌 deleteAt에 삭제 시간을 기록하여 삭제된 것처럼 보이는 Soft Delete 방식을 이용하였다. Talend API Tester를 이용한 Test를 하던 중 각 시간 데이터를 담는 변수들에 @JsonFormat 을 이용한 Asia/Seoul timeZone 설정을 해주었음에도 삭제 시 UTC Timezone으로 기록이 되는 것을 확인하였다. 원인으로는 Soft Delete 실행 시 UPDATE post SET deleted_at = CURRENT_TIMESTAMP, updated_at = CURRENT_TIMESTAMP WHERE id = ? 쿼리문이 실행되며 내가 설정한 Timezone으로 들어가지지 않는다는 것을 알게 되었..

프로젝트 발표 시간에 다른 교육생들의 발표를 듣다가 @Nested라는 Annotation을 처음 알게되어 직접 적용해보고 블로그 글을 작성하게 되었다. @Nested Test 란? 테스트 작성자에게 여러 테스트 그룹 간의 관계를 표현할 수 있도록 해주는 Annotation import org.junit.jupiter.api에서 제공하는 기능 외부 테스트의 설정 코드가 내부 테스트가 실행되기 전에 실행되므로 모든 테스트를 독립적으로 실행할 수 있음 ⚠ @BeforeAll 또는 @AfterAll 를 제외한 중첩 클래스 (내부 클래스)만 @Nested 테스트 클래스로 사용 가능 👉 Java16 이전 버전에서는 내부 클래스에서 static을 허용하지 않기 때문 👉 @TestInstance(Lifecycle.PE..

🛠 개발 환경 Editor : Intellij Ultimate Deb Tool : SpringBoot 2.7.5 JDK : JAVA 11 Build : Gradle 6.8 Server : AWS EC2 DevOps : Docker DB : MySql 8.0 Library : SpringBoot Web, MySQL, Spring Data JPA, Lombok, Spring Security ❓ 페이지 처리 시 Orderby 쿼리문이 2번 날라간다❓ Pageable을 이용한 페이징 처리 시 Orderby 쿼리문이 2번 날라가는 것을 확인하였고, 이는 비효율적이라는 생각이 들었다. 그 이유로는 Pageable API의 `@pageDefault` 어노테이션과 JPA 쿼리 메서드를 이용한 Orderby 모두를 실행..

📖 Given-When-Then 패턴이란? 테스트 코드를 표현하는 방식 중 하나로, TDD(Test-Driven Development; 테스트 주도 개발)에서 파생된 BDD(Behavior-Driven-Development; 행위 주도 개발)를 통해 탄생한 테스트 접근 방식 1️⃣ Given 테스트 수행 전 테스트에 필요한 환경 설정을 하는 단계로, 테스트에 필요한 변수 정의 또는 Mock객체를 활용한 특정 상황에 대한 행동 정의를 하는 단계 2️⃣ When 테스트의 목적을 보여주는 단계로, 실제 테스트 코드를 포함하여 테스트를 통한 결괏값을 가져오는 단계 3️⃣ Then 테스트 결과를 검증하는 단계로, When 단계 또는 테스트를 통해 나온 결과 중 검증이 필요한 부분에 대해 검증 📌 given()과 ..