Computer Science
-
[CS] URI, URL, URNComputer Science/CS 2023. 12. 4. 13:18
URI Uniform Resource Identifier 네트워크 상에서 자원 위치를 알려주기 위한 규약입니다. URI가 가장 큰 개념으로 URI의 하위 개념으로 URL과 URN을 포함하고 있습니다. https://www.example.com:443/Search?query=Developer&page=1#fra Sheme Host(Domain) :port /path ?query #fragment 통신 프로토콜 웹 페이지, 웹 서버, 도메인 또는 IP 연결 포트 번호 리소스가 위치한 경로와 파일명 쿼리 스트링 https www.example.com :443 /search ?query=Developer&page=1 #fra 요즘은 REST API를 많이 사용하여 쿼리 스트링 대신 path를 사용한다.(/) U..
-
[CS] EAIComputer Science/CS 2023. 10. 8. 14:46
EAI란? Enterprise Architecture Integration 기업 내에서 다양한 소프트웨어 애플리케이션과 시스템 간에 데이터와 프로세스를 효과적으로 통합하는 기술과 방법론을 가리킵니다. (기업에서 운영되는 서로 다른 플랫폼 및 애플리케이션들 간의 정보 전달, 연계, 통합을 가능하게 해주는 솔루션) 기업이 여러 종류의 애플리케이션을 사용하고 있는 경우에 그 데이터와 기능을 효과적으로 공유하고 상호 연동하기 위해 중요한 역할을 합니다. 기업 내에 여러 애플리케이션, 여러 담당파트 별 서버가 따로 존재하는 경우가 많고, 그에따라 IP주소 및 포트번호가 여러 개인 경우가 많습니다. 각각의 서버에 접근해서 정보를 얻는 API를 사용하려 할 때, 직접 접근해서 가져온다면 시스템이 복잡해질수록 그에 따..
-
[CS] 쿠키와 세션Computer Science/CS 2023. 9. 8. 14:20
웹 환경에서는 클라이언트와 서버가 HTTP프로토콜을 이용해 통신합니다. HTTP는 아래와 같은 특징을 가지기 때문에 쿠키와 세션을 사용합니다. HTTP Hyper Text Transfer Protocol 웹 상에서 웹 서버 및 웹 브라우저 상호 간의 데이터 전송을 위한 응용계층 프로토콜입니다. 요청 및 응답 메시지로 대응되는 구조로, 동작 형태가 클라이언트-서버 모델로 동작합니다. 1. Connectionless(비연결성) 클라이언트가 서버에 요청(Request)를 했을 때, 그 요청에 따른 응답(Response)를 보낸 후 연결을 끊는 처리방식입니다. HTTP1.1버전에서는 커넥션을 계속 유지하고, 요청(Request)를 재활용하는 기능이 추가되었습니다. HTTP Header에 Keep-alive옵션을..
-
[Network] TCP/IP, OSI 7 Layer, UDPComputer Science/CS 2023. 5. 15. 13:17
TCP/IP Transmission Control Protocol / Internet Protocol Internet Protocol Suite : 인터넷에서 컴퓨터들이 서로 정보를 주고 받는데 쓰이는 통신규약(프로토콜)의 모음이다. 인터넷 프로토콜 슈트 중 TCP 와 IP가 가장 많이 쓰이기 때문에 TCP/IP 프로토콜 슈트라고도 불린다. 패킷 통신 방식의 인터넷 프로토콜인 IP와 전송 조절 프로토콜인 TCP로 이루어져 있다. IP : 메세지나 파일을 작은 패킷으로 나누거나 재조립하여 송수신에 반영하는 일을 담당. 패킷 전달 여부를 보증하지 않고, 패킷을 보낸 순서와 받는 순서가 다를 수 있다. TCP : IP위에서 동작하는 프로토콜로, 데이터의 전달을 보증하고 보낸 순서대로 받게 해 준다. 각 패킷의..
-
[CS] GradleComputer Science/CS 2023. 3. 3. 14:15
Gradle Groovy를 이용한 빌드 자동화 시스템입니다. Groovy와 유사한 도메인 언어를 채용하였으며, 현재 안드로이드 스튜디오의 공식 빌드 시스템입니다. Java, C/C++, Python 등 다양한 언어를 지원합니다. Ant 와 Maven과 같은 이전 세대 빌드 도구의 단점을 보완하고 장점을 취합하여 만든 오픈소스 빌드 도구입니다. (빌드 도구 : 소스코드를 실행가능한 애플리케이션 생성물을 자동으로 만드는 프로그램. 빌드 과정은 소스코드를 컴파일하고 연결하고 패키징하여 실행가능한 형태로 가공) 빌드 : 우리가 작성한 자바 코드를 비롯해 프로젝트에 쓰인 각각의 파일 및 자원(.xml, jpa, jpg, properties)등을 JVM이나 톰캣과 같은 WAS가 인식할 수 있도록 패키징하는 과정 빌..
-
[자료구조] B-Tree, B*Tree, B+TreeComputer Science/Data Structure 2023. 2. 28. 23:02
B-Tree 데이터베이스와 파일 시스템에서 사용되는 트리 자료구조의 일종으로, 이진 트리가 자식 노드를 최대 2개만 가질 수 있지만 B-tree는 자식 노드의 개수가 2개 이상인 트리입니다. 또한 노드 내의 데이터가 1개 이상일 수 있습니다. 노드 내 최대 데이터 수가 2개라면 2차 B-Tree, 3개라면 3차 B-Tree 라고 합니다. 하나의 노드에 여러 정보를 담게 되고, 여러 자식을 가질 수 있게 되면서 "차수"라는 개념이 등장합니다. 최대 M개의 자식을 가질 수 있는 B-Tree를 M차 B-Tree라고 부릅니다. 이렇게 하나의 노드에 여러 자료를 배치하게 되면서 이진 트리보다 훨씬 많은 데이터를 효율적으로 저장소에 담을 수 있게 되었습니다. 하드디스크, SSD와 같은 외부 기억장치(비휘발성 메모리..
-
[자료구조] 레드-블랙 트리(Red-Black Tree)Computer Science/Data Structure 2023. 2. 27. 16:47
Red-Black Tree 자가 균형 이진 탐색 트리(self-balancing binary search tree) 로서, 대표적으로 연관 배열 등을 구현하는 데 쓰이는 자료구조입니다. 트리에 N개의 원소가 있을 때 O(log N)의 시간 복잡도를 삽입, 삭제, 검색을 할 수 있습니다. 레드-블랙 트리는 복잡한 자료구조이지만, 실 사용에서 효율적이고, 최악의 경우에도 일정한 실행 시간을 보장하여 실시간 처리와 같은 실행 시간이 중요한 경우에 유용하게 사용됩니다. 특성 Red-Black Tree는 각각의 노드가 Red, Black 두가지의 색상 속성을 가지고 있는 이진 탐색 트리입니다. 각 구성 원소는 in-order traversal(중위순회) 연산을 수행합니다. - in-order traversal(중..
-
[자료구조] Heap & Priority Queue 구현Computer Science/Data Structure 2023. 2. 12. 19:40
Priority_queue Heap성질을 가진 자료구조입니다. Java에서 priority_queue 의 기본 정렬 구현은 Min Heap입니다. C++에서 priority_queue 의 기본 정렬 구현은 Max Heap입니다. Heap 힙(Heap) 은 특정 연산을 빠르게 수행하기 위한 이진 트리 자료구조로 부모 노드와 자식 노드간의 일련의 규칙을 통해 일관성있는 결과를 도출해내기 위한 자료구조입니다. Min Heap은 부모가 자식보다 작은 이진 트리를 구성하여 루트 노드가 전체 데이터의 최솟값이 됩니다. Max Heap은 부모가 자식보다 큰 이진 트리를 구성하여 루트 노드는 전체 데이터의 최댓값이 됩니다. Binary Heap 구현은 이진 트리의 Root노드부터 단일 Leaf노드까지의 순회 비용만 가..