분류 전체보기 1194

[HTTP] Method 종류

HTTP Method HTTP 메서드는 클라이언트가 서버에게 주어진 리소스에 무엇을 하길 원하는지를 나타낸다. 2022.09.17 - [Flask] REST API 만들기에서 간단히 정리했지만, 이 글에서는 각 메서드를 그림과 함께 정리한다. GET 서버에 Resource를 요청한다. 가장 일반적인 메서드로, URI 형식으로 요청한다. HEAD GET과 비슷하지만 header 정보만을 요청한다. 즉, 응답 body를 반환받지 않는다. HEAD 메서드는 아래의 경우에 사용한다. Resource를 받지 않고 찾기만을 원할 때 객체가 존재할 경우 응답의 상태 코드를 확인할 때 서버의 응답 헤더를 봄으로써 Resource가 수정되었는지를 확인할 때 POST 클라이언트가 요청 데이터를 HTTP Body에 담아 서..

기타 2022.09.22

[HTTPie] http 요청 도구

HTTPie 명령줄 HTTP 클라이언트. '에이치티티파이'라고 읽는다고 소개한다. CLI와 웹 서비스 간의 인간친화적인 상호작용을 목표로 하는 프로젝트로, API와 HTTP 서버의 테스트, 디버깅, 전반적인 상호작용을 위해 설계되었다. https도 지원하는 것으로 보인다. 설치 apt install httpie 공식 문서에서 여러 환경에서의 설치 방법을 확인할 수 있다. 요청 http 메소드, URI을 지정하여 요청을 보낸다. 메소드는 생략 가능하다. http [flags] [METHOD] URL [ITEM [ITEM]] -v : 요청과 응답 둘 다 확인. # 예시 http -v GET http://localhost:5000 요청 URI에 매개변수 추가 ==를 사용하여 요청 URI에 매개변수를 추가할 수..

Linux 2022.09.21

[Git] Pull 받을 파일이 서버에 untracked로 존재할 때 처리 방법

개요 개발 서버에서 수정, 적용하여 테스트를 끝낸 소스를 Git에 업로드하고 Merge까지 완료되었다. 그리고 Merge된 소스를 다시 개발 서버의 개발한 디렉터리 내에 Pull 받아야 한다. Tracking 중인 파일이라면 reset 후에 Pull 받으면 되는데, 이런 경우에는 어떻게 처리해야 할까? 상태 branch_test라는 저장소에 아래와 같이 README.md, test.txt 2개 파일이 존재한다. 그리고 서버에도 동일하게 README.md, test.txt 2개 파일이 존재하되 test.txt 파일은 Untracked 상태이다. Pull 시도 일단 다짜고짜 Fetch - Pull을 시도해보았다. git fetch git pull Merge에 의해 Untracked 파일이 덮어씌워진다는 에러..

Git | GitLab 2022.09.20

[read] 사용자 입력 / 파일 입력

read 파일 디스크립터에서 값을 읽는 명령어다. 사용자로부터 값을 입력받아 변수에 저장하거나, 파일의 내용을 입력받을 때 사용한다. 사용자 입력 read 명령어로 사용자의 키보드 입력을 변수에 저장하여 사용한다. #! /bin/bash echo "name: " read NAME echo "Your name is" $NAME 파일 입력 파일 디스크립터를 이용하여 파일의 한 행을 변수에 저장한다. #! /bin/bash # 내용을 읽을 파일 FILE=user.sh # 파일 디스크립터로 입력 읽기 read line < $FILE echo $line 파일 내용 전체를 읽을 때는 while 문을 사용할 수 있다. #! /bin/bash FILE=user.sh while read line do echo $line..

Linux/Shell Script 2022.09.19

[MySQL] Index 개념

Index 테이블에서 원하는 데이터를 빠르게 찾기 위해 사용하는 자료구조로, 검색에 자주 사용하는 필드 값으로 만들어진 테이블의 사본이라고 생각할 수 있다. 특정 컬럼에 인덱스를 생성하면 해당 컬럼의 데이터를 정렬하여 별도의 메모리 공간에 데이터의 물리적 주소와 함께 저장된다. 주로 책의 맨 처음 또는 마지막에 포함되어 있는 색인에 비유된다. MySQL은 데이터를 검색할 때 첫 번째 필드부터 차례대로 테이블 전체를 검색한다. 하지만 인덱스를 이용하면 인덱스에서 검색할 데이터가 어디에 있는지 확인하고, 데이터가 저장된 물리적 주소에서 데이터를 가져오는 방식으로 동작하기 때문에 빠른 검색을 기대할 수 있다. 사용 이유 인덱스의 가장 큰 특징은 데이터가 정렬되어 있다는 점이다. WHERE 절의 효율성 ORDE..

