반응형

Pytest를 활용한 테스트 주도 개발(TDD) 완전 정복 가이드

"코드를 작성하기 전에 먼저 테스트부터 작성하라"는 말, 한 번쯤 들어보셨죠? 이 원칙이 바로 테스트 주도 개발의 핵심이에요. 그런데 파이썬에서는 pytest 하나면 그게 정말로 가능하다는 거, 알고 계셨나요?

반응형

안녕하세요! 오늘은 파이썬 개발자라면 꼭 익혀야 할 테스트 프레임워크인 pytest와, 그걸 이용한 테스트 주도 개발(Test Driven Development, TDD) 방식에 대해 자세히 알아보려 해요. 단순히 기능 구현만으로는 부족한 이 시대, 품질 좋은 코드를 만들기 위해 테스트는 이제 선택이 아닌 필수입니다. 개발 초보자부터 중급자까지 모두가 이해할 수 있도록, 예제와 함께 천천히 설명해드릴게요.

1. 테스트 주도 개발(TDD)이란? 🧪

테스트 주도 개발(TDD, Test Driven Development)은 "테스트를 먼저 작성하고 기능을 그 후에 구현하는 개발 방식"을 말합니다. 테스트를 기준으로 기능을 구현해 나가면서, 코드가 요구사항을 충족하는지 계속 검증하게 되죠.

이 접근 방식은 신뢰성 있는 코드빠른 리팩토링을 가능하게 해줍니다. 즉, 코드를 바꾸더라도 기존 기능이 잘 작동하는지 테스트를 통해 바로 확인할 수 있어요.

TDD는 왜 필요할까요?

  • 버그를 초기에 발견할 수 있어요. 작성한 기능이 요구조건과 맞지 않으면 바로 실패합니다.
  • 리팩토링이 자유로워요. 테스트가 있으니 기능이 깨졌는지 바로 알 수 있거든요.
  • 개발 속도가 점점 빨라져요. 처음엔 느려 보이지만 나중엔 디버깅에 드는 시간을 확 줄여줍니다.

TDD의 3단계 사이클 🔁

단계 설명
1. Red 실패하는 테스트를 먼저 작성합니다. 아직 기능이 없기 때문에 당연히 실패합니다.
2. Green 테스트를 통과시키기 위한 최소한의 코드를 작성합니다.
3. Refactor 테스트가 통과된 상태에서 코드를 정리하고 개선합니다. 리팩토링 중에도 테스트는 계속 통과해야 합니다.

이 세 단계를 반복하면서 코드를 쌓아가면, 결국 잘 설계된, 안정적인 시스템이 완성돼요. 말 그대로, 테스트로부터 개발이 이끌려 나오는 거죠.

"아직 구현하지 않은 기능에 대한 테스트를 먼저 작성한다"는 이 방식은 초보자에게는 좀 낯설 수 있지만, 한 번 익숙해지면 개발의 흐름이 훨씬 자연스럽고 논리적으로 흘러갑니다.

그럼 이제 왜 Pytest가 TDD에 찰떡처럼 잘 맞는지 살펴볼 차례입니다!

2. Pytest가 TDD에 딱 맞는 이유 🔍

파이썬에는 여러 테스트 프레임워크가 있지만, 그 중에서도 pytest는 사용성과 확장성 면에서 압도적으로 사랑받고 있어요. 특히 TDD를 실천하기 위한 최적의 도구로 자주 추천되는데요, 이유가 뭘까요?

✅ Pytest의 주요 장점

  • 간결한 문법 - 테스트 함수 이름만 test_로 시작하면 자동 인식해요. 클래스나 복잡한 구조 없이도 테스트 작성이 가능하죠.
  • 강력한 에러 리포트 - 실패한 테스트가 어디서 어떻게 실패했는지를 보기 쉽게 보여줍니다. 디버깅도 쉬워요.
  • Fixture 기능 - 테스트 환경을 구성할 수 있게 도와주는 도구입니다. 예를 들어 DB 연결을 테스트 전에 세팅하거나, 공통 설정을 반복 없이 적용할 수 있어요.
  • 확장성과 플러그인 - pytest-django, pytest-cov, pytest-mock 등 다양한 플러그인을 통해 어떤 프로젝트든 손쉽게 통합할 수 있어요.

🆚 unittest vs pytest

기능 unittest pytest
문법 클래스 기반 함수 기반 가능
표현력 assertEqual 등 제한적 assert 자체를 사용
테스트 커버리지 외부 도구 필요 pytest-cov 플러그인 연동
사용 난이도 초심자에게 다소 부담 직관적이고 배우기 쉬움

저는 초보자분들께 pytest를 꼭 추천드려요. 처음 배우기 쉽고, 나중엔 복잡한 테스트까지 거뜬하니까요.

그럼 이제 본격적으로 pytest를 설치하고 환경을 구성해볼까요? 다음 섹션에서는 실제로 Pytest 환경 구성을 해보겠습니다. 💻

3. Pytest 설치 및 환경 설정 ⚙️

이제 본격적으로 TDD 실습을 위한 환경을 만들어볼게요. 이 과정은 간단하면서도 확실하게 pytest를 익힐 수 있는 첫걸음입니다.

✅ 설치 방법

Python이 설치되어 있다는 전제 하에, 가상환경을 먼저 구성해주는 걸 추천드려요.

python -m venv venv
source venv/bin/activate  # 윈도우: venv\Scripts\activate
pip install pytest

설치가 완료되면 다음 명령어로 버전을 확인해볼 수 있어요:

pytest --version

📁 디렉터리 구조 만들기

TDD 방식의 개발을 위해 디렉터리 구조는 아래처럼 구성하는 게 좋아요:

project/
├── app/
│   └── calculator.py
├── tests/
│   └── test_calculator.py
└── requirements.txt
  • app/에는 실제 로직 코드가 들어갑니다.
  • tests/ 폴더에는 모든 테스트 코드가 들어갑니다.

🧪 간단한 테스트 예제 실행

자, 그럼 우리가 pytest로 테스트를 어떻게 시작할 수 있는지 살펴볼까요? 먼저 calculator.py는 이렇게 작성합니다:

# app/calculator.py
def add(x, y):
    return x + y

이제 테스트 코드를 작성해볼게요:

# tests/test_calculator.py
from app.calculator import add

def test_add():
    assert add(2, 3) == 5

그리고 테스트 실행은 아주 간단합니다. 프로젝트 루트 디렉터리에서 아래 명령어만 치면 끝!

pytest

이제 준비는 끝났어요! 다음 단계에서는 TDD 사이클을 따라 실제 기능을 테스트부터 구현하는 과정을 실습해볼 거예요.

