목록분류 전체보기 (259)
차근차근
90. 클러스터 설계 ★★★ 1. 클러스터(Cluster)의 개요 - 클러스터는 데이터 저장 시 데이터 액세스 효율을 향상시키기 위해 동일한 성격의 데이터를 동일한 데이터 블록에 저장하는 물리적 저장 방법이다. - 클러스터링키로 지정된 컬럼 값의 순서대로 저장되고, 여러 개의 테이블이 하나의 클러스터에 저장된다. 2. 클러스터(Cluster)의 특징 - 클러스터링 된 테이블은 데이터 조회 속도는 향상시키지만 데이터 입력, 수정, 삭제에 대한 기능은 저하시킨다. - 클러스터는 데이터의 분포도가 넓을수록 유리하다. - 데이터 분포도가 넓은 테이블을 클러스터링하면 저장 공간 절약 가능 - 클러스터링된 테이블은 클러스터링키 열을 공유하므로 저장 공간이 줄어듦 - 대용량을 처리하는 트랜잭션은 전체 테이블을 스캔하..
85. 사전 조사 분석 ★★ 1. 물리 데이터베이스 설계 - 논리적 데이터베이스를 물리적 저장장치에 젖아할 수 있는 물리적 구조의 데이터로 변환하는 과정 - 물리적 데이터베이스 구조의 기본적인 데이터 단위는 저장 레코드이다. - 물리적 설계 단계에 꼭 포함되어야 할 것은 저장 레코드의 양식 설계, 레코드 집중의 분석 및 설계, 접근 경로 설계 - 여러 가지 타입의 저장 레코드 집합이라는 면에서 단순한 파일과 다름. - 데이터베이스 시스템의 성능에 중대한 영향 - 물리적 설계 시 고려 사항(인덱스 구조, 레코드 크기, 레코드 개수, 트랜잭션의 갱신과 참조 성향, 스키마 변경 여부 검토, 수행속도, 변화가능성) - 설계 전 데이터 명명 규칙, 시스템 자원, 데이터 베이스 관리 요소 등을 파악해야함 2. 데이..
80. 관계형 데이터베이스의 제약 조건 - 무결성 ★★ 1. 무결성(Integrity)의 개념 및 종류 - 무결성이란 데이터베이스에 저장된 값과 그것이 표현하는 현실 세계의 실제 값이 일치하는 정확성을 의미한다. - 부정확한 자료가 데이터베이스 내에 저장되는 것을 방지하기 위한 제약 조건 - 개체 무결성, 도메인 무결성, 참조 무결성, 사용자 정의 무결성 등이 있다. 2. 개체 무결성(Entity Integrity, 실체 무결성) - 기본 테이블의 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없다. 3. 도메인 무결성(Domain Integrity, 영역 무결성) - 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정 4. 참조 무결성(Referential Integrity)..
75. 식별자(Identifier) ★ 1. 식별자의 정의 및 분류 - 식별자는 하나의 개체 내에서 각각의 인스턴스를 유일(Unique)하게 구분할 수 있는 구분자로, 모든 개체는 한 개 이상의 식별자를 가져야함 - 식별자의 분류 : 대표성 여부(주, 보조), 스스로 생성 여부(내부, 외부), 단일 속성 여부(단일, 복합), 대체 여부(원조, 대리) 2. 주 식별자/보조 식별자 - 주 식별자(Primary Identifier)는 개체를 대표하는 유일한 식별자 - 보조 식별자(Alternate Identifier)는 주 식별자를 대신하여 개체를 식별할 수 있는 속성 - 주 식별자의 4가지 특징 : 유일성, 최소성, 불변성, 존재성 - 두 식별자 모두 개체를 유일하게 식별할 수 있어야 함. - 주 식별자는 ..
70. 데이터베이스 설계 ★★★ 1. 데이터베이스 설계 개념 - 사용자의 요구를 분석하여 그것들을 컴퓨터에 저장할 수 있는 데이터베이스의 구조에 맞게 변형한 후 특정 DBMS로 데이터베이스를 구현하여 일반 사용자들이 사용하게 하는 것 2. 데이터베이스 설계 고려사항 - 무결성(제약 조건 항상 만족), 일관성(응답 일정해야 함), 회복(복구가능해야함), 효율성(최적화 가능해야함), 확장(데이터 추가 가능해야함) 3. 데이터베이스 설계 순서 - 요구조건분석 => 개념적 설계 => 논리적 설계 => 물리적 설계 => 구현 4. 요구조건분석 - 사용할 사람들의 용도 파악 - 데이터 종류, 용도, 처리형태, 흐름, 제약조건 수집 5. 개념적 설계(정보 모델링, 개념화) - 개념 스키마 모델링과 트랜잭션 모델링 병..
1. 쿠버네티스 (Kubernetes) 쿠버네티스는 컨테이너를 관리하기 위한 툴이다. 만약 토커를 이용해서 (Nodejs 혹은 장고)웹사이트를 배포하려고 한다면, 즉, 그걸 도커 컨테이너 안에 넣어서 AWS로 보내고 싶다면 이 프로세스에서는 쿠버네티스를 알아야할 이유가 없다. 왜냐면 이때는 그냥 도커를 업로드하고 배포하는 것이 전부이기 때문이다. 알다시피 도커는 여러개의 컨테이너를 갖고 있을 때 쓰인다. 예를 들어 만약 MSA를 가지고 있다면, 그래서 어떤 컨테이너는 유저 업로드만 다루고, 어떤 컨테이너는 인증 만 다루고 어떤건 결제만 다룬다면 이 모든 컨테이너들은 동시에 업로드가 되어야 한다. 배포를 할 때는 그렇게 하면 되긴 하는데 많은 컨테이너를 갖고 있다면 문제가 생길 수 있다. 예를 들어, 컨테..
1. 도커(Docker) Docker는 컨테이너 기반의 오픈소스 가상화 플랫폼이다. Docker는 environment disparity 문제를 해결해준다. environment disparity가 무엇이냐? 예를 들어, 어제 저녁에 개발을 하고 있었고 서버에 올리기만 하면 되는 일이었다. 근데 올린게 작동을 잘 안했다. 그 이유는 내 컴퓨터는 윈도우고 서버는 리눅스 였기 때문이다. 이러한 것이 environment disparity이다. Docker가 그것을 해결해준다. 위 문제를 해결하기 위해 윈도우와 서버에 docker를 둘다 설치한다. 거기에 내가 설치하고 싶은 우분투, 파이썬, 깃 등등을 설치한다. 이 파일을 서버와 윈도우 둘에게 주고 Docker는 해당 설정 환경과 같은 버츄얼 컨테이너를 컴퓨..
MSA(Micro Service Architecture) 클라이언트 개발자보다는 서버 개발자가 더 관심을 가지는 내용 마이크로 서비스는 최근에 나온 아키텍쳐가 아니고 옛날부터 존재했던 아키텍쳐이다. 다만 최신 개발 트렌드로 많이 언급되는 주제이다. MSA가 절대적으로 좋은 것이 아니라 자신이 속해 있는 팀과 개발, 배포 방식에 맞는 아키텍쳐를 적용하는 것이 유리하다. MSA이전의 아키텍처라고 할 수 있는 가장 기본적인 형태의 아키텍처인 모놀리틱 아키텍처를 먼저 보겠다. 모놀리틱 아키텍처 모놀리틱 아키텍처는 최근 서비스 구성의 관점에서보면 단점이 있다. 쉽게 말하자면, 서버 한 대에 DB나 API를 둔 뒤에 서버 한대로 배포를 진행하는 방식이라고 볼 수 있다. 그렇기 때문에 예를 들면 서비스가 약간 크다고..
1. Error yarn과 npm으로 graphql을 중복 설치하여 생긴 문제 Error: Cannot use GraphQLSchema "[object GraphQLSchema]" from another module or realm. Ensure that there is only one instance of "graphql" in the node_modules directory. If different versions of "graphql" are the dependencies of other relied on modules, use "resolutions" to ensure only one version is installed. https://yarnpkg.com/en/docs/selective-ver..
1. npm error npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! gql-apollo-react@1.0.0 start: `nodemon src/index.js` npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the gql-apollo-react@1.0.0 start script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! C:\Users\KFL202007_2\AppData..