2기_카일

2기_카일

우아한테크코스 2기 카일(김시영)입니다 :)

Seoul
9 posts
AssertJ의 다양한 메소드 활용해보기. cover image
#test

AssertJ의 다양한 메소드 활용해보기.

Junit에서 기본으로 제공하는 assertions 보다 AssertJ는 보다 많은 기능을 제공한다. 하지만 일반적으로 테스트할 때 항상 비슷한 형태로만 테스트하기 때문에 이번 포스팅에서는 AssertJ의 다양한 기능 중 사용에 도움이 될만한 내용들…

OSIV와 Custom Interceptor를 같이 사용하기! cover image
#jpa

OSIV와 Custom Interceptor를 같이 사용하기!

이번 포스팅은 OSIV(Open Session In View)와 관련해서 개발 중 발생한 예외에 관해서 이야기 하고자 한다. 제목에서 있듯 OSIV와 HandlerInterceptor에 대한 내용이므로 간단하게 두 개념에 관해 설명하고, 발생한 예외에 대해서 공유하고자 한다.

제네릭을 사용하여 테스트 중복 제거하기! cover image
#refactoring

제네릭을 사용하여 테스트 중복 제거하기!

문제 상황 안녕하세요. 👨‍💻 이번 포스팅에서는 반복되는 테스트를 어떻게 추상화할까? 라는 고민에 대한 글입니다. 아래의 테스트를 모두 작성하는 과정에서 중복 코드가 발생하고 테스트 코드가 유지보수 하기 어려워졌습니다. 인수테스트 컨트롤러 테스트 서비스…

Open Session In View cover image
#transaction

Open Session In View

상황 이번 포스팅은 Spring boot와 JPA를 활용하여 개인 프로젝트를 개발 중 JPA의 예상치 못한 동작을 발견하게 되어 이를 공유하고자 작성하였다. 읽고 계신 분들도 상황을 보며 어떤 점이 이상한 것인지 예상해 보시고 아래의 답을 보면 좋을…

생성자 인자가 많을 땐? Builder! cover image
#design-pattern

생성자 인자가 많을 땐? Builder!

생성자 인자가 많을 때 문제점 클래스를 설계하다 보면 필드 개수가 많아지는 경우가 생긴다. 이 때 다음과 같은 문제점들이 발생한다. 1. 선택적으로 생성자를 제공하고 싶은 경우 생성자가 너무 많아진다 아래와 같은 코드를 점층적 생성자 패턴이라 하며 …

SOLID 1편 SRP와 OCP cover image
#oop

SOLID 1편 SRP와 OCP

이번 포스팅에서는 객체지향에서 대표적인 원칙이라고 할 수 있는 SOLID원칙에 대해서 알아보고자 한다. 하나의 포스팅에 모든 것을 작성하면 길어질 것 같아, 와 를 먼저 포스팅하고 2편에서 , , 를 설명할 것이다. 1 . SRP : 단일 책임 원…

CORS란? cover image
#architecture

CORS란?

웹 개발을 하다 보면 한 번쯤은 부딪히게 되는 주제가 CORS이다. 이 포스팅에서는 CORS가 무엇이며 CORS 예외를 어떻게 해결해야 하는지 알아보자. 배경 및 정의 기존 브라우저 정책은 서로 다른 도메인으로부터 리소스가 필요한 경우, 보안상의 이…

불변객체를 만드는 방법 cover image
#immutable

불변객체를 만드는 방법

이번 글에서는 불변 객체로 만들어야 할 때 어떠한 방법으로 만들 수 있는지에 대해 이야기해보고자 합니다. 주로 클래스를 불변 클래스로 만드는 방법에 관해서 이야기 할 예정입니다. Immutable Object(불변 객체)란? 위키피디아에 의하면 를 …

메소드 시그니처를 변경하지 않고, 테스트 가능한 구조 만들기. cover image
#refactoring

메소드 시그니처를 변경하지 않고, 테스트 가능한 구조 만들기.

메소드 시그니처를 변경하지 않고 테스트하기 메소드 시그니처란 메소드의 이름, 파라미터, 반환값의 데이터 타입을 통칭하는 말이다. 프로그래밍을 하다 보면 기존의 메소드 시그니처를 변경하지 않으면서 테스트 가능한 구조로 변경해야 하는 경우가 종종 있다.…