일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 하이브리드앱
- JPA
- AWS
- spring boot
- 제이쿼리
- react
- 스프링
- transformer
- Machine Learning
- annotation
- javascript
- 어노테이션
- ES6
- 구버전
- Deep Learning
- C++
- Test Coverage
- 테스트 커버리지
- data structure
- cache
- 스프링 부트
- kotlin
- log4j2
- jQuery
- Java
- 자바스크립트
- 리액트
- bean
- 자료구조
- spring
- Today
- Total
목록○ Programming [Basic] (20)
박서희연구소
Kubernetes란?Kubernetes는 Application의 많은 Instance를 Container의 형태로 자동화된 방식으로 쉽게 deploy하고, host하며 Application 내의 다른 서비스들끼리 소통 할 수 있도록 도와준다. Kubernetes ClusterKubernetes Cluster는 Node의 Set으로 구성되어 있다. 물리적이거나, 가상의 형태일 수 있고, 온프레미스 또는 클라우드 상에 있을 수 있고, Containter의 형태로 Application을 host한다. Cluster 안에는 Worker Node가 존재하는데 이는 선박으로 비유할 수 있으며, 아래와 같은 역할을 수행한다.Container 적재 가능하지만 누군가는 선박에 Container를 어떻게 적재할지 계획..
데이터베이스의 성능성능 이슈는 Disk I/O를 어떻게 줄이느냐에서 시작되는데, Disk I/O란 Disk Drive의 Platter(원판)를 돌려서 읽어야 할 데이터가 저장된 위치로 Disk Header를 이동시킨 다음 데이터를 읽는 것을 의미한다.이 때 데이터를 읽는데 걸리는 시간은 Disk Header를 움직여서 읽고 쓸 위치로 옮기는 단계에서 결정된다. 즉 Disk의 성능은 Disk Header의 위치 이동 없이 얼마나 많은 데이터를 한 번에 기록하느냐에 따라 결정된다고 볼 수 있다.그렇기 때문에 순차 I/O가 랜덤 I/O보다 빠를 수 밖에 없으며, 현실에서는 대부분의 I/O 작업이 랜덤 I/O 랜덤 I/O를 순차 I/O로 바꿔서 실행하는 것에서 연결지어 데이터베이스 Query Tuning은 랜덤..
1. Hash Table 구조 Hash Table 은 Associative(연관) 방법으로 데이터를 저장하는 자료 구조로 Cache 구현 시 사용하기도 한다. Array 형태로 데이터를 저장하며, 각 데이터 값은 Unique 한 Index 를 갖는다. - 장점 - 원하는 데이터의 Index 만 알고 있다면, 데이터의 접근이 매우 빠름 데이터의 크기와 상관없이 삽입과 검색의 행위가 매우 빠른 자료 구조 Key 에 대한 데이터가 있는지(중복) 확인이 쉬움 - 단점 - 일반적으로 저장 공간이 많이 필요 여러 키에 해당하는 주소가 동일할 경우 Collision(충돌)을 해결하기 위한 별도의 방안이 필요 Hashing 은 Key Value 범위를 Array 의 Index 범위로 변환하는 기술을 말한다. Modul..
개요 Caching 은 애플리케이션의 Object 가 Cache 라는 임시 저장 영역에 저장되는 기술을 뜻한다. Cache 자체는 메모리 내의 데이터 구조로 생각할 수 있음 Caching 기술은 비용과 시간이 많이 소요되는 작업이나, Static 한 웹 페이지, 백엔드 DB 의 Access 등 다양한 상황에서 활용이 가능 동일한 정보를 가져오거나 비용이 많이 드는 반복되는 계산을 실행 해야 하는 요구 사항이 있을 때, Caching 을 활용해 중간 Cache 에 데이터를 저장 및 fetching 하는 작업의 용도로 활용할 수 있음 특히 데이터에 대한 빠른 Access 용도로 많이 활용 적절한 Caching 은 성능을 향상시키고 리소스 사용량을 줄이며 응답성을 높일 수 있음 Cache 는 장치의 하드 드라..
개요 알고리즘과 관련된 컨텐츠를 접할 때, 아마 Big-O 란 용어를 봤을 것인데, Big-O 표기법은 알고리즘의 비용을 분석하는 기본 도구 중 하나이다. 소프트웨어 개발자가 깊이 있게 이해한다는 것은 굉장히 중요한 일이다. Wikipedia 에서는 Big-O 표기법에 대해서 이렇게 설명한다. Big-O 표기법은 인수가 특정 값이나 무한대로 향하는 경향이 있을 때, 함수의 제한 동작을 설명하는 수학적 표기법이다. 간단히 말해서, Big-O 표기법은 대수 용어를 사용하여 코드의 복잡성을 설명한다. 알고리즘 복잡도 계산 항목 시간 복잡도 : 알고리즘의 실행 속도(주 계산 항목) 공간 복잡도 : 알고리즘이 사용하는 메모리 사이즈 알고리즘 시간 복잡도는 반복문이 핵심이고, 최악의 실행 시간을 표기하므로 아무리 ..
1. List 란? List 는 정렬된(순서가 있는) 컬렉션을 관리하는 기능을 제공하는 interface 이다. java.util 패키지에 포함되며, Collection interface 를 상속 및 ListIterator interface 의 factory 이다. ListIterator 를 통해 목록을 정방향 및 역방향으로 반복할 수 있다. implementation 클래스로는 ArrayList, LinkedList, Stack 이 존재한다. 2. 특징 element(요소) 를 삽입, 수정, 삭제, 검색 하는 index 기반의 메서드가 포함 중복 element 삽입 가능(중복을 허용) null element 저장 가능 3. 내가 활용해 본 List public void listExample() { //..
1. TypeScript 란? TypeScript 는 JavaScript 의 모든 기능과 Type System 이라는 추가적인 계층을 제공한다. 예를 들면, JavaScript 는 string 과 number 같은 Primitive Type 을 제공하나 이를 맞게 할당했는지 확인하지 않는다. 그러나 TypeScript 는 이를 확인한다. 이런 장점으로 인해 버그 발생의 확률을 낮출 수 있다. 2. 추론에 의한 Type TypeScript 는 JavaScript 언어를 알고 있으며, 변수를 생성하고 값을 할당할 때, Type 을 사용한다. 3. Type 정의 JavaScript 에서 넓고 다양한 디자인 패턴을 사용할 수 있지만, 일부 디자인 패턴은 Type 을 자동으로 추론하기 어렵다. 이런 케이스 때문에..
1. Linked List 구조 인접하지 않은(떨어진) 곳에 존재하는 데이터를 포인터를 이용하여, 연결해 관리하는 데이터의 구조를 말함 - 구조와 용어 - Node(노드) : 데이터 저장 단위(데이터 값, 포인터)로 구성 Pointer(포인터) : 각 노드 안에서, 다음 혹은 이전의 노드와의 연결 정보를 가지고 있는 공간 - 장점 - 동적 배열이기에 런타임 시, 메모리의 할당 및 해제로 확장 및 축소가 가능하므로 데이터 공간을 미리 할당하지 않아도 됨 엘리먼트(Data) 삭제 후, 따로 이동할 필요없이 다음 포인터의 주소만 업데이트 시켜주면 되므로 관리에 용이함 - 단점 - 연결을 위한 별도의 데이터 공간이 필요하므로, 저장 공간의 효율이 낮아질 수 있음 해당 데이터를 찾으려면, 그 이전의 노드를 모두 ..