![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/coHN64/btrcb80UNHM/xpbIvyiUzrRvgXMfNCEkaK/img.png)
이번에는 TDD로 구현해볼 연습 문제에 대해 소개하고, 프로젝트 생성까지 한 후에 마무리하도록 하겠습니다. 1. TDD 연습문제 소개와 요구사항 분석 [ 문제 설명 ] 이번 연습 문제의 주제는 멤버십 적립 서비스입니다. 현재 지원중인 멤버십에는 네이버, 카카오, 라인 3가지 멤버십이 있으며, 사용자는 원하는 멤버십을 등록할 수 있습니다. 포인트 적립비율은 결제금액의 1%로 고정되며, 추후에 고정 금액(1000원)으로 확장하여 적립될 수 있어야 합니다. 이번 연습문제에서는 위의 문제 설명과 아래의 요구사항을 만족하는 REST API를 자유롭게 정의하고, TDD 방식으로 구현하는 것입니다. [ 기능 요구 사항 ] 멤버십 연결하기, 나의 멤버십 조회, 멤버십 연결끊기, 포인트 적립 API 를 구현합니다. 사용..
이번에는 여러 개발 서적들 및 실무 경험 그리고 시행 착오 등을 겪으면서 얻은 테스트 주도 개발 방법에 대해 소개해보고자 합니다. 이번 포스팅에서는 먼저 단위 테스트와 중요성 그리고 단위 테스트를 바탕으로 하는 TDD는 어떻게 하는 것인지 이론적으로 소개해보고자 합니다. 이어지는 포스팅들에서 실제로 테스트에 주도되는 개발을 해볼 것인데, 많은 분들에게 도움이 되기를 바라겠습니다:) 1. 단위 테스트의 중요성과 좋은 단위 테스트의 특징 [ 단위 테스트(Unit Test)를 작성해야 하는 이유 ] 단위 테스트를 작성해야 하는 이유는 정말 너무 많다. 그 중에서 몇 가지 핵심적인 이유들을 작성하면 다음과 같다. 코드를 수정하거나 기능을 추가할 때 수시로 빠르게 검증 할 수 있다. 리팩토링 시에 안정성을 확보할..
이번에는 취업 준비를 하면서 풀었던 백준 알고리즘 문제 중에서 개인적으로 괜찮았던 문제들을 추천해보고자 합니다. 예전에 풀었던 기록들을 보고 정리한거라 빠진 좋은 문제들도 많이 있을텐데, 댓글 많이 남겨주세요:) 1. 코딩 테스트(알고리즘) 준비 및 간단한 팁 요즘 거의 모든 기업에서 코딩 테스트 전형을 진행하고 있는데, 이번에는 코딩 테스트와 관련된 부분에 대해 이야기해보도록 하겠습니다. [ 빈출 유형 파악 ] 수능에도 자주 출제되는 영역이 있듯이 코딩 테스트도 당연히 자주 출제되는 유형이 있습니다. 그렇기 때문에 전략적으로 빈출 유형을 집중적으로 준비하는 것이 도움이 됩니다. 알고리즘 코딩 테스트에서 자주 출제되는 유형은 크게 다음의 4가지가 있습니다. 구현/시뮬레이션: 문제의 요구사항을 주고 이를 ..
![](http://i1.daumcdn.net/thumb/C148x148/?fname=https://blog.kakaocdn.net/dn/1sKnO/btra6HpyClm/XASXdrmeGJqUgIzjLGmUxk/img.png)
이번에는 디스패처 서블릿(Dispatcher Servlert)이 HTTP 요청을 처리하는 방법에 대해서 알아보도록 하자 1. 디스패처 서블릿(Dispatcher Servlert)이 HTTP 요청을 처리하는 방법과 핸들러 메소드(HandlerMethod) [ 핸들러 메소드(HandlerMethod)란? ] HandlerMethod는 @RequestMapping과 그 하위 어노테이션(@GetMapping, @PostMapping 등)이 붙은 메소드의 정보를 추상화한 객체이다. HandlerMethod는 그 자체가 실행가능한 객체가 아니라 메소드를 실행하기 위해 필요한 참조 정보를 담고 있는 객체로써 다음과 같은 정보들을 가지고 있다. 빈 객체 메소드 메타정보 메소드 파라미터 메타정보 메소드 어노테이션 메타정..
Spring은 캐시 관련 기능을 추상화하여 편리하게 개발할 수 있도록 지원하고 있다. 이번에는 Spring이 제공하는 캐시와 관련된 기능들에 대해 알아보도록 하자. 1. Spring이 제공하는 캐시(Cache) 추상화 [ 캐시의 사용 ] 캐시는 서버의 부담을 줄이고, 성능을 높이기 위해 사용되는 기술이다. 예를 들어 어떤 요청을 처리하는데 계산이 복잡하거나 혹은 DB에서 조회하는게 오래 걸리는 등에 적용하여 결과를 저장해두고 가져옴으로써 빠르게 처리할 수 있다. 캐시는 값을 저장해두고 불러오기 때문에 반복적으로 동일한 결과를 반환하는 경우에 용이하다. 만약 매번 다른 결과를 돌려줘야 하는 상황에 캐시를 적용한다면 오히려 성능이 떨어지게 된다. 오히려 캐시에 저장하거나 캐시를 확인하는 작업 때문에 부하가 ..