목록분류 전체보기 (178)
한 걸음씩 기록하며
1. RDS란 RDS란 Relational Database Service의 약자로, AWS에서 분산 관계형 데이터베이스이다. RDS는 어플리케이션 내에서 관계형 데이터베이스를 간편하게 설정, 운영, 확장이 가능하도록 지원한다. 하드웨어 프로비저닝, 데이터베이스 설정, 패치 및 백업과 같은 소모적인 관리 작업을 자동화할 수 있다. AWS RDS에서는 다음과 같은 유형의 데이터베이스를 인스턴스를 제공한다. 2. RDS 장점 1) 관리 용이성 Amazon RDS를 사용하면 프로젝트 개념 정립부터 배포까지 모든 작업을 쉽게 처리할 수 있다. AWS Management Console, AWS RDS 명령줄 인터페이스 또는 간단한 API 호출을 통해 몇 분이면 프로덕션용 관계형 데이터베이스의 성능을 활용할 수 있다..
1. Hash Table 1.1 정의 해시 테이블은 Key, Value로 데이터를 저장하는 자료구조 중 하나로, 빠르게 데이터를 검색할 수 있는 자료구조이다. 키 값을 배열의 인덱스로 환산해서 데이터에 접근하는 Direct address table과 달리 해시 테이블은 키 값을 입력받아서 해시 함수를 통해 얻은 해시를 인덱스 배열(버킷)로 환산해서 데이터에 접근한다. 이렇듯 해시 테이블은 각각의 key에 해시 함수를 적용해 해시를 생성하고, 해시를 활용해 값을 저장하거나 검색한다. 1.2 해시 테이블 구성 요소 1) 키(Key) 키는 고유한 값으로, 다양한 길이의 값이 될 수 있으모, 해시 함수의 input이 된다. 키는 최종 저장소에 저장이 되면 다양한 길이 만큼의 저장소를 구성해 두어야하기 때문에 해..
1. 정규화 (Normalization) 정규화란 관계형 데이터베이스의 설계에서 데이터 간의 중복을 최소화되게 데이터를 구조화하는 프로세스를 뜻한다. 정규화는 함수적 종속성을 이용해서 연관성이 있는 속성들을 분류하고, 각 릴레이션들에서 이상현상이 생기지 않도록 하는 과정이다. 이 과정은 큰 테이블을 연관이 있는 컬럼들만 쪼개서, 중복이 없는 형태로 작게 여러 테이블로 쪼개 나가는 과정을 가진다. 1.1. 정규화의 목적 불필요한 데이터를 제거하고 데이터 중복을 최소화하기 위해서 데이터베이스 구조 확장 시, 재 디자인을 최소화하기 위해서 무결성 제약 조건의 시행을 간단하게 하기 위해서 테이블 구성을 논리적이고 직관적으로 만들어, 이상현상을 방지하기 위해서 1.2 이상현상(Anomaly) 삽입 이상(inser..
1. Transaction (트랜잭션) 1.1 트랜잭션의 정의 트랜잭션이란 "더이상 분할이 불가능한 업무처리의 단위" 혹은 "읽기와 쓰기를 하나의 논리적 단위로 묶는 방법"을 의미한다. 위의 정의를 조금 풀어서 설명하면 다음과 같다. 트랜잭션이란 질의(query)를 하나의 묶음으로 처리해서 만약 중간에 실행이 중단되었을 경우, 처음부터 다시 실행하는 Rollback을 수행하고, 오류 없이 실행을 마칠 경우 commit하는 실행 단위를 의미한다. 즉, 한 번 질의가 실행되면 질의가 모두 수행되거나 모두 수행되지 않는 작업 수행의 논리적 단위이다. (all-or-nothing) 트랜잭션은 작업 수행의 논리적 단위이므로, DBMS의 성능은 초당 트랜잭션의 실행 수 (TPS: Transaction per sec..
지난 글에 이어 AWS에서 제공하는 ELB에 대해서 정리해보겠다. https://haksae.tistory.com/200 [Load Balancing]이란 무엇인가 이번 주에 AWS ELB에 대해서 공부하다보니, 연결되어 Load Balancing에 대해서 공부하게 되었다. 공부한 내용을 간략히 정리해본다. 1. Load Balancing(부하 분산) 부하분산 또는 로드 밸런싱은 컴퓨터 네트 haksae.tistory.com 1. Elastic Load Balancer ELB는 AWS의 로드밸런서 서비스로서, 주된 기능은 특정 서버에 부하가 몰리지 않도록 적절히 분산시키는 것이다. 주된 기능 외에도 ELB는 아래와 같은 다양한 기능을 수행한다. (L4 스위치처럼) 헬스 체크(Health Check)를 통..
이번 주에 AWS ELB에 대해서 공부하다보니, 연결되어 Load Balancing에 대해서 공부하게 되었다. 공부한 내용을 간략히 정리해본다. 1. Load Balancing(부하 분산) 부하분산 또는 로드 밸런싱은 컴퓨터 네트워크 기술의 일종으로 둘 혹은 셋 이상의 중앙처리장치 혹은 저장장치와 같은 컴퓨터 자원들에게 작업을 나는 것을 의미한다. 이로써 가용성 및 응답 시간을 최적화 시킬 수 있다. - 위키백과 위의 설명처럼 로드밸런싱은 네트워크에서의 부하 분산을 의미한다. 여러가지 부하 분산이 있지만, 본 글에서는 서버 부하 분산에 대해서만 간단히 다루어보려고 한다. 2. Server Load Balancing(서버 부하 분산) 서버 부하 분산은 외부의 사용자로부터 들어오는 다수의 요청을 서버들에게 ..
AWS로 HTTPS를 설정하려고 했는데.. 최근에 AWS가 업데이트 되었는지, 기존의 자료들과 상이한 부분이 있어서 여러 어려움이 있었다.. 마침내 셋팅이 완료되었고, 나같은 초보자를 위해 간단한 셋팅법을 작성하려한다. 1. HTTPS 먼저 HTTPS의 간단한 정의와 HTTPS를 구현했던 기존 방식에 대해서 간략히 기술하겠다. 1) HTTPS란? 인터넷 상에서 정보를 암호화하는 SSL(Secure Socket Layer) 프로토콜을 이용하여 클라이언트와 서버가 데이터를 주고 받는 통신 규약 당연히 HTTP보다 보안과 안정성이 뛰어나다. 2) 기존의 HTTPS 구현 방식 HTTPS 인증서 구매/발급 (약간의 비용 발생하기도함) 인증서 병합 및 설정 웹 서버에 인증서 설치 웹 서버 설정 변경 HTTPS 적용..
실전프로젝트에서 구현한 오목 게임 로직을 소개합니다 :) 오목 게임 로직은 크게 7가지 입니다. 1) 캔버스로 구현된 오목판에서 유저가 클릭한 위치 값을 x, y 좌표로 데이터 받기 (FE) 2) x, y 좌표를 통해서 승패 판단하기 (FE) 3) 순서 파악하고, x,y 좌표 값을 배열로 변환하기 (BE) 4) 3*3, 4*4 체크하기 (BE) 5) 금수가 아니라면 DB에 있는 배열의 값을 해당 color 값으로 변경하기 (BE) 6) 클라이언트에게 DB에 최신화된 배열 값을 전달하기 (BE) 7) 클라이언트 창에 방금 둔 돌이 반영된 view 제공 (FE) 본 글에서는 위의 로직을 최대한 이해하게 쉽게 설명해보겠습니다. (이해를 위해 쓰다보니 로직 순서와 약간 다를 수 있습니다) 아 그리고 1)~7)까..