4. TDD 실습: 기능부터 테스트까지 단계별 구현 💡

자, 이제 TDD의 핵심 사이클을 따라가며 실습을 시작해볼게요. 이번에는 아주 간단한 계산기 기능 중 하나인 두 숫자의 곱셈 기능을 테스트부터 만들어 보는 과정입니다. 이 예제를 통해 Red → Green → Refactor 과정을 직접 경험할 수 있어요.

🟥 1단계: 실패하는 테스트 작성 (Red)

먼저, 존재하지 않는 multiply() 함수에 대한 테스트를 작성해볼게요.

# tests/test_calculator.py
from app.calculator import add, multiply

def test_add():
    assert add(2, 3) == 5

def test_multiply():
    assert multiply(2, 3) == 6

이제 pytest를 실행하면 당연히 test_multiply가 실패하겠죠. 아직 구현을 안 했으니까요!

🟩 2단계: 기능 구현 (Green)

이제 테스트를 통과시키기 위한 최소한의 코드를 작성합니다.

# app/calculator.py
def add(x, y):
    return x + y

def multiply(x, y):
    return x * y

이제 다시 pytest를 실행하면 모든 테스트가 통과하게 됩니다. 🎉 Green 단계 성공!

🛠️ 3단계: 리팩토링 (Refactor)

지금은 간단한 예제라 리팩토링이 많진 않지만, 현실에서는 코드 구조 개선이나 공통 로직 분리, 네이밍 정리 등을 진행합니다. 중요한 건 테스트를 깨뜨리지 않으면서 코드 품질을 높이는 것이죠.

🔄 추가 테스트 케이스 작성하기

하나의 테스트만으로는 부족해요. 다양한 케이스를 다뤄야 코드가 견고해지죠:

def test_multiply_zero():
    assert multiply(10, 0) == 0

def test_multiply_negative():
    assert multiply(-2, 4) == -8

이렇게 다양한 시나리오를 고려하면서 점점 더 안정적인 코드를 만들어나가는 게 바로 TDD의 매력이에요.

📌 TDD 실습 요약

단계 내용
Red 실패할 테스트 작성
Green 기능 구현 → 테스트 통과
Refactor 코드 개선 → 테스트 유지

이 사이클을 반복하면서 프로그램이 점점 자라나는 걸 느껴보세요. 처음엔 느리지만, 개발이 복잡해질수록 TDD의 위력을 체감하게 됩니다.

5. 테스트 설계 패턴과 꿀팁 모음 📌

테스트도 결국 소프트웨어 아키텍처의 일부입니다. 그냥 작동만 하면 되는 게 아니라, 가독성유지보수성이 좋아야 해요. 여기에 도움이 되는 몇 가지 패턴과 팁들을 소개할게요.

🎯 1. 테스트 함수 이름은 명확하게

  • test_add_two_positive_numbers() 처럼 어떤 케이스를 테스트하는지 명확하게 작성하면 나중에 보기가 훨씬 편합니다.

🧩 2. Arrange-Act-Assert 패턴 활용

이건 테스트를 더 구조적으로 짜기 위한 패턴이에요.

# Arrange: 준비
x, y = 3, 4

# Act: 실행
result = multiply(x, y)

# Assert: 검증
assert result == 12

이 구조만 지켜도 테스트가 깔끔해지고, 어디서 문제가 생겼는지 금방 알 수 있어요.

🔁 3. parametrize로 반복 테스트 줄이기

@pytest.mark.parametrize를 활용하면 같은 로직에 대한 여러 케이스를 깔끔하게 테스트할 수 있어요.

import pytest
from app.calculator import multiply

@pytest.mark.parametrize("x, y, expected", [
    (2, 3, 6),
    (0, 5, 0),
    (-1, 3, -3),
])
def test_multiply_cases(x, y, expected):
    assert multiply(x, y) == expected

반복되는 테스트 코드를 줄이고, 새로운 케이스도 쉽게 추가할 수 있어요.

🧰 4. fixture로 공통 작업 정리

예를 들어 테스트마다 같은 객체를 반복 생성해야 할 때, @pytest.fixture로 중복을 제거할 수 있어요.

import pytest

@pytest.fixture
def sample_numbers():
    return 4, 5

def test_add_fixture(sample_numbers):
    x, y = sample_numbers
    assert x + y == 9

공통 설정을 깔끔하게 정리할 수 있고, 테스트가 많아질수록 관리가 쉬워져요.

📎 보너스 팁: 실패 테스트도 OK

TDD에서는 실패 테스트를 겁내지 마세요. 실패 테스트는 시스템의 빈틈을 보여주고, 그걸 메꾸는 게 TDD의 본질이에요. 실패 없이 성장도 없답니다!

6. TDD를 잘하는 개발자의 습관 🌱

테스트 주도 개발은 단순한 개발 방식이 아니라, 생각하는 방식의 전환이에요. 테스트를 먼저 쓰는 것만으로는 충분하지 않아요. 꾸준한 실천좋은 습관이 함께 해야 진짜 내 것이 됩니다.

🧠 1. 테스트는 사양서다

테스트 코드는 내가 구현하고자 하는 기능의 명세를 문서처럼 보여줘요. 그래서 테스트를 먼저 쓰면 자연스럽게 요구사항을 정리하는 효과도 있죠.

🔍 2. ‘작게’ 생각하고 ‘작게’ 작성하기

한 번에 너무 많은 걸 하려 하지 마세요. 테스트 하나, 기능 하나! 작은 유닛 단위로 나눠서 작업하면 에러 추적도 쉽고, 리팩토링도 훨씬 수월해요.

📈 3. 실패한 테스트를 포기하지 말자

테스트가 실패할 땐 짜증나기도 해요. 근데 그게 바로 내가 놓친 부분을 알려주는 힌트예요. 테스트가 실패할수록 시스템은 더 견고해집니다.

🔁 4. Refactor는 항상 테스트와 함께

기능은 안 바뀌지만 코드를 정리하고 싶을 때가 있죠? 이럴 땐 테스트가 반드시 필요해요. 리팩토링 후에도 테스트가 통과하는지 확인하는 건 안전망이 되어줍니다.

💬 5. 협업에도 테스트는 무기다

내가 짠 코드뿐 아니라, 다른 사람이 짠 코드도 이해하려면 테스트가 가장 좋은 입문서가 돼요. 팀 프로젝트일수록 테스트는 의사소통 수단입니다.

🌍 6. 모든 것이 테스트 가능한 구조로

