분류 전체보기(193)
-
@AfterEach 그리고 @DirtiesContext (테스트 코드)
❎ 문제발생프로젝트 진행중 테스트 과정에서 개별 테스트는 통과하지만 통합테스트에서는 해당 테스트가 실패하는 현상이 발생하였다. 🆘 해결 과정 테스트 코드에 있는 id부분이 db가 초기화 될때마자 id는 초기화 되지않고 증가한 상태로 db가 만들어지기 때문에 해당 테스트 코드에서 test가 실패를 한 상황이다.통합테스트에서 테스트가 성공한 이유는 테스트 코드에서는 기본적으로 같은 애플리케이션 컨텍스트를 재활용하는 것이 일반적이기 때문이다.하지만 테스트가 실행될때마다 실제 db에 저장이 되면 안되기 때문에 @Transactional을 이용해서 해결을 할려고 했지만 해결이 되지 않아 @AfterEach를 사용해 각 테스트가 실행이 될때마다 db를 삭제할려고 시도하였지만, id가 1부터 시작하는것이 아니여서..
2024.07.17 -
Cannot convert existing claim value of type 'class java.lang.Integer' to desired type 'class java.lang.String'. 오류
❎ 문제발생프로젝트 진행중 비즈니스 로직을 검증하는 과정에서 해당 오류가 발생하였다. 🆘 해결 과정 디버그 결과 jwt에서 캐스팅 오류가 발생한것으로 보여진다. ✔ 해결 토큰을 생성할때 claim안에 id 정보를 저장하는게 아닌 subject로 넣어서 캐스팅 문제를 해결하였다. return Jwts.builder().subject(memberId.toString()).claims(claims).issuer(issuer) .expiration(Date(System.currentTimeMillis() + 3600 * 1000)).signWith(key).compact()
2024.07.16 -
check & require로 예외처리를 간단하게
✔오늘 배운 중요한 🔑 pointrequire 함수: 입력 값 검증에 적합하며, 조건이 만족되지 않을 경우 IllegalArgumentException을 던진다check 함수: 코드의 상태를 검증하는 데 적합하며, 조건이 만족되지 않을 경우 IllegalStateException을 던진다.🎯 오늘 배운 내용 check함수@kotlin.internal.InlineOnlypublic inline fun check(value: Boolean): Unit { contract { returns() implies value } check(value) { "Check failed." }}/** * Throws an [IllegalStateException] with the result..
2024.07.15 -
Proxy
✔오늘 배운 중요한 🔑 point프록시(Proxy)는 소프트웨어 디자인 패턴 중 하나로, 다른 객체에 대한 접근을 제어하거나 기능을 확장하기 위해 그 객체의 대리인 역할을 하는 객체이다.프록시가 대리인 역할을 하는 이유는 원래 객체에 대한 접근을 제어하거나 기능을 확장하는 데 있다.프록시는 원래 객체의 대리인으로 호출을 가로채서 부가 작업을 수행한다.🎯 오늘 배운 내용 프록시(Proxy)는 소프트웨어 디자인 패턴 중 하나로, 다른 객체에 대한 접근을 제어하거나 기능을 확장하기 위해 그 객체의 대리인 역할을 하는 객체이며 Spring Boot에서 프록시는 AOP, @Transactional 등에 사용이 된다. @Transactional 어노테이션은 Spring 프레임 워크에서 트랜잭션 관리에 사용이 된..
2024.07.14 -
Crawling
✔오늘 배운 중요한 🔑 point크롤링을 사용하여 데이터를 간단하게 가져와서 활용할 수 있지만 , 잦은 조회와 상업적 이용에는 문제가 발생할 수 있으니 조심해야한다.🎯 오늘 배운 내용 팀 프로젝트에서 진행하는 와인추천 서비스에서 와인에 관한 다양한 정보들을 가져오기 위해서 크롤링(Crawling)을 사용하기로 하였다.크롤링을 어떻게 사용하고 어떻게 동작하는지에 대해서 간단하게 알아보자 크롤링이란?프로그램이나 스크립트를 사용하여 웹사이트의 페이지를 자동으로 탐색하고 데이터를 수집하는 작업 크롤링을 사용하는 이유?포괄적인 데이터 수집, 시장 조사, 트랜드 분석 등 이미 있는 데이터를 가지고 활용을 하기 때문에 데이터 수집에 대한 시간을 절약할 수 있으며 해당 데이터를 활용하여 새로운 insight를 얻을..
2024.07.13 -
최종 프로젝트 (1일차)
🕛팀 프로젝트 (Sober)💡 프로젝트 기간: 2024-07-12~2024-08-22 프로젝트 목적와인21 같은 와인 정보 사이트를 크롤링 하여 해당 정보를 바탕으로 사용자의 선호 와인에 따라 적절한 와인을 추천해주는 와인 추천 서비스 API 설계를 목적으로 하며 최종적으로 배포 및 사용성 테스트 까지를 목표로 한다. 프로젝트 진행과정 오늘 한 일주제 정하기 BrainStorming필수 기능 EventStoriming 진행
2024.07.12