기본 콘텐츠로 건너뛰기

Pinned Post

Superpowers 완벽 가이드: Windows 설치부터 AI 코딩 실무까지

AI 개발 도구 · 설치 가이드 · 실무 적용 Superpowers 완벽 가이드: Windows 설치부터 AI 코딩 실무까지 AI 에이전트에게 코드를 바로 작성하게 하는 대신, 요구사항 분석부터 구현 계획, 테스트, 코드 리뷰까지 체계적으로 진행하게 만드는 방법을 알아봅니다. 기준일: 2026년 10월 13일 이 글에서 직접 따라 할 내용 Superpowers가 무엇인지 이해하기 Windows 개발 PC에서 사용할 코딩 에이전트 선택하기 Claude Code, Antigravity, Codex, Cursor 설치 방법 확인하기 설치 후 스킬이 실제로 작동하는지 검증하기 기능 요청을 분석하고 구현 계획을 작성하게 하기 C#, ASP.NET Core, SQL Server 프로젝트에 적용하기 테스트와 코드 리뷰를 통해 결과 검증하기 목차 Superpowers란? 설치 전 준비사항 코딩 에이전트별 설치 방법 설치 및 실행 확인 기본 개발 작업 흐름 실무 예제: C# 기능 추가 SQL Server 작업 시 주의사항 문제 해결 최종 체크리스트 1. Superpowers란? obra/superpowers 공식 GitHub 저장소 는 AI 코딩 에이전트가 소프트웨어를 개발할 때 활용할 수 있는 스킬과 개발 방법론을 제공하는 프로젝트입니다. 일반적인 AI 코딩 작업에서는 개발자가 기능을 요청하면 에이전트가 곧바로 코드를 작성하는 경우가 많습니다. 하지만 요구사항이 불분명하거나 기존 구조를 충분히 파악하지 못하면 불필요한 코드가 늘어나고, 테스트가 빠지거나 기존 기능이 손상될 수 있습니다. Superpowers는 작업에 맞는 스킬을 활...

AWS S3 파일 업로드와 다운로드 완벽 가이드: Windows EC2에서 PowerShell로 파일 전송하기

AWS CLOUD · EC2 · S3 · POWERSHELL

AWS S3 파일 업로드와 다운로드 완벽 가이드: Windows EC2에서 PowerShell로 파일 전송하기

AWS S3 버킷에 파일을 올리고, 다른 EC2 서버에서 내려받는 방법을 실제 작업 순서에 맞춰 정리합니다.

작성 기준일: 2026년 10월 12일

1. AWS S3 업로드와 다운로드란?

AWS S3(Simple Storage Service)는 파일과 데이터를 객체(Object) 형태로 저장하는 스토리지 서비스입니다. Windows EC2 서버에서 AWS CLI를 사용하면 PowerShell 명령어로 S3에 파일을 업로드하거나 S3에 저장된 파일을 로컬 서버로 다운로드할 수 있습니다.

UPLOAD · 업로드

EC2 → S3

서버에 있는 파일을 S3 버킷에 저장합니다.

DOWNLOAD · 다운로드

S3 → EC2

S3에 저장된 파일을 서버의 지정된 폴더로 내려받습니다.

두 작업 모두 기본적으로 aws s3 cp 명령어를 사용합니다. 차이는 원본과 대상의 위치입니다.

2. 사전 준비

이 글에서는 다음과 같은 환경을 가정합니다.

항목 예시
운영체제Windows EC2
명령어 실행 환경Windows PowerShell
S3 버킷company-files
로컬 파일C:\Upload\report.xlsx
다운로드 폴더C:\Download

중요: company-files와 파일 경로는 설명을 위한 예시입니다. 실제 버킷명과 파일 경로로 바꾸어 실행하세요. AWS CLI가 설치되어 있어야 하며, 현재 인증 주체에 필요한 S3 권한이 부여되어 있어야 합니다.

3. Step 1. AWS 연결 및 버킷 확인

① 현재 AWS 인증 주체 확인

aws sts get-caller-identity

현재 AWS CLI가 어떤 AWS 계정과 인증 주체를 사용하는지 확인합니다. 다른 EC2 서버에서 명령어를 실행했을 때도 인증 주체가 올바른지 확인하는 것이 좋습니다.

② S3 버킷 목록 확인

aws s3 ls

