분류 전체보기692 [Spring] 프록시 패턴 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 프록시 패턴, 데코레이터 패턴 - 소개 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 프록시는 아무 객체나 프록시가 될수있는것은 아니다. 객체에서 프록시가 되려면, 클라이언트는 서버에게 요청을 한 것인지, 프록시에게 요청을 한 것인지 조차 몰라야 한다. 쉽게 이야기해서 서버와 프록시는 같은 인터페이스를 사용해야 한다. 그리고 클라이언트가 사용하는 서버 객체를 프록시 객체로 변경해도 클라이언트 코드를 변경하지 않고 동작할 수 있어야 한다. 클래스 의존관계를 보면 클라이언트는 서버 인터페이스( ServerInterface )에만 의존한다. 그리고 서버와.. BackEnd/Spring 2022. 8. 10. [Spring] 프록시 패턴과 데코레이터 패턴 예제 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 이번 시간에는 우선 예제 프로젝트부터 만들어보자! 디자인 패턴에 대한 글을 다음 게시물 부터 시작할 예정이다. 1. 예제 프로젝트 만들기 v1 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번 글 에서는 다음 글에서 설명할 데코레이터, 프록시 패턴을 위한 준비 예제 작업 시간이다. 설명보다는 단순 코드만 많은 점 양해 부탁 드립니다. 예제는 크게 3가지 상황으로 만든다. v1 - 인터페이스와 구현 클래스 - 스프링 빈으로 수동 등록 v2 - 인터페이스 없는 구체 클래스 - 스프링 빈으로 수동 등록 v3 - 컴포넌트 스캔으로 스프링 빈 자동 등록 V1 -.. BackEnd/Spring 2022. 8. 9. [백준][C++] 15486번: 퇴사 2 <238> 직접 풀어보고 올리는 코드입니다. 지적이나 더 좋은 방향에 대한 댓글은 항상 환영합니다. https://www.acmicpc.net/problem/15486 15486번: 퇴사 2 첫째 줄에 N (1 ≤ N ≤ 1,500,000)이 주어진다. 둘째 줄부터 N개의 줄에 Ti와 Pi가 공백으로 구분되어서 주어지며, 1일부터 N일까지 순서대로 주어진다. (1 ≤ Ti ≤ 50, 1 ≤ Pi ≤ 1,000) www.acmicpc.net 생각의 흐름 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 N의 범위가 150만 이라서 완전탐색 이런 방식으로는 절대 해결할수 없다 생각하였다. 그리고 문제 자체에서 DP smell이 엄청나게 느껴졌다. 바로 동적계획법을 적용시켜보려 노력하였다... Algorithm/백준 2022. 8. 9. [Review] ATDD 4주차 1차 PR 최홍준 리뷰어 님께 감사의 말을 전하고 싶다!! 1. 질문 1-1) 인수테스트 작성과 문서 작성 우선 ATDD 사이클에 의하여 인수테스트 작성 RestDocs 작성 순서로 진행하게 되었습니다. 다만 인수테스트를 작성했을때 최단 시간으로 경로를 찾는 인수테스트가 통과를 하지는 못하는 상황 이였습니다. @DisplayName("두 역의 최단 시간 경로를 조회한다.") @Test void findPathByTime() { // when ExtractableResponse response = 두_역의_최단_시간_경로_조회를_요청(교대역, 양재역); // then assertThat(response.jsonPath().getList("stations.id", Long.class)).containsExactly(교.. NEXT STEP/Review 정리 2022. 8. 8. [Spring] 템플릿 콜백 패턴 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 템플릿 콜백 패턴 - 시작 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 지난 번 전략패턴 글에서 ContextV2 는 변하지 않는 템플릿 역할을 한다. 그리고 변하는 부분은 파라미터로 넘어온 Strategy에 해당된다. 이렇게 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 콜백(callback)이라 한다. 콜백 정의 프로그래밍에서 콜백(callback) 또는 콜애프터 함수(call-after function)는 다른 코드의 인수로서 넘겨주는 실행 가능한 코드를 말한다. 콜백을 넘겨받는 코드는 이 콜백을 필요에 따라 즉시 실행할 수도 있고, 아니.. BackEnd/Spring 2022. 8. 7. [Spring] 전략 패턴 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 전략 패턴 - 예제1 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 우선 다음과 같은 코드가 있다고 해보자. @Slf4j public class ContextV1Test { @Test void strategyV0() { logic1(); logic2(); } private void logic1() { long startTime = System.currentTimeMillis(); //비즈니스 로직 실행 log.info("비즈니스 로직1 실행"); //비즈니스 로직 종료 long endTime = System.currentTimeMillis(); lo.. BackEnd/Spring 2022. 8. 7. [TIL] 일일 회고 2022/08/06 요즘 한 일 1. 리뷰 정리 https://blogshine.tistory.com/492 [Review] ATDD 3주차 2차 PR 권승철 리뷰어 님께 감사의 말을 전하고 싶다!! 1. 질문 1-1) 공통의 테스트를 만들었어야 하는가? 미션중 TokenAuthenticationInterceptor와 UsernamePasswordAuthenticationFilter 를 추상화 하는 단계에서는,.. blogshine.tistory.com https://blogshine.tistory.com/496 [Review] ATDD 3주차 3차 PR 권승철 리뷰어 님께 감사의 말을 전하고 싶다!! 1. 질문 1-1) Bearer 인증방식에서 권한이 없을 경우 public abstract class Authenticat.. NEXT STEP/회고록 2022. 8. 6. [Spring] 템플릿 메서드 패턴 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 템플릿 메서드 패턴 - 예제1 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번시간은 TemplateMethod Pattern을 적용할 예제를 만들어보자. @Slf4j public class TemplateMethodTest { @Test void templateMethodV0() { logic1(); logic2(); } private void logic1() { long startTime = System.currentTimeMillis(); //비즈니스 로직 실행 log.info("비즈니스 로직1 실행"); //비즈니스 로직 종료 long en.. BackEnd/Spring 2022. 8. 6. [Spring] 쓰레드 로컬 - ThreadLocal - 2 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 5. ThreadLocal - 소개 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 쓰레드 로컬은 해당 쓰레드만 접근할 수 있는 특별한 저장소를 말한다. 쉽게 이야기해서 물건 보관 창구를 떠올리면 된다. 여러 사람이 동일한 물건 보관 창구의 직원에게 물건을 전달하면, 직원은 사용자를 인식해서 사용자별로 확실하게 물건을 구분해준다. 쓰레드 로컬을 사용하면 각 Thread마다 별도의 내부 저장소를 제공한다. 따라서 같은 인스턴스의 쓰레드 로컬 필드에 접근해도 문제 없다. thread-A 가 userA 라는 값을 저장하면 쓰레드 로컬은 thread-A 전용 보관.. BackEnd/Spring 2022. 8. 5. [Review] ATDD 3주차 3차 PR 권승철 리뷰어 님께 감사의 말을 전하고 싶다!! 1. 질문 1-1) Bearer 인증방식에서 권한이 없을 경우 public abstract class AuthenticationChainingFilter implements HandlerInterceptor { @Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception { if(isAlreadyLoginUser()) { return true; } try { AuthenticationToken token = convert(request); UserDetails userDetails = findU.. NEXT STEP/Review 정리 2022. 8. 4. [Spring] 쓰레드 로컬 - ThreadLocal - 1 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 필드 동기화 - 개발 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 지난번 구현에서는 트랜잭션ID 와 level을 동기화하기 위해서 TraceId를 파라미터로 넘기도록 구현했었다. 이를 파라미터로 넘기지 않고 해결할 방법은 없을까? 향후 다양한 구현체를 만들기 위해 우선 LogTrace 인터페이스부터 만들자. ▶ LogTrace public interface LogTrace { TraceStatus begin(String message); void end(TraceStatus status); void exception(TraceStatus statu.. BackEnd/Spring 2022. 8. 4. [Spring] 예제 만들기 내가 공부한것을 올리며, 중요한 단원은 저 자신도 곱씹어 볼겸 상세히 기록하고 얕은부분들은 가겹게 포스팅 하겠습니다. 1. 예제 프로젝트 만들기 - V0 " data-ke-type="html"> HTML 삽입 미리보기할 수 없는 소스 이번시간에는 아주 간단한 예제 프로젝트를 만들었다. 코드 설명할 부분도없다. ▶ OrderRepositoryV0 @Repository @RequiredArgsConstructor public class OrderRepositoryV0 { public void save(String itemId) { //저장 로직 if (itemId.equals("ex")) { throw new IllegalStateException("예외 발생!"); } sleep(1000); } priva.. BackEnd/Spring 2022. 8. 3. 이전 1 ··· 14 15 16 17 18 19 20 ··· 58 다음