조직에서 직원들은 하루에도 수십 번씩 LDAP을 사용하고 있을 것입니다. LDAP은 존재하는 데이터를 조회, 확인해주는 역할을 합니다. LDAP "엘답"이라고 읽습니다. LDAP(Lightweight Directory Access Protocol)은 응용 프로그램이 사용자 정보를 조회할 수 있도록 하는 프로토콜입니다. 예를 들어, 회사는 직원들의 이름, 아이디, 비밀번호, 이메일 주소 등의 데이터를 디렉터리에 저장합니다. 대부분 윈도우를 사용하기 때문에 마이크로소프트의 AD(Active Directory)를 사용합니다. 이때 AD로부터 데이터를 빠르게 조회하는 게 LDAP의 역할입니다. LDAP은 일반적으로 사용자 로그인에 대한 인증 역할을 수행합니다. LDAP 서버를 두고 다른 애플리케이션이나 서비스에..
대부분의 소프트웨어는 개발 서버와 운영 서버를 각각 두는 전략을 사용합니다. 특히 분리는 물리적입니다. 실제 서버 장비를 두 대 이상 사용합니다. 개발과 운영 서버를 분리하는 이유는 서비스 안정성을 높이기 위함입니다. 사실 이는 굳이 찾아보지 않아도 쉽게 유추할 수 있는 내용이긴 합니다. 그렇지만 실무 개발 환경 구조의 중요한 특성이니 간단히 정리해보겠습니다. 참고로 개발 서버는 개발계, 운영 서버는 운영계로도 많이 부릅니다. 개발 서버는 소프트웨어 제품을 개발하고, 테스트하고, 디버깅하는 공간입니다. 운영 서버에 배포하기 위한 리허설 무대인 셈이니 통상 운영 서버와 거의 비슷한 환경으로 구성됩니다. 이곳에서 이루어지는 개발은 운영 서버에 영향을 주지 않기 때문에 큰 부담 없이 구축하고 테스트할 수 있습..
SMTP(Simple Mail Transfer Protocol)란 메일을 주고받을 때 사용되는 통신 규칙입니다. 이를 통해 지메일, 아웃룩 등의 메일 서비스를 이용할 수 있는 것입니다. 메일 송수신 역시 클라이언트-서버 구조로 통신합니다. 클라이언트인 사용자가 메일 전송 버튼을 누르면 SMTP 서버로 데이터가 전송됩니다. SMTP 서버는 전송된 데이터를 식별합니다. 수신자 메일 주소가 abc@gmail.com이면, 이 문자열을 abc와 gmail.com으로 나누어서 인식합니다. 그리고 이 데이터를 어디에 보내야 할지 결정합니다. 만약 발신자와 수신자 모두 gmail.com URl을 사용한다면 SMTP는 곧장 수신자에게 메일을 전달합니다. 그렇지 않고 발신자와 수신자가 각각 다른 SMTP 호스팅 사업자라면..
기업, 기관 등 조직은 보안 네트워크를 구성하기 위해 방화벽을 두고 별도의 폐쇄된 네트워크(내부망)를 구성합니다. 그러나 모든 업무를 폐쇄망 안에서만 할 수는 없습니다. 그래서 방화벽을 두고 인터넷망과 통신을 주고받습니다. 이때 DMZ라는 공간을 하나 더 만들면 인터넷을 이용하면서도 핵심 인프라에 대한 보안을 강화할 수 있습니다. 네트워크 구성 인터넷망 - DMZ - 내부망 인터넷망은 모두가 사용하는 네트워크 연결망을 말합니다. 외부망이라고도 부릅니다. 인터넷을 통해 웹 사이트에 접속하고 메일과 파일을 주고받습니다. 한마디로 통신이 열려있는 오픈된 공간입니다. 조직은 LAN(Local Area Network)처럼 조직 내에서만 사용할 수 있는 별도의 내부망을 구성합니다. 그러나 인터넷을 사용하지 않아도 ..
클라이언트가 요청을 하면 백엔드 서버는 요청에 대해 응답합니다. 이때 로드밸런서(Load Balancer)는 클라이언트와 서버 사이에서 요청 트래픽을 관리 및 분배합니다. 로드밸런서가 트래픽을 분배하는 작업을 로드밸런싱(Load Balancing)이라고 부릅니다. 로드밸런싱 로드밸런싱은 사용자인 클라이언트로부터 트래픽을 받아 정해진 알고리즘을 기준으로 서버로 전달합니다. 어느 한 서버에 트래픽이 너무 몰렸다 싶으면 한가한 서버에 트래픽을 보내고, 어느 한 서버가 다운되면 정상적인 서버로 트래픽을 몰아주는 식입니다. 한마디로 서버가 효율적으로 사용될 수 있는 상태를 만드는 게 목표입니다. 이를 통해 처리 능력을 끌어올리고, 유연성과 효율성을 높이는 한편, 다운타임과 서버 과부하를 방지합니다. 이런 점에서 ..
서비스의 안정성, 지속성을 보장하기 위해 서버를 두 대 운영하는 걸 서버 이중화라고 합니다. 클라이언트(사용자) 수가 많거나, 장애에 따른 피해가 클 것으로 예상되는 경우에 서버 이중화 환경을 구성합니다. 서버 이중화 Active - Active 서버 두 대를 모두 운영하는 방식을 active - active라고 부릅니다. 서버 두 대가 모두 활성화(active) 상태라는 개념이기 때문에 이해가 어렵진 않습니다. 두 서버 모두 일을 하다가 한쪽 서버에 문제가 발생하면 나머지 한쪽이 모든 트래픽을 처리합니다. 장애가 발생해도 시스템을 사용할 수 없는 시간인 다운타임(downtime)이 없습니다. 두 서버는 트래픽을 어떤 기준으로 나눠서 처리할까요? 이 질문에 대한 답을 로드밸런싱(load balancing..
tracert 또는 traceroute는 네트워크 연결 상태를 구체적으로 파악하는 데 사용되는 진단 도구입니다. ping이 단순히 목적지 IP 주소의 통신 가능 여부를 확인하는 수준이라면, traceroute는 패킷이 출발지에서 목적지까지 이동하는 길목 하나하나를 확인할 수 있습니다. tracert / traceroute tracert와 traceroute는 같은 기능을 한다고 보시면 됩니다. 윈도우에서는 CMD를 통해 tracert로, 리눅스와 맥에서는 터미널을 통해 traceroute로 사용합니다. traceroute라는 단어가 경로를 추적한다는 의미를 더 명확하게 드러내는 것 같으니, 여기부턴 traceroute로 표현하겠습니다. traceroute는 ping과 마찬가지로 목적지에 ICMP(Inte..
게이트웨이와 라우터는 모두 데이터 패킷이 지나치는 경로라는 점에서 비슷해 보입니다. 그렇지만 수행하는 작업의 목적은 다릅니다. 게이트웨이와 라우터의 개념을 설명하고 둘의 차이점을 설명드리겠습니다. 게이트웨이 게이트웨이(Gateway)는 네트워크의 입구이자 출구입니다. 서로 다른 네트워크가 연결될 때 반드시 게이트웨이를 통합니다. 간단한 예로, 우리는 인터넷에 연결될 때 데이터 패킷이 게이트웨이를 통해 나가고 들어옵니다. 게이트웨이는 패킷을 받으면 필요에 따라 프로토콜을 변환합니다. 덕분에 네트워크 간 사용하는 프로토콜이 달라도 통신을 가능해집니다. 게이트웨이는 물리 서버, 가상 애플리케이션 등의 형태로 존재합니다. 네트워크 패킷(packet)이란? 라우터 라우터(Router)는 데이터 패킷을 수신, 분석..
컴퓨터와 컴퓨터가 정상적으로 통신할 수 있는지 확인하기 위해 ping과 telnet을 많이 사용합니다. 두 가지 툴 모두 네트워크 문제를 진단한다는 공통점이 있지만 구체성에 차이가 있습니다. ping ping은 ICMP 패킷을 보내고 다시 돌려받는 명령어입니다. 특정 IP로부터 응답을 받을 수 있는지, 응답에 얼마나 걸리는지 확인할 수 있습니다. 네트워크가 통신이 가능한지 보는 겁니다. 단, ping이 실패했다고 해서 반드시 네트워크에 문제가 있는 건 아닙니다. 보안상의 이유로 ping 응답을 막아놓는 경우도 있기 때문입니다. 예를 들어, naver.com은 ping을 허용하지 않지만 웹 사이트를 이용하는데 문제가 없습니다. telnet telnet의 기본 개념은 원격 로그인 서비스입니다. 그러나 서버와..
컴퓨터와 컴퓨터의 통신은 아주 단순하게 설명하면, 로컬 컴퓨터가 보낸 데이터 패킷이 네트워크를 통해 특정 IP 주소를 찾아가고 IP 주소를 통해 MAC 주소를 찾아가는 과정입니다. MAC 주소와 IP 주소는 컴퓨터 장치를 인식하는데 활용된다는 공통점이 있지만 생성, 사용 방식에 차이가 있습니다. MAC 주소와 IP 주소 차이 MAC과 IP 주소는 1대 1로 매칭 했을 때 차이가 명확하기 때문에 이해하는데 큰 어려움이 없습니다. 차이점에 대해 하나씩 살펴보면 감이 오실 겁니다. MAC 주소는 NIC(Network Interface Card)가 만들어질 때 기록되는 고유한 주소입니다. NIC는 통상 LAN 카드를 말하며 컴퓨터가 출고될 때 기본적으로 탑재됩니다. IP 주소는 ISP(Internet Servi..