수학과의 좌충우돌 프로그래밍

[OS] 동기 vs 비동기, 블로킹 vs 논블로킹

이번 포스팅에서는 동기와 비동기, 블로킹과 논블로킹에 대해서 알아보도록 하겠습니다. 네 단어 모두 익숙하지만 명확하게 설명할 수 없고 이해가 부족하다는 생각이 들어서 정리해보았습니다. Synchoronous VS Asynchoronous, Blocking VS Non-blocking 각 개념을 설명하는데 아래의 그림이 가장 일반적입니다. 4가지로 나눠서 하나씩 알아보도록 하겠습니다. Synchoronous-Blocking 가장 일반적인 상황입니다. Application은 Kernel에 System call을 하고 응답이 올 때 까지 기다리게 됩니다. (Synchoronous) 그리고 Kernel은 I/O 작업을 다 한 후에 Application에 응답을 보냅니다. (Blocking) 그렇기 때문에 App..

OS 2020. 9. 22. 17:30
[MySQL] RDS에서 RDS로 데이터 migration

최근에 진행중인 프로젝트에서 테스트 서버와 프로덕트 서버를 분리하고 있습니다. 그 과정에서 테스트 서버의 DB와 프로덕트 서버의 DB도 각각 존재해야했죠. 기존에 사용하던 DB는 AWS RDS MySQL이었고 이를 프로덕트 서버의 DB로 사용하고자 하였습니다. 테스트 서버의 DB는 마찬가지로 AWS RDS MySQL로 새로 만들어서 데이터를 migration하고자 하였습니다. 이 과정들과 그 과정 속에서 발생한 문제점들을 정리해보았습니다. DB Dump 여러 방법이 있겠지만 dump를 하는 방법으로 방향을 잡았습니다. dump란 현재 데이터를 insert query로 바꿔서 저장하는 방법입니다. insert query로 치환되기 때문에 DBMS나 기타 버전 문제애도 크게 영향을 받지 않는다는 장점이 있습..

데이터베이스/MySQL 2020. 9. 22. 15:00