출력 결과에서 대상 버킷을 확인합니다. 목록에 버킷이 보이지 않는다고 해서 반드시 버킷이 없는 것은 아닙니다. 인증 주체의 목록 조회 권한이나 계정 설정도 확인해야 합니다.

③ 특정 버킷 내부 확인

aws s3 ls s3://company-files/

특정 경로 아래의 파일을 확인하려면 다음과 같이 실행합니다.

aws s3 ls s3://company-files/reports/

S3의 reports/는 객체 키의 접두사(prefix)입니다. 일반적인 Windows 폴더와 완전히 동일한 구조는 아니지만, AWS CLI에서는 폴더처럼 다룰 수 있습니다.

4. Step 2. Windows EC2에서 S3로 파일 업로드

① 업로드할 파일 준비

먼저 로컬 파일이 존재하는지 확인합니다.

Test-Path "C:\Upload\report.xlsx"

True가 반환되면 해당 경로에 파일이 존재합니다. False라면 파일 경로와 이름을 먼저 확인하세요.

② 특정 파일 업로드

로컬 파일을 S3 버킷의 루트 경로에 업로드합니다.

aws s3 cp "C:\Upload\report.xlsx" s3://company-files/report.xlsx

명령어의 의미는 다음과 같습니다.

  • "C:\Upload\report.xlsx": 업로드할 로컬 파일
  • s3://company-files/report.xlsx: 업로드할 S3 객체의 위치

즉, 로컬 파일이 S3의 report.xlsx 객체로 저장됩니다.

③ S3의 특정 경로에 업로드

버킷 안의 reports 접두사 아래에 저장하려면 다음과 같이 실행합니다.

aws s3 cp "C:\Upload\report.xlsx" s3://company-files/reports/report.xlsx

업로드 후 S3에서 파일을 확인합니다.

aws s3 ls s3://company-files/reports/

④ 로컬 폴더 전체 업로드

로컬 폴더 안의 파일과 하위 폴더까지 업로드하려면 --recursive 옵션을 사용합니다.

aws s3 cp "C:\Upload\" s3://company-files/uploads/ --recursive

이 명령어는 C:\Upload 아래의 파일을 S3의 uploads/ 접두사 아래로 복사합니다. 대상에 같은 객체 키가 이미 있다면 기존 객체를 덮어쓸 수 있으므로 실행 전에 대상 경로를 확인하세요.

업로드 권한 체크
  • 기본 객체 업로드에 필요한 대표 권한: s3:PutObject
  • 버킷 내부 파일 목록을 확인할 경우: s3:ListBucket
  • AWS KMS 고객 관리형 키로 암호화한다면 추가 KMS 권한이 필요할 수 있습니다.

5. Step 3. S3에서 Windows EC2로 파일 다운로드

① 다운로드 폴더 생성

New-Item -ItemType Directory -Force -Path "C:\Download"

폴더가 이미 존재해도 실행할 수 있습니다.

② 특정 파일 다운로드

S3에 저장된 파일을 현재 EC2 서버로 내려받습니다.

aws s3 cp s3://company-files/report.xlsx "C:\Download\report.xlsx"

이번에는 S3 경로가 원본이고 Windows 경로가 대상입니다. 앞에서 살펴본 업로드 명령어와 원본 및 대상의 위치가 반대입니다.

③ 특정 경로의 파일 다운로드

aws s3 cp s3://company-files/reports/report.xlsx "C:\Download\report.xlsx"

S3 객체 키와 파일명이 정확히 일치해야 합니다. 대소문자와 확장자까지 확인하세요.

④ S3의 특정 경로 전체 다운로드

aws s3 cp s3://company-files/uploads/ "C:\Download\uploads\" --recursive

지정한 S3 접두사 아래의 객체를 로컬 폴더로 복사합니다. 다운로드 대상의 로컬 파일과 이름이 겹치는 경우에도 주의해야 합니다.

⑤ 버킷 전체 다운로드

aws s3 cp s3://company-files/ "C:\Download\" --recursive

버킷 전체를 내려받는 방법입니다. 객체 수와 전체 용량이 많으면 다운로드 시간과 저장 공간이 크게 늘어날 수 있으므로 필요한 접두사만 지정하는 방식을 먼저 검토하세요.

6. 업로드와 다운로드 명령어 비교

작업 명령어 방향
파일 업로드 aws s3 cp 로컬파일 s3://버킷/키 로컬 → S3
파일 다운로드 aws s3 cp s3://버킷/키 로컬파일 S3 → 로컬
폴더 전체 업로드 aws s3 cp 로컬폴더 s3://버킷/접두사/ --recursive 로컬 → S3
경로 전체 다운로드 aws s3 cp s3://버킷/접두사/ 로컬폴더 --recursive S3 → 로컬

