스토리지 기술의 변천과 데이터베이스에 끼치는 영향 하드웨어 성능 개선의 역사 랜덤 엑세스 : 인덱스와 실제 데이터는 물리적으로 인접해 있지 않기 때문에 각각 별도로 액세스할 필요가 있다.(두 번) 액세스하려는 그 데이터가 메모리에 있는가, 아니면 디스크에 있는가에 따라 속도 차이가 크다. HDD로의 액세스를 하게되면 엄청 느려 예전에는 데이터를 수평 분할했다.(샤딩) 서버를 여러 대로 나열하여 처리 메모리의 가격 하락과 64비트 OS의 대두 => 한 대당 탑재 가능한 데이터베이스의 크기가 증가 => 많은 사용자 처리 가능 => 데이터베이스의 서버 대수를 크게 줄임 단일 스레드에서 행하는 타입의 작업에 시간이 너무 오래 걸려(마스터는 병렬화된 처리지만 MYSQL 복제는 단일 스레드라서 갱신 처리가 직렬화(..
객체 리터럴 객체는 변경 가능(mutable)한 값이다. 객체는 프로퍼티(프로퍼티 키, 프로퍼티 값)와 메서드로 구성된다. 자바스크립트는 프로토타입 기반 객체지향 언어다. 따라서 다양한 객체 생성 방법을 가진다. 1. 객체 리터럴 2. Object 생성자 함수 3. 생성자 함수 4. Object.creeate 메서드 5. 클래스 프로퍼티 키에는 네이밍 규칙을 따르거나 ''를 사용해야 한다. 프로퍼티에 접근할 때는 마침표 표기법과 대괄호 표기법이 있다. 대괄호 프로퍼티 접근 연산자 내부에 지정하는 프로퍼티 키는 반드시 따옴표로 감싼 문자열이어야 한다. 네이밍 규칙을 따르지 않았다면 반드시 대괄호 표기법으로 접근해야 한다. 추가 수정 삭제 가능(삭제는 delete person.age) ES6 객체 리터럴 확..
데이터베이스가 없으면 무엇이 곤란한가 대량의 데이터 중에서 필요한 것을 빨리 반환할 수 없다. 대량의 데이터를 메모리 내에서만으로는 취급할 수 없다. 장애가 발생했을 때 빠른 복구가 어렵다. 병렬성 제어가 어렵다. 데이터 무결성을 보장하는 것은 어렵다. 인덱스로 고속 액세스 실현하기 B+Tree 인덱스 O(log(m)N) B+Tree 인덱스는 Tree 구조로 된 인덱스다. 정상이 root 블록, 최하층이 leaf 블록이며, 그 사이에 branch 블록이 있다. 루트 블록과 브랜치 블록은 검색의 키인 사용자 ID에 대해 해당 블록이 어디에 있는지에 대한 정보를 가지고 있다. 그리고 최하층의 리프 블록은 실제 저장 위치의 정보를 가지고 있다. 루트 -> 브랜치 -> 리프 순으로 도달하여 데이터 얻음 테이블 ..
자바스크립트 특징 1. 인터프리터 언어 인터프리터 언어vs 컴파일러 언어 인터프리터 언어 : 한 줄씩 중간코드인 바이트코드로 변환한 후 실행한다. 실행 파일을 생성하지 않고, 인터프리터 단계와 실행 단계가 구분되어 있지 않고 반복 수행된다. 그래서 실행 속도가 비교적 느리다. 장점은 수정이 편하다. 컴파일러 언어 : 소스코드 전체를 한번에 머신 코드로 변환한 후 실행한다. 실행 파일을 생성하고, 컴파일 단계와 실행 단계가 분리되어 있다. 그래서 실행 속도가 빠르다. 장점은 속도. 그런데 대부분의 모던 자바스크립트 엔진은 인터프리터와 컴파일러의 장점을 결합해 속도가 빠르다. 2. 명령형, 함수형, 프로토타입 기반 객체지향 프로그래밍을 지원하는 멀티 패러다임 프로그래밍 언어 자바스크립트는 클래스 기반 객체지..
VPC 엔드포인트 VPC 엔드포인트는 AWS의 퍼블릭 서비스나 직접적으로 생성한 AWS 서비스에 대해 외부 인터넷 구간을 통한 접근이 아닌 직접적으로 접근할 수 있는 프라이빗 액세스 기능이다. 즉 AWS 내부의 프라이빗 연결이 가능하다. 종류 엔드포인트 : AWS 퍼블릭 서비스 대상에 대한 프라이빗 연결 게이트웨이 엔드포인트 : AWS 퍼블릭 서비스 중 S3, DynamoDB 인터페이스 엔드포인트 : 나머지 AWS 퍼블릭 서비스 엔드포인트 서비스 : 사용자가 지정한 서비스 대상에 대한 프라이빗 연결 이점 보안 측면 강화 비용 절감 효과 서비스 제약 VPC 종속 권한 제어 [실습3-1] 게이트웨이/인터페이스 엔드포인트 비교 1. 기본 환경 구성 CloudFormation을 통해 스택 생성 http://bi..
VPC(Virtual Private Cloud): 독립된 가상의 클라우드 네트워크 VPC 특징 확장성: 클라우드 기반에 손쉽게 VPC 자원을 생성하고 삭제가 가능하며, 설정 및 관리에 편의성을 제공한다. 보안: 인스턴스 레벨과 서브넷 레벨에서 인바운드 및 아웃바운드 필터링을 수행할 수 있도록 보안 그룹과 네트워크 ACL을 제공하여 보안을 강화할 수 있다. 사용자 중심: VPC 내 리소스에 대해 사용자가 원하는 대로 손쉽게 제어할 수 있으며, 네트워크 지표 및 모니터링 툴을 활용하여 사용자에게 높은 가시성을 제공한다. 제약사항: 기술적 제약이 있다.(개선중) OSI 계층(생각나지 않는다면 복습) 퍼블릭 IP(공인 IP): 인터넷 구간의 통신 대상을 식별하기 위해 ISP에서 제공하는 IP WNTH. 전 세계..
서버리스 이해하기 이 장에서는 서버리스 아키텍처와 노드를 함께 사용하는 방법을 소개한다. 이미지를 업로드한 후, 리사이징해서 클라우드 저장소에 업로드할 것이다. 서버리스는 서버가 없다는 뜻이지만, 사실 서버가 없는 것은 아니다. 서버를 클라우드 서비스가 대신 관리해주므로 개발자나 운영자가 서버를 관리하는 데 드는 부담이 줄어든다는 의미다. 즉, 개발자는 자신의 서비스 로직을 작성하는 데만 집중할 수 있게 되는 것이다. AWS는 람다, API 게이트웨이, S3등의 서비스가 유명하고, GCP에서는 앱 엔진, 파이어베이스, 클라우드 펑션스, 클라우드 스토리지 등의 서비스가 유명하다. 이 장에서는 NodeBird에서 업로드하는 이미지를 리사이징하거나 저장한다. AWS에서는 람다와 S3를, GCP에서는 클라우드 ..