전체 글

    slf4j 설정하기

    핵심 개념 SLF4J logback.xml Appender Logger SLF4J란? logging 관련 라이브러리는 다양하다. 이러한 라이브러리들을 하나의 통일된 방식으로 사용할 수 있는 방법을 SLF4J는 제공한다. SLF4J는 로깅 Facade이다. 로깅에 대한 추상 레이어를 제공하는 것이고 interface의 모음이다. 로그 라이브러리를 변경해도 applicaiton 코드를 변경하지 않아도 된다. maven에 SLF4J와 logback의존성 추가하기 maven에 SLF4J와 logback의존성 추가하기 참고로 logback-classic 1.2.3은 이미 slf4j-api 1.7.25에 대한 의존성을 가지고 있기 때문에 slf-j-api를 추가할 필요는 없다. Spring은 기본적으로 아파치 재단..

    로깅이란

    로깅(Logging)이란? 정보를 제공하는 일련의 기록인 로그(log)를 생성하도록 시스템을 작성하는 활동 프린트 줄 넣기(printlining)는 간단한, 보통은 일시적인, 로그를 생성하기만 한다. 시스템 설계자들은 시스템의 복잡성 때문에 로그를 이해하고 사용해야 한다. 로그가 제공하는 정보의 양은, 이상적으로는 프로그램이 실행되는 중에도, 설정 가능해야 한다. 일반적으로 로그 기록의 이점 - 로그는 재현하기 힘든 버그에 대한 유용한 정보를 제공할 수 있다. - 로그는 성능에 관한 통계와 정보를 제공할 수 있다. - 설정이 가능할 때, 로그는 예기치 못한 특정 문제들을 디버그하기 위해, 그 문제들을 처리하도록 코드를 수정하여 다시 적용하지(redeploy) 않아도, 일반적인 정보를 갈무리할 수 있게 한..

    Unfold Recursion

    재귀 전개 재귀는 적절하게 사용될 경우 우아하고 직관적인 솔루션이 될 수 있으나 여러가지 이유로 반복 알고리즘으로 변경해야 할 수 있다. 스택오버플로우의 위험성(Risk of Stackoverflow) 재귀는 종종 시스템 스택에서 추가 메모리 소비를 발생 시키며, 각 프로그램은 제한된 리소스로 운용된다. 이를 피하기 위한 꼬리 재귀가 존재하나 모든 재귀가 꼬리재귀를 사용할 수 있는 것이 아니다 모든 컴파일러에서 꼬리 재귀 최적화를 지원하지는 않는다. 능률(Efficiency) 중복 계산의 위험성 복잡도(Complexity) 재귀 남용시 반복 알고리즘 보다 읽고 이해하기가 어려울 수 있다 (중첩된 재귀) 두 TreeNode가 동일한지 비교하는 Solution으로 재귀 -> 반복으로 만들어보자. 재귀로 만든..

    Merge Sort

    분할 정복 알고리즘의 대표적 예제 중 하나인 병합 정렬은 효율적이고 범용적인 정렬 알고리즘이다. 병합 정렬 알고리즘을 구현하는 방법에는 위에서 아래로 또는 아래에서 위로 두 가지가 있습니다. 여기서는 재귀를 사용하여 자연스럽게 구현할 수있는 하향식 접근 방식을 설명합니다 . 병합 정렬 알고리즘은 모든 나누기 및 정복 알고리즘과 같이 세 단계로 나눌 수 있습니다. 주어진 정렬되지 않은 목록을 여러 하위 목록으로 나눕니다. ( 나누기 ) 각 하위 목록을 재귀 적으로 정렬합니다. ( 정복 ) 정렬 된 하위 목록을 병합하여 새 정렬 된 목록을 생성합니다. ( 결합 ) 하향식 접근 방식 하향식 병합 정렬 알고리즘이 어떻게 작동하는지 구체적인 예를 살펴 보겠습니다. 아래 그림과 같이 8 개의 요소가있는 정렬되지 않..

    Divide and Conquer Algorithm

    Divide and Conquer Algorithm 알고리즘이란?직역하자면 나눠서 정복한다.하나의 문제를 두 가지 혹은 그 이상의 작은 문제들로 나눠 해결하여 본래의 문제를 해결하는 방식 D & C Divide and Conquer Algorithm's classic examples Merge Sort Quick Sort en.wikipedia.org/wiki/Divide-and-conquer_algorithm Divide-and-conquer algorithm - Wikipedia From Wikipedia, the free encyclopedia Jump to navigation Jump to search Algorithms which recursively solve subproblems In com..

    Climbing Stairs를 recursive 아닌 방법으로 풀어보기

    전에 Recursive로 풀었던 포스팅 2021.04.08 - [개발 공부/코딩 테스트] - [LeetCode] - Climbing Stairs [LeetCode] - Climbing Stairs Memoization문제 sudo code n개의 계단을 올라간다 한걸음에 1 또는 2개 계단을 올라갈 수 있다 1