이 가이드는 초보 Shell 스크립트 개발자를 대상으로 하며, aws-test-curl.sh 프로그램을 분석하고 이를 기반으로 Bash Shell 스크립트를 개발하는 방법을 설명합니다.
1. Shell 스크립트 개요
1.1 Shell 스크립트란?
Shell 스크립트는 명령어를 순차적으로 실행하는 스크립트 언어로, Linux/Unix 환경에서 자동화 및 시스템 관리 목적으로 사용됩니다.
1.2 실행 환경
본 가이드에서 다룰 Shell 스크립트는 Ubuntu Linux 환경에서 실행되며, Bash Shell(#!/bin/bash)을 사용합니다.
2. aws-test-curl.sh 개요
이 스크립트는 AWS에 배포된 RESTful API를 테스트하는 프로그램으로, 다음과 같은 주요 기능을 포함합니다.
- POST: 새로운 데이터를 입력
- PUT: 기존 데이터를 수정
- DELETE: 데이터를 삭제
- GET: 데이터를 조회
2.1 사용자 입력
스크립트 실행 시, 사용자로부터 서버 IP 주소, 수정할 KeyNo, 그리고 입력/수정할 Value 값을 입력받습니다.
echo "> 서버IP를 입력하세요:"
read ipaddr
echo "> 수정할 KeyNo를 입력하세요:"
read keyno
echo "> 입력/수정 Value를 입력하세요:"
read value
입력된 정보는 이후 RESTful API 호출 시 사용됩니다.
3. RESTful API 호출 기능 구현
3.1 curl을 이용한 API 호출
스크립트는 curl 명령어를 활용하여 RESTful API를 호출합니다. curl은 HTTP 요청을 수행할 수 있는 명령어로, 다양한 API 테스트 및 서버와의 통신을 자동화할 수 있습니다.
3.2 API 요청 상세
(1) POST 요청 - 데이터 입력
curl -X POST -H "Content-Type: application/json" \
-d "{ \"value\" : \"$value\" }" http://$ipaddr:8080/api/data \
| awk '{print ">>>[RES]:", $0; sub(/,/, "", $5);} END { print $5 > "d_keyno.txt"}'
- -X POST : POST 요청을 전송
- -H "Content-Type: application/json" : 요청의 데이터 형식을 JSON으로 지정
- -d "{ \"value\" : \"$value\" }" : JSON 데이터를 전송
- awk를 활용하여 응답 데이터를 처리하고 d_keyno.txt에 저장
(2) PUT 요청 - 데이터 수정
curl -X PUT -H "Content-Type: application/json" \
-d "{ \"value\" : \"$value\" }" http://$ipaddr:8080/api/data/$keyno \
| awk '{print ">>>[RES]:", $0}'
(3) DELETE 요청 - 데이터 삭제
D_KEYNO=$(cat d_keyno.txt)
curl -X DELETE -H "Content-Type: application/json" \
-d "{ \"value\" : \"$value\" }" http://$ipaddr:8080/api/data/$D_KEYNO \
| awk '{print ">>>[RES]:", $0}'
(4) GET 요청 - 데이터 조회
curl -X GET http://$ipaddr:8080/api/data/0 \
| awk '{print ">>>[RES]:", $0}'
4. 실행 방법
4.1 스크립트 실행 권한 부여
스크립트를 실행하기 전에 실행 권한을 부여해야 합니다.
chmod +x aws-test-curl.sh
4.2 스크립트 실행
./aws-test-curl.sh
스크립트 실행 후, 서버 IP, KeyNo, Value 값을 입력하면 API 테스트가 수행됩니다.
5. 추가 학습
5.1 curl 명령어
- curl(Client URL)은 다양한 프로토콜(HTTP, HTTPS, FTP, SCP, SFTP, LDAP 등)을 지원하는 데이터 전송 명령어로, 네트워크에서 데이터를 가져오거나 전송하는 데 사용됩니다.
- curl의 주요 용도
1) 웹 페이지 또는 파일 다운로드 curl -O https://example.com/file.zip 2) RESTful API 호출 (GET, POST, PUT, DELETE 요청) curl -X GET http://example.com/api/data 3) FTP 서버에서 파일 업로드/다운로드 curl -T localfile.txt ftp://ftp.example.com --user user:password 4)네트워크 테스트 (응답 확인, 헤더 검사) curl -I https://example.com |
5.2 awk 명령어
- awk는 텍스트 처리 및 데이터 분석을 위한 스크립트 언어로, 주로 파일이나 명령어 출력에서 특정 패턴을 찾고 조작하는 데 사용됩니다. 문자열 조작 및 데이터 처리에 유용하며, 응답 데이터를 가공하여 필요한 부분만 출력 가능 합니다.
- 간단한 사용 예시
아래 awk 명령은 필드 기반 데이터 추출 예로, "Alice Developer"가 출력 됩니다.
echo "Alice 25 Developer" | awk '{print $1, $3}'
5.3 Bash 스크립트 문법
- 변수 사용 ($변수명)
- 사용자 입력 (read 명령어)
- 파일 입출력 (>, cat 명령어 활용)
6. 결론
이 가이드를 통해 초보 Shell 개발자가 RESTful API 테스트 스크립트를 작성하는 방법을 익힐 수 있습니다. curl을 활용한 API 호출, awk를 통한 데이터 가공 등의 개념을 배우고, 실전에서 활용할 수 있도록 연습해보세요!