함수는 작고, 독립적이고, 부작용이 없어야 테스트가 쉬워요. 구조 자체를 테스트 친화적으로 바꾸는 건 개발 실력을 끌어올리는 좋은 습관이에요.

이런 습관들을 실천하면 어느새 TDD는 귀찮은 규칙이 아닌 자연스러운 개발 습관이 되어 있을 거예요.

마무리 🎯

지금까지 pytest를 활용한 테스트 주도 개발(TDD)의 개념부터 실전 구현, 그리고 좋은 테스트 습관까지 단계별로 함께 해봤습니다. 단순히 테스트만 하는 것이 아니라, 코드에 대한 신뢰를 쌓아가고, 리팩토링과 유지보수까지 더 효율적으로 할 수 있다는 것이 바로 TDD의 진짜 매력이에요.

처음에는 테스트를 먼저 작성하는 게 낯설고, 오히려 시간이 더 걸리는 것처럼 느껴질 수도 있어요. 하지만 꾸준히 반복하다 보면 자연스럽게 ‘생각하고 설계하고 구현하는 흐름’이 자리 잡힙니다.

앞으로 프로젝트를 시작할 때마다 “이걸 어떻게 테스트할 수 있을까?”를 먼저 고민해보세요. 그 질문 하나만으로도 코드 품질은 놀랍게 달라질 거예요.

오늘 배운 내용을 토대로 작은 프로젝트라도 직접 TDD로 시작해보세요. 작은 테스트가 쌓여서 큰 신뢰가 되고, 그 신뢰가 최고의 개발 실력을 만들어줍니다.😉

반응형
반응형

Git 학습은 이 순서대로! 🚀 | 초보자를 위한 로드맵

반응형

 

1. 버전 관리 개념 이해

  • 먼저 버전이 무엇인지, 왜 버전 관리가 필요한지 이해합니다.
  • Git이 어떤 문제를 해결해주는 도구인지 알면 학습이 훨씬 쉽습니다.

[Git] - 버전관리란? 초보자를 위한 '버전' 개념 완벽 이해

 

버전관리란? 초보자를 위한 '버전' 개념 완벽 이해

버전관리란? 초보자를 위한 '버전' 개념 완벽 가이드 🚀"파일을 잃어버릴까 봐 걱정하셨나요? 😱Git과 버전관리 시스템을 활용하면 실수해도 언제든지 되돌릴 수 있습니다!" 안녕하세요, 여러

firstcoding.net

 

2. 버전 관리 시스템과 Git, GitHub 개념 잡기

  • Git과 GitHub의 차이를 구분합니다.
  • Git은 로컬에서 버전을 관리하는 도구, GitHub는 원격에서 코드를 공유·협업하는 플랫폼입니다.

버전관리시스템의 종류와 Git, 그리고 GitHub 완벽 가이드

 

버전관리시스템의 종류와 Git, 그리고 GitHub 완벽 가이드

버전관리시스템의 종류와 Git, 그리고 GitHub 완벽 가이드 🚀"여러 명이 동시에 작업하면 파일이 꼬일까 걱정되시나요? 😱버전관리시스템을 사용하면 실수해도 언제든지 원하는 상태로 되돌릴

firstcoding.net

 

[Git] - Git 시스템의 버전관리 흐름: 초보자를 위한 단계별 가이드

 

Git 시스템의 버전관리 흐름: 초보자를 위한 단계별 가이드

Git 시스템의 버전관리 흐름: 초보자를 위한 단계별 가이드 🚀"Git을 사용하면 파일 변경 내역을 쉽게 관리하고, 원하는 시점으로 되돌릴 수 있습니다.하지만 Git의 버전관리 흐름을 정확히 이해

firstcoding.net

 

3. Git 설치하기

  • Windows, Mac 환경에서 Git 설치 방법을 익힙니다.
  • 설치 후 버전 확인과 기본 환경 설정까지 완료합니다.

[Git] - 초보자를 위한 쉽게 따라하는 Git 버전관리 시스템 설치 방법

 

초보자를 위한 쉽게 따라하는 Git 버전관리 시스템 설치 방법

초보자를 위한 쉽게 따라하는 Git 버전관리 시스템 설치 방법버전 관리 시스템을 처음 접하시나요? 🤔소스 코드 변경을 안전하게 저장하고 협업을 원활하게 진행하려면 Git을 설치하는 것이 필

firstcoding.net

 

[Git] - Windows에서 Git-SCM 설치 단계별 상세 가이드 (초보자용)

 

Windows에서 Git-SCM 설치 단계별 상세 가이드 (초보자용)

Windows에서 Git-SCM 설치 단계별 상세 가이드 (초보자용)Windows에서 Git을 설치하려는데 어떤 설정을 선택해야 할지 고민되시나요? 🤔이번 가이드에서는 Git-SCM을 설치하는 모든 단계를 상세히 설명

firstcoding.net

 

[Git] - 초보자를 위한 MacBook에서 Git-SCM 설치 단계별 상세 가이드

 

초보자를 위한 MacBook에서 Git-SCM 설치 단계별 상세 가이드

초보자를 위한 MacBook에서 Git-SCM 설치 단계별 상세 가이드MacBook에서 Git을 설치하려고 하는데, 터미널 명령어가 어려우신가요? 🤔이번 가이드에서는 Git-SCM을 설치하는 모든 단계를 상세히 설명해

firstcoding.net

 

4. Git 기본 명령어 익히기

  • 저장소 생성(git init), 변경사항 추가(git add), 저장(git commit) 같은 핵심 명령을 학습합니다.
  • 리눅스 기본 명령어도 함께 익히면 좋습니다.

[Git] - Git & GitHub 사용할 때 필수 리눅스 기본 명령어 🚀

 

Git & GitHub 사용할 때 필수 리눅스 기본 명령어 🚀

Git & GitHub 사용할 때 필수 리눅스 기본 명령어 🚀 "Git과 GitHub를 사용하려면 기본적인 리눅스 명령어를 알아야 합니다.리눅스 명령어에 익숙하지 않다면, 파일 탐색부터 디렉터리 이동, 터미널

firstcoding.net

 

5. Git의 3가지 영역과 파일 상태 흐름 이해

  • 작업 디렉토리, 스테이징 영역, 로컬 저장소의 개념을 이해합니다.
  • Untracked → Staged → Committed 과정이 핵심입니다.

[Git] - Git을 이용한 버전 관리: Git의 3가지 영역

 

Git을 이용한 버전 관리: Git의 3가지 영역

Git을 이용한 버전 관리: Git의 3가지 영역 🚀Git을 사용하면 프로젝트의 모든 변경 사항을 효과적으로 관리할 수 있습니다. 하지만, Git의 3가지 영역을 정확히 이해하지 못하면 Git의 강력한 기능