기억할 규칙은 간단합니다. 첫 번째 인자는 원본, 두 번째 인자는 대상입니다. --recursive는 여러 객체를 재귀적으로 복사할 때 사용합니다.

7. 업로드와 다운로드 결과 검증

① S3에 객체가 존재하는지 확인

aws s3 ls s3://company-files/report.xlsx

목록 결과가 표시되는지 확인합니다. 목록 조회에는 별도의 권한이 필요할 수 있습니다.

② 다운로드 파일 존재 여부 확인

Test-Path "C:\Download\report.xlsx"

③ 로컬 파일의 크기 확인

Get-Item "C:\Download\report.xlsx" |
    Select-Object Name, Length, LastWriteTime

파일 크기와 수정 시간을 확인할 수 있습니다. 더 엄격한 검증이 필요하면 S3 객체의 메타데이터와 체크섬을 비교하세요. 단순히 파일이 존재한다는 사실만으로 파일 내용까지 정상이라고 보장할 수는 없습니다.

8. 자주 발생하는 오류와 해결 방법

AccessDenied

업로드는 s3:PutObject, 다운로드는 s3:GetObject 권한이 대표적으로 필요합니다. 목록 확인에는 s3:ListBucket 권한이 필요할 수 있습니다. IAM 정책, 버킷 정책, VPC 엔드포인트 정책, KMS 권한 등도 확인하세요.

파일 또는 객체를 찾을 수 없음

버킷명, 객체 키, 확장자 및 대소문자를 확인하세요. 로컬 경로가 잘못되었거나 S3 객체가 다른 접두사 아래에 있을 수도 있습니다.

인증 오류

다음 명령어로 현재 인증 주체를 확인하세요.

aws sts get-caller-identity

EC2에 연결된 IAM 역할, AWS CLI 프로필, 환경 변수 및 자격 증명 설정을 확인합니다. EC2에서는 장기 액세스 키를 직접 저장하기보다 인스턴스 역할을 사용하는 방식을 우선 검토하세요.

같은 이름의 파일이 이미 존재함

S3에 같은 객체 키로 업로드하면 기존 객체가 대체될 수 있습니다. 다운로드도 로컬 대상 파일과 충돌할 수 있습니다. 중요한 데이터라면 작업 전에 대상 경로와 버전 관리 정책을 확인하세요.

9. EC2에서 IAM 역할을 사용하는 이유

다른 EC2 서버에서도 동일한 S3 버킷을 확인할 수 있다고 해서 두 서버가 동일한 권한을 가진 것은 아닙니다. 각 서버의 인증 주체와 정책에 따라 업로드 또는 다운로드가 거부될 수 있습니다.

EC2에 적절한 IAM 역할을 연결하면 AWS CLI가 인스턴스 프로파일을 통해 임시 자격 증명을 사용할 수 있습니다. 이를 이용하면 장기 액세스 키를 서버에 직접 저장하는 방식을 피할 수 있습니다.

필요한 권한은 작업 범위에 맞게 최소한으로 부여해야 합니다. 예를 들어 다운로드 전용 서버에는 업로드 권한까지 무조건 부여할 필요가 없습니다.

10. 한 번에 따라 하는 최종 실습

다음 예제는 Windows EC2에서 파일 하나를 S3에 업로드한 후 다시 다운로드하는 순서입니다. 실제 경로와 버킷명으로 바꾸어 실행하세요.

# 1. 현재 AWS 인증 주체 확인
aws sts get-caller-identity

# 2. 버킷 확인
aws s3 ls s3://company-files/

# 3. 업로드할 로컬 파일 확인
Test-Path "C:\Upload\report.xlsx"

# 4. S3에 파일 업로드
aws s3 cp "C:\Upload\report.xlsx" s3://company-files/report.xlsx

# 5. S3 객체 확인
aws s3 ls s3://company-files/report.xlsx

# 6. 다운로드 폴더 생성
New-Item -ItemType Directory -Force -Path "C:\Download"

# 7. S3에서 파일 다운로드
aws s3 cp s3://company-files/report.xlsx "C:\Download\report.xlsx"

# 8. 다운로드 결과 확인
Test-Path "C:\Download\report.xlsx"

