쿼리 파라미터: 길이 제한, 바이너리 데이터 사용 불가, 서버나 프록시 로그에 기록될 수 있음요청 본문: 보안성(로그로 기록되지 않고, 프록시에서 처리되지 않음) 전송(sending), 실행(executing), 호출(calling), 요청(requesting) 등요청을 만들어서 전송하고 실행을 지칭하는 데 자주 사용되는 단어 예시 api농산물 직판장 APIhttps://farmstall.designapis.com/v1 경로설명METHODquerybody/reviews리뷰 조회(query 포함 요청 시 해당 점수만 필터링)GETmaxRating(1~5) /reviews리뷰 등록POST { message: string, rating: number(1~5)}고양이에 관한 진실 APIhttps://cat..
OpenAPI와 스웨거를 활용한 실전 API 설계정오표: https://www.onlybook.co.kr/entry/designing-API-errata1.1 API 생태계란?서비스, 라이브러리, 외부 서비스, 네트워크 환경 등의 상호작용1.2 API 기술하기API 변경사항을 기록하는 프로그램 작성문서 작성, 빌드 전 변경 부분 테스트, 불필요한 보일러 플레이트 절감1.3 OpenAPI란?HTTP 기반 API를 설명하는 방식을 정해놓은 규격(ex. RESTful API)YAML, JSON 파일 형식으로 작성API의 입력과 결과, 필요한 권한, 호스팅 위치 등을 기술 OpenAPI 정의서를 스웨거 UI에 입력하면 읽기 편한 형태의 문서로 만들어짐1.4 OpenAPI 정의서는 어디에 사용하는 것이 좋을까?기..
1. 원격 로그인 sshSecure Shell. 원격 머신과 통신하기 위한 프로토콜(원격 로그인, 파일 전송 등). 보통 TCP 22 포트 사용(22/tcp) 윈도우: SSH 클라이언트 설치 필요(ex. PuTTY, Tera Term - SSH를 지원하는 터미널 에뮬레이터)ssh @처음 접속하는 리눅스 머신이라면 접속 확인 프롬프트가 표시됨- 호스트 등록을 위한 절차 버추얼박스의 가상 머신에 ssh 접속버추얼박스로 만들어진 가상 머신의 네트워크 어댑터는 NAT 모드 사용- 가상 머신의 네트워크와 호스트의 네트워크가 분리되어 있어 직접 접속할 수 없음포트 포워딩호스트의 특정 포트를 게스트(가상머신)의 22/tcp로 연결1. 가상 머신 정지2. 버추얼박스 메뉴의 머신 → 설정 선택3. 네트워크 > 어댑터1 ..
20.1 패키지와 리포지터리패키지: 소프트웨어의 실행 파일, 도큐먼트 파일, 설정 파일, 스크립트를 아카이브한 파일 하나패키지 형식배포판Red Hat 형식(.rpm)Red Hat Enterprise Linux, CentOS, FedoraDebian 형식(.deb)Debian GNU/Linux, Ubuntu리포지터리: 패키지 파일을 모아서 배포하는 사이트공식 리포지터리: 배포판에 기본 설정된 리포지터리배포판서드파티 리포지터리CentOSRepoForge(RPMForge), EPEL, RemiUbuntuPPA, Japanese Team20.2 yum(CentOS)레드햇 계열의 리눅스 배포판은 rpm(RedHat Package Manger) 사용단순한 조작만 가능하여 불편한 rpm 명령어를 쉽게 사용할 수 있게..
19.1 버전 관리 시스템- 파일 변경 기록, 확인(시점, 작성자, 목적, 변경 내역)- 특점 시점으로 파일 복원19.2 깃 설치와 초기 설정# 1. 설치# CentOSyum install git-core# ubuntusudo apt-get install git-core# 2. 버전(설치) 확인git --version# 3. 초기 설정(~/.gitconfig 파일에 저장됨)git config --global user.name git config --global user.email cat ~/.gitconfig19.3 기본적인 사용법repository: 깃이 관리하는 이력 보존 공간 = .git(작업 트리의 내역)# 초기화(.git 생성)git init# commit 대상으로 등록# -u: 모든 파일(gi..
18.1 아카이브와 압축아카이브(archive): 여러 개의 파일이나 디렉터리를 모아서 파일 하나로 만드는 것압축: 파일 크기를 작게 만드는 것. 보통 아카이브 파일을 압축하여 전송과 보관 비용 축소 window, macOS의 zip은 아카이브와 압축을 동시에 실행리눅스는 tar와 gzip, bzip2로 구분18.2 tar: 파일 아카이브하기(+ 복원)권한, 소유자, 타임스탬프 같은 파일 속성 유지슈퍼 사용자로 실행- 일반 사용자로 실행하면 슈퍼 사용자 읽기 권한이 부여된 파일을 아카이브할 수 없고, 복원 시에도 올바르지 않을 수 있음 괄호 확장더보기더보기mkdir dir1touch dir1/file-{1..5}.txt# 괄호 확장(숫자, 문자){..}{1..5}{a..e}{txt,log,dat} 보통 ..
16.1 셸 스크립트의 기본기호설명예시;여러 명령어를 한 행으로 입력echo "root directory";cd /;ls -l\행 끝에 입력 시 여러 행에 걸쳐 입력할 수 있음* 세컨더리 프롬프트: 입력이 끝나지 않은 프롬프트(세컨더리 프롬프트 기호 셸 변수 PS2)echo \ "root directory"|파이프라인| 입력 후 enter 시 여러 행에 걸쳐 입력할 수 있음sort |uniq -c |sort -n#주석명령어를 일시적으로 실행하지 않기 위해서도 사용=코멘트 아웃# echo "root directory"16.2 변수변수값 변경 시는 변수명에 할당, 변수값 참조 시 변수명 앞에 $를 붙여야 함= 양옆에 공백이 없어야 함변수명으로 알파벳, 숫자, _ 사용 가능, 첫글자로 숫자 사용 불가변수값..
14. 고도의 텍스트 처리14.1 sed: Stream Editor 문자열 치환 시 자주 사용됨 대화형 에디터는 파일을 메모리상에서 편집하고 적절한 시점에 저장sed는 비대화형 에디터로 명령어 실행 시 편집 내용을 인자로 지정하여 편집된 내용이 출력됨원본 파일을 수정하지 않음 패턴 스페이스sed는 한 행을 읽으면 패턴 스페이스에 복사하고, 편집 명령어를 실행한 뒤 패턴 스페이스의 내용을 출력되어명령어로 인한 출력이 있을 경우 중복 출력됨 → -n 옵션 사용sed [옵션] # 스크립트는 주소와 명령어를 조합한 문자열sed 1,5d sample.txtsed 's/aaa/bbb/g' sample.txt# -n: 패턴 스페이스의 내용을 출력하지 않는 옵션# 지정한 행만 출력됨sed -n 1p sample.tx..
12. 텍스트 처리 명령어파일을 지정하지 않으면 표준 입력을 읽음표준 입력을 명시적으로 표현하기 위해 -를 지정하기도 함 wc: 행 수(-l), 단어 수(-w), 바이트 수(-c) 출력wc /ect/passwd# 34 49 1828 /etc/passwdwc -l /ect/passwd# 34 /etc/passwdwc -w /ect/passwd# 49 /etc/passwdwc -c /ect/passwd# 1828 /etc/passwd# 루트 디렉터리의 파일, 디렉터리 수 세기ls / | wc -l# 24 sort: 행 단위로 정렬하여 출력기본값은 알파벳순# -k N: N번째 필드를 ASCII 코드 기준으로 정렬ps x | sort -k # -n: 숫자 값으로 정렬sort -n number.txt# -..
10. 프로세스와 잡10.1 프로세스커널이 명령어 실행 시 메모리에 올린 프로그램 (CPU가 실행)프로세스 ID를 가지며 커널이 이를 관리 새 프로세스는 기존 프로세스를 기반으로 만들어짐(부모 프로세스- 셸, 자식 프로세스- ls 명령어)# 프로세스 목록 확인ps# PID 프로세스 ID# CMD 실행한 명령어 데몬(daemon): 다른 터미널에서 실행 중인 프로세스나 터미널과 무관하게 돌아가는 프로세스 UNIX 옵션: -을 사용하여 옵션 지정BSD 옵션: - 없이 옵션 지정- 유무에 따라 서로 다른 옵션을 실행하기 때문에 주의 필요BSD 옵션의미x명령어를 실행한 사용자의 프로세스 출력(TTY가 ?면 데몬)ux상세하게 출력ax[u]모든 사용자의 프로세스 [상세하게] 출력auxwwaux 옵션 출력 결과가 화..
