[네트워크] 전송 계층 프로토콜 (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 -  데이터베이스에 저장되는 데이..
백준 / 2293번 / 동전 1 / python 파이썬
·
코딩테스트/백준 (python)
문제 : https://www.acmicpc.net/problem/2293  평소 DP 문제들의 접근에 어려움을 느끼는데 점화식을 세우는 것이 어려운 것 같다. 이번 문제도 점화식 아이디어가 떠오르지 않아서 검색을 통해 공부하고 접근법을 이해하는 데에 노력하였다.단순히 코드를 보는 것만으로 이해가 어려울 때엔 유튜브로 해설 영상을 통해 보다 쉽게 이해할 수 있다.    정답 n, k = map(int, input().split())coins = [int(input()) for _ in range(n)]coins.sort()DP = [0] * (k + 1)DP[0] = 1for c in coins: for i in range(c, k + 1): DP[i] += DP[i - c]print(..
백준 / 2579번 / 계단 오르기 / python 파이썬
·
코딩테스트/백준 (python)
문제 : https://www.acmicpc.net/problem/2579  다이나믹 프로그래밍 (DP) 문제이다.  계단을 오르며 얻을 수 있는 최댓값을 구하면 되는 문제이지만 조건이 있다.1. 한 번에 한 계단 혹은 두 계단씩 오를 수 있다.2. 연속된 세 개의 계단을 밟을 수 없다.3. 마지막 계단은 반드시 밟아야 한다. 이 세 조건을 만족시키며 답을 구하기 위해 다음과 같이 접근하였다.1. 계단의 개수가 각각 1, 2개일 때     계단의 점수를 더한 값을 출력한다. 2. 계단의 개수가 3개 이상일 때  1) dp 테이블을 계단의 개수만큼 0으로 초기화하여 만든다.  2) dp[0] = 첫 번째 계단의 점수 , dp[1] = 첫 번째 계단의 점수 + 두 번째 계단의 점수를 저장한다.  3) dp[..
[DB] 데이터 베이스 기초
·
기타
Database란여러 응용 프로그램 또는 사용자들이 공유, 이용할 수 있도록 통합하여 저장한 데이터의 집합   ● DBMS 데이터베이스를 관리하기 위해 필요한 기능을 제공하는 소프트웨어 ●  데이터베이스 스키마- 데이터베이스 구조, 데이터 타입, 제약 조건에 대한 명세- 데이터베이스 설계 단계에서 명시되며, 자주 변경되지 않음 ●  데이터베이스 인스턴스 특정 시점에 데이터베이스에 실제로 저장되어 있는 데이터  데이터 모델링 3단계 1. 개념적 모델링 - 업무 중심적이고 포괄적인 수준의 모델링- 추상화 수준이 가장 높음 - 업무의 핵심 엔터티(Entity)를 추출하는 단계   2. 논리적 모델링 - 데이터 정규화 수행 - 개념적 모델링의 결과를 토대로 세부속성, 식별자, 관계 등을 표현하는 단계   3...
[MySQL] 명령어 모음 (기초)
·
기타
공부하며 점차 추가해 나갈 예정입니다 ! 모든 데이터베이스 보기SHOW DATABASES;  데이터베이스 생성하기# CREATE DATABASE 데이터베이스명;CREATE DATABASE test;데이터베이스 사용하기#USE 데이터베이스명;USE test;  테이블 생성하기  모든 테이블 보기test 테이블 안에 test_table이 존재  테이블 구조 보기DESC,  DESCRIBE, EXPLAIN 중 하나와 테이블명을 통해 해당 테이블의 구조를 확인할 수 있습니다.
백준 / 1931번 / 회의실 배정 / python 파이썬
·
코딩테스트/백준 (python)
문제 : https://www.acmicpc.net/problem/1931   처음 문제를 보자마자 알고리즘 강의 때 배운 Interval Schduling의 접근법이 생각났다. Earliest finish time을 기준으로 접근하여 가장 빨리 끝나는 것을 선택하면 최적의 답을 구할 수 있는 것이다.  이를 고려하여 입력 받은 회의 시간들을 끝나는 시간을 기준으로 오름차순 정렬하고 제출하였는데 실패하였다. 그 이유는 끝나는 시간이 동일한 회의들에 대한 처리를 해주지 않았기 때문이었다. 따라서 아래와 같이 1. 회의가 끝나는 시간 2. 회의 시작 시간  이렇게 우선 순위를 두어서  .sort(key = lambda x: x[1])이 아닌  .sort(key = lambda x: (x[1], x[0])) ..