본문 바로가기

전체 글56

[후기] 우테코 레벨2 3주차 회고 0. 이 글을 쓰게 된 이유 최근 개인적인 사정이 있어서 제대로 된 학습을 하지 못했다. 그래서 그런지 학습의 관성이 조금 약해진 느낌이 있다. 이 참에 생각 정리를 하고 다시 관성을 얻고자 이 글을 쓰게 되었다. 1. 다시 만난 Spring 레벨2에서는 본격적으로 Spring을 배운다. 이 전에 학습하고 프로젝트를 한 경험이 있어서 조금 익숙한 프레임워크이다. 꽤 오래동안 사용하지 않다보니 디테일한 부분은 기억나지 않지만 나름대로 자신이 있었다. 1.1 웹 자동차 경주 미션 웹 자동차 경주 미션은 자동차 경주 미션을 리펙토링하고 Spring을 적용하는 미션이었다. 처음부터 Spring을 사용한 코드를 리펙토링 해본적은 있지만, 자바로만 이루어진 코드를 Spring으로 전환하는 경험은 전혀 없었다. 레거.. 2023. 4. 30.
[Spring] 필터(Filter)와 인터셉터(Interceptor) 0. 이 글을 쓰게 된 이유 스프링은 개발자가 비즈니스 코드에 더 집중할 수 있게 여러 기능들을 숨기고있다. 대표적으로 AOP, Filter, Interceptor라는 기술을 사용한다. AOP는 스프링의 대표 기술로써 프록시를 이용해 코드를 숨겨주는 기능을 한다는 것은 대부분 알고 있을 것이다. 그렇다면 Filter와 Interceptor는 무엇일까? 그 차이와 용도에 대해서 알아보자. 1. Filter 필터는 스프링의 기술이 아닌 JavaEE 표준 스펙 기능으로써 톰캣과 같은 WAS가 가지고있는 기술이다. JavaEE 필터 공식문서를 보면 필터는 요청이나 응답 또는 둘 다에 대해 필터링을 수행하는 객체라고 소개한다. 즉, Web Context 단에서 Spring으로 요청을 보내기 전과 응답이 온 후로 .. 2023. 4. 19.
[Architecture] Service Layer의 역할 0. 이 글을 쓰게된 이유 지금까지 계층형 아키텍처를 사용하면서 자연스럽게 service 계층을 사용했다. 하지만 service 계층의 담당하는 역할이 뭔지, 굳이 있어야하는지, 다른 도메인 로직과 무슨 차이로 나눠지는지 생각해본적이 없었다. 다른 사람들의 생각을 알아보고, 나의 생각을 적립하기 위해 이 글을 쓰게되었다. 1. Service Layer? 마틴 파울러는 Service Layer의 역할을 다음과 같이 정의한다. A Service Layer defines an application's boundary [Cockburn PloP] and its set of available operations from the perspective of interfacing client layers. It.. 2023. 4. 18.
[Spring] Layered-Architecture(계층형 아키텍처) 0. 이 글을 쓰게된 이유 Spring을 사용하면 Layered-Architecture를 사용하게 된다. Layered-Architecture의 컨셉에 대해서 확실하게 정리하기 위해 이 글을 쓰데 되었다. 1. Layered-Architecture란? Layered-Architecture는 사실 상의 Java EE 표준인만큼 가장 널리 사용되고 유명한 아키텍처 패턴이다. 다른 말로 N-tier Architecture이라고 불린다. Layered-Architecture의 각 계층은 수직적인 구조를 가지고있다. 각각의 계층은 특정 역할을 가지게 된다(예 -> presentation 로직, business로직). 하지만 계층의 개수나 역할은 정해져 있지않다. 구조를 설계하는 사람이 정하기 나름이다. 보통의 경.. 2023. 4. 14.
[Spring] @(Rest)ControllerAdvice 활용 0. 이 글을 쓰게된 이유 미션을 진행하며 (Rest)ControllerAdvice를 사용하여 예외를 처리하였다. 원래 (Rest)ControllerAdvice가 예외를 처리할 때에만 사용하는줄 알았는데 활용할 수 있는 부분이 많은 기능이었다. 그 부분에 대해 알아보기 위해 이 글을 쓰게 되었다. 1. @(Rest)ControllerAdvice란? Spring 공식 문서에 따르면 @(Rest)ControllerAdvice가 붙은 빈은 모든 @Controller이 붙은 빈에서 사용하는 @ExceptionHandler, @InitBinder, @ModelAttribute(글 쓰기 쉽게 세가지 기능이라고 부르겠다.)가 붙은 메소드들을 한번에 처리할 수 있도록 해주는 기능이다. Controller에서 @Exce.. 2023. 4. 13.
[JAVA] TDD란? 0. 이 글을 쓰게된 이유 우아한테크코스 레벨1을 거치며 tdd에 대해서 배우고 적용하며 학습했다. tdd를 직접 적용해보며 느꼈던 장점과 단점, tdd에 대한 설명을 통한 메타인지 효과를 얻고자 이 글을 쓰게 되었다. 1. tdd란? tdd는 소프트웨어 개발 방법론 중 하나로, 테스트를 먼저 작성한 후 그에 맞는 프로덕션 코드를 작성하는 개발 방법론이다. tdd의 핵심은 테스트 코드를 먼저 작성하는 것이다. 이는 개발자가 자신이 작성한 코드에 대해서 빠르게 테스트하면서 안정적이고 예측 가능한 코드를 만들 수 있게해준다. 2. tdd의 장점 tdd를 사용하면 어떤 장점이 있을까? 내가 직접 느낀 장점은 다음과 같다. 2.1 코드 품질 향상 tdd를 적용하게되면 테스트 코드를 먼저 작성하고 테스트에 통과하.. 2023. 4. 9.