본문 바로가기

분류 전체보기237

[실전 레디스] Chaprter 01_레디스의 시작 들어가기에 앞서 PART 01은 기초적인 내용을 담고 있으며, 아래와 같은 순서로 정리되어 있다.1장 레디스의 시작2장 자료형과 기능3장 고급 기능4장 레디스를 활용한 애플리케이션 작성 그 중 1장 CHAPTER 01 레디스의 시작에 대해 읽은 내용을 정리해 보려고 한다.Redis: 빠른 속도와 다양한 자료형을 제공하는 비관계형 데이터베이스 레디스를 한 줄로 정리해 보자면, 위와 같다. Chapter1의 전반적인 내용도 사실 위 한 줄을 넓은 범위로 풀어냈다고 느껴진다.그 다음으로 이어지는 문장은 아래와 같은데, 어떻게 빠르게 동작할 수 있는지에 대한 내용이 더해졌다.레디스는 인메모리 데이터 구조 저장소로써 인메모리에서 빠르게 동작하고, 자료형과 기능이 다양한 비관계형 데이터베이스 입니다. 1. 레디스.. 2025. 5. 20.
Forward Proxy VS Reverse Proxy 프록시프록시 서버는 클라이언트가 자신을 통해 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해주는 컴퓨터 시스템(응용 프로그램)이다.  Proxy = 대리> 서버와 서버 사이의 중계기 역할  프록시: 서버와 클라이언트 사이에 중계기로서 대리로 통신을 수행하는 것프록시 서버: 중계 기능을 하게 하는 것  프록시 사용 이유보안상의 이유로 직접 통신할 수 없을 때 대리로 통신을 수행하여 보안, 성능 및 안정성을 향상 시키기 위함이다. 1) 익명으로 컴퓨터 네트워크 이용프록시 서버를 이용하면 프록시 서버가 대신 리소스를 요청하기 때문에 익명으로 네트워크를 이용할 수 있다.> 클라이언트의 IP가 아닌 프록시 서버의 IP 주소로 요청되기 때문이다. 2) 네트워크 서비스 제공을 제한 또는 관제하기 위함게이트웨이에.. 2025. 2. 26.
[이펙티브 코틀린] 아이템46: 함수 타입 파라미터를 갖는 함수에 inline 한정자를 붙여라 1. 고차 함수다른 함수를 인자로 받거나 함수를 반환하는 함수코틀린에서 람다나 함수 참조를 사용해 함수를 값으로 표현할 수 있음 2. 고차 함수와 inline 의 필요성코틀린에서는 람다 표현식이 객체로 변환되므로 성능 및 메모리 측면에서 오버헤드 발생할 수 있음이를 최적화하기 위해 inline 키워드를 사용하면 성능이 향상 3. 인라인 함수 (inline)컴파일 시점에 함수의 호출 코드가 해당 위치로 직접 복사되는 함수이를 통해 함수 호출 오버헤드를 줄이고, 람다 객체 생성을 방지하여 성능을 최적화 할 수 있음 noInlineTest는 객체를 생성inlineTest는 객체를 생성하지 않고 코드가 직접 삽입되어 실행 속도가 훨씬 빠름 4. reified 키워드기본적으로 JVM의 제네릭은 타입 소거(Type.. 2025. 2. 20.
[이펙티브 코틀린] 아이템43: API의 필수적이지 않는 부분을 확장 함수로 추출하라 클래스의 메서드를 정의 할 때, 메서드를 아래 중 어떤 것으로 정의할 것인지 결정해야 한다.멤버로 정의할 것인가?확장 함수로 정의할 것인가? 1) 멤버 함수 (Member Function)클래스 내부에서 직접 정의된 메서드해당 클래스에 종속됨클래스 인스턴스를 통해 호출됨class Workshop(/*...*/) { // ... fun makeEvent(data: DateTime): Event = // ... val permalink get() = "/workshop/$name"} 2) 확장 함수 (Extension Function)기존 클래스의 기능을 확장하는 함수클래스 외부에서 정의됨클래스 내부 멤버처럼 사용할 수 있지만, 실제로는 첫 번째 매개변수로 리시버 객체를 받는.. 2025. 2. 18.
[이펙티브 코틀린] 아이템40: equals의 규약을 지켜라 코틀린의 Any에는 다음과 같이 잘 설정된 규약들을 가진 메서드들이 있다.equalshashCodetoString'아이템 32: 추상화 규약을 지켜라' 에서 자깐 hashCode와 equals가 언급되었다.이번엔 지난번에 언급된 equals에 대하여 더 깊이 그리고 많이 언급하고 있다. 동등성코틀린에는 두 가지 종류의 동등성이 있다. 1) 구조적 동등성equals 메서드와 이를 기반으로 만들어진 == 또는 != 연산자로 확인하는 동등성이다.a가 nullable이 아니라면 a == b a.equals(b)로 변환되고, a가 nullable이라면 a?.equals(b) ?: (b === null)로 변환된다. 2) 레퍼런스적 동등성=== 또는 !== 연산자로 확인하는 동등성이다.두 피연산자가 같은 객체를 가.. 2025. 2. 10.
[DynamoDB] 개념 및 사용 방법 아마존 DynamoDB는 key-value 및 document 자료 구조를 지원하는 NoSQL 데이터베이스이며, AWS에서 제공하고 있다.DynamoDB는 다이나모라는 스토리지 시스템의 이름에서 파생된 유사 데이터 모델을 노출하지만 기반이 되는 구현체는 다르다. 다이나모 스토리지란?더보기다이나모 스토리지: 아마존의 고가용성 키-값 저장소 시스템으로 다이나모DB의 서비스 기반특징- 높은 수준의 가용성 제공- SSD 스토리지에 저장- 지리적으로 나누어진 데이터센터에 분산저장- 대규모 성능 제공- 거의 무제한의 처리량 및 스토리지 제공 여기까지가 위키에 나와있는 내용 중 간단한 내용이며, 아래에서 몇가지 개념적인 내용을 살펴보려고 한다. 1. 소개 (Amazon DynamoDB 홈페이지 자료)작동 방식- 모든.. 2025. 2. 8.