
[스프링] 프로젝트 실행 시 LoggingFailureAnalysisReporter 에러 해결
2022. 8. 29. 23:57
스프링
처음 스프링 프로젝트를 생성하고 어플리케이션을 실행했을 때 에러가 뜨는 경우가 있다. 프로젝트를 다시 만들어봐도 똑같다. 아무것도 건들지 않았는데! 개발을 하다보면 에러만큼 속 썩이는게 없다. 하지만 이 경우엔 미치도록 억울한 만큼 해결 방법은 아주 간단하니 걱정하지 않으셔도 괜찮다. 해결법 /src/main/recources 위치에 있는 application.properties 파일을 열고 아래 코드를 복사해서 붙여넣자. spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration 어플리케이션 다시 실행해보면 정상적으로 작동할 것이다. 끝

[Spring Boot] Spring Data JPA - domain과 Entity 개념 / Entity에서 Dto 변환
2022. 8. 24. 23:05
스프링
Entity를 공부하기 전에 먼저 도메인의 개념이 있어야 한다. 도메인을 잘 모르시는 분들은 더보기를 눌러 아래 글을 먼저 보시길 권장드립니다. 더보기 도메인(domian)의 사전적 의미는 영토, 분야, 영역, 범위 따위를 뜻한다. 소프트웨어 공학에서 도메인 모델이란, 특정 문제와 관련된 정보들을 저장하는 개념 모델을 말한다. 이 역시 어떤 "영역"(테이블)을 의미한다고 볼 수 있는데, 의미 자체가 다소 추상적이기 때문에 예를 들어보겠다. 우리가 계좌 관련 웹프로젝트를 진행한다고 했을 때 계좌 목록, 거래 목록 등을 저장해야 한다. 계좌 목록에는 계좌의 소유주, 계좌 번호, 현재 잔액, 생성 일자 등이 기록될 것이다. 거래 목록에도 비슷하게 금융 관련된 정보들이 기록될 것이다. 프로그래밍에서는 이를 데이..

[스프링] JUnit 테스트 시 반복되는 NullPointerException 오류 해결
2022. 8. 13. 23:08
스프링
이클립스로 JUnit 테스트를 돌릴 때 NullPointerException 에러가 발생할 수 있다. 사실 정말 간단하게 해결 가능한데 등잔 밑이 어둡다고 놓치게 되면 멘붕이 올 수 있다. (내가 그랬기에 올리는 글이다) 무엇이 잘못된지 보이는가? 클래스 이름 위에 @SpringBootTest 어노테이션이 빠져서 발생한 문제이다. 추가 후 다시 돌려보자. 깔끔하게 성공! 끝

[JPA] @Entity / @Table / @Column / @Id 간단 개념만
2022. 8. 7. 19:58
스프링/JPA
import javax.persistence.*; @Entity @Table(name = "Account_Table") public class Account { @Id private Long id; @Column(name = "account_number") private String accountNumber; } @Entity 클래스를 엔티티로 설정한다. 즉, DB의 테이블로 간주한다. 해당 클래스 내에 선언된 객체들은 테이블에서 필드를 의미한다. 테이블 이름은 클래스명이 디폴트값이다. @Table 클래스 명과 다른 이름으로 테이블 이름을 지정할 수 있다. @Id 테이블의 primary key 컬럼으로 지정한다. @Column 객체명과 다른 이름으로 필드명을 지정할 수 있다. 괄호 안에 다음과 같은 것들..

[스프링] ExceptionHandler - 예외처리
2022. 8. 1. 16:11
스프링
ExceptionHandler 자바에서는 예외를 처리하기 위한 try catch 구문이 있다. 하지만, 우리가 스프링으로 넘어와서 웹 관련 프로젝트를 하게되면 예외를 처리해야되는 부분이 굉장히 많아질 수 있다. 그 경우, 모든 예외 상황마다 일일이 try와 catch로 감쌀 것인가? 그렇게되면 코드의 가독성 나쁠 수 있다. 스프링에서는 이러한 문제를 해결하기 위한 예외처리 방법이 있다. 어노테이션의 이름부터 ExceptionHandler, 예외처리다. ExceptionHandler 어노테이션을 사용하면 @Controller 혹은 @RestController로 지정된 클래스에서 특정 예외상황마다 처리방식을 우리가 지정해 줄 수 있다. 만약, 여기저기 흩어진 IllegalAccessException 예외가 ..

[스프링] Http 요청을 매핑하여 데이터 받기
2022. 7. 31. 18:28
스프링
Mapping 스프링 MVC 컨트롤 메서드를 선언하기 위한 어노테이션 몇 가지를 소개하겠다. @RestController 어노테이션을 통해 컨트롤러를 활성화할 수 있다. Json 형태로 키와 밸류값으로 이루어진 데이터를 받아서 반환해준다. 과거 @Controller를 사용할 때는 메서드마다 @ResponsBody를 선언해야 하는 불편함이 있었다. 1. GetMapping // @RequestMapping(value = "/login/{loginID}", method = RequestMethod.GET) // 각 매핑들은 RequestMapping을 사용해서 value, method값을 통해 데이터를 받을 수도 있다. @GetMapping("/login/{loginID}") public String get..

[자바] 스프링의 환경 설정 : 프로파일(Profile) 사용하기
2022. 7. 20. 17:51
스프링
현업에서는 환경을 다양하게 해서 특정 환경에서만 특정 Bean이 동작하도록 설정해주는 환경 설정이 있다. @Component public class PaymentType implements PaymentService { } @Component public class PaymentAmount implements PaymentService { } 위와 같이 동일한 인터페이스로 만들어진 두 클래스가 있고 Bean으로 지정되어 있다. 이 상태로 PaymentService 인터페이스를 실행시키려 하면 아래와 같은 메시지가 나타날 것이다. Caused by: org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of..