firstcoding.net

 

[Git] - Git 저장소 구조 완벽 가이드 🚀 | Git 내부 동작 원리 이해하기

 

Git 저장소 구조 완벽 가이드 🚀 | Git 내부 동작 원리 이해하기

Git 저장소 구조 완벽 가이드 🚀 | Git 내부 동작 원리 이해하기Git을 사용하지만, Git 저장소 내부 구조에 대해 제대로 이해하고 계신가요? Git은 단순한 버전 관리 도구가 아니라, 분산 저장소 시스

firstcoding.net

 

[Git] - Git 버전 생성 과정 완벽 가이드 🚀 | 커밋부터 태그까지 한눈에 정리!

 

Git 버전 생성 과정 완벽 가이드 🚀 | 커밋부터 태그까지 한눈에 정리!

Git 버전 생성 과정 완벽 가이드 🚀 | 커밋부터 태그까지 한눈에 정리!Git을 사용하면서 파일을 수정하고 저장하는 것은 쉽지만, Git이 내부적으로 버전을 어떻게 생성하고 관리하는지 정확히 알

firstcoding.net

 

[Git] - Git Commit 기록 확인 방법 🚀 | 커밋 히스토리 완벽 정리

 

Git Commit 기록 확인 방법 🚀 | 커밋 히스토리 완벽 정리

Git Commit 기록 확인 방법 🚀 | 커밋 히스토리 완벽 정리Git을 사용하면 프로젝트의 변경 내역을 추적할 수 있지만, 효율적으로 Commit 기록을 확인하는 방법을 알고 계신가요? 이번 가이드에서는 Git

firstcoding.net

 

[Git] - Git 변경사항 확인 방법 : 파일 변경 추적부터 차이 비교까지 완벽 가이드

 

Git 변경사항 확인 방법 : 파일 변경 추적부터 차이 비교까지 완벽 가이드

Git 변경사항 확인 방법 🚀파일 변경 추적부터 차이 비교까지 완벽 가이드Git을 사용하면서 코드가 변경되었는지 어떻게 확인하나요? Git은 파일의 변경 사항을 추적하고 비교하는 다양한 기능을

firstcoding.net

 

6. 작업 되돌리기와 기록 확인

  • 실수한 작업을 되돌리는 git restore, git reset 명령어를 익힙니다.
  • git log로 변경 내역을 확인하고, 필요 시 원하는 시점으로 돌아가는 방법을 학습합니다.

[Git] - Git 단계별 파일 상태 확인 : Untracked → Staged → Committed 완벽 가이드

 

Git 단계별 파일 상태 확인 : Untracked → Staged → Committed 완벽 가이드

Git 단계별 파일 상태 확인 🚀 Untracked → Staged → Committed 완벽 가이드Git에서 파일이 어떻게 상태가 변하는지 알고 계신가요? Git은 작업 중인 파일을 여러 단계로 구분하여 관리합니다. 이번 가

firstcoding.net

 

[Git] - Git 작업 되돌리기 완벽 가이드 : restore & reset 명령어 활용법

 

Git 작업 되돌리기 완벽 가이드 : restore & reset 명령어 활용법

Git 작업 되돌리기 완벽 가이드 🚀 | restore & reset 명령어 활용법Git에서 실수로 파일을 수정했거나, 특정 커밋을 취소하고 싶을 때 어떻게 해야 할까요? 이번 가이드에서는 Git 작업을 되돌리는 다

firstcoding.net

 

7. 브랜치와 병합

  • 브랜치를 만들어 병렬로 작업하고, git merge로 통합하는 방법을 배웁니다.
  • 병합 시 발생하는 충돌 해결 방법도 함께 익힙니다.

[Git] - Git Branch 완벽 가이드 : 브랜치 생성부터 삭제까지

 

Git Branch 완벽 가이드 : 브랜치 생성부터 삭제까지

Git Branch 완벽 가이드 🚀 | 브랜치 생성부터 삭제까지Git에서 여러 개의 작업을 동시에 진행하고 싶다면? 브랜치(Branch) 기능을 활용하면 병렬 개발이 가능! 이번 가이드에서는 Git 브랜치의 기본

firstcoding.net

 

[Git] - Git 다른 브랜치의 서로 다른 파일 병합 : 충돌 없는 안전한 Merge 가이드

 

Git 다른 브랜치의 서로 다른 파일 병합 : 충돌 없는 안전한 Merge 가이드

Git 다른 브랜치의 서로 다른 파일 병합 🚀: 충돌 없는 안전한 Merge 가이드"여러 브랜치에서 다른 파일을 수정했다면 어떻게 병합할까요? Git의 Merge 기능을 활용하면 충돌 없이 안전하게 브랜치를

firstcoding.net

 

[Git] - Git 충돌 해결 가이드 | 같은 파일의 같은 부분을 수정했을 때 병합하는 방법

 

Git 충돌 해결 가이드 | 같은 파일의 같은 부분을 수정했을 때 병합하는 방법

Git 충돌 해결 가이드 🚀 : 같은 파일의 같은 부분을 수정했을 때 병합하는 방법"같은 파일의 같은 부분을 서로 다른 브랜치에서 수정하면 어떻게 될까요? Git은 이런 경우 자동 병합을 수행할 수

firstcoding.net

 

 

반응형
반응형

 

 

[리눅스] 02. AWS EC2 환경설정 가이드 — 프리 티어로 시작하는 서버 만들기 🚀

첫 EC2 만들 때 어디서 뭘 눌러야 할지 막막했나요? 😵‍💫 이번 글에서는 프리 티어로 인스턴스를 만들고(AMI·타입·키페어·스토리지) 보안 그룹까지 안전하게 열어 둔 다음, SSH로 원격 접속해 바로 리눅스 명령어를 실행하는 순간까지 한 번에 연결해 드릴게요.

반응형

 

안녕하세요! 개발 입문자분들이 제일 많이 막히는 부분, 바로 “클라우드에서 서버 한 대를 처음부터 끝까지 제대로 올려보기”더라구요. 그래서 이번에는 AWS에서 가장 많이 쓰는 EC2를 기준으로, 계정 준비 → 인스턴스 생성(AMI/인스턴스 타입/키 페어/네트워크/스토리지) → 보안 그룹 규칙 설정(SSH/HTTP/HTTPS) → macOS/Linux/Windows에서 원격 접속 → 리눅스 기본 명령어 순서로, 정말 필요한 화면과 명령만 콕 집어 정리했습니다. 특히 초보자 관점에서 헷갈리는 선택지는 왜 그런지 이유까지 붙여 드릴 거예요. 글 흐름만 따라오면 프리 티어 안에서 안전하게 시작할 수 있고, 마지막에는 꼭 필요한 명령어들로 서버 생활 기본기까지 챙길 수 있습니다. 중간중간 체크리스트·표·코드를 곁들여 바로 따라 하기 좋게 구성했어요. 자, 이제 진짜 “내 서버”의 첫 부팅을 함께 해볼까요? 😎

