당장 실무에 쓰일 것 같지않지만, 개발자로서 기본 소양으로 조금은 알아야할 것 같아서 정리해보았다.
서버의 기본
서버의 역할
- 하드웨어의 중심적인 역할
- 애플리케이션 SW 동작시키는 주역
서버와 산하 컴퓨터 사이에는 라우터와 허브 등의 네트워크 기기가 있다.
=> 네트워크 기기들은 질서 있고 효율적으로 목적지까지 잘 찾아가도록 도와주는 필수적인 중간 관리자
현대의 거의 모든 유선 LAN은 '허브'가 아닌 '스위치'를 사용!

서버의 3가지 이용 형태
- 클라이언트의 요청에 대응하여 처리하는 형태(수동적) ex) 파일, 프린트, 메일, 웹 서버 등
- 서버에서 능동적으로 처리하는 형태 ex) 운용 감시, RPA, BPMS 서버 등
- 높은 성능을 활용하는 형태(PC에서 할 수 없는) ex) AI, 빅데이터 서버
서버에 접속하는 기기(클라이언트의 다양화)
- 각각 유선 또는 무선 네트워크를 통해 접속한다.
- ex) Desktop PC, 노트북 PC, 태블릿, 스마트폰, 카메라, 안테나(IC 태그), 마이크, 드론, 로봇 등
하드웨어로서의 서버
PC와의 차이
- 구성 특징: 서버는 신뢰성(24시간. 기본적으로 멈춤X), 확장성(운용 정지않고 교환/증설 쉽게), 가용성, 내결함성 더 필요
- 성능: 서버는 표시 성능뿐만 아니라 처리(I/O) 성능도 중요. PC는 표시(키보드/마우스) 성능 중시
서버 OS
- 현재 서버용 OS는 윈도우, Linux, Unix 계열 주류
서버 사양
- 지금은 '사용자 수', '용도' 등으로도 검토 가능
- 항목: 형태-크기, CPU 수-종류, 메모리 용량, 내장디스크 용량, 전원 유닛, 다중화 냉각팬 등
다양한 서버의 형태
1. 폼팩터 '어떻게 설치하고 관리할까?': 타워, 랙 마운트, 블레이드, 고밀도
2. 특정 임무를 위한 아키텍처 '어떤 문제를 해결할까?': 메인프레임, 슈퍼텀퓨터
서버의 표준
- PC 서버(x86)가 표준이었으나... ARM이 치고 올라오고 있다.(Cloud 기업들. 저전력)
- CPU 아키텍처
- x86 (CISC 방식)
네트워크의 기본은 LAN
- TCP/IP로 불리는 네트워크의 공통 언어(프로토콜)로 통신
- 이외 네트워크: Bluetooth통신, WAN(멀리 떨어진 LAN과 LAN을 서로 연결해주는 거대한 네트워크) => 모두 끊임없이 고속 처리 통신에는 적합x
서버 설치 장소
- 온프레미스: 자유 설정 but 직접 유지 보수, 비용이 낮지않을 수도
- 데이터 센터: 유지보수 편리 but 데이터가 외부 네트워크로 나간다.
클라우드 서비스
- 종류
- IaaS ex) EC2, S3, VPC 등
- PaaS ex) ElasticBeanstalk, RDS, EKS 등
- SaaS: '완성된 소프트웨어'를 구독
- 주의: 데이터를 어떻게 다루는가?
서버 전용 소프트웨어와 미들웨어
- 서버 전용 SW: 클라이언트 상호작용 없이 서버에서만 사용하는 SW
- 미들웨어: 서버 전용 SW가 운영체제나 네트워크 위에서 안정적으로 실행되도록 도와주는 중간 계층
=> 기능보다는 “다른 시스템을 연결하고 지원하는 역할”에 초점
구분 | 정의 | 비유 |
---|
서버 전용 소프트웨어 | 특정 서비스를 제공하기 위해 서버에서 실행되는 애플리케이션 | Apache, Nginx, Tomcat, Spring Boot, Node.js, MySQL Server 등 |
미들웨어 | 애플리케이션과 OS/네트워크 사이에서 데이터·요청을 중개하거나 통신을 도와주는 소프트웨어 계층 | WAS (WebLogic, JBoss), MQ, Kafka, Redis, API Gateway 등 |
ex)
- Spring Boot → Tomcat/WAS 위에서 실행
- 웹 서버(Apache) ↔ WAS(Tomcat) : Tomcat이 미들웨어 역할
- Spring Boot (서버 애플리케이션) ↔ Kafka (메시징 미들웨어)
- ERP 서버 ↔ Oracle DB (DB 미들웨어)
서버로 무엇을 하는가?
서버는 산하의 컴퓨터를 어떻게 보고 있는가?
- IP 주소로 서로 호출
- IP 주소: 컴퓨터 SW가 인식하는 컴퓨터 주소
- MAC 주소: HW가 인식하는 주소. 네트워크 내에서 기기 특정
컴퓨터 간 데이터 통신

