Light
Dark
개요 이전에 정리했던 것처럼 어떤 값을 꺼내올 때 효율적으로 꺼내와야하는 경우가 있다. 예를 들어 다익스트라 알고리즘에서 가장 비용이 저렴한 노드를 가져오는 코드를 일반 리스트로 구현할 때 시간복잡도가 O(N)이던 것을 특정한 구조를 이용하여 가져오도록 하면 LogN까지 줄어든다. 힙에 대해 알아보자. 설명 힙(쌓아 올린 더미) ... Read More
개요 AWS SAA를 준비하는 겸 AWS에서 제공하는 서비스들을 공부해보려고 한다. IAM IAM은 Identity and Access Management의 약자로 만약 호텔을 운영한다고 해보자. 호텔에서는 여러가지 일이 있을 것이다. 방 청소, 기계 정비, 음식 조리 등등… 이런 상황에서 모든 엑세스를 가지는 마스터키를 모... Read More
개요 스웨거를 사용하고있는데 글로벌 에러 핸들러를 추가하니 NoSuchMethodError가 생겼다. 원인 컴파일 시점이 아닌 런타임 시점에 존재하지 않는 메소드를 호출하는 경우에 발생한다. 대표적인 원인은 버전 충돌이다. 예를 들어 A 의존성에서 B의존성의 B메소드를 호출하기로 약속되어있었는데 A 의존성이 버전... Read More
개요 자바에서 사용하는 로깅 라이브러리는 여러가지가 있다. 그 차이점을 잘 모르고 사용했는데 정리해보자. 로깅 프로그램에서 여러 문제 상황이 생긴다. 누군가 말하기를 버그를 찾을 때 에러가 발생하는 경우 불켜진 방에서 검은 고양이를 찾는 것과 같다. 에러가 발생하지 않는 경우는 불꺼진 방에서 검은 고양이를 찾는 것과 ... Read More
개요 피보나치 수열을 생각해보면 시간복잡도가 O(2^n)인 것을 DP를 사용하면 O(n)까지 줄일 수 있다. 또한 리스트에서 특정 값을 제거하는 remove 메소드의 경우 시간복잡도는 O(n)이 된다. 반복문 아래 사용하면 O(n^2)까지 커진다. 그러나 set이나 dict를 사용하면 시간복잡도 O(1)로 값을 추가하고... Read More