메모리 계층구조 메모리 계층구조를 보면, 위로 갈수록 빠르지만 비싸고, 밑으로 내려갈수록 느리지만 저렴해지는 특징이 있다. 지금 제가 쓰는 맥북은 12MB의 Cache Memory에 16GB의 DRAM, 256GB의 SSD를 사용하고 있다. 12MB의 캐쉬메모리는 매우 빠르지만 용량이 너무 작아 DB로 쓰기에는 무리가 있다. 그리고 256GB의 SSD는 용량이 크고, 비휘발성이라 컴퓨터가 꺼져도 데이터를 잃지 않기 때문에 일반적인 DB에 사용이 된다. 하지만 SSD는 위 계층들보다 느려서 요청이 많으면 매번 디스크에 접근하여 부하가 걸려 느려질 수 있다는 문제가 있다. 그래서 적당히 빠르면서도 적당히 비싸며, 용량도 DB로 쓰기에 적당한 메인 메모리(DRAM)를 사용하는 데이터베이스를 in-memory ..
지식 한 조각 🍰/10분 테코톡 정리
1. 깃 브랜칭 전략 우리가 깃과 깃허브를 사용할 때 보통 혼자 개발하게 되면 레포지토리의 master 브랜치 하나에 작성한 코드를 기록한다. 이는 자신만의 규칙들을 정하고 그것을 따르기만 하면 문제가 생기지 않는다. 하지만 팀으로 프로젝트를 진행하면서 하나의 레포지토리에 코드를 기록하다 보면 배포용, 개발용의 구분과 같이 브랜치를 여러 개로 관리할 필요가 생기고, 이 브랜치를 규칙 없이 무분별하게 사용하게 되면 어떤 브랜치가 언제, 무엇을 위해 생성됐으며, 삭제되어야 하는데 방치되고 있는지, 아니면 이후 필요한 브랜치인지 정확히 알기 어렵다. 이에 따라서 깃 브랜칭 전략이 나오게 되었다. Git Branching 전략이란, 다수의 개발자가 1개의 저장소를 효과적으로 사용하기 위한 work flow이다...
1990년대 중반, 웹사이트는 모두 Static site, 즉 정적 웹사이트여서 서버에 이미 만들어져있는 HTML 문서를 브라우저에서 요청이 올 때마다 꺼내어 주는 형태였다. 그러다가 90년대 후반~ 2000년대 초반까지 도입된 기술들(iframe, XMLHttpRequest, AJAX 등)은 하나의 HTML 문서에서 서비스를 제공할 수 있게 했고, 또 php나 jsp 같은 기술들은 서버에서 HTML을 재구성하여 보내줄 수 있게 되었다. 여기서 하나의 HTML 문서에서 다른 페이지로의 이동 없이 서비스를 제공하는 웹사이트를 SPA(Single Page Application) 이라고 하고, 위의 기술들(AJAX)을 이용하여 첫 HTML 문서만 받은 후로는 필요한 데이터를 서버로부터 받아 문서 내의 일부만을..
1. 웹, 웹서버, 와스 웹 : World Wide Web, 줄여서 www 또는 web 이라고도 하며, 많은 사람들이 인터넷과 웹을 동일한 것으로 착각하는데, 웹은 네트워크의 애플리케이션 계층에서 동작하는 하나의 애플리케이션이며 인터넷 위에서 동작한다. 웹은 주소에 해당하는 URI, 통신규칙에 해당하는 HTTP, HTML을 비롯한 콘텐츠들인 Resource로 구성된, 인터넷 상에서 정보를 검색할 수 있는 시스템이며 브라우저라고 하는 클라이언트를 통해 웹사이트를 조회할 수 있다. 서버: 클라이언트로부터 요청을 받아 그에 따른 적절한 응답을 해주는 소프트웨어 (또는 컴퓨터). 그러면 위의 내용을 조합하면, Web Server : 웹브라우저와 같은 클라이언트로부터, HTTP 요청을 받아 HTML, CSS, J..