일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 친절한SQL튜닝
- 자료구조와 함께 배우는 알고리즘 입문
- iterator
- GIT
- 자료구조와함께배우는알고리즘입문
- 선형대수
- 데비안
- 목록처리
- 처음 만나는 AI수학 with Python
- /etc/network/interfaces
- 티스토리 쿠키 삭제
- 이터레이터
- Kernighan의 C언어 프로그래밍
- resttemplate
- 리눅스
- 구멍가게코딩단
- 네트워크 설정
- 처음 만나는 AI 수학 with Python
- 스프링 시큐리티
- 코드로배우는스프링웹프로젝트
- 코드로배우는스프링부트웹프로젝트
- d
- 서버설정
- 알파회계
- 스프링부트핵심가이드
- baeldung
- ㅒ
- network configuration
- 자바편
- 페이징
- Today
- Total
목록분류 전체보기 (406)
bright jazz music
nestJS에서 제공하는 내장 예외 필터는 기본적으로 자동으로 예외를 처리한다. 사용자가 일일이 예외를 다룰 필요는 없어지지만, 예외처리에 관한 완전한 제어가 불가능한 부분도 있다. ExceptionFilter를 사용하면 이러한 필터를 커스텀하여 사용할 수 있다. 필터에 로깅을 추가하거나 임의의 JSON 스키마를 적용하는 등의 구성이 가능하다는 것이다. Exception filter를 사용함으로써,제어 흐름과 클라이언트에게 전송되는 응답을 통제한다. 1. 필터 작성아래 코드는 ExceptionFilter 인터페이스를 구현(implements)하는 필터 클래스를 작성한 것이다.이 필터는 HttpException 클래스의 인스턴스를 캐치하며, 클라이언트에게 반환되는 응답을 구성한다.이를 위해 익스프레스의..
깊이우선탐색과 너비우선탐색은 그래프 데이터를 탐색하는 강력한 두 가지 알고리즘이다. 이 두 방식의 초점은 정점(vertex 또는 node)에 있다. 모든 정점을 순회하거나 정점 사이의 최단 거리를 찾아내는 것이다. 반면 최소신장트리는 정점을 이어주는 '간선'을 위한 알고리즘이라 할 수 있다. MST는 아래의 경우 주로 사용된다.네트워크 설계 (최소 비용으로 모든 지점 연결)도로 건설 (최소 비용으로 모든 도시 연결)전기 회로 설계파이프라인 설계네트워크 비용 계산 및 최적화:통신망을 배치할 때마다 얼마나 비용이 들어갈 수 있는지 계산할 수 있다. 이는 최소신장트리가 간선 가중치의 합이 최소인 트리를 구성할 수 있기 때문이다. 효율적 전력망:A에서 B까지 전기를 보내야 할 때 가장 빠르고 저렴한 공급 경로..
BFS는 그래프나 트리 구조에서 노드를 탐색하는 알고리즘으로, 루트 노드(혹은 시작 노드)에서 시작하여 인접한 노드들을 먼저 탐색하는 방식이다. 주요 특징:큐(Queue) 자료구조를 사용같은 레벨(depth)에 있는 노드들을 먼저 탐색최단 경로를 찾는 문제에서 많이 사용됨BFS의 실제 활용 사례:최단 경로 찾기 (예: 네비게이션)웹 크롤링SNS에서 친구 추천 시스템네트워크 탐색아래 코드는 A 노드에서 출발하여 BFS를 하는 과정을 출력한다.// 그래프를 인접 리스트로 표현const graph = { A: ['B', 'C'], B: ['A', 'D', 'E'], C: ['A', 'F'], D: ['B'], E: ['B', 'F'], F: ['C', 'E']};function..
1. HttpException 을 이용한 표준 예외 구현 NestJS에는 예외를 처리하는 계층이 프레임워크 자체에 내장돼 있다. 이것들은 코드를 통해 직접적으로 예외가 제어되지 않는 경우 동작하며, 자동적으로 사용자 친화적인 에러를 반환한다. 스프링에서 필터나 인터셉터와 같은 것들과 비슷하게 말이다. 이는 내장된 global exception filter에 의해 수행되며, 이 필터는 HttpException 타입의 예외를 다룬다.그리하여 기본적으로 아래와 같은 형식의 예외를 반환한다.{ "statusCode": 500, "message": "Internal server error"} nestJS는 기본적으로 HttpException 클래스를 제공한다. 만약 앱이 전형적인 HTTP Rest/Gra..
깊이우선 탐색은 그래프나 트리 구조에서 가능한 한 깊이 탐색하다가, 더 이상 탐색할 수 없을 때 다른 경로로 돌아가서 탐색을 계속하는 알고리즘이다. DFS의 주요 특징:한 방향으로 끝까지 탐색한 후 다음 경로를 탐색한다.재귀 또는 스택을 사용하여 구현할 수 있다.시간 복잡도는 O(V + E)입니다. (V: 정점 수, E: 간선 수)DFS의 활용 사례:미로 찾기위상 정렬연결 요소 찾기순환 감지경로 찾기실제로 사용할 때는 방문한 노드를 표시하는 것이 중요하며, 무한 루프를 방지하기 위해 visited 세트를 사용한다. // 인접 리스트를 사용한 그래프 구현const graph = { 'A': ['B', 'C'], 'B': ['A', 'D', 'E'], 'C': ['A', 'F'], '..
이진탐색은 데이터를 반으로 나눠가면서 데이터를 찾는 방식을 뜻한다.이진탐색은 특성상 데이터가 정렬된 상태여야 한다. 데이터가 정렬된 상태라면 아래의 순서로 진행한다. 1단계: 전체 배열의 중간 인덱스의 원소와 검색값을 비교한다.2단계: 검색값이 배열의 좌우 중 한 곳에 포함되면 다시 1단계를 반복한다. 즉, 중간을 자르고 크기를 비교하는 것을 반복하는 것이 이진탐색 알고리즘이며, 선형탐색보다 검색 횟수가 적기 때문에 시간 복잡도에서 우위가 있다. // 중앙 값을 구해서 나머지를 버린다.(이 때문에 mid가 left값과 더 가까울 수 있음)// 배열에서 mid인덱스 값이 타겟값인 경우 리턴한다.// mid인덱스 값이 타겟보다 작으면 mid에 1을 더한 값을 left에 할당한다. 새로 만들 mid값을 오..
모든 데이터를 찾아 보는 가장 단순하면서도 직관적인 방법이다. //pnpm exec ts-node codeTest.tsconst dictionary = [ { word: 'a', mean: '라틴 문자의 첫 번째 글자' }, //...];function findMean (keyword, array) { for (let i = 0; i el.word === 'a');console.log(result?.mean);// 라틴 문자의 첫 번째 글자 하나의 반복문을 돌면서 주어진 값이 나올 때까지 검색하는 방식이다. 그러므로 선형 탐색의 시간 복잡도는 O(n)이라 할 수 있다. 자바스크립트에서는 선형 탐색을 사용해 배열에서 원하는 값을 반환받는 메서드가 존재한다. Array.prototype.find() 이..
자바스크립트에서는 기본적으로 정렬 함수를 제공한다. 가장 대표적인 정렬 메서드는 Array.prototype.sort()이다. 이 메서드는 기본적으로 모든 배열에 사용할 수 있고, 아래와 같은 방식으로 사용한다. const array1 = [5, 7, 2, 9, 6, 13];const array2 = ['red', 'blue', 'yellow', 'green']console.log(array1.sort());console.log(array2.sort());/*[ 13, 2, 5, 6, 7, 9 ][ 'blue', 'green', 'red', 'yellow' ]*/ 배열에 sort() 메서드를 호출하면 호출한 배열이 정렬된다. 원소가 숫자 또는 문자인 경우 모두 쉽게 정렬이 가능하다. 따라서 실제로는 정렬..
기수 정렬은 자릿수를 기반으로 정렬한다.가령 숫자의 일의 자리, 십의 자리, 백의 자리와 같은 자릿수이다. 당연히 두 자리 숫자는 한 자리 숫자보다 크고 세 자리 숫자보다 작다.보통 기수 정렬은 10진수를 기반하여 설명하고 사용하지만 원리를 이해하면 다른 진법에서도 적극적으로 활용하 수 있다. 기수 정렬의 작동 순서1단계: 가장 작은 자릿수부터 가장 큰 자릿수까지 반복하여 비교한다.(값 그 자체가 아니라 자릿수를 비교함에 주의)2단계: 각 자릿수를 기준으로 입력 배열을 정렬한다.3단계: 각 자릿수별로 정렬된 배열을 합쳐 정렬을 완료한다.function radixSort(arr) { // 최대값 찾기 const maxNum = Math.max(...arr); // 현재 자릿수 (1의..
힙 정렬은 최댓값, 최솟값을 찾는 데 특화된 정렬 방법이다. 해결해야 할 문제가 최대, 최솟값을 찾아내는 것이라면 힙 정렬을 사용해야 할 수도 있다. 힙(heap):힙은 최댓값 및 최솟값을 찾아내는 연산을 빠르게 하기 위해 고안된 완전 이진트리(complete binary tree)를 기본으로 한 자료구조(tree-based structure)이며 힙 속성을 만족한다. 완전 이진 트리(complete binary tree):완전 이진트리는 각각의 노드가 최대 "두 개"의 자식 노드를 가지는 트리 자료구조이다. 가장 위에 존재하는 노드를 루트 노드(root node)라고 한다. 이진트리에는 레벨이 존재한다. 루트 노드가 위치하는 가장 상단 레벨부터 Level 0 이다. 내려갈수록 레벨이 증가한다.이진트리에..