라우터의 역할
- 전송되는 데이터를 자신이 목적지로 보낼 것인지, 아니면 다음 라우터로 중계할 것인지 항상 생각
=> 서로 다른 네트워크들을 연결하고, 데이터가 가야 할 최적의 경로를 찾아 보내주는 것
서버 가상화와 데스크톱 가상화
- 서버 가상화: 서버 자원 효율성. IT관리자를 위해 ex) VMware vSphere, KVM, Hyper-V, Xen
- 데스크톱 가상화(VDI): 중앙에서 모든 데스크톱 환경을 관리 가능(보안, 원격 등). 사용자를 위해
Telework(원격근무)와 Thin Client(도구)
- Thin client: 최소한의 기능만 갖춘 간단한 컴퓨터. 중요한 것은 중앙 서버에서만 수행하니 클라이언트 PC 보안문제 생겨도 피해 적다.
네트워크 가상화
- 하나의 물리적인 네트워크 장비(스위치, 라우터 등)를 여러 개의 독립된 가상 네트워크로 나누거나, 여러 개의 장비를 하나처럼 보이게 합치는 기술
ex) Fabric Network(=Ethernet Fabric)
어플라이언스 서버: 특정 작업만 빠르고 안정적으로 처리하도록 HW와 SW가 처음부터 하나로 합쳐져 최적화된 서버
서버의 디스크: PC와 비교하면 성능과 신뢰성이 높은 제품 요구
- 지표: Latency, Throughput, TPS
현재 고성능 서버는 NVMe 인터페이스(연결 방식)를 사용하는 SSD(저장 매체) 여러 개를 RAID(운영 방식)로 묶어, 낮은 Latency와 높은 Throughput/IOPS를 확보하는 것이 일반적이다.
*SAS vs NVMe, HDD vs SSD
클라이언트에 대응하는 역할
- 사용자의 시선
- 파일 서버(접근권한설정), 프린트 서버(무선LAN을 활용한 프린터의 네트워크화), NTP 서버(시각 동기화)
- IP 주소 할당: 서버 OS에 있는 DHCP 서비스로 클라이언트의 IP 주소를 동적 관리
- SIP 서버(IP 전화 제어), SSO 서버(인증 지원), 업무 시스템 서버, ERP, IoT 서버
- IP 전화: 인터넷 프로토콜을 사용한 전화 by VoIP
- SSO 방법: reverse proxy vs agent
- 큰 차이: 인증을 처리하는 위치
- reverse proxy: 모든 애플리케이션 앞단에서 요청을 가로챔. 기존 앱 수정 불필요 but 단일장애지점
- agent: 해당 앱 서버 내에 설치된 에이전트가 요청을 받아 인증 여부를 확인. 세밀한 접근 제어 but 유지보수 어려움
- ERP: 생산, 경리, 물류 드으이 다양한 업무 통합 시스템. 어떤 업무에서 데이터 변경 -> 연계된 다른 업무 데이터도 갱신
- IoT 서버: 수많은 device들을 인터넷에 연결
① 상태를 감시하고 데이터를 수집/처리/저장
② 원격으로 제어하는 핵심 시스템
- 일반 시스템 검토와는 달리 불안정한 네트워크 환경(디바이스 위치), 다양한 통신 방식과 데이터, 대규모 트래픽 처리 등 다른 관점이 요구된다.
메일과 인터넷
- 메일과 인터넷을 지원하는 서버: 메일, 인터넷 서버는 보안상의 이유로 사무 공간 등에서 보여선 안된다.

