본문 바로가기

org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'io.github.yoonho.studytime.service.users.UsersServiceImpl' available 1. 증상spring에서 Rest api 유닛테스트 하려는데 계속 서비스 클래스를 불러오지 못한다는 오류가 발생했다. 2. 원인@SpringBootTest의 class인자로 어플리케이션의 메인 클래스를 넣어주어야 한다.저기에 UserApi.class를 넣었으니 당연히 그 안에 있는 서비스 빈이 autowired 될 수 없었다.생각해보면 당연한건데 이유를 못찾아서 한참 헤맸다; 3.에러 코드@RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = UsersApi.class) @WebAppConfiguration4.수정된 코드@RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = Stu..
Spring boot Rest controller 유닛테스트 tutorials point 에 기본적인 내용은 모두 수록되어 있다. 튜토리얼을 따라하면 정상적으로 테스트가 수행된다. [발생할 수 있는 오류]1. 특정 bean을 찾을 수 없다는 에러(해결책)ex) org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'io.github.yoonho.studytime.service.users.UsersServiceImpl' available
An illegal reflective access operation has occurred 1. 증상Groovy에 의존성을 지닌 모듈을 사용했더니 해당 메세지가 떴다. 2. 원인 jdk 11이 내는 경고였다. 스택오버플로우를 보니 다음과 같은 글이 있었다. Groovy is having to undergo significant changes to accommodate the Java 9 module system; this is why the version is labeled alpha-1. If you're new to Groovy and Java, start with Groovy 2.4 (and probably Java 8) to get acquainted before dealing with modules. -chrylis Dec 22 '17 at 5:46(https://stackoverfl..
TDD 개념 정리 TDD 개발 원칙Clean code that works오직 자동화된 테스트가 실패할 경우에만 새로운 코드를 작성한다.중복을 제거한다. 실패하는 테스트 코드를 한 번에 하나 이상 작성하지 않는다. TDD 장점ㆍ개발자의 방향을 잃지 않게 유지: 현재 자신의 개발 내용 및 진척 상황을 항상 살펴볼 수 있다.ㆍ품질 높은 소프트웨어 모듈 보유 : 간결한 코드 유지 가능ㆍ자동화된 단위 테스트 케이스 소유: 개발자가 필요한 시점에 언제든 수행할 수 있으며 시스템의 이상 유무를 바로 확인할 수 있다.ㆍ사용설명서 & 의사 소통의 수단: 작성된 테스트 케이스는 제품 코드 사용 설명서이자 동시에 다른 개발자와 소통하는 커뮤니케이션 통로가 된다. (제품 코드 API 사용 예시가 된다.)ㆍ설계 개선 : 테스트 케이스 작성 시 ..
3. 리스트 본 카테고리에 게시되는 글은 제가 편입을 준비하며 정리한 자료들입니다. 참조한 서적은 다음과 같습니다.1. C언어로 쉽게 풀어 쓴 자료구조. 천인국·공용해·하상호. 생능출판사2. 윤성우의 열혈 자료구조. 윤성우. 오렌지미디어 학부 편입 면접을 위해 준비한 자료이기 때문에 지나치게 긴 코드 또는 너무 깊은 내용은 배제했습니다.※ tip배열, 리스트 => 물리적 구조트리, 스택, 큐 => 논리적 구조 1. 리스트의 개념(1) 리스트ㆍ말 그대로 ‘목록’을 의미함. 데이터를 관리하기 쉽게 목록으로 형성해 추가 삭제 수정이 용이하도록 만든 자료구조.ㆍ배열을 이용한 구현, 연결 리스트 구현이 있음 (but 일반적으로 리스트 == 연결리스트임)(2) 배열 리스트 vs 연결 리스트배열 리스트연결 리스트최대 크기 고정적..
2. 배열, 구조체, 포인터 본 카테고리에 게시되는 글은 제가 편입을 준비하며 정리한 자료들입니다. 참조한 서적은 다음과 같습니다.1. C언어로 쉽게 풀어 쓴 자료구조. 천인국·공용해·하상호. 생능출판사2. 윤성우의 열혈 자료구조. 윤성우. 오렌지미디어 학부 편입 면접을 위해 준비한 자료이기 때문에 지나치게 긴 코드 또는 너무 깊은 내용은 배제했습니다.1. 배열ㆍ 기본적인 배열에 관한 내용은 C언어 정리 참조. 여기서는 배열의 응용을 다룸.(1) 배열의 응용 : 다항식(1)ㆍ n차 방정식인 경우 n+1크기의 배열을 선언하고, 각각의 인덱스를 차수로 삼아 모든 차수에 대한 계수 값을 저장하는 방법.ex) ㆍ 다항식 구조체 polynomial #define MAX_DEGREE 101 // 다항식이 가질 수 있는 최대 차수 100 + 1..
dto와 entity를 구분해서 구현한 이유 본 카테고리의 포스팅은 스터디 프로젝트를 진행하며 생각한 내용을 정리한 것입니다.스터디 프로젝트이며, 제가 나름대로 이해한 바를 적은 것이라 옳지 않은 정보가 있을 수 있습니다. 본 프로젝트에서는 dto객체와 entity(domain)객체를 구분하고 있다. dto 객체는 View layer와 데이터를 주고받을 때 사용된다.entity객체는 db layer와 데이터를 주고받을 때 사용된다. 이렇게 구분한 이유는 아래 글의 내용을 반영하고자 했기 때문이다.절대로 테이블과 매핑되는 Entity 클래스를 Request/ Response 클래스로 사용해서는 안됩니다. Entity 클래스는 가장 Core한 클래스라고 보시면 되는데요. 수많은 서비스 클래스나 비지니스 로직들이 Entity 클래스를 기준으로 동작합니다..
Advice를 이용한 예외 처리 - IdAlreadyExistExceptionpublic class IdAlreadyExistingException extends RuntimeException { public IdAlreadyExistingException(String userId){ super("user id \""+userId+"\" is already exist"); } } - UserExceptionAdvice@ControllerAdvice public class UsersExceptionAdvice { @ResponseBody @ExceptionHandler(IdAlreadyExistingException.class) @ResponseStatus(HttpStatus.BAD_REQUEST) String idAlreadyExist..