목록2022/11 (4)
공부한 것 꼭꼭 씹어먹기
트랜잭션 데이터 베이스에 대해 배울때 필수로 배우는 개념이 있습니다. 바로 '트랜잭션(Transaction)'이라는 용어인데요. 데이터 베이스가 수행하는 여러개의 작업(여러개의 쿼리)를 하나로 묶은 실행 단위라고 정의할 수 있습니다. 데이터베이스에서 트랜잭션은 하나의 작업 단위가 되어 같이 묶인 모든 작업이 모두 완료가 되어야 해당 트랜잭션도 완료되었다고 할 수 있습니다. 즉, 트랜잭션에 묶인 모든 작업이 모두 실패 혹은 모두 성공이 되어야 합니다. ACID 데이터 베이스에 대해 배울때 필수로 배우는 또 다른 개념이 있습니다. ACID라고 불리는 데이터 베이스의 설계 원리인데요. A는 Atomicity 원자성, C는 Consistency 일관성, I는 Isolation 고립성 그리고 D는 Durabili..
데이터 복제에는 두 가지 방법이 있습니다. 데이터 복제 방법 1. 마스터 슬레이브 말그대로 주인과 하인의 관계를 만들어 내는 복제 방법입니다. 우선 데이터가 마스터 서버에 저장이 되고나면 이 데이터들은 슬레이브 서버로 복제됩니다. 읽기 작업은 마스터 서버 뿐 아니라 모든 슬레이브 서버들에서 가능하지만 쓰기 작업은 마스터 서버에서만 가능합니다. 만약 읽기에 대한 request가 증가할 경우 슬레이브 서버를 추가하여 효율적으로 처리할 수 있습니다. 그러나 쓰기 작업의 경우는 마스터 서버에서만 감당하므로, 만약 쓰기에 대한 request가 증가할 경우 성능 저하가 있을 수 있습니다. 따라서 마스터 슬레이브 복제 방법은 쓰기 작업이 많지 않고 읽기 작업이 많은 데이터 세트에 최적화된 방법이라고 할 수 있습니다...
데이터 저장의 기본 개념을 살펴보겠습니다. 외부 데이터는 대체로 직접 처리할 수 있는 상태가 아니기 마련입니다. 데이터를 저장하고 처리해서 사용하려면 데이터 랭글링(data wrangling)을 통해 데이터를 잘 다듬어야 하지요. 즉, 데이터를 여과하고 정제 및 통합하는 과정을 데이터 랭글링이라고 합니다. 처음에는 데이터의 복사본이 원본 형식으로 저장되고, 랭글링이 끝나면 처리된 데이터가 다시 저장되는 것인데요. 빅데이터의 데이터 세트를 원본이나 복사본으로 저장해야 하기 때문에 확장성 좋고 저렴한 저장 솔루션이 필요하게 됩니다. 이러한 저장 기술 관련하여 알아야 할 몇가지 개념들을 정리해 보겠습니다. 클러스터 클러스터(clusters)는 서버(or 노드)들의 모음입니다. 여러대의 컴퓨터들이 하나의 시스템..
웹앱 프로그램은 개발환경이 준비되고 개발 언어를 알면 개발 할 수 있습니다. 비즈니스 로직을 정확히 이해한 상태라면 기능 자체를 개발하는 것은 전체 소프트웨어 개발 과정 중 가장 쉬운 일이라고 할 수 있습니다. 문제는 개발한 프로그램의 기능이 제대로 작동하는지, 최적화가 잘되어서 만족할 만한 성능을 가지고 있는지, 보안에 취약하지는 않은지, 안정적인 운영이 가능한지, 그리고 추후 확장성이 충분한지 등등 검증해야 할 것들이 매우 많다는 것입니다. 이런 검증을 웹앱 프로그램 테스트를 통해 할 수 있습니다. 예전에는 개발이 완료된 후 출시 전에 테스트를 했지만, 요즘은 개발 단계별로 그에 맞는 테스팅 전략을 이용합니다. 마치 공장에서 공정이 하나하나 흘러갈 때마다 품질 테스트를 거쳐서 다음 단계로 나가는 것처..