본문 바로가기

Spring19

[Spring] Ioc(제어의 역전)와 DI(의존성 주입)란? 개발을 하다보면 의존성이라는 단어를 많이 사용하게 된다. 의존성을 줄여야 한다, 의존성이 있어서 수정이 어렵다 등등. 의존성이라는 단어는 이해하기가 쉽다. A 클래스와 B 클래스 사이에 의존성이 있다는 것은 A 클래스를 수정했을 때 B 클래스가 영향을 받는 다는 것이고 쉽게 말해 버그가 생길 가능성이 있다는 것이다. 그런데 의존성 주입(DI) Ioc 같은 용어들을 보게되면 이해가 바로 되지는 않는다. 의존성 주입은 A라는 클래스에 B라는 클래스의 객체를 주입해준다는 것인데 예를 들면 이런 것이다. @Service @RequiredArgsConstructor public class UserService { private final UserRepository userRepository; } UserServi.. 2022. 7. 26.
[Java/Spring] Junit 초기 설정 방법 Test Driven Development, 줄임말로 TDD가 사실상 필수적인 개발 방법이 된 시대가 되었다. 오늘은 Java 스프링에서 내가 사용하고 있는 간단한 Junit 세팅하는 방법에 대해서 공유해 보려고 한다. Junit도 사용하는 사람들에 따라서 꽤 다양한 세팅들을 구글링을 해보면 찾아볼 수 있다. 나는 Udemy에서 Spring TDD라는 강의를 듣고 그 강의에서 사용했던 방식을 그대로 적용해서 사용하고 있다. Junit으로 TDD를 하기 위해서는 데이터베이스도 있어야하고 간단한 yaml 설정, 그리고 실제 테스트 클래스의 설정이 필요한데 이에 대해서 복잡하기 않게 내가 사용하는 방법을 공유해보도록하겠다. 데이터베이스 먼저 데이터베이스는 h2를 쓰고 있다. 단위테스트이기 때문에 데이터베이스가.. 2022. 7. 25.
Spring Kotlin Response DTO 사용하는 방법 스프링에서 api에 대한 응답을 전해줄 때 불필요한 정보를 제외하고 필요한 정보만 전해주기 위해서 DTO(Data Transfer Object)를 사용한다. 가장 흔한 예로 유저의 상세 정보를 조회할 때 비밀번호는 공개되면 안되기 때문에 비밀번호를 제외한 다른 정보들을 응답으로 전달해주는 케이스가 있다. Kotlin에서 테스트 코드 응답으로 DTO를 만들어서 return 했는데 뜻 밖의 에러가 발생했다. password와 같이 전달하고 싶지 않은 값들이 null이라서 역직렬화가 안된다는 내용의 에러 같았다. Java에서는 단순히 DTO Class를 만들어서 return하면 되었는데 kotlin은 다른 무언가가 있는 모양이다. 유저 Entity를 예시로 DTO를 다음과 같이 생성했다. Constructor.. 2022. 7. 7.