이번에는 클린 코더라는 책을 읽으며 흥미로웠던 내용들을 정리해 보았습니다. 1장 프로의 마음가짐 책임감을 가져라 테스트하지 않고 선적(배포)하는 일은 무책임한 행위이다. 실제 고객과 회사에 피해를 입힐 수 있기 때문에 어떠한 이유든 책임감을 갖고 테스트를 분명히 해야 한다. 만약 일정 등의 이슈가 있더라도 지켜야 한다. 미흡한 제품이 필드에 나가게 되는 순간부터는 뒷감당하기 어려워진다. 기능에 해를 끼치지 마라 고객이 회사에게 돈을 주고, 회사가 우리에게 급여를 주는 이유는 잘 돌아가는 소프트웨어를 만들어 내길 바라기 때문이다. 오류를 만들면 기능에 해가 되고 프로는 오류를 만들면 안 된다. 소프트웨어를 만들면서 버그는 일어날 수밖에 없지만, 가능한 버그가 일어날 확률을 0에 가깝게 만드는 것이 우리의 ..
트랜잭션이란 테이블 갱신을 수행하기 위해 INSERT/DELETE/UPDATE를 사용할 수 있지만, 갱신은 보통 복수의 쿼리를 연속적으로 수행하는 경우가 대부분이다. 또한, 갱신 전의 데이터로 조회를 할 때 이를 포함한 복수 쿼리들을 일관된 형태의 한 덩어리로 다뤄야 한다. 즉, 트랜잭션이란 복수 쿼리들을 한 단위로 묶은 단위이다. ACID 트랜잭션은 다음과 같이 4가지 특성으로 정의되며, 앞글자를 따서 ACID 특성이라고 한다. Atomicity(원자성) Consistency(일관성) Isolation(고립성 또는 격리성) Durability(지속성) Atomicity(원자성) 원자성이란 데이터 변경을 수반하는 일련의 데이터 조작이 전부 성공할지 전부 실패할지를 보증하는 구조이다. 예를 들어, 서울에서..
데이터베이스 첫걸음을 읽으며 HA(High Availability)를 위한 데이터베이스 아키텍처에 대한 내용을 정리해 보았습니다. 데이터베이스에 예기치 못한 문제가 발생하여 시스템이 정지된다면 관련 서비스 전체가 마비될 수 있습니다. 따라서 데이터베이스는 견고하게 유지되어야 하며, 다중화를 고려해야 합니다. DB 서버의 다중화 - 클러스터링 DB 서버와 저장소의 관계 웹 서버나 애플리케이션 서버는 데이터를 일시적으로 보존하는 반면에 데이터베이스는 대량의 데이터를 영구적으로 보존해야 하고, 매체에 필요한 요건이 높아 전용의 외부 저장소를 사용함 따라서 DB 서버의 아키텍처는 저장소와 묶어서 생각 DB 서버는 영속 계층의 사명으로 다중화 문제를 어렵게 한다. 항상 갱신되는 데이터 사이에서 다중화를 유지하면서..
그림으로 배우는 HTTP & Network Basic를 읽고 정리한 글입니다. 웹이라는 세계가 어떤 기술로 구성되어 있고, HTTP의 배경이 되는 전반적인 내용을 다룹니다. 웹은 HTTP로 나타낸다 웹 브라우저는 주소 입력란에 지정된 URL에 의지해서 웹 서버로부터 리소스라고 불리는 파일 등의 정보를 얻습니다. 이 때, 서버에 의뢰하는 웹 브라우저 등을 클라이언트라고 부릅니다. 클라이언트에서 서버까지 일련의 흐름을 결정하고 있는 것은 웹에서 HTTP(HyperText Transfer Protocol)이라 불리는 프로토콜입니다.프로토콜의 의미는 "약속"입니다. 즉, 웹은 HTTP라는 약속을 통한 통신으로 이루어져 있습니다. 네트워크의 기본은 TCP/IP 인터넷을 포함하여 일반적으로 사용하고 있는 네트워크는..