본문 바로가기

포스트464

GSLB (Global Server Load Balancing) 란? IDC를 넘나드는 이중화 서비스를 구현할 때 GSLB라는 단어를 접하게 된다. GSLB란 무엇이고 일반 DNS와 어떤 점이 다른지 알아보자. GSLB (Global Server Load Balancing) GSLB는 Global Server Load Balancing의 약자이다. 이름에 로드 밸런싱이 들어가 있어서 로드 밸런스의 발전된 형태로 생각할 수도 있지만 사실 GSLB는 DNS의 발전된 형태다. GSLB를 지능적 DNS라고 부르기도 한다. GSLB는 다양한 기능을 통해 다음을 제공한다. 재해 복구(Disaster Recovery) 부하 분산(Load Balancing) 저지연 (Low Latency) DNS를 이용한 로드밸런싱 DNS는 도메인 이름을 IP 주소로 변환해주는 서비스다. 글로벌 로드밸.. 2024. 3. 8.
[Linux] 페이지 캐시 (Page Cache) 리눅스 커널은 파일에 대한 접근 속도 개선을 위해 '페이지 캐시(Page Cache)'를 이용한다. 이번 포스트에서는 리눅스 커널의 페이지 캐시에 대해 알아보고 페이지 캐시를 다루고 모니터링하는 방법에 대해 정리해본다. 목차 페이지 캐시(Page Cache) 리눅스의 메모리 관리 시스템은 최대한 메인 메모리를 잘 활용하도록 만들어져 있다. 사용자의 프로세스만 메인 메모리에 데이터를 저장하는 것이 아니고 리눅스 커널도 적극적으로 메인 메모리를 활용한다. 그 중에 '페이지 캐시(Page Cache)'라는 것도 있다. 리눅스는 파일의 입출력 성능 향상을 위해 페이지 캐시(Page Cache)라는 메모리 영역을 만들어 사용한다. 데이터를 저장하고 있는 파일은 HDD 혹은 SSD에 저장된다. 이런 저장장치들은 메.. 2024. 2. 2.
[Git] 좋은 커밋 메시지를 작성하기 위한 규칙 협업을 잘 하는 개발자가 되려면 커밋 메시지 작성에 관심을 기울여야 한다. 잘 작성된 커밋 메시지는 코드 변경에 대한 컨텍스트를 담고 있어 다른 개발자(혹은 미래의 나)가 코드 변경에 대한 내용을 쉽게 이해할 수 있도록 도와준다. 따라서 좋은 협업자라면 커밋 메시지를 잘 써야 한다. 좋은 커밋 메시지를 작성하기 위해서 알고 있으면 좋은 규칙은 다음과 같다. 제목과 본문 사이에 빈 줄 하나를 사용하라 제목은 50자로 제한하라 제목은 대문자로 시작하라 제목은 마침표로 끝내지마라 제목은 명령형으로 써라 본문의 한줄은 72자 이내로 제한하라 본문에서는 어떻게(How)보다 무엇(What)과 왜(Why)를 설명하라. 규칙 1. 제목과 본문 사이에 빈 줄 하나를 사용하라 원래 깃의 커밋 메시지에서는 제목과 본문을 구.. 2023. 12. 30.
Short Polling vs Long Polling '폴링(Polling)'이란 클라이언트가 서버에게 주기적으로 새로운 데이터나 이벤트가 있는지 주기적으로 확인하는 요청을 전송하는 것을 의미한다. HTTP 요청은 클라이언트가 요청을 보내고 서버가 응답을 주는 형태다. 하지만 클라이언트가 원하는 정보가 아직 서버에 없는 경우 바로 응답으로 돌려주지 못 할 수 있는데 이럴 때 폴링 기법을 이용해서 응답을 기다릴 수 있다. Short Polling 짧은 폴링(Short Polling)은 가장 간단하게 생각할 수 있는 폴링 방식이다. 클라이언트는 서버에게 이벤트나 데이터를 달라는 요청(Request)을 보낸다. 요청을 받은 서버는 데이터나 이벤트가 있으면 담아서 응답으로 보내준다. 만약 데이터나 이벤트가 없으면 빈 응답을 바로 리턴해준다. 빈 응답을 받은 클라이.. 2023. 12. 29.
가상화의 종류 - 전가상화와 반가상화 서버의 가상화는 하이퍼바이저, 가상 OS, VMM(Virtual Machine Monitor)라고 불리며 크게 Type1(네이티브, 베어메탈 방식)과 Type2(호스트형 방식)으로 나눌 수 있다. Type 1 가상화 Type 1 가상화는 네이티브 혹은 베어메탈 하이퍼바이저를 이용하는 가상화다. 하드웨어 위에 하이퍼바이저가 직접 구동되고 그 위에 게스트 운영체제가 수행되는 방식이다. Oracle VM Server for X86, VMware의 ESX/ESX i Server, Citrix Xenserver, Oracle의 VM Server, 마이크로소프트의 Hyper-V, Virtual Iron, Parallels의 Parallels Server 등이 Type-1 형태의 하이퍼바이저다. 베어메탈을 관리할 O.. 2023. 12. 13.
자원의 프로비전(Provision) - 씬 프로비전(Thin Provision) vs 팻 프로비전 (Fat provision) 프로비전(Provision), 프로비저닝 (Provisioning) 클라우드 컴퓨팅이나 가상화 관련된 테크 문서를 보면 '프로비전(Provision)'이나 '프로비저닝(Provisioning)'이라는 단어를 찾아볼 수 있다. 프로비전(Provision)이란 '준비, 대비'라는 뜻의 영단어로 전산에서는 필요한 컴퓨팅 리소스들을 필요한 곳에 배치하거나 사용되지 않는 유휴 자원들을 다시 회수하는 작업들을 말한다. 프로비저닝의 예를 들어보자. 16TB 정도 용량을 사용하는 서버 컴퓨터에 저장할 데이터의 양이 늘어나서 추가로 16TB 디스크 공간을 증설했다. 이후 사용되지 않는 데이터가 정리되거나 압축 등의 작업을 통해 사용 용량이 다시 16TB로 줄어들었다고 하자. 이 경우 사용되지 않는 16TB 공간을 다시 .. 2023. 12. 12.
REST API란 무엇인가? REST는 REpresentational State Transfer의 약자로 2000년도 Roy Fielding의 박사학위 논문에서 최초로 소개되었다. Roy Fielding은 HTTP의 주요 저자중 한사람으로 REST API는 웹 아키텍처의 우수성을 최대한 활용하기 위해 만들어진 API다. 요즘은 웹 서비스뿐 아니라 여러 컴포넌트들로 구성되어 있는 서비스들을 하나로 묶어야 하는 경우에도 많이 사용된다. 따라서 REST API에 대해 잘 알고 있으면 도움이 많이 된다. REST란? REST를 다음과 같이 정의할 수 있다. HTTP URI로 잘 표현된 리소스에 대한 행위를 HTTP Method로 정의한다. 리소스의 내용은 json, xml, yaml 등의 다양한 표현 언어로 정의된다. '무엇을 어떻게 한다.. 2023. 12. 9.
[Linux] 캐싱(Caching)과 버퍼링(Buffering) 그리고 스풀링(Spooling) 시스템 소프트웨어를 다루다보면 '캐싱(Caching)', '버퍼링(Buffering)', '스풀링(Spooling)'에 대한 언급이 자주 나온다. 이들은 각각 어떤 개념이고 어떤점에서 다른지 알아보자. 캐싱 (Caching) 캐싱이란 데이터를 좀 더 빠른 속도의 메모리 영역에 가져와서 접근하는 방식을 말한다. 우리가 사용하는 컴퓨터는 하드디스크, SSD, RAM, CPU 캐시 등의 메모리로 구성되어 있다. 하드디스크과 SSD는 데이터에 접근하기까지 시간이 오래걸리지만 저렴하다. CPU의 캐시는 굉장히 빠르지만 가격이 비싸다. 따라서 이들을 계층적으로 구성해서 필요하거나 필요할 것으로 예상되는 데이터를 미리 더 빠른 메모리로 올려놓고 처리하게 되는데, 이를 캐싱이라고 한다. 데이터는 지역성(Locality.. 2023. 12. 8.
소프트웨어 개발 3대 원칙 : KISS, YAGNI, DRY 고품질의 소프트웨어를 개발하기 위한 다양한 방법론들이 존재한다. 소프트웨어 공학과 관련된 책을 읽다보면 자주 언급되는 원칙들이 있다. 대표적으로 KISS, YAGNI, DRY 원칙이 있다. KISS - Keep It Simple Stupid! KISS 원칙은 "Keep It Simple Stupid!" 혹은 "Keep It Short and Simple", "Keep It Small and Simple"의 앞글자를 따서 만든 약어다. 설명하자면 소프트웨어의 설계나 코딩 작업에서 되도록 간단하고 단순하게 결과물을 만드는게 좋다는 의미다. 설계나 코드가 불필요하게 장황하거나 복잡해지지 않도록 주의하라는 의미다. 설계나 코드가 복잡하고 장황하다면 비즈니스 로직을 이해하기 어렵다. 그렇게 되면 주석도 덕지덕지 .. 2023. 12. 7.