관계형 데이터베이스는 오랜 시간 데이터 관리의 중심에 자리 잡고 있었습니다. 그러나 인터넷과 모바일의 급격한 성장으로 대규모 비정형 데이터를 다루어야 하는 상황이 늘어났습니다. 그와 함께 RDB의 한계가 드러나기 시작했습니다. 이에 대응하여 등장한 것이 바로 NoSQL입니다. 다만 NoSQL이라는 이름으로 묶여 있는 다양한 데이터베이스는 그저 RDB의 대안이 아닙니다. 이번 글에서는 NoSQL이라는 단순한 분류를 넘어, 세분화된 데이터베이스 관리 시스템의 세계를 탐구해 보고자 합니다. 또, 이토록 다양한 DBMS를 적절히 사용하기 위해 고려할 내용 역시 살펴보겠습니다.
요즘 개발자는 단순히 뛰어난 코드를 작성하는 것만으로는 성공하기 어렵습니다. 저 역시 주니어 개발자일 때, 능력의 부족함을 많이 느꼈습니다. 다만 그때는 ‘일잘러’가 된다기보다 개발 스킬을 키우려고만 노력했습니다. 그래서인지 기술적인 측면에서 성장했지만 능력만큼 인정받지 못하거나 때로는 같이 일하기 힘들다는 말을 듣기도 했습니다. 다른 개발자들도 어떠한 계기가 있어, 조금이라도 빨리 이러한 측면에 관심을 가지고 시도해 봤으면 좋겠다는 생각이 들었습니다. 그런 마음에 이 글을 쓰기 시작했습니다. 개발자도 ‘일잘러’가 되어야 하는 이유와 커리어 단계별로 필요한 역량, 주니어를 위한 성장 가이드를 정리했습니다.
C++은 프로그래밍 언어로서 지난 수십 년간 소프트웨어 개발의 핵심 역할을 해왔습니다. 그러나 C++의 역사에 영광만 있지는 않았습니다. 도전과 기회, 위험이 공존하는 길이었죠. 저 역시 지난 97년, 학창 시절부터 C++을 배우기 시작했습니다. 직업 개발자가 된 다음 지금까지 써온 언어 역시 C++입니다. 어렵고 낡은 언어라며 기피 대상이던 C++ 이해도가 최근 컴퓨터 과학 기초의 중요성이 떠오르며 다시금 중요해졌다는 소식을 들으면 재밌기도 합니다. 그런 의미로 이 글에서는 C++의 과거와 현재, 그리고 미래를 살펴보려고 합니다. 그와 함께 왜 C++을 배우는 것이 여전히 중요한지도 이야기해 보겠습니다.
여러분은 서버를 어디에 배포하나요? 10년 사이, 수많은 IT 기업이 클라우드 전환을 마쳤습니다. 클라우드 환경이 가져다준 변화 중 하나는 바로 배포와 확장의 유연함입니다. 물론 과거에도 배포를 편리하게 개선하고자 하는 노력이 없었던 것은 아닙니다. 그러나 클라우드 기반 환경에서 발생하는 여러 니즈를 수용하며 유연성은 더 빠르게 발전했죠. 배포만이 아니라 다양한 접근에 대한 유연함, 트래픽 소화량 등 발전 경험 역시 축적되었습니다. 이에 따라 다른 디자인 패턴이 그래왔듯, 클라우드 디자인 사례들 역시 패턴화되었습니다. 그렇다면 클라우드 디자인 패턴이란 무엇이며, 어떻게 써야 하는지 한번 알아봅시다.
Rust. 최근 Reddit이나 HackerNews를 보면 아주 빈번하게 접할 수 있는 프로그래밍 언어입니다. 이 언어는 시스템 프로그래밍 언어로, 특히 C와 C++의 단점을 보완하고자 하는 목적에서 탄생했습니다. 더 나은 안정성과 성능, 특히 병렬 처리의 안전성을 핵심 목표로 개발되었죠. 따라서 C++을 대체할 수 있는 언어로 유명한데요. C++의 오랜 사용자 입장에서 Rust가 과연 어떤 메커니즘으로 이를 대체하고자 하는지 알아두면 좋은 시점이라고 생각했습니다. 과연 Rust는 어떤 특징이 있길래, 이렇게 인기를 얻고 있는 걸까요?