# 9. 파일 크기 확인
Get-Item "C:\Download\report.xlsx" |
    Select-Object Name, Length, LastWriteTime

실습 주의: 위 명령어는 업로드와 다운로드가 모두 가능한 권한을 전제로 합니다. 실제 환경에서 실행한 결과가 아니라 재현 가능한 명령어 예시입니다. 업로드 전에 대상 객체가 이미 존재하는지 확인하고, 운영 파일을 덮어쓰지 않도록 주의하세요.

11. 자주 묻는 질문(FAQ)

Q1. 다른 EC2 서버에서도 동일한 버킷명이 보이면 바로 다운로드할 수 있나요?

반드시 그렇지는 않습니다. 현재 인증 주체가 해당 객체를 읽을 권한을 가지고 있어야 하며, 객체 키와 암호화 설정도 올바르게 지정되어야 합니다.

Q2. 업로드와 다운로드에 다른 명령어를 사용하나요?

기본적으로 둘 다 aws s3 cp를 사용합니다. 원본과 대상의 위치를 반대로 지정하면 됩니다.

Q3. 폴더를 업로드하거나 다운로드하려면 어떻게 하나요?

--recursive 옵션을 사용합니다. 폴더 전체를 대상으로 하기 전에 파일 수, 저장 공간 및 덮어쓰기 가능성을 확인하세요.

Q4. 버킷 목록은 보이는데 파일 다운로드가 실패합니다.

버킷 목록 조회 권한과 객체 읽기 권한은 다를 수 있습니다. s3:GetObject, 버킷 정책 및 필요한 KMS 권한 등을 확인하세요.

Q5. 업로드한 파일이 다른 서버에서도 보이나요?

같은 버킷과 객체 키를 조회하고 접근 권한이 있다면 다른 서버에서도 해당 객체를 확인할 수 있습니다. 각 서버의 로컬 파일이 자동으로 동기화되는 것은 아닙니다.

12. 공식 문서 및 출처

작성 기준일: 2026년 10월 12일. AWS CLI 버전, IAM 정책, 버킷 정책 및 암호화 설정에 따라 실제 동작은 달라질 수 있습니다. 게시 전후 변경된 내용은 공식 문서에서 재확인하세요. 본문은 공식 문서를 바탕으로 작성한 실습 안내이며, 사용자의 AWS 환경에서 직접 실행한 테스트 결과는 아닙니다.

#AWS #AmazonS3 #EC2 #AWSCLI #PowerShell #WindowsServer #파일업로드 #파일다운로드 #IAM #클라우드개발

댓글

이 블로그의 인기 게시물

ChatGpt 의 유료결제 영수증 및 청구서 다운로드

ChatGpt 의 유료결제 영수증 및 청구서 다운로드   https://chatgpt.com/  사이트에 접속하며 회원가입을 합니다.   ChatGpt 유료 결제를 위해서는 왼쪽 하단에 있는 " Team 워크스페이스 추가 "를 선택합니다.   https://chatgpt.com/     ChatGPT의 요금제는 세 가지로 나뉩니다:  Free ,  Plus , 그리고  Custom Plan (기업용 요금제). 각 요금제의 특징과 차이점은 다음과 같습니다. 1.  Free Plan (무료 플랜) 사용 모델:  GPT-3.5 제공 기능:  기본적인 질문 응답, 텍스트 생성 접속 가능성:  트래픽이 많을 때는 사용이 제한될 수 있으며, 응답 속도가 느릴 수 있습니다. 제한 사항:  최신 모델이나 고급 기능을 사용할 수 없고, 성능이나 속도 면에서 제한이 있습니다. 2.  Plus Plan (플러스 플랜) 월 요금:  $20 사용 모델:  GPT-4 장점:  더 빠른 응답 속도, 트래픽이 많을 때도 안정적인 접속 가능 차이점:  GPT-4의 향상된 성능으로 더 복잡한 질문이나 고급 작업에도 우수한 결과를 제공합니다. 접속 가능성:  트래픽이 많아도 안정적이며, 더 나은 응답 속도를 제공합니다. 3.  Custom Plan (맞춤형 플랜) 대상:  대규모 기업 또는 특정 요구사항이 있는 고객 요금:  고객의 요구에 따라 맞춤 설정 특징:  기업 맞춤형 기능과 성능을 제공하며, 보안, 데이터 정책, API 액세스와 같은 맞춤형 옵션을 포함할 수 있습니다. 차이점:  대규모 기업에 특화된 기능으로, 추가 지원과 고급 기능 제공이 가능합니다. 주요 차이점 모델 사용:  Free는 GPT-3.5,...