1. AWS·EC2 핵심 개념 한 장 요약 📘

먼저 큰 그림부터 잡고 가요. EC2는 AWS에서 제공하는 가상 서버이고, 우리가 선택하는 건 운영체제(AMI), 성능 사양(인스턴스 타입), 문 열어주기(보안 그룹), 열쇠(키 페어), 디스크(EBS)입니다. 프리 티어에서는 EBS를 기본 8GB로 시작하되 최대 30GB까지 무료로 쓸 수 있어 입문 연습에 딱 맞습니다. 

구성요소 설명 초보자 추천값/주의
리전(Region) 서버가 물리적으로 위치하는 지역 테스트는 보통 서울 리전으로 진행하면 지연이 적어요.
AMI 서버 OS 이미지 (예: Amazon Linux) 프리 티어 무료 운영체제를 선택하세요. 
인스턴스 타입 vCPU/메모리 등 사양(성능/비용 결정) t2.micro가 프리 티어 대상입니다. 
키 페어(.pem) SSH 접속용 비밀키 생성 즉시 다운로드·보관 필수 (재발급 불가). 
보안 그룹 인바운드/아웃바운드 네트워크 방화벽 리눅스는 SSH 22/TCP 필수 허용. 무분별한 0.0.0.0/0 허용은 보안 주의! 
스토리지(EBS) 인스턴스가 사용하는 디스크 기본 8GB로 시작, 프리 티어에서 최대 30GB 무료

빠른 체크리스트 ✅

  • 리전을 서울로 변경했다. 
  • 프리 티어 AMI를 선택했다. 
  • t2.micro를 골랐다(프리 티어).
  • 키 페어(.pem)를 다운로드·안전 보관했다. 
  • 보안 그룹에 SSH(22)를 열고 소스 IP 범위를 신중히 설정했다.
  • EBS는 기본 8GB로 두고 필요 시 30GB 이하로 조절. 

첫 접속(SSH) 필수 예제 🗝️

macOS/Linux는 터미널에서 아래 2단계를 꼭 지키면 됩니다. ① 키 파일 권한을 400으로 맞추고 ② ec2-user@퍼블릭IP로 접속하는 순서예요.

# 1) 키 파일 확인
ls
# 2) 권한 설정 (중요)
chmod 400 "내키이름.pem"
# 3) SSH 접속 (Amazon Linux의 기본 계정: ec2-user)
ssh -i "내키이름.pem" ec2-user@퍼블릭_IP

위 형식(권한 400 → ssh -i → ec2-user)은 PDF의 예제 흐름과 동일합니다. 샘플에서는 seoul-server1-key.pem 이름으로 실행했죠. 

보안 그룹 설정 핵심 요령 🔐

  • 리눅스 접속을 위해 SSH 22/TCP는 필수 허용.
  • 0.0.0.0/0은 어디서나 열리므로 주의하세요(가능하면 내 IP만). 
  • 웹 서버 실습 시 HTTP(80), HTTPS(443)도 함께 엽니다.

시작과 상태 확인 🟢

EC2 대시보드에서 인스턴스 시작을 누르고(설정 검토 후) Running 상태를 확인하면 준비 완료입니다. 

Windows 사용자를 위한 메모 💡

PuTTY/Xshell을 사용할 경우 .pem → .ppk 변환이 필요할 수 있어요. 공식 다운로드 링크도 PDF에 정리되어 있습니다. 

요약 🔎

  • 서울 리전 + 프리 티어 AMI + t2.micro 선택으로 비용 최소화
  • 키 페어는 생성 즉시 다운로드하고 권한 400으로 설정 뒤 SSH 접속.
  • 보안 그룹에서 22/80/443 포트 정책을 상황에 맞게 최소 권한으로.
  • EBS는 8GB 시작, 프리 티어 30GB 내에서 조정. 
  •  

2. 프리 티어 계정 준비 & 비용 관리 체크리스트 💳

“처음엔 공짜로 시작하고, 예상치 못한 과금은 없게.” 이 목표로 계정부터 차근차근 정리해볼게요. 가입 단계에서 기본 지원(무료)을 선택하고(Support = Basic), 콘솔 로그인 후 리전을 서울로 바꿔두면 지연과 혼선을 줄일 수 있어요. 

단계 무엇을 고를까? 왜 그렇게? 근거
지원 플랜 기본 지원(무료) 연습 단계에 과금 없이 시작 플랜 선택 화면에서 기본 지원 - 무료 제공. 
리전 서울(ap-northeast-2) 지연↓, 과금/한도 혼선 방지 가이드에 리전 변경 → 서울 명시. 
AMI 프리 티어 무료 OS 무료 범위 내 사용 보장 “프리 티어 무료 운영 체제 선택” 안내.
인스턴스 타입 t2.micro 프리 티어 대상 사양 t2.micro 선택 지침.
네트워크 초기엔 기본 옵션 불필요한 리소스 생성 회피 “네트워크 설정: 기본 옵션 그대로” 권장. 
스토리지(EBS) 8GB 시작, 30GB 이하 유지 프리 티어 범위 준수 “기본 8GB, 프리 티어는 최대 30GB 무료”. 
키 페어 .pem 즉시 다운로드·보관 SSH 접속에 필수, 분실 시 재발급 불가 키 페어 다운로드·안전 보관 강조.

생성·실행 체크리스트 ✅

  • AWS 콘솔 로그인 → EC2 검색 → 인스턴스 시작 클릭.
  • AMI는 프리 티어 무료 OS 선택, 타입은 t2.micro
  • 키 페어 생성 시 .pem 즉시 저장(필수). 
  • EBS는 8GB~30GB 내에서 시작. 
  • 최종 검토 후 인스턴스 시작 → 상태가 Running인지 확인. 

비용이 새는 포인트 & 예방법 💧

  • 스토리지를 과도하게 늘리면 프리 티어 초과 → 8GB로 시작하고 30GB 이하 유지.
  • 보안 그룹을 무분별하게 열면 보안 사고 리스크 → 0.0.0.0/0 전체 허용은 지양, 특히 SSH 22는 최소 IP로. 
  • 네트워크는 초기엔 기본 옵션으로 간단히 시작(불필요 리소스 방지). 

