[네트워크] 폴링 / 롱 폴링 (Polling / Long Polling)
·
CS/Network
Polling 폴링(polling)은 가장 기본적인 데이터 처리방식으로, 클라이언트가 주기적으로 서버에 요청을 보내 데이터를 확인하는 방식이다. 서버는 클라이언트 요청에 대해 새로운 데이터가 있는지 확인하고, 새로운 데이터가 있으면 이를 클라이언트에게 응답으로 보낸다. 주로 실시간 데이터 처리가 중요한 경우 사용된다.  장점 단순성: 폴링은 구현이 간단하고, 대부분의 표준 HTTP 요청을 사용하므로 복잡한 추가 설정이 필요 없음.상태 유지 불필요: 서버가 클라이언트의 상태를 유지할 필요가 없어 서버 자원을 절약할 수 있음.쉽게 확장 가능: 클라이언트와 서버 간의 통신이 독립적이므로 여러 클라이언트가 동시에 요청을 보내도 서버에서 쉽게 처리할 수 있음.단점비효율성: 클라이언트가 일정 시간마다 서버에 요청을..
백준 / 2156번 / 포도주 시식 / python 파이썬
·
코딩테스트/백준 (python)
문제 : https://www.acmicpc.net/problem/2156  처음에 제출한 코드는 런타임 에러가 발생하였다.n = int(input())lst = [int(input()) for _ in range(n)]dp = [0] * 10000dp[0] = lst[0]dp[1] = lst[0] + lst[1]dp[2] = max(lst[0] + lst[2], lst[1] + lst[2], dp[1])for i in range(3, n): dp[i] = max(dp[i-3] + lst[i-1] + lst[i], dp[i-2] + lst[i], dp[i-1])print(max(dp[-1]))   n이 3보다 작을 때의 예외 처리를 하여 다시 제출했더니 통과하였다. 나의 풀이n = int(input..
비트마스크 (BitMask), 비트마스크 문제
·
자료구조 | 알고리즘
비트마스크란? 이진수를 사용하는 컴퓨터의 연산 방식을 이용해 정수의 이진수 표현을 자료구조로 쓰는 기법이진수 0 또는 1을 사용하므로 하나의 비트가 표현할 수 있는 경우는 두 가지이다. 비트마스크의 장점1. 수행 시간이 빠르다. 비트마스크 연산은 비트 단위로 이루어져 대부분 O(1) 시간 복잡도로 처리된다. 비트마스크를 사용하면 비트의 개수만큼 원소를 다룰 수 있어, 연산 횟수가 적을 때는 속도 차이가 크지 않지만, 연산이 많아질수록 성능 차이가 확연히 커진다.  2.코드가 짧다. 비트 연산자를 사용해 다양한 집합 연산을 한 줄로 작성할 수 있어, 반복문이나 조건문을 사용하는 코드보다 훨씬 간결하게 표현할 수 있다. 3. 메모리 사용량이 적다. 비트가 10개면 각 비트가 두 가지 상태를 가질 수 있어서,..
백준 / 2164번 / 카드2 / python 파이썬
·
코딩테스트/백준 (python)
문제 : https://www.acmicpc.net/problem/2164 나의 풀이from collections import dequeq = deque()n = int(input())for i in range(1, n+1): q.append(i)while len(q) > 1: q.popleft() qp = q.popleft() q.append(qp)print(q.pop()) 큐를 이용하여 쉽게 풀 수 있는 문제이다. q = deque([i for i in range(1,n+1)]) 위와 같이 선언과 함께 큐에 값을 넣을 수도 있다.
[Google Cloud Platform] GCP 서버, Cloud SQL
·
개발 | 프로젝트/GCP
오늘은 PBL 프로젝트에서 사용할 GCP 서버와 Cloud SQL로 데이터베이스를 구축하였다.Cloud SQL은 Google Cloud에서 제공하는 완전 관리형 SQL 데이터베이스 서비스이다.  사용할 데이터 베이스 엔진을 선택하고, 인스턴스 정보를 입력하면 DB 인스턴스가 생성된다.   - 참고https://spacek82.tistory.com/66 인스턴스 만들기 -> 인스턴스 정보 입력 -> SQL 관련 정보 입력 (입력정보 중 "구성 옵션 표시"를 선택하면 SQL에 대한 스펙, 백업등에 대한 설정값을 입력할 수 있음" data-og-host="spacek82.tistory.com" data-og-source-url="https://spacek82.tistory.com/66" data-og-url=..
[네트워크] 전송 계층 프로토콜 (TCP/UDP)
·
CS/Network
전송 계층의 역할전송 계층은 애플리케이션 계층의 하위 계층으로서 종단 호스트(예: 클라이언트-서버)간의 신뢰성 있는 데이터 전송을 담당한다.전송 계층은 네트워크 상에서 데이터를 전달할 때 1)오류 없이, 2) 순서대로, 3)중복 없이, 4)손실 없이 데이터를 전송하는 것을 목표로 한다.전송 계층은 위 4가지 목표를 달성하기 위해 대표적으로 2가지 프로토콜 (UDP, TCP)을 사용한다.전송 계층의 동작 방식소켓과 애플리케이션 계층소켓을 생성할 때, 애플리케이션 계층에서 IP 주소와 포트 번호를 설정한다. 애플리케이션은 이를 통해 통신을 설정하고, 전송 계층에 데이터를 보낸다.소켓이 생성되면, 전송 계층은 애플리케이션 계층으로부터 전달된 데이터와 포트 번호, IP 주소를 받게 된다.전송 계층(TCP/UDP..
백준 / 14940번 / 쉬운 최단거리 / python 파이썬
·
코딩테스트/백준 (python)
문제 : https://www.acmicpc.net/problem/14940  코드 from collections import dequen, m = map(int, input().split())grid = [list(map(int, input().split())) for _ in range(n)]distance = [[-1] * m for _ in range(n)]dx = [1, -1, 0, 0]dy = [0, 0, 1, -1]def bfs(i, j): q = deque([(i, j)]) distance[i][j] = 0 while q: x, y = q.popleft() for d in range(4): nx, ny = dx[d] + x, dy..
[Django] 장고의 MVT 패턴 (Model-View-Template)
·
개발 | 프로젝트/Django
장고는 기본적으로 MVT 패턴에 따라 애플리케이션을 개발하도록 유도합니다. MVT 패턴 데이터(Model), 사용자 인터페이스(View), 데이터를 처리하는 로직(Controller)을 구분해서 한 요소가 다른 요소들에 영향을 주지 않도록 설계하는 방식을 의미합니다.  이런 방식으로 개발을 진행하면 UI 디자이너는 데이터 관리나 애플리케이션 로직에 신경 쓰지 않고도 화면 UI를 설계할 수 있고 로직이나 데이터를 설계하는 개발자도 화면 디자인은 디자이너에게 맡기고 자신의 설계 및 개발 업무에만 집중할 수 있습니다.  장고 프레임워크에서는 View를 Template, Controller를 View라고 표현하여 MVT 패턴이라고 합니다.각각의 역할은 다음과 같습니다.Model -  데이터베이스에 저장되는 데이..