1. 서론: 웹 서버의 단짝, 데이터베이스(DB) 구축하기
지난 포스팅에서 우리는 IIS 웹 서버를 구축하고 파이썬으로 상태를 체크하는 법을 배웠습니다. 하지만 진정한 웹 서비스의 완성은 데이터를 저장하고 관리하는 '데이터베이스'에 있습니다.
오늘은 윈도우 환경에서 가장 널리 쓰이는 MSSQL(Microsoft SQL Server) Express를 설치하고, 내 PC가 아닌 외부에서도 접속할 수 있도록 네트워크 설정을 최적화해 보겠습니다.
💡 시작 전 필수 체크! MSSQL은 1433 포트를 사용하므로, 기본적인 방화벽 개념이 필요합니다. 아직 서버의 보안 설정을 마치지 않으셨다면 **Windows Server 2022 RDP 및 방화벽 설정 가이드**를 먼저 참고하여 서버 인프라의 기초를 다지고 오시는 것을 추천합니다.
2. MSSQL Express 설치 단계
- 설치 파일 다운로드: MS 공식 홈페이지에서 SQL Server 2022 Express 에디션을 다운로드합니다.
- 설치 유형: '기본' 대신 **'사용자 지정'**을 선택하여 데이터 경로와 인스턴스 명칭을 직접 확인하는 것이 관리에 유리합니다.
- 인증 모드: 매우 중요한 부분입니다! 반드시 **'혼합 모드(SQL Server 및 Windows 인증)'**를 선택하고, 관리자(sa) 계정의 비밀번호를 강력하게 설정하세요.
3. 외부 접속을 위한 네트워크 구성 (TCP/IP 활성화)
설치만 한다고 외부에서 접속되는 것이 아닙니다. MSSQL은 기본적으로 외부 접속이 차단되어 있습니다.
- SQL Server 구성 관리자 실행
- [SQL Server 네트워크 구성] -> [MSSQLSERVER에 대한 프로토콜] 선택
- TCP/IP 항목이 '사용 안 함'으로 되어 있다면 마우스 우클릭 후 **'사용'**으로 변경합니다.
- IP 주소 탭에서 맨 아래 IPAll 항목의 TCP 포트가 1433으로 되어 있는지 확인합니다.
4. 방화벽 규칙 추가 (PowerShell 코드)
이제 1433 포트를 열어줄 차례입니다. GUI로 해도 되지만, 우리는 효율적인 관리를 위해 지난번처럼 PowerShell을 활용해 보겠습니다.
# MSSQL 기본 포트(1433) 허용 규칙 추가
New-NetFirewallRule -DisplayName "MSSQL Server (TCP 1433)" `
-Direction Inbound -Protocol TCP -LocalPort 1433 -Action Allow
# 브라우저 서비스(UDP 1434) 허용 - 인스턴스 나열용
New-NetFirewallRule -DisplayName "MSSQL Browser (UDP 1434)" `
-Direction Inbound -Protocol UDP -LocalPort 1434 -Action Allow
5. 파이썬(Python)으로 DB 연결 테스트하기
DB가 잘 구동되는지 확인하기 위해 직접 쿼리문을 날려보겠습니다. 파이썬의 pyodbc 라이브러리를 사용하면 간단합니다.
import pyodbc
# 접속 정보 설정
conn_str = (
"DRIVER={SQL Server};"
"SERVER=localhost;"
"DATABASE=master;"
"UID=sa;"
"PWD=자신의비밀번호"
)
try:
conn = pyodbc.connect(conn_str)
print("✅ MSSQL 서버 연결 성공!")
cursor = conn.cursor()
cursor.execute("SELECT @@VERSION")
row = cursor.fetchone()
print(f"서버 버전 정보: {row[0]}")
conn.close()
except Exception as e:
print(f"🚨 연결 실패: {e}")
6. 마무리하며: 서버 모니터링의 확장
이제 윈도우 서버에서 웹(IIS)과 데이터베이스(MSSQL)가 모두 준비되었습니다. 서버 관리자라면 이제 이 두 서비스가 잘 돌아가는지 상시 감시해야겠죠?
지난 시간에 제작한 **파이썬 실시간 서버 모니터링 도구**에 오늘 배운 DB 연결 체크 로직을 추가해 보세요. 웹 서비스뿐만 아니라 DB의 가동 상태까지 한눈에 파악할 수 있는 강력한 관리 툴이 완성됩니다.
다음 시간에는 드디어 Windows 환경을 벗어나, 개발자들의 필수 역량인 Linux(Ubuntu) 서버 구축과 관리에 대해 알아보겠습니다.
'Server Story....' 카테고리의 다른 글
| Ubuntu Server - 필수 패키지 관리(APT) 및 진단 도구 설치 (0) | 2026.03.30 |
|---|---|
| Linux 입성: Ubuntu Server 24.04 LTS 설치 및 초기 SSH 설정 (0) | 2026.03.30 |
| [Python] 서버 다운 감지 시 슬랙(Slack)으로 즉시 알림 받기 - 파이썬 서버 모니터링 자동화 (0) | 2026.03.28 |
| [Python] 내 웹 서버는 안전할까? 파이썬으로 만드는 실시간 서버 상태 모니터링 도구 (0) | 2026.03.28 |
| [Python] 내 웹 서버는 안전할까? 파이썬으로 만드는 실시간 서버 상태 모니터링 도구 (0) | 2026.03.28 |