(참고) 키 보관 & 첫 접속 전 점검 🗝️

SSH 접속은 뒤 섹션에서 자세히 다루지만, 지금 할 일은 하나예요. 키(.pem)를 안전한 폴더에 보관하고 파일 권한을 체크할 준비를 해두기. 키 보관은 가이드에서도 수차례 강조돼요.

# (다음 섹션에서 이어질 SSH 예행연습 예시: PDF 예제 그대로)
ls
chmod 400 "seoul-server1-key.pem"
ssh -i "seoul-server1-key.pem" ec2-user@인스턴스_퍼블릭IP

위 명령은 PDF 예시와 동일한 흐름(권한 400 → ssh -i → ec2-user)입니다. 

요약 🔎

  • 기본 지원(무료) + 서울 리전으로 시작. 
  • 프리 티어 안전 조합: 프리 티어 AMI + t2.micro + EBS 8~30GB
  • 키(.pem)는 즉시 저장·보관 → 다음 단계의 SSH 접속 준비 끝.
  •  

3. EC2 인스턴스 생성: AMI·인스턴스 타입·키 페어·네트워크·스토리지 🖥️

이제 진짜로 인스턴스를 만들어 봅시다. 아래 단계는 PDF의 화면 흐름 그대로 따라 쓰되, 초보자분들이 헷갈리는 선택 포인트(예: AMI, 인스턴스 타입, 키 페어, 네트워크, 스토리지)를 쉽게 고를 수 있도록 체크리스트를 곁들였습니다. 콘솔 접속 → 인스턴스 시작 → 항목별 설정 → 검토/생성 → 상태 확인 순으로 진행해요. 

  1. EC2 대시보드 열기 → AWS 콘솔 상단 검색에 EC2 입력 후 이동합니다. 인스턴스 시작 버튼을 클릭하세요. 
  2. AMI 선택 → 운영체제 이미지를 고르는 단계입니다. 프리 티어 무료 운영 체제를 선택하면 과금 걱정을 줄일 수 있어요. 
  3. 인스턴스 유형 → 프리 티어에 해당하는 t2.micro를 고릅니다(학습 용도로 충분). 
  4. 키 페어 → 새로 생성 시 .pem 파일을 즉시 다운로드해 안전하게 보관하세요. 이 키가 있어야 SSH로 접속합니다. 분실 시 재발급 불가라 정말 중요!
  5. 네트워크 설정 → 처음에는 기본 옵션 그대로 사용하는 것을 권장합니다(불필요 리소스 생성 방지). 
  6. 스토리지(EBS) → 기본 8GB로 시작하고, 프리 티어에서 최대 30GB까지 무료입니다. 학습 단계면 8~16GB면 충분합니다. 
  7. 검토 후 생성 → 설정을 확인하고 인스턴스 시작을 눌러 생성합니다. 이후 대시보드에서 Running 상태인지 확인하세요. 

초보자 추천 설정 요약표 ✅

항목 추천값 이유 PDF 근거
AMI 프리 티어 무료 OS 과금 최소화·학습 적합 프리 티어 선택 가능 명시.
인스턴스 타입 t2.micro 프리 티어 대상 · 비용 제로 t2.micro 선택 지침. 
키 페어 새로 생성 후 .pem 즉시 저장 SSH 접속 필수, 분실 시 복구 불가 다운로드·보관 강조. 
네트워크 기본 옵션 처음엔 단순 구성이 안전 기본 옵션 권장.
스토리지(EBS) 8GB(필요 시 ≤30GB) 프리 티어 한도 내 무료 8GB 기본, 30GB 무료.

보안 그룹은 어떻게 열까? (미리보기) 🔐

  • 인스턴스 접근 제어 방화벽 역할(인바운드/아웃바운드).
  • SSH(22)는 리눅스 접속 필수, 0.0.0.0/0 전체 허용은 보안상 주의(가능하면 내 IP만). 다음 단계에서 자세히 다뤄요. 

(중요) 키 파일 권한과 SSH 접속 예행연습 🗝️

키 페어를 저장했다면, 다음 명령 두 개만 기억하세요: chmod 400으로 권한 설정 → ssh -i로 접속. (아직 보안 그룹이 막혀 있으면 접속이 안 될 수 있으니 다음 섹션에서 포트를 열 겁니다!)

ls
chmod 400 "seoul-server1-key.pem"
ssh -i "seoul-server1-key.pem" ec2-user@인스턴스_퍼블릭IP

위 명령은 PDF 예시와 동일한 흐름입니다(권한 400 → ssh -i → ec2-user). 

자주 막히는 지점 & 빠른 해결 💡

  • 상태가 Running이 아닌가요? → 생성 직후 수 분 기다렸다가 새로고침. 대시보드에서 상태 확인. 
  • SSH가 거부되나요? → 곧 다룰 보안 그룹에서 22/TCP가 열려 있는지 확인.
  • Windows라면 .pem → .ppk 변환 후 PuTTY/Xshell 사용 가능합니다(공식 링크는 PDF 참고). 

요약 🔎

  • AMI는 프리 티어 무료 OS, 타입은 t2.micro로 시작.
  • 키 페어는 생성 즉시 .pem 저장·보관(SSH 필수). :
  • 네트워크는 기본 옵션, EBS는 8GB(≤30GB 무료).
  • 생성 후 상태가 Running인지 꼭 확인. 
  •  

04. 보안 그룹 설정: SSH(22)·HTTP(80)·HTTPS(443) 안전 개방 🔐

이제 인스턴스에 “어떤 문을, 누구에게 열어줄지” 정하는 단계예요. 보안 그룹(Security Group)은 EC2 인스턴스의 네트워크 접근을 제어하는 필수 방화벽이며, 여기서 SSH·HTTP·HTTPS처럼 허용할 포트를 지정합니다. 리눅스 기반 인스턴스는 원격 접속을 위해 SSH(22)를 반드시 허용해야 하고, 0.0.0.0/0처럼 전 세계 누구나 접근 가능한 설정은 보안상 각별히 주의해야 합니다. 

무엇을 열어야 하나? ✅

  • SSH (22/TCP): 리눅스 원격 접속 필수. 반드시 허용
  • HTTP (80/TCP): 웹 서버를 연다면 필요. 
  • HTTPS (443/TCP): TLS(SSL) 적용 웹 서비스용.
  • 0.0.0.0/0 전체 허용은 보안적으로 주의(특히 SSH). 필요 시에만 사용하고 가급적 “내 IP”만 허용하세요. 