인천국제공항 제1여객터미널에서 일본으로 가는 출국 절차 안내 ✈️

인천공항 제1여객터미널 출국 절차 가이드 (탑승동 이동 및 셔틀트레인 완벽 정리) 공항 도착부터 체크인, 보안검색, 출국심사, 그리고 셔틀트레인을 타고 탑승동으로 이동하는 전체 출국 단계를 빠짐없이 안내합니다. 1. 공항 도착 시간 항공기 출발 3시간 전 제1여객터미널 3층 출국장 도착 권장 2. 탑승구 확인 101~132번 게이트는 셔틀트레인을 타고 탑승동 으로 이동 필수 3. 되돌아오기 불가 셔틀트레인은 편도 이동만 가능하므로 본동 면세품 인도 후 탑승 Step 1. 공항 도착 및 체크인 (3층 일반지역) 항공기 출발 3시간 전 공항 3층 출국장에 도착하는 것을 권장합니다. 셀프 체크인 & 자동 수하물 위탁(Self Bag-Drop): 키오스크에서 모바일·지류 탑승권을 발급받고 전용 카운터를 이용하면 대기시간을 크게 단축할 수 있습니다. 유인 카운터: 여권과 항공권(e-티켓)을 제시하여 좌석 배정 및 위탁 수하물을 처리합니다. Step 2. 출국 전 사전 준비 (환전 및 통신) 환전 수령: 사전 신청한 외화를 3층 또는 지하 1층 환전소·은행 영업점에서 수령합니다. 로밍 및 통신: 통신사 부스에서 데이터 로밍 확인 또는 신청한 USIM/eSIM/와이파이 단말기를 수령합니다. 기타 편의시설: 외투 보관 서비스, 약국, 여행자 보험 창구 이용은 보안검색장 진입 전 일반지역에서 마쳐야 합니다. Step 3. 출국장 진입 및 보안 검색 3층 출국장 게이트(2~5번)로 이동하여 탑승권과 여권을 확인받고 보안검색대로 이동합니다. 주의 (액체류 규정 안내) 기내 반입 액체류는 개별 용기당 100ml 이하, 1인당 총 1L 투명...

엑셀·워드와 호환되는 최신 WYSIWYG 웹 에디터 강추

최신 자료를 기반으로 엑셀과 워드 호환이 잘 되는 상위 10개의 WYSIWYG 웹에디터를 조사하겠습니다. 이 목록은 사용량, 기능, 개발자 선호도를 고려하여 선정되며, 각 웹에디터의 공식 웹사이트 링크도 함께 제공해드리겠습니다.  엑셀·워드와 호환되는 최신 WYSIWYG 웹 에디터 10선 1.  CKEditor 5 오픈 소스 기반의  CKEditor 5 는 높은 완성도의 WYSIWYG 웹 에디터로, Drupal 등 주요 CMS에서 기본 에디터로採용될 정도로 널리 쓰입니다 ( Drupal and CKEditor: a history of advanced content editing | CKEditor | CKEditor ). 풍부한 플러그인과 커스터마이징 기능을 제공하며,  Microsoft Word  문서를 댓글이나 변경 추적 내용까지 포함하여 불러오는 고급 호환 기능도 갖추고 있습니다 ( Wysiwyg Editors Statistics 2025 ). 또한 별도 플러그인을 통해 편집한 내용을 바로  .docx  워드 파일로 내보낼 수 있어 워드 호환성이 뛰어납니다 ( Export to Word | CKEditor 5 Documentation ). 개발자들은 CKEditor 5의 모듈식 설계와 활발한 커뮤니티 지원을 선호하며, 기업용 협업 편집 기능 등의 프리미엄 옵션도 제공됩니다. 2.  TinyMCE TinyMCE 는 오랜 역사와 함께 가장 널리 사용되는 웹 에디터 중 하나로, WordPress에서는 수년간 기본 편집기로採用되어 왔습니다. Joomla, Umbraco, Shopify 등 수많은 CMS에 내장되어 있으며, 전 세계 웹 콘텐츠의 약 40%가 TinyMCE로 작성·출판되고 있다고 합니다 ( Configure TinyMCE for your CMS to rival Wix and WordPress | TinyMCE ). 기본 기능만으로도 강력하지만,...