요즘 프로젝트 리팩토링을 하면서, DTO에 작성하는 여러개의 lombok 어노테이션의 사용 이유를 정확히 알지 못하고 사용하는 것 같아서 하나하나 고찰(?) 해보기로 했다. 일단, DTO는 Data Transfer Object로, REST API 작성 시에 엔티티 대신에 DTO를 사용하여 컨트롤러에서 데이터를 주고받는 용도로 사용한다. DTO를 사용하면 엔티티에 변질을 막을 수 있고, 로직에 맞춰 필요한 필드만 주고받을 수 있어 DTO를 사용하는 것이 좋다. 컨트롤러에서 DTO를 주고받기 때문에 JSON 직렬화와 역직렬화가 일어난다. - 직렬화(serialization) : Java Object 가 JSON으로 변환되는 것으로, ResponseBody를 사용할 때 일어난다. (서버 -> 클라이언트) - ..
예외처리 프로그래밍을 할 땐 다양한 예외 상황이 발생한다. 이 예외 처리를 잘해야 좋은 프로그램이 될 수 있다. 예외 처리를 try-catch문을 사용하거나 다른 여러가지 방법들로 할수도 있지만, 이는 코드가 복잡해지고 유지보수 하기에도 어렵다는 문제점이 있다. 예외처리를 한번에 다른곳에서 처리하고 비즈니스 로직에서는 비즈니스 로직만 작성하여 코드가 복잡해지지 않도록 할 수 있다. @ExceptionHandler 이 어노테이션은 메서드에 붙일 수 있는데, @Controller와 @RestController가 적용된 Bean에서 생기는 예외를 캐치하여 이 메서드에서 처리해주도록 한다. 메서드의 인자로 캐치하려는 예외 클래스를 작성하면 된다. 리턴 타입은 하고싶은대로 해도 된다. @ExceptionHandl..