콘솔에서 인바운드 규칙 여는 법 (간단 순서) 🧭

  1. EC2 대시보드 → 인스턴스 → 대상 인스턴스 선택 → 하단 탭에서 보안보안 그룹 클릭.
  2. 인바운드 규칙 편집 → 규칙 추가에서 SSH(22) 선택 후 소스 범위 지정(가능하면 내 IP). 저장
  3. 웹 서버를 띄울 계획이라면 HTTP(80), HTTPS(443)도 같은 방식으로 추가합니다. 

추천 인바운드 규칙 예시 표 🧱

유형(Type) 프로토콜 포트 소스(CIDR) 비고
SSH TCP 22 내 IP (권장) 또는 0.0.0.0/0 리눅스 접속 필수 포트. 전체 허용은 보안 주의.
HTTP TCP 80 0.0.0.0/0 (웹 공개 시) 웹 서버 트래픽 수신. 필요할 때만 개방. 
HTTPS TCP 443 0.0.0.0/0 (웹 공개 시) 암호화된 웹 트래픽 수신. 필요할 때만 개방.

설정 전·후 체크리스트 ☑️

  • 보안 그룹이 대상 인스턴스에 연결되어 있는지
  • SSH(22)가 열려 있는지 (리눅스 접속 필수) 
  • 웹 서버 공개 시 HTTP/HTTPS도 필요한 범위로만 개방했는지
  • 0.0.0.0/0 사용 시 보안 위험을 이해하고 있는지(가능하면 “내 IP” 권장) 

(필수) SSH 접속 테스트 🗝️

규칙을 저장했으면 SSH 접속이 되는지 바로 확인해요. PDF의 예제 형식을 그대로 따라 하면 됩니다.

ls
chmod 400 "seoul-server1-key.pem"
ssh -i "seoul-server1-key.pem" ec2-user@인스턴스_퍼블릭IP

위 명령은 PDF의 샘플과 동일한 흐름(권한 400ssh -iec2-user)입니다. 

Windows 사용자는? 💡

.pem → .ppk 변환 후 PuTTY 또는 Xshell로 접속할 수 있습니다(공식 링크는 자료에 포함).

연결이 안 될 때 빠른 점검 🔍

  • 인바운드 규칙에 SSH(22)가 있는지 확인(특히 소스 범위). 
  • 웹 접속 문제라면 HTTP/HTTPS 규칙도 추가되어 있는지 확인.

요약 🔎

  • 보안 그룹은 인스턴스 접근을 제어하는 문지기. 필요한 포트만 최소한으로 개방. 
  • 리눅스 접속은 SSH(22) 필수, 0.0.0.0/0 전체 허용은 위험 인지. 
  • 웹 서버라면 HTTP/HTTPS도 상황에 맞게 추가. 
  •  

5. 원격 접속 가이드: macOS/Linux의 SSH & Windows의 PuTTY·Xshell 🗝️

이제 내 노트북 ↔ EC2 인스턴스를 연결해볼 차례예요. PDF에는 OS별 접속법이 깔끔하게 정리되어 있어요. macOS/Linux에선 터미널에서 ssh -i 한 줄이면 끝! Windows.pem → .ppk로 변환해 PuTTYXshell로 접속합니다. 

(A) macOS·Linux — 키 권한(400) → SSH 접속 순서 ✅

PDF의 예제 흐름을 그대로 따라 하세요. ① 키 파일이 있는 폴더에서 ② 권한을 400으로 조정하고 ③ ec2-user@퍼블릭IP로 접속합니다.

# 1) 키 파일이 있는지 확인
ls
# 2) 권한을 400으로 (중요)
chmod 400 "seoul-server1-key.pem"
# 3) SSH 접속 (Amazon Linux의 기본 계정: ec2-user)
ssh -i "seoul-server1-key.pem" ec2-user@인스턴스_퍼블릭_IP

위 형식은 PDF의 샘플과 동일합니다. 기본 템플릿은 아래와 같아요.

ssh -i "다운로드한_키_파일.pem" ec2-user@인스턴스의_퍼블릭_IP

접속 후 화면 읽는 법: 프롬프트 · 홈 디렉터리

  • 프롬프트는 명령 입력을 기다리는 표시이며, 일반 사용자는 $, 관리자(root)는 #로 보일 수 있어요.
  • ec2-user@IP:~에서 ec2-user는 계정명, IP는 호스트, ~는 홈 디렉터리를 뜻합니다(Amazon Linux의 기본 계정: ec2-user).

(B) Windows — .pem → .ppk 변환 후 PuTTY·Xshell 사용 💡

Windows에서는 .pem 키를 .ppk로 변환해 SSH 클라이언트에 로드해야 합니다. 공식 다운로드 링크도 자료에 포함되어 있으니 그대로 사용하세요. 

항목 요약 근거
키 변환 .pem → .ppk 변환 후 SSH 도구에 등록 PDF에 변환 지시 명시. 
PuTTY 공식 사이트에서 다운로드 후 사용 공식 링크 제공. 
Xshell 홈/교육용 무료 버전 사용 가능 공식 링크 제공. 

연결이 안 될 때 3가지 점검 🔍

  • 키 권한이 400인지(chmod 400) — 권한이 널널하면 SSH가 거부될 수 있어요. 
  • 보안 그룹에서 SSH(22)가 열려 있는지 — 전체 공개(0.0.0.0/0)는 위험하니 가급적 내 IP만. 
  • 계정/호스트가 정확한지 — ec2-user@인스턴스_퍼블릭_IP 형태를 다시 확인.

접속 종료 방법(quit)도 익혀두기 👋

  • 명령어로 종료: exit
  • 단축키로 종료: Ctrl + D
  • 또는 터미널 창 닫기(우측 상단 ×). 

실전 체크리스트 ✅

  • 키가 있는 폴더에서 명령 실행(ls로 파일 확인). 
  • chmod 400 "키.pem"ssh -i로 접속. 
  • Windows라면 .ppk 준비 후 PuTTY/Xshell 사용. 

요약 🔎

  • macOS/Linux: chmod 400ssh -i "키.pem" ec2-user@IP.
  • Windows: .pem → .ppk 후 PuTTY/Xshell. 
  • 안 되면 보안 그룹의 SSH(22) 규칙과 IP 범위를 점검. 
  •  

6. 리눅스 기본 명령어 스피드런: ls · pwd · cd · date · clear · man ⌨️

