일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- 파이썬
- 최단거리
- 파이썬 기초부터 시작하는 딥러닝 영상인식 바이블 Online 강의
- 백준 19950
- 백준 23289
- 백준 3차원 막대기 연결하기
- 직장인자기계발
- 직장인인간
- 삼성
- 딥러닝 바이블 후기
- 삼성 코테
- 스택
- 파이썬 기초부터 시작하는 딥러닝 영상인식 바이블 Online 강의 후기
- 백준
- 그리디
- 패스트캠퍼스후기
- 패스트캠퍼스
- 문자열
- 백트래킹
- 패캠챌린지
- 백준 학교 탐방하기
- Python
- 직장인인강
- 프로그래머스
- 온풍기 안녕!
- MST
- 백준 9019
- 해쉬
- 코딩테스트
- 코테
- Today
- Total
목록Computer Science (8)
programmingu
REST REST의 개념 Representation State Transfer의 약자로 소프트웨어 프로그램 아키텍쳐의 한 형식 자원을 이름으로 구분하여 해당 자원의 상태를 주고 받는 모든 것. 웹의 모든 자원에 고유한 ID인 HTTP URI를 부여 REST는 기본적으로 웹의 기존 기술과 HTTP 프로토콜을 그대로 활용하기 때문에 웹의 장점을 최대한 활용할 수 있는 아키텍처 스타일이다. 플랫폼에 맞추어 새로운 서버를 만들 필요 없도록 범용적 사용성을 보장하는 서버 디자인 ⇒ HTTP 표준 규약을 지키면서 API를 만드는 것이다 1. HTTP URI(Uniform Resource Identifier)를 통해 자원(Resource)을 명시하고, 2. HTTP Method(POST, GET, PUT, DELET..
JVM 이란? 정의 기술적 정의: 코드를 실행하고 해당 코드에 해대 런타임 환경을 제공하는 소프트웨어 프로그램에 대한 사양 일반적 정의: 자바를 실행하는 방법. JVM의 설정을 구성한 다음 설정 사항에 따라 실행 중에 프로그램 리소스를 관리 역할: 자바 애플리케이션을 클래스 로더를 통해 읽어들여 자바 API와 함께 실행하는 것. JVM은 스택 기반의 가상머신 (cf: ARM 아키텍쳐같은 하드웨어는 레지스터 기반으로 동작) 만약, 자바 소스 파일은 리눅스에서 만들었고 윈도우에서 이 파일을 실행하고 싶다면, 윈도우용 JVM을 설치만 하면 된다. 여기서 JVM은 운영체제에 종속적이라는 특징을 알 수 있습니다. 기본 기능 자바 프로그램이 어느 기기나 운영체제 상에서도 실행될 수 있도록 한다. = 이식 가능한 실..
프로세스 cf) 프로그램 어떤 작업을 실행할 수 있는 파일 파일이 저장장치에 저장되어 있지만 메모리에는 올라가 있지 않은 정적인 상태 ⇒ 즉 사용자가 눌러서 실행하기 전의 파일. 코드 덩어리 프로세스 정의 프로그램을 실행하는 순간 파일은 컴퓨터 메모리에 올라가게 되고(⇒ 동적인 상태). 이 실행중인 프로그램을 프로세스라고 한다. 운영체제로부터 시스템 자원을 할당받는 작업의 단위 프로그램 → 프로세스 운영체제는 프로그램을 실행하기 위해 프로그램을 메모리의 적당한 위치로 가져온다. 그리고, 운영체제는 프로세스를 관리하기 위해 PCB(Process Control Block)를 생성한다. 프로세스 생애주기 생성 상태 : 프로그램을 메모리에 가져와 실행 준비가 완료된 상태, PCB가 생성된다. 준비 상태 : 실행..
큐(Queue)란? 새로운 아이템의 추가와 기존의 아이템의 삭제가 다른 끝점에서 일어나는 linear한 자료구조 rear: insertion이 일어나는 끝 점 front: removal이 일어나는 다른 끝 점 FIFO(First-In First-Out): 먼저 들어온 것이 먼저 나간다. 큐의 구현체는 주로 LinkedList 이다. ⇒ Array-based Queue vs Linked Queue 응용 예 그래프의 넓이 우선 탐색(BFS)에서 사용 CPU threading or multi-tasking scheduling 컴퓨터 버퍼에서 주로 사용, 마구 입력이 되었으나 처리를 하지 못할 때, 버퍼(큐)를 만들어 대기 시킴 printing queue(pool) keystrokes Queue에서의 연산 qu..
스택(Stack)이란? 아이템 추가/삭제 연산이 항상 한 쪽 끝(top)에서만 나타나는 자료 구조이다. LIFO (Last-In-First-Out) : 나중에 들어간 것이 먼저 나온다. 스택의 구현체는 주로 Single Linked List. Array List를 쓴다면 pop(), push() 할 때 시간복잡도가 Ө(n) Linked List를 쓴다면 pop(), push() 할 때 시간복잡도가 Ө(1) 응용 예 그래프의 깊이 우선 탐색(DFS)에서 사용 재귀적(Recursion) 함수를 호출 할 때 사용 인터럽트처리, 수식의 계산, 서브루틴의 복귀 번지 저장 등에 쓰임 시스템 해킹에서 버퍼오버플로우 취약점을 이용한 공격을 할 때 스택 메모리의 영역에서 함 함수의 콜스택 10진수를 2진수로 바꿀 때 코..
버블 정렬 알고리즘의 개념 서로 인접한 두 원소를 검사해 정렬하는 알고리즘 ⇒ 인접한 2개의 원소의 대소를 비교해 크기가 원하는 순서대로 (오름/내림차순 혹은 사용자가 정의한 Comparator) 되어 있지 않으면 서로 교환 제자리 정렬 : 정렬하고자 하는 배열 안에서 교환하는 방식. 입력 배열 (정렬되지 않은 값들) 이외에 다른 추가 메모리를 요구하지 않는 정렬 방법 ⇒ 공간복잡도 O(N) 과정 설명 1회전에 첫 번째 원소와 두 번째 원소를, 두 번째 원소와 세 번째 원소를, 세 번째 원소와 네 번째 원소를, … 이런 식으로 (마지막-1)번째 원소와 마지막 원소를 비교하여 조건에 맞지 않는다면 서로 교환 1회전을 수행하고 나면 가장 큰 원소가 맨 뒤로 이동 ⇒ 1 회전에서는 맨 끝에 있는 자료는 정렬에..
OSI 7계층이란? OSI(Open System Interconnection) 7계층은 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것이다. 네트워크 프로토콜 디자인과 통신을 계층으로 나눠 설명한 것이다. 각 계층은 하위 계층을 사용, 현재 계층의 기능을 포함해 상위 계층에 제공. 위에서 바라보았을 때 아래층이 안보이는 구조라 할 수 있다. OSI 계층을 나눈 이유 역할별로 계층을 분리(독립적인 역할) ⇒ 문제 발생시 어떤 계층에 문제가 생겼는지 파악하기 쉽다. ⇒ 이상이 생긴 단계만 고칠 수 있다. 흐름을 알기 쉽다. 데이터 캡슐화 사용자 데이터가 각 계층을 지나면서 하위 계층은 상위 계층으로부터 온 정보를 데이터로 취급하며, 자신의 계층 특성을 담은 제어정보(주소, 에러 제어 등)를 헤더화 시켜..
최소 신장 트리(MST) 그래프의 모든 정점을 연결하는 간선들의 가중치의 합이 최소가 되는 트리 찾기! 어디에서 시작하는 지 상관없이 모든 정점이 다 이어질 수 있도록 팔을 뻗는다고 생각하면 된다. 간선이 적을 때 => KRUSKAL(간선 중심) 간선이 많을 때 => PRIM(정점 중심) Kruskal 알고리즘 간선을 하나씩 선택해서 MST를 찾는 알고리즘 모든 간선을 가중치에 따라 오름차순으로 정렬 (최초 한번) 가중치가 가장 낮은 간선부터 선택하면서 트리를 증가시킴 *** 사이클을 형성하는 간선은 선택 x!** ⇒ union-find 알고리즘을 이용한다. n-1 개의 간선이 선택될 때까지 반복해서 선택 사이클을 형성하는 방법 ⇒ union-find 추가하고자하는 간선의 양끝 정점이 같이 집합에 속해있..