SSL 흐름
- 클라이언트 PC가 서버에 접속
- 서버는 인증서와 공개키 보냄
- 클라이언트 PC는 인증서 확인 + 통신에 사용할 비밀번호(세션 키) 생성 -> 공개키로 암호화해서 전송
- 서버는 개인키로 비밀번호 확인
=> 이제 이걸로 통신
Proxy 서버(=대리)
- 문제가 될 수 있는 사이트 차단
- 외부에서의 부적절한 접근에 대해 클라이언트 보호
서버로부터의 처리와 고성능 처리
- 시스템 운용 감시(리소스, health) => 서버의 안정적 기동
- IoT로부터 서버가 데이터 수집
- RPA: 업무 자동화 실현 도구
- BPMS: 업무 프로세스를 분석 및 개선하면서 관리
- AI 서버, 빅데이터 서버(비구조화 데이터까지. 대량의 데이터 분석)
- Hadoop: 빅데이터의 실용화 뒷받침 기술. 오픈소스 미들웨어로, 대량의 방대한 데이터 고속 처리
보안과 장애 대책
시스템에 무엇을 지키고 싶은가?
- 정보 자산 ex) HW, SW, 데이터, 인적 자산, 서비스 등
- 데이터 분류: 공개 정보/비밀 정보
- 위협: 기술적 위협, 인적 위협
보안 위협과 대책 사례
대상 | 기술적/인적 | 보안 위협 | 대책 사례 |
---|
시스템이나 서버 | 기술적 위협 | 외부에서의 부정 액세스 | - 방화벽 - DMZ - 디바이스 간 통신 암호화 |
사용자 | 인적 위협 | 내부에서의 부정 액세스 | - 사용자 관리 - 액세스 로그 확인 - 디바이스 조작 감시 |
데이터 | 기술적 위협 | 데이터 유출 | 이동식 매체 안의 데이터 암호화 |
-
정보 보안 정책: 기본 방침 > 대책 기준 > 실시 순서
-
완충 지대(DMZ): 방화벽이 있다고 내부 네트워크 안전하다 보장 x
- 내부 네트워크로의 침입을 막기 위해 방화벽과 내부 네트워크 상이에 설치하는 완충 지대
-
서버 내 보안: Access 제어 매커니즘 ex) 사용자 관리 서비스
-
바이러스 대책
-
서버 장애 대책: Fault Tolerance System(장애허용시스템)
- 기술적인 관점: 다중화(ex - 클러스터링), 부하 분산(ex - 로드밸런싱)
-
네트워크 장애 대책: 티밍(출입구가 되는 네트워크 카드에 장애가 발생해서 통신 불가 상황 방지하는 기술)
-
디스크 장애 대책: RAID
-
데이터 백업: Full 백업, 차등 백업
- 물리적인 구현 형태: 메인->대기 시스템으로의 백업, 서버 안 예비 디스크 준비 백업, DVD나 테이프 저장 장치 등의 외부 매체 활용
-
전원 백업
- UPS: 갑작스런 정전이나 전압의 급격한 변화로부터 서버나 네트워크 기기 등을 보호하는 장비
- 정전 시 전원 공급 기능
- 안전하게 셧다운 하는 기능
서버의 도입
-
서버 도입 시 검토 과정: 어떤 시스템? > 서버가 어떤 처리? > 클라우드 > 온프레미스인가, 임대인가?
=> 이제는 새로운 시스템은 거의 클라우드부터 검토하는 게 기본
=> 클라우드나 어플라이언스 서버의 등장으로 서버 관련 작업 공수 감소
=> 비즈니스에 집중!
-
서버의 성능 견적
- 3가지 관점: 탁상 계산에 의한 견적, 동종 사례와 메이커 추천 참고, 툴을 이용한 성능/부하 측정
- CPU 탁상 계산: 이전에는 클록 주파수였으나, 이제는 CPU 코어와 스레드 수 중심
-
서버 설치 장소(온프레미스 시)
-
IT 전략과의 정합성 확인
-
서버는 누가 관리하는가?
- 용무: 사용자 관리, 자산 관리, 운용 관리 등
-
서버 사용자는 누구인가?
- 시스템이나 서버의 사용자는 워크그룹으로 관리(조직 단위나 역할 등으로)
- 사용자의 권한
서버의 운용 관리
가동 후 관리
- 운용 관리 by 시스템 운용 담당자 : 운용 감시, 성능 관리, 변경/장애 대응 - 정형적/메뉴얼화된 운용 등
- 시스템 보수 by시스템 엔지니어 : 성능 관리, 레벨업, 기능 추가, 버그/장애 대응 - 비정형/메뉴얼화 되지않은 운용 등
장애의 영향: 영향 범위와 영향도(크기)로 검토
서버의 성능 관리: CPU, 메모리, 디스크 등의 순으로 사용률 확인, 대처
SW 업데이트: 성능 향상(시스템 기능 추가, 버전 업), 정상 운용(버그 수정, 필수 SW 업데이트)
장애 대응
- 장애: 시스템이 정지하거나 서버가 보이지 않는 등 정상으로 기능하지 않는 것
- 기본적인 절차: CPU, 메모리, 디스크 순으로 살펴본다.
- 전용 관리 툴 혹은 Command 사용(ping, ipconfig, tracert, arp)
서비스 수준 체계(SLA): 시스템 이용자를 고객으로 인식하고 높은 품질의 서비스를 제공해야한다는 사고방식
- 주요지표: 가용성(시스템 가동시간), 복구 시간
- 가용성: 시스템을 멈춰선 안 된다는 원칙 하
- 복구시간: MTTR(평균 복구 시간) - 시스템에 고장이 발생하고나서 일정 시간 이내로 복구(평균 시간)
사례와 미래
- 미래 키워드: 소형화, 집적화, 가상화, 다양화, 클라우드
얻어가야하는 것
과정: 어떤 시스템을 만들고 싶다(구체화) --- 시스템 규모 ---> 서버 검토
-
시스템 모델화 및 구성 => 관계자 간의 공통된 인식
- SW, HW 요구사항 고려
- 무슨 시스템/접속 기기 종류/네트워크/기능/이용형태(3가지 중)
-
서버 검토
- 성능 견적 후, 사이징
-
CPU 아키텍처
- x86 (CISC 방식)
-
서버 전용 소프트웨어와 미들웨어
-
Proxy
-
SSL
-
컴퓨터 간 데이터 통신, 데이터 캡슐화
-
완충 지대(DMZ)
-
미래 키워드: 소형화, 집적화, 가상화, 다양화, 클라우드