SSH로 접속했다면 이제 “기본기”를 빠르게 다져볼 차례예요. 명령의 구조는 딱 하나만 기억하세요: 명령 [옵션] [인자]. 옵션은 세부 기능(-a처럼 하이픈으로 시작)이고, 인자는 보통 파일/디렉터리 같은 대상이에요. PDF에도 이 형식과 예제가 그대로 나옵니다.

핵심 6종 한눈에 보기 🧭

명령 무엇을 하나요? 대표 예제 출처/근거
ls 디렉터리 목록 보기 $ ls, $ls -a, $ls /tmp, $ls –a /tmp PDF 예제 동일. 
pwd 현재 작업 디렉터리 경로 출력 pwd, pwd -P, pwd -L 리눅스 man 페이지.
cd 작업 디렉터리 이동 cd /tmp, cd(홈), cd -(이전) POSIX cd 명세. 
date 현재 날짜·시간 출력 $ date PDF 기초 명령.
clear 터미널 화면 지우기 $clear PDF 설명.
man 명령 사용법(매뉴얼) 보기 $man clear PDF 예제 동일. 

프롬프트·홈 디렉터리 감 잡기 🏠

  • 프롬프트는 명령 대기 표시로, 배시 셸은 보통 $, 관리자(root)는 #로 보여요.
  • ec2-user@IP:~에서 ~홈 디렉터리를 의미해요. (Amazon Linux 기본 계정은 ec2-user)

1) ls — 목록 보기의 기본 중 기본 📁

PDF의 예제 코드를 그대로 사용합니다(표준 표기도 함께 병기).

# PDF 예제 (그대로)
$ ls
$ls -a
$ls /tmp
$ls –a /tmp

# 권장 표기(가독성·일반 표준)
$ ls
$ ls -a
$ ls /tmp
$ ls -a /tmp

-a는 숨김 파일(.으로 시작)까지 모두 출력하는 옵션이에요. (명령·옵션·인자 형식은 위 표와 동일)

2) pwd — “내가 지금 어디지?” 현재 경로 출력 📍

pwd현재 작업 디렉터리의 전체 경로를 출력합니다. -P(실경로) / -L(심볼릭 링크 반영) 옵션을 지원해요. 

pwd        # 현재 경로
pwd -P     # 모든 심볼릭 링크 해석(물리 경로)
pwd -L     # 환경변수 PWD 사용(링크 경로 유지)

3) cd — 디렉터리 이동의 정석 🚶

cd현재 셸의 작업 디렉터리를 바꾸는 셸 내장 유틸리티입니다. 인자를 생략하면 홈 디렉터리로 이동하고, cd -는 직전 디렉터리로 돌아갑니다. 

cd /tmp   # /tmp로 이동
cd        # 홈(~)으로 이동
cd -      # 이전 디렉터리로 이동(토글)

4) date — 현재 날짜·시간 확인 ⏰

$ date

PDF에서 소개된 기본 예제 그대로입니다. (스크립트 타임스탬프 찍을 때 자주 사용) 

5) clear — 터미널 화면을 말끔하게 🧼

$clear

화면을 지우고 커서를 좌상단으로 보냅니다(옵션/인자 없음). 터미널 종류에 따라 스크롤백까지 지울 수도 있어요. 

6) man — 최고(=공식) 도움말 📚

리눅스가 제공하는 각종 명령의 사용법·옵션을 정확히 보여줍니다. PDF 예제로 clear 매뉴얼을 바로 열어봐요.

$man clear

space/↑↓/q로 페이지를 넘기고 종료합니다. 

3분 스피드런 실습 ⏱️

  1. 어디 있는지 확인pwd. (현재 디렉터리 경로) 
  2. /tmp로 이동cd /tmp. (임시 폴더) 
  3. 목록 보기$ ls, $ls -a, $ls –a /tmp. (PDF 예제) 
  4. 시간 체크$ date
  5. 화면 정리$clear
  6. 도움말 확인$man clearq로 종료.

(중요) 명령행 편집 & 접속 종료 단축키 ✂️

  • 문자 지우기: Backspace/Delete. 단어 지우기: Ctrl + W. 행 지우기: Ctrl + U
  • 터미널 종료: exit 또는 Ctrl + D, 혹은 창의 ×

(보너스) 내가 누구인지, 권한은? 👤

  • 현재 계정 확인: $whoami 
  • 관리자 셸(주의!): sudo su - 

요약 🔎

  • 명령 [옵션] [인자] 패턴을 몸에 익히자(예: ls -a /tmp). 
  • PDF의 $ ls / $ls -a / $man clear 등 예제를 그대로 따라 하며 감각을 익히자.
  • pwd로 위치를 확인하고 cd로 이동, 막혔을 땐 man으로 해결! 
  •  

7. 마무리 — 이제 ‘내 서버’가 생겼어요 🎉

여기까지 따라 오셨다면, 진짜로 클라우드 첫걸음을 떼셨어요. 프리 티어 조합(AMI·t2.micro·EBS 8~30GB)으로 인스턴스를 만들고, 보안 그룹에서 꼭 필요한 포트만 열었으며(SSH 22는 필수, 0.0.0.0/0 전체 허용 주의), SSH로 원격 접속해 리눅스 기본 명령어까지 손에 익혔습니다. 이 흐름만 숙달해도 이후 웹 서버, 데이터베이스, 배포 자동화까지 확장하는 데 탄탄한 기반이 돼요. 

오늘 우리가 완성한 것 ✅

  • EC2 인스턴스 생성 — 프리 티어 OS와 t2.micro 선택, EBS 8GB(≤30GB 무료) 구성. 
  • 키 페어 준비.pem을 다운로드·보관(SSH 접속 필수).
  • 보안 그룹 규칙 — SSH(22) 허용, 전체 공개 범위는 신중히. 
  • SSH 접속chmod 400ssh -i "키.pem" ec2-user@IP 순서. 
  • 리눅스 기본기$ ls / $ls -a / $ls –a /tmp / $ date / $clear / $man clear

다음으로 해볼 것 🔭

  1. 패키지 업데이트 & NGINX 설치 — HTTP(80) 열고 첫 웹 페이지 띄우기.
  2. 사용자/권한 기초whoami, sudo, 사용자 추가로 협업 준비.
  3. 스냅샷·AMI 백업 — ‘지금 상태’를 저장해 두면 실험이 더 과감해져요.
  4. 보안 강화 — SSH 소스 IP 제한, 키 보관 정책, 필요 시 포트 폐쇄 점검.

세션 정리하고 퇴근하기 🧹

  • 접속 종료: exit 또는 Ctrl + D, 혹은 터미널 창 × 클릭. 
  • 인스턴스 상태는 대시보드에서 Running인지 확인.
반응형

+ Recent posts