본문 바로가기
반응형

전체 글113

REST API REST란? Representational State Transfer의 약자이다. REST는 분산 시스템 설계를 위한 아키텍처 스타일이다. 즉 제약 조건의 집합이다. HTTP를 통해 통신을 할 때 HTTP가 원래 가지고 있는 의미를 잘 활용하는 것을 목표로 한다. API란? Application Programming Interface의 약자이다. 웹 API는 웹 애플리케이션 개발에서 다른 서비스에 요청을 보내고 응답을 받기 위해 정의된 명세를 일컫는다. REST API란? 말 그대로 REST + API이다. REST 형식을 지키며 HTTP를 통해 CRUD를 실행하는 WEB API를 뜻한다. 웹 애플리케이션이 제공하는 각각의 데이터를 resource, 즉 자원으로 간주하고 각각의 자원에 고유한 URI(Un.. 2021. 10. 3.
HTTP HTTP는 Hyper Text Transfer Protocol의 줄임말이다. 즉 html문서를 주고받기 위한 프로토콜이라고 생각하면 된다. HTTP는 Request/Response (요청 / 응답) 동작에 기반하여 서비스를 제공한다. HTTP 1.0은 클라이언트에게 HTTP 요청을 받으면 클라이언트와 서버 연결을 통한 요청에 대한 응답이 있고 응답 후 연결을 해제한다. 다음 요청이 들어오면 다시 연결을 한다. 쉽게 말해 요청-연결-응답-연결해제-요청-연결-응답-연결해제.. 이런 구조인 것이다. 연결을 맺고 끊는 작업은 TCP 통신 과정에서 가장 많은 비용이 소비되는 작업이다. 따라서 이는 통신 부하 문제가 발생할 수 있다. 따라서 HTTP 1.1에서는 이 문제를 해결하기위해 keep-alive 기능을 지.. 2021. 10. 2.
UDP 프로토콜 사용자 데이터그램 프로토콜( User Datagram Protocol )의 줄임말이다. UDP 프로토콜은 4계층 프로토콜로 비연결 지향형 프로토콜이다. 비연결 지향형 프로토콜은 연결 지향형보다 속도가 빠르지만 신뢰성이 떨어진다. UDP의 전송방식은 단순해서 신뢰성이 떨어진다. 일반적으로 오류의 검사와 수정이 필요 없는 프로그램에서 수행한다. UDP 프로토콜을 사용하는 프로그램 DNS 서버 tftp 서버 RIP 프로토콜 2021. 9. 29.
AWS RDS 구축하기 AWS RDS를 구축하는 이유 RDS란 Relational Database Servic의 줄임말이다. AWS 클라우드에서 관계형 데이터베이스를 더 쉽게 설치, 운영 및 확장할 수 있는 웹 서비스이다. 앞선 글에서 효율적인 서버 관리를 위해서 웹 서버와 데이터베이스 서버를 나누는 이유에 대해서 적어보았다. 서버란? 서버란 무엇인가에 대하여 요약해보자 1. 서버란 무엇인가? 서버를 음식점에 비유한다면 크게 홀 , 요리사, 냉장고(창고)로 나눌 수 있다. 홀, 요리사, 냉장고는 각각 웹 서버, 백엔드 언어, 데이 park-algorithm.tistory.com RDS를 구축하는 이유에 대해서 적어보자면, EC2의 서버에 데이터베이스를 구축해도 되지만, EC2 서버를 운영하다 보면 여러 문제가 발생할 수 있다... 2021. 9. 29.
[파이썬] bisect 라이브러리 bisect 라이브러리를 이용하면 이진 탐색을 쉽게 구현할 수 있다. bisect 라이브러리는 정렬된 배열에서 특정 원소를 찾을 때 매우 효과적이다. bisect 내부 함수 bisect_left(a,x) : 리스트 a에서 데이터 x를 삽입할 가장 왼쪽 인덱스를 리턴한다. bisect_right(a,x) : 리스트 a에서 데이터 x를 삽입할 가장 오른쪽 인덱스를 리턴한다. 이 두 함수는 시간 복잡도 O(logN)으로 동작한다. 사용 예: from bisect import bisect_left, bisect_right a = [1,2,4,4,8] x = 4 print(bisect_left(a,x), bisect_right(a,x)) # 2 4 2021. 9. 26.
[파이썬] heapq 라이브러리 heapq는 우선순위 큐 기능을 구현하고자 할 때 사용된다. 파이썬의 heapq 라이브러리는 최소 힙으로 구성되어 있다. 따라서 단순히 원소를 힙에 넣었다가 빼는 것만으로도 시간 복잡도 O(NlogN)의 오름차순 정렬이 완료된다. heapq의 메서드 힙에 원소를 삽입할 때 -> heapq.heappush() 힙에서 원소를 꺼낼 때 -> heapq.heappop() 사용 예: def heapsort(iterable): h = [] result =[] for value in iterable: heapq.heappush(h,value) for i in range(len(h)): result.append(heapq.heappop(h)) return result result = heapsort([1,3,5,7,9.. 2021. 9. 26.
[파이썬] itertools 라이브러리 itertools는 파이썬에서 반복되는 데이터를 처리하는 기능을 포함하는 라이브러리다. itertools 중에서 유용하게 사용할 수 있는 클래스에 대하여 알아본다. 1. permutations iterable 객체에서 r개의 데이터를 뽑아 일렬로 나열하는 모든 경우를 계산한다. 사용 예: from itertools import permutations data = [ 1,2,3] print(list(permutations(data,2))) #[(1, 2), (1, 3), (2, 1), (2, 3), (3, 1), (3, 2)] 2. product iterable 객체에서 중복을 허용하여 r개의 데이터를 뽑아 일렬로 나열하는 모든 경우를 계산한다. 사용 예: from itertools import produ.. 2021. 9. 26.
ARP 프로토콜 ARP 프로토콜의 역할 ARP 프로토콜은 같은 네트워크 대역에서 통신을 위해 필요한 MAC주소를 IP주소를 이용해서 알아오는 프로토콜이다. 같은 네트워크 대역에서 통신을 하더라도 IP주소와 MAC주소가 필요하다. 이때 IP주소는 알고 MAC주소는 모를 때 ARP 프로토콜을 통해 통신이 가능하다. Hardware type: 2계층 프로토콜 타입, Ethernet을 뜻하는 0x0001만 온다. Protocol type: IPv4를 뜻하는 0x0800만 온다. Hardware Address Length: Mac주소의 길이 -> 0x06 Protocol Address Length : IPv4 주소 길이 -> 0x04 Opcode : operation code이다. 상대방이 MAC 주소를 요청했을 때 -> 0x0.. 2021. 9. 25.
HTTPS 와 SSL 인증서 HTTPS 적용하기 HTTP와 HTTPS의 차이점 HTTP란? HyperText Transfer Protocol의 줄임말이다. 클라이언트와 서버 사이에 이루어지는 요청/응답 프로토콜이다. 웹 브라우저가 HTTP를 통하여 서버로부터 HTML(hyper text markup la.. park-algorithm.tistory.com 지난주에 HTTP에 HTTPS를 적용해보았다. HTTPS에 대해 더 자세하게 공부해본다. HTTPS는 HTTP + SSL/TLS로 보안이 강화된 HTTP이다. HTTPS는 SSL/TLS 프로토콜 위에서 돌아가는 프로토콜이다. SSL 디지털 인증서 SSL 인증서는 클라이언트와 서버 간의 통신을 제삼자가 보증해주는 전자화된 문서다. 이 인증서를 통해 클라이언트는 서버가 신뢰할 수 있는.. 2021. 9. 25.
반응형