[코드트리 후기] 코딩테스트 준비, 갭체크로 내 약점부터 확인하기
·
카테고리 없음
갭체크 응시이번 3회차 미션은 코드트리 갭체크를 통해 현재 내 실력을 파악하고, 앞으로의 코딩테스트 준비 방향을 정리해 보는 것이었다. 막연하게 “알고리즘 공부를 해야겠다”라고 생각하는 것과, 실제 문제를 풀어 보고 내가 어디에서 막히는지 확인하는 것은 꽤 달랐다. 먼저 코드트리 갭체크를 응시했다. 문제를 풀면서 느낀 점은, 쉬워 보이는 문제도 막상 구현하려고 하면 생각보다 꼼꼼함이 필요하다는 것이었다. 특히 조건을 정확히 읽고, 반복문 범위나 배열 인덱스를 실수 없이 다루는 부분에서 아직 부족함이 있다는 생각이 들었다. 갭체크 결과를 확인해 보니 내 강점과 약점이 조금 더 명확해졌다. 내 결과는 [특히 DP 개념이 부족하다] 고 나왔다. 나의 약점인 부분이므로 코드트리를 통해 단계별 학습을 할 필요..
SAGA 패턴으로 분산 환경에서 안전하게 환전하기 - 토스뱅크
·
TIL
토스뱅크는 환전을 MSA 환경에서 어떻게 처리할까 이번 글에서는 토스뱅크의 환전 서비스를 주제로, 모놀리틱 계정계에서 MSA 로 전환되는 과정에서 분산 트랜잭션 문제를 어떻게 풀어냈는지를 정리해보려고 한다. 금융 도메인과 무관하게 분산 트랜잭션을 어떻게 다루고 고민했는지 알 수 있었다. https://www.youtube.com/watch?v=xpwRTu47fqY&t=62s 특히 관심 있게 본 포인트는 다음 세 가지였다.모놀리틱에서는 간단했던 환전이 MSA 에서 왜 어려워지는가분산 트랜잭션 문제를 왜 SAGA 로 풀었는가실제 운영 환경에서 실패와 장애를 어떻게 복구하고 모니터링하는가 기존 토스의 구조기존 토스뱅크는 계정계 솔루션을 구매해 사용하는 구조였고, 이 시스템은 모놀리틱 형태로 구성되어 있었다...
RESTFul 한 API 를 설계했다구요 ?
·
TIL
API를 학습하다 보면 항상 RESTful 이라는 단어가 세트처럼 따라옵니다. 이 개념은 HTTP를 고안한 인물 중 한 명인 Roy Fielding의 박사 학위 논문에서 처음 제시되었습니다. 그만큼 웹과 API를 이야기할 때 빼놓기 어려운 개념이죠. 그런데 한편으로 Roy Fielding은, 진정한 REST를 만족하지 않으면서도 스스로를 “RESTful”하다고 부르는 API들에 대해 꽤 강한 불만을 드러낸 적이 있습니다. “RESTful이 아니라면 그냥 다른 표현을 써달라”는 취지의 말까지 했을 정도입니다. 그렇다면 도대체 진짜 RESTful API란 무엇이길래 이런 이야기가 나오는 걸까요? 이번 글에서는 그 내용을 한 번 정리해보겠습니다. REST란?REST의 정의는 다음과 같습니다.분산 하이퍼미디어..
API 명세서 작성 방법에 대하여
·
TIL
API란 무엇일까?API 명세서를 작성하기 전에, 먼저 API가 무엇인지부터 분명하게 이해할 필요가 있다고 생각했다. API는 아주 단순하게 말하면 다음과 같다.API(Application Programming Interface) 는서로 다른 애플리케이션이 통신하고 데이터를 주고받기 위한 규약이다. 예를 들어 식당에서 손님이 메뉴판을 보고 주문하면, 주방은 그 주문에 맞게 음식을 만들고 다시 손님에게 전달한다.API도 비슷하다. 클라이언트는 API 명세에 맞춰 서버에 요청을 보내고, 서버는 그 요청을 처리한 뒤 정해진 형식으로 응답을 돌려준다. 즉, 무엇을 어떻게 요청하고, 어떤 형태로 응답할지를 약속한 것이 API라고 볼 수 있다. HTTP API의 주요 구성 요소이번 글에서는 HTTP 프로토콜을 사..
소스코드를 읽어보며 이해하는 DispatcherServlet 의 동작
·
TIL/Spring
DispatcherServlet이 요청을 처리하는 핵심 흐름은 결국 doDispatch() 메서드 안에 거의 다 들어 있습니다. 이번에는 이 doDispatch() 코드를 한 줄씩 따라가 보면서, Spring MVC가 실제로 어떤 순서로 요청을 처리하는지 딥다이브해보았습니다. 이 글은 HTTP 요청이 대략 어떻게 들어오고 처리되는지에 대한 기본 흐름은 이미 알고 있다는 전제로 작성했습니다. 혹시 이 부분이 아직 익숙하지 않다면, 제가 이전에 올렸던 글을 먼저 읽고 오시면 훨씬 이해가 잘 되실 것 같습니다. ㅎㅎ 🤣https://exp.goorm.io/education/TESIiAqKYZ88RcfzuJ/dashboard/users/hkjbrian_v89jj4wx4/posts/post_E8th3xw8UOD..
어댑터 패턴과 HandlerAdapter가 필요한 이유
·
TIL/Spring
가장 이해하기 어려웠던 DispatcherServlet 구조... HandlerMapping, HandlerAdapter, Handler, Controller처럼 비슷해 보이지만 서로 역할이 다른 개념들이 많아서 처음에는 꽤 헷갈렸습니다. 그래서 이번에는 이 구조를 초간단 버전으로 정리해보려고 합니다. 핸들러란?어떤 HTTP 요청이 들어왔을 때, 그 요청을 실제로 처리하고 응답을 만들어낼 수 있도록 준비된 대상을 핸들러(Handler) 라고 합니다. 우리가 일반적으로 사용하는 @Controller + @RequestMapping 조합에서는 보통 하나의 컨트롤러 메서드가 핸들러로 동작합니다. 예를 들어 아래와 같은 메서드가 있다면, @PostMapping("/users") public ResponseEn..