yunki Kim Blog

「Do What You Love」

5.트랜잭션과 잠금

  트랜잭션은 원자성을 보장해 준다. 이를 통해 작업의 부분 업데이트(Partial update - 작업의 일부만 적용되는 현상)가 발생하지 않게 한다.    트랜잭션, 락, 격리가 비슷한 개념 같지만 다음과 같은 차이가 존재한다.   - 트랜잭션: 데이터 정합성을 보장하기 위한 기능.   - 락: 동시성 ...

Chapter1. 코딩 중 겪는 혼란에 대한 이해

  프로그래밍을 하다 보면 여러 가지 혼란을 겪게 된다. 이 중 코드 레벨에서 겪는 혼란의 종류는 크게 세 가지다.   1. 지식의 부족: 프로그래밍 언어나 알고리즘, 업무 영역에 대한 지식이 없을 경우 생기는 혼란.   2. 정보의 부족: 코드를 이해하기 위해 필요한 정보가 불충분할 경우 생기는 혼란.   3. 처...

4.1 Mysql 엔진 아키텍처

Mysql 서버는 Mysql 엔진과 스토리지 엔진으로 구분된다. 스토리지 엔진은 핸들러 API를 만족시키면 누구든지 스토리지 엔진을 구현해 MYSQL 서버에서 사용할 수 있다. 4.1 Mysql 엔진 아키텍처 기본적인 Mysql 엔진 구조는 다음과 같다. Mysql 엔진 구조는 다른 DBMS 구조와 다르기 때문에 다른 DBMS에는 없는 이점을 가진다....

땡쿠 이전하기 - production 편

  우테코가 끝나고 우테코 기간 동안 만들었던 서비스가 우형 AWS에서 내려가게 되었다. 공들여 만든 땡쿠 서비스가 내려가는 게 아쉬워서 AWS free tier에서 최대한 비슷한 환경을 만들어 보고자 이전을 하기로 했다. 기존 아키텍처   우형 AWS에서는 오직 EC2만 사용할 수 있다는 제약사항이 존재해서 EC2를 십분 활용해 다...

S3, Cloud Front

S3 (Simple Storage Service)   S3는 여러 곳에서 파일에 접근할 수 있게 만들어진 서비스다. 웹 서비스에서 많이 사용하며 다양한 목적을 가진 파일들을 보관하는 데 사용된다.   S3는 내구성, 가용성, 확장성에 대해 강점을 가진다. 내구성은 99.999999999%이며 파일 수와 용량에  제한...

[번역] Improving Performance and Reducing Cost Using Availability Zone Affinity

  VPC 내에서 유연한 시스템을 구축할 수 있는 베스트 프랙티스는 AZ를 활용하는 것이다. 하나의 AZ는 풍부한 파워, 네트워킹, 연결성을 가진 한 개 이상의 분리된 데이터 센터다. 동시여 여러 개의 AZ를 사용하면 하나의 단일 데이터 센터를 사용하는 거에 비해 고가용성을 높이고, 실패에 좀 더 유연하게 대처할 수 있으며 스케일링에 용이하게...

우아한테크코스 마지막 후기

  작년 10월? 11월? 즈음에 "코테나 봐야지, 날 뽑아주겠어?"라는 생각으로 지원했던 우테코가 많은 변화를 가져다주었다. 막상 저런 생각으로 지원했어도, 1차 코테에 붙으니 너무 가고 싶었던 우테코를 끝내게 되었다. 부트캠프 치고는 긴 기간이었지만, 나한테는 너무나 짧게 느껴졌다. 하지만 10개월 동안 많은 변화를 가져다주었다. &nbs...

Auto Scaling Group, Elastic Load Balancer

Auto Scaling Group   서비스를 운영하면서 트래픽에 대한 장애 대응을 위해 여러 대의 인스턴스를 사용한다. 이때, Auto Scalilng Group을 사용하면 스케일 아웃을 자동으로 진행할 수 있다. Auto Scaling Group은 AMI를 활용해 같은 사양, 환경, 코드를 가진 EC2 인스턴스를 생성해준다. 또 한, Au...

Chapter 2. Story 6. UDP 프로토콜을 이용한 송/수신 동작

수정 송신이 필요 없는 데이터의 송신은 UDP가 효율적이다.    대부분의 애플리케이션은 TCP 프로토콜을 사용해 데이터 송/수신을 실행한다. 하지만, DNS 서버에서 IP를 조회할 때처럼 UDP를 사용할 때도 있다. TCP는 데이터의 송신을 확실히 하면서도 효율적으로 동작하기 위해 상당히 복잡한 방식을 사용한다. 데이터 도착을 확인...

대칭키 암호화와 비대칭키 암호화

암호화   암호화는 평문을 암호문으로 바꾸는 것을 의미한다. 암호화의 세 가지 보안 기능성은 다음과 같다.   - 기밀성(Confidentiality): 인가된 당사자에 의해서만 데이터 접근이 가능해야 한다.    - 무결성(Integrity): 데이터가 인가된 당사자에 의해서만 인가된 방식으로 변경돼야 한...