전체 글

전체 글

    @ControllerAdvice, @ExceptionHandler를 이용한 예외처리 분리, 통합하기(Spring에서 예외 관리하는 방법, 실무에서는 어떻게?)

    예외 처리 과정 프로그래밍에서 예외 처리는 아주 중요하면서도 아주 어렵다. 과하다할 만큼 상세하고 다양하게 예외를 잡아 처리해준다면, 클라이언트도 그렇고 서버도 그렇고 더 안정적인 프로그램이 될 수 있게 도와준다. 예외 처리를 하는 경우와 방법은 다양하다. 메서드 내에서 예외 상황을 예측해서 처리하는 try-catch문을 이용하는 방법 요구사항에 의한 예외 처리 (ex. validation > 특정 값이 0~255범위가 아니면 유효하지 않은 값으로 판단하고 예외 처리) 스프링 시큐리티에서 인터셉터로 잡아서 UnauthorizedException 같은 예외 처리 기타 여러 예외 처리들을 적용하다보면 코드가 엄청나게 복잡해진다. if문으로 잡든 try-catch로 잡든 상위 메서드로 예외처리를 위임하든 코드..

    Python Deque(Double-Ended Queue) + Stack, Queue 간단개념

    deque() 는 스택과 큐의 기능을 모두 가진 객체로 출입구를 양쪽에 가지고 있음. 메서드에 따라 스택처럼 써도되고, 큐처럼 써도된다. 여기서 잠깐 스택과 큐에 대해 간단히 알아보자. 1. 스택 구현 : append(), pop() 스택(stack)이란 쌓아 올린다는 것을 의미 '가장 마지막에 삽입된 자료가 가장 먼저 삭제된다'라는 구조적 특징을 가짐(후입선출(LIFO, Last-In-First-Out) 구조) top으로 정한 곳을 통해서만 접근가능(삽입, 삭제 모두) 입력시에는 append() 메서드를 이용하고, 출력시에는 pop()을 이용 2. 큐 구현 : appendleft(), pop(), append(), popleft() Queue의 사전적 의미는 줄을 서서 기다리는 것을 의미 따라서 은행에..

    API 이해하기 (feat. Open API, REST API)

    1. API란? 스마트폰으로 카카오톡에 로그인하려는 상황을 떠올려봅시다. 스마트폰이 보낸 로그인 요청은 카카오 본사의 서버 컴퓨터 중 하나가 받은 다음, 알맞은 응답을 다시 스마트폰에게 돌려주게 됩니다. (로그인 처리시키기, "로그인 성공"메시지 띄우기 등) 이게 바로 "클라이언트(요청하는 컴퓨터=내 스마트폰) - 서버 (응답하는 컴퓨터=카카오 서버)"구조인데요. 클라이언트는 비단 로그인뿐 아니라, 친구 추가, 메시지 발송, 메시지 삭제 등 수많은 요청들을 서버에 보내게 될 텐데, 각 요청들을 일일이 대응하는 것은 비효율적일 것입니다. 각각의 요청들을 담당하는 서버에게 요청이 잘 전달 및 처리될 수 있도록 교통정리를 해주는 "체계"가 바로 API입니다. 출처: http://sahilsk.github.io..

    [백준] 1920번 : 수 찾기 - JAVA [자바] 이분 탐색 문제

    https://www.acmicpc.net/problem/1920 1920번: 수 찾기 첫째 줄에 자연수 N(1 ≤ N ≤ 100,000)이 주어진다. 다음 줄에는 N개의 정수 A[1], A[2], …, A[N]이 주어진다. 다음 줄에는 M(1 ≤ M ≤ 100,000)이 주어진다. 다음 줄에는 M개의 수들이 주어지는데, 이 수들 www.acmicpc.net 문제 새 카테고리인 이분 탐색의 첫 번째 문제인 수 찾기다. 알고리즘 [접근 방법] 일단, 풀이 방법을 알아보기 전에 이분 탐색(Binary Search)에 대해 알아보자. 이 전 문제까지 우리가 분할 정복을 살펴보았다. 분할 정복 방식의 경우에는 문제가 주어지면 해당 문제를 둘 이상으로 나누면서 나눠진 부분문제에 대해 풀렸다면 해당 부분은 끝내고,..

    [백준] 1874번 : 스택 수열 - JAVA [자바]

    www.acmicpc.net/problem/1874 1874번: 스택 수열 1부터 n까지에 수에 대해 차례로 [push, push, push, push, pop, pop, push, push, pop, push, push, pop, pop, pop, pop, pop] 연산을 수행하면 수열 [4, 3, 6, 8, 7, 5, 2, 1]을 얻을 수 있다. www.acmicpc.net 문제 스택의 원리만 이해한다면 쉽게 풀 수 있는 문제다. 알고리즘 [접근 방법] 아마 이 문제를 처음 접한다면 무슨 말인가 할 수도 있겠지만, 이해만 한다면 정말 쉬운 문제다. 스택 자료구조는 본문에서도 나와있듯이 LIFO(후입선출) 특성을 갖고있다. 스택에 대한 기본적인 이해는 다음 포스팅을 참고하시길 바란다. 자바 [JAVA]..