1.문제 국가의 역할 중 하나는 여러 지방의 예산요청을 심사하여 국가의 예산을 분배하는 것입니다. 국가예산의 총액은 미리 정해져 있어서 모든 예산요청을 배정해 주기는 어려울 수도 있습니다. 그래서 정해진 총액 이하에서 가능한 한 최대의 총 예산을 다음과 같은 방법으로 배정합니다. 1. 모든 요청이 배정될 수 있는 경우에는 요청한 금액을 그대로 배정합니다. 2. 모든 요청이 배정될 수 없는 경우에는 특정한 정수 상한액을 계산하여 그 이상인 예산요청에는 모두 상한액을 배정합니다. 상한액 이하의 예산요청에 대해서는 요청한 금액을 그대로 배정합니다. 예를 들어, 전체 국가예산이 485이고 4개 지방의 예산요청이 각각 120, 110, 140, 150일 때, 상한액을 127로 잡으면 위의 요청들에 대해서 각각 1..
# 시작 [나만의 블로그]에서는 SSR(Server Side Rendering)과 CSR(Client Side Rendering)을 적절히 섞어서 사용할 계획입니다. 검색에 노출되어야 하는 화면만 SSR을 수행하고 나머지는 CSR을 적용하게 됩니다. `이번 포스팅에서는 Nashorn을 이용한 SSR을 적용합니다.` 였으면 좋겠지만... TypeScript, Apollo에는 처음 적용해보는데 이런저런 에러가 계속 납니다. 하나씩 해결하다 보니 제법 시간이 오래 소요되어 차차 해결해야겠습니다. 일단 현재 구조에서의 SSR 구현에 관해서만 간단하게 포스팅하겠습니다. 참고로 Nashorn은 jdk11부터 deprecated 되었습니다. # 개념 @CSR (Client SIde Rendering) 클라이언트에서 ..
# 시작 이번 포스팅에서는 Apollo Client를 이용해 이전에 구축한 서버에서 샘플 데이터를 가져옵니다. 필요한 의존성은 이전 포스팅(https://jee-goo.tistory.com/entry/React-Parcel-%EA%B0%9C%EB%B0%9C-%ED%99%98%EA%B2%BD-%EA%B5%AC%EC%84%B1-FrontEnd-1)에서 전부 설치했기 때문에 바로 시작합니다. # Apollo Client 및 Route 구성 다음 파일들을 생성합니다. src/ApolloClient.tsx import ApolloClient from 'apollo-client'; import { HttpLink } from 'apollo-link-http'; import { InMemoryCache } from ..
# 시작 [나만의 블로그]의 FrontEnd는 React-Apollo, Hooks, TypeScript를 사용합니다. 전체적인 Css는 Free Template를 사용하며 디테일한 부분만 Styled Components를 이용합니다. Free Template 관련 파일은 Github의 MyBlog/frontEnd/src/static/assets, images 디렉터리에 있습니다. https://github.com/eonnine/MyBlog.git eonnine/MyBlog Spring Boot, Graphql, PostgreSQL, React-Apollo, Parcel - eonnine/MyBlog github.com # 준비 - Visual Studio Code : 개발 IDE - Node.js 설치 ..
# 개념 이진 탐색 트리이며 자가 균형 이진 탐색 트리이다. 이진 탐색 트리는 값이 편향적으로 구성되는 경우가 있다. 예를 들어 7, 6, 5, 4, 3, 2, 1 순서로 값을 넣으면 한쪽으로 치우진 트리가 만들어진다. 즉, 이진 탐색 트리의 시간 복잡도는 최악의 경우(위 예시) O(트리의 높이=h)만큼의 시간 복잡도를 가진다. 레드-블랙 트리는 위 단점을 색상을 이용한 정렬로 해결하며 O(logN)의 시간 복잡도를 가진다. 또한 균형을 유지하기 위해서 다음의 조건을 만족해야 한다. 노드는 레드 혹은 블랙 중 하나이다. 루트 노드는 블랙이다. 모든 리프 노드(NIL)들은 블랙이다. 레드 노드의 자식 노드들은 항상 블랙이다. (즉, 블랙 노드만이 레드 노드의 부모 노드가 될 수 있으며 레드 노드는 연속적으..
# 개념 이진 트리이다. 각 노드에 하나의 키를 저장한다. 노드 n의 왼쪽 서브 트리에는 n의 값보다 같거나 작은 노드들이 있다. 노드 n의 오른쪽 서브 트리에는 n의 값보다 같거나 큰 노드들이 있다. @검색 이진탐색트리에서 키 x를 가진 노드를 검색하고자 할때, 트리에 해당 노드가 존재하면 해당 노드를 리턴하고, 존재하지 않으면 NULL을 리턴한다. 검색하고자 하는 값을 루트노드와 먼저 비교하고, 일치할 경우 루트노드를 리턴한다. 불일치하고 검색하고자 하는 값이 루트노드의 값보다 작을 경우 왼쪽 서브트리에서 재귀적으로 검색한다. 불일치하고 검색하고자 하는 값이 루트노드의 값과 같거나 큰 경우 오른쪽 서브트리에서 재귀적으로 검색한다. @삽입 삽입을 하기 전, 검색을 수행한다. 트리를 검색한 후 키와 일치..
# 개념 순환 또는 재귀함수. Recursive 메서드는 자기 자신을 호출한다. Resursive 메서드는 Base Case와 Recursive Case를 가져야 한다. -Base Case : Recursion을 벗어나는 경우 -Recursive Case : 자기 자신을 호출하는 경우. 최종적으로 Base Case로 수렴해야 한다. # 예제 n까지의 합계 구하기 const sum = n => { if (n { if(n == 0) return 1; else return n * factorial(n-1); } 피보나치 수 구하기 const fibonacci = n => { if(n < 2) return n; else return fibonacci(n-1) + fibonacci(n-2); } 최대공약수(GDC..
# 시작 저번 포스팅에서 Spring Boot에 GraphQL 연동을 마쳤습니다. 다만 GraphqlAPI.java에 DataFetcher를 등록하는 방식이 영 마음에 들지 않습니다. 쿼리 하나 추가하면 GraphqlAPI.java에도 DI 추가하고... DataFetcher 추가하고... 그래서 이번 포스팅에서는 어노테이션과 리플렉션을 이용하여 애플리케이션이 시작될 때 DataFetcher가 등록되도록 해보겠습니다. # 어노테이션 생성 com/graphql/blog/util/annotation디렉터리를 생성하고 아래 파일들을 생성합니다. GqlDataFetcher.java package com.hello.graphql.util.graphql; import java.lang.annotation.Eleme..
- Total
- Today
- Yesterday
- 알고리즘
- 프로그래머스
- 동적계획법
- Nashorn
- javascript
- typescript
- graphql
- 실행 문맥
- PostgreSQL
- CD
- Pipeline
- execution context
- 프로그래머스[힙]
- Web
- 프로그래머스[스택/큐]
- 프로그래머스[정렬]
- 웹 사이트 최적화
- 프로그래머스[Lv1]
- Kubernetes
- Apollo
- Spring Boot
- Jenkins
- CRP 최적화
- Handshake
- Docker
- 프로그래머스[해시]
- CI
- react
- JPA
- 프로그래머스[이분탐색]
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |