API(Application Programming Interface)란?
·
CS
API란?소프트웨어 애플리케이션이 서로 통신하여 데이터, 특징 및 기능을 교환할 수 있도록 하는 일련의 규칙 또는 프로토콜 API는 개발자가 처음부터 개발하는 대신 다른 애플리케이션의 데이터, 서비스 및 기능을 통합할 수 있도록 하여 애플리케이션 및 소프트웨어 개발을 단순/가속화한다. API를 사용하면 필요한 정보만 공유할 수 있고 다른 내부 시스템 세부 정보는 숨길 수 있으므로 시스템 보안에 도움이 된다. 서버 또는 디바이스는 데이터에 완전히 노출할 필요가 없으며, API를 사용하면 특정 요청과 관련된 작은 데이터 패킷을 공유할 수 있다. API 작동 방식 이해하기예시로 제3자 결제 방식을 살펴보면, 사용자가 전자상거래 사이트에서 제품을 구매할 때 'Paypal로 결제' 또는 타사 시스템을 사용하라는 ..
백준 / 2178번 / 미로 탐색 / python 파이썬
·
코딩테스트/백준 (python)
문제 : https://www.acmicpc.net/problem/2178  문제N×M크기의 배열로 표현되는 미로가 있다.101111101010101011111011 미로에서 1은 이동할 수 있는 칸을 나타내고, 0은 이동할 수 없는 칸을 나타낸다. 이러한 미로가 주어졌을 때, (1, 1)에서 출발하여 (N, M)의 위치로 이동할 때 지나야 하는 최소의 칸 수를 구하는 프로그램을 작성하시오. 한 칸에서 다른 칸으로 이동할 때, 서로 인접한 칸으로만 이동할 수 있다.위의 예에서는 15칸을 지나야 (N, M)의 위치로 이동할 수 있다. 칸을 셀 때에는 시작 위치와 도착 위치도 포함한다. 입력첫째 줄에 두 정수 N, M(2 ≤ N, M ≤ 100)이 주어진다. 다음 N개의 줄에는 M개의 정수로 미로가 주어진다..
백준 / 1149번 / RGB거리 / python 파이썬
·
코딩테스트/백준 (python)
문제 : https://www.acmicpc.net/problem/1149  코드import sysinput = sys.stdin.readlinen = int(input())HC = []for _ in range(n): HC.append(list(map(int, input().split())))for i in range(1, n): HC[i][0] = HC[i][0] + min(HC[i - 1][1], HC[i - 1][2]) HC[i][1] = HC[i][1] + min(HC[i - 1][0], HC[i - 1][2]) HC[i][2] = HC[i][2] + min(HC[i - 1][0], HC[i - 1][1])print(min(HC[n-1])) 이전 집에서 사용한 색을 제외한 ..
백준 / 1759번 / 암호 만들기 / python 파이썬
·
코딩테스트/백준 (python)
문제 : https://www.acmicpc.net/problem/1759  코드from itertools import combinationsL, C = map(int, input().split())alpabet = sorted(list(input().split()))vowel = {'a', 'e', 'i', 'o', 'u'}result = []for pw in combinations(alpabet, L): count_vowels = sum(1 for i in pw if i in vowel) if count_vowels >= 1 and L - count_vowels >= 2: result.append(''.join(pw))for pw in result: print(pw) 서로..
백준 / 1107번 / 리모컨 / python 파이썬
·
코딩테스트/백준 (python)
문제 : https://www.acmicpc.net/problem/1107  코드 import sysinput = sys.stdin.readlinen = int(input())m = int(input())ans = abs(100 - n)if m: btn = list(input().split())else: btn = []for num in range(1000001): for i in str(num): if i in btn: break else: ans = min(ans, len(str(num)) + abs(num - n))print(ans) 처음에는 버튼을 최소한으로 눌러야 한다는 조건에 고장난 버튼의 최소, 최댓값과 ans(n - 100)..
백준 / 28278번 / 스택 2 / python 파이썬
·
코딩테스트/백준 (python)
문제 : 28278번: 스택 2 (acmicpc.net) https://www.acmicpc.net/problem/1181  기초적인 스택의 동작 방식만 알면 쉽게 풀 수 있는 문제였다. 코드 import sysinput = sys.stdin.readlinestack = []n = int(input())for i in range(n): x = list(map(int, input().split())) if x[0] == 1: stack.append(x[1]) elif x[0] == 2 : if stack: print(stack.pop()) else: print(-1) elif x[0] == 3: ..
Git 기초 / Git 명령어
·
기타
Git이란 ? 여러 개발자들 간 개발 파일들의 작업을 조율하기 위한 분산 버전 관리 시스템개발자의 Commit History를 통해 버전관리가 용이함개발 프로젝트의 local 저장소와 원격 저장소를 분리하여 독립적인 코드 관리가 가능함코드에 결함이 있을 시, Commit History를 살펴 확인해 복원이 빠르며, 코드 리뷰를 비롯해 협업이 최적화된 시스템   BranchCommit 사이를 가볍게 이동할 수 있는 포인터 같은 것특정 Commit으로부터 분기되는 포인터, 개발자들이 개발을 진행하고 있는 환경 또는 흐름새로운 Branch가 생성되더라도 기존의 Main Branch는 유지 이후, 분기된 Branch를 다시 하나의 Branch로 합치는 것으로, Merge 과정에서 Conflict가 많이 발생Co..
[네트워크] 네트워크 계층별 프로토콜
·
CS/Network
컴퓨터 네트워크 강의 수강 후 추가적인 개념 정리가 필요할 것 같아서 정리하였다. 프로토콜 (Protocol)컴퓨터 또는 전자기기 간의 원활한 통신을 위해 지키기로 약속한 규칙컴퓨터 내부에서, 또는 컴퓨터 사이에서 데이터의 교환 방식을 정의하는 규칙 체계  OSI 7 (Open Systems Interconnection) 계층별 주요 프로토콜계층을 나눈 이유?  통신이 일어나는 과정을 단계별로 파악할 수 있으므로, 문제 발생 시 현상에 따라 원인을 파악하기 쉽다. ●  하위 계층으로 갈수록 헤더가 붙어 캡슐화가 진행되며, 상위 계층으로 갈수록 헤더를 제거하여 역캡슐화가 진행된다. ●  헤더에는 해당 계층의 기능과 관련된 제어 정보가 포함되어 있다.  7. 응용 계층 (Application)우리가 사용하는..