Database 2022.09.18

[Flask] REST API 만들기

개요 2022.09.16 - [Flask] 웹 애플리케이션 만들기 에서 여러 개의 URL을 가지고, 동적 URL을 지원하는 웹 애플리케이션을 만들어봤다. 이 글에서는 간단한 REST API를 만들어보려고 한다. 먼저 개념적인 내용부터 간단히 정리한다. REST와 REST API REST Representational State Transfer의 약자. 자원의 이름을 기반으로 하여 상태를 주고받는 것을 의미한다. JSON, XML을 통해 데이터를 주고받는다. REST API API(Application Programming Interface)란 응용 프로그램에서 사용할 수 있도록, 운영 체제나 프로그래밍 언어가 제공하는 기능을 제어할 수 있게 만든 인터페이스를 의미한다. 즉, REST API는 REST 기..

Python 2022.09.17

[Flask] 웹 애플리케이션 만들기

Flask Python으로 작성된 마이크로 웹 프레임워크로, Werkzeug 툴킷과 Jinja2 템플릿 엔진을 기반으로 한다. Python 웹 프레임워크는 대표적으로 Django와 Flask를 사용한다. Django : 풀 스택 프레임워크. 강력한 모듈이 기본적으로 탑재되어 있어 완성도가 높다. 하지만 사용하지 않는 모듈도 포함되어 있어 다소 무겁고, 프레임워크 학습에 시간이 필요하다. 참고로 발음 기호는 ˈdʒæŋɡoʊ(쟹고)로 표기된다. Flask : 웹 애플리케이션 개발에 필요한 모듈만 포함된 경량 프레임워크. 다양한 웹 엔진과 붙여 사용할 수 있고, 가벼워 Django와 함께 사용할 수도 있다. Flask는 코드가 단순하고 API 관련 확장 기능이 많아 API 서버를 만들기에 편리하다. 이 글에서..

Python 2022.09.16

[백준허브] 정답 소스 자동 Git Push

백준허브(BaekjoonHub) LeetCode의 개인 풀이를 Git 저장소에 자동으로 Push 하는 LeetHub를 포크 해서 개발된 크롬 확장 프로그램. 오픈 소스로, 기존에 풀었거나 풀어낼 문제 풀이를 저장소를 통해 관리하고 싶다면 사용할 수 있다. 설치 및 설정 1. 아래 설치 크롬 웹 스토어 링크로 접근한 뒤 Chrome에 추가 버튼을 클릭한다. 링크 : 백준 허브 크롬 확장 프로그램 2. 브라우저 오른쪽 상단 바에서 확장 프로그램 > BaekjoonHub를 클릭한 뒤, GitHub와 연동하기 위한 Authenticate 버튼을 클릭한다. 3. Github에 로그인하면, 아래와 같이 BaekjoonHub를 통해 관리할 Github 저장소를 설정할 수 있다. 새 저장소를 만들거나 기존 저장소로 연..

Algorithm/백준 2022.09.15

[MySQL] 중복 데이터 제외 전체 데이터 SELECT

개요 2022.09.13 - [MySQL] 중복 데이터 Select에서 확인한 중복 데이터는 제외하고, 데이터를 신규 테이블에 SELECT INSERT 하려고 한다. 중복 키 에러가 발생하는 경우 무시하는 INSERT IGNORE 구문도 사용할 수 있겠지만, 이 글에서는 중복 데이터를 제외한 전체 데이터를 SELECT 하는 방법을 사용하려고 한다. 예시 테이블 스키마 # 기존 테이블 스키마 CREATE TABLE IF NOT EXISTS `docs` ( `id` int(6) unsigned NOT NULL, `rev` int(3) unsigned NOT NULL, `content` varchar(200) NOT NULL ) DEFAULT CHARSET=utf8; # 신규 테이블 스키마 CREATE TAB..

Database 2022.09.14

[MySQL] 중복 데이터 SELECT

개요 테이블 스키마 수정 작업을 위핸 SELECT INSERT를 하려고 했더니, 중복 키 에러가 발생하면서 데이터 복사가 불가능한 상황이다. 중복 데이터가 몇 개인지 확인해보도록 한다. 예시 테이블 스키마 # 기존 테이블 스키마 CREATE TABLE IF NOT EXISTS `docs` ( `id` int(6) unsigned NOT NULL, `rev` int(3) unsigned NOT NULL, `content` varchar(200) NOT NULL ) DEFAULT CHARSET=utf8; # 신규 테이블 스키마 CREATE TABLE IF NOT EXISTS `docs` ( `id` int(6) unsigned NOT NULL, `rev` int(3) unsigned NOT NULL, `co..

Database 2022.09.13