Future? Future의 정의는 공식 문서에서 다음과 같이 소개하고 있다. A future (lower case “f”) is an instance of the Future (capitalized “F”) class. A future represents the result of an asynchronous operation, and can have two states: uncompleted or completed. 미래는 Future 클래스의 인스턴스라고 한다. 또한, 미래는 비동기 작업의 결과를 나타내고 완료되지 않은 상태 또는 완료된 상태의 두 가지 상태를 가진다고 한다. 여기서 완료되지 않은 상태와 완료된 상태에 대해서도 추가적인 설명을 하고 있다. 완료되지 않은 상태 (Uncompleted) ..
코딩 컨벤션이란? 그리고 주석 컨벤션? 코딩 컨벤션? - 읽고, 관리하기 쉬운 코드를 작성하기 위한 일종의 코딩 스타일 규약이다. 주석 컨벤션? - 위에서 나오는 코딩 컨벤션의 일종으로 협업을 위한 주석을 처리하는 경우에 파일에 삽입하거나 로직 중간에 삽입할 주석의 형태나 모양, 주제 혹은 카테고리를 정하여 코딩하는 주석 스타일 규약이다. 코드 컨벤션의 장점 코딩 컨벤션을 준수하면 가독성이 좋아지고, 성능에 영향을 주거나 오류를 발생시키는 잠재적 위험 요소를 줄여준다. 특히 규모가 큰 프로젝트일수록 유지보수 비용을 줄이는 데 도움이 된다. 주석 컨벤션 (여러 컨벤션 중 일부) 1. 주석은 설명하려는 구문에 맞춰 들여쓰기 한다. function someFunction() { // statement에 관한 ..
Graph (그래프) 현실세계 사물, 개념 간 연결 관계를 수학적 모델로 단순화하여 표현한 것 V : 정점 (Vertex / Node) / E : 간선 (Edge / Link / Arc) 표현 : 그래프 G = (V, E) 그래프 용어 정점, 노드 (Vertex, Node) 간선 (Edge) 무향 간선 (Undirected Edge) : 방향이 존재하지 않는 간선으로 양방향이다. 유향 간선 (Directed Edge) : 방향이 존재하는 간선이다. 인접 (Adjacent) : (정점의 관점에서) 두 정점 사이에 간선이 존재하면 A, B는 인접한다. 부속 (Incident) : (간선의 관점에서) 두 정점 사이에 간선 e가 존재하면 간선 e는 두 정점에 부속한다. 차수 (Degree) : 한 정점에 연결된..
Tree (트리) 자료들 사이의 계층적 관계를 나타내는데 사용하는 비선형 자료구조 (부모-자식 관계로 표현) 트리가 만족하는 조건 루트 노드(root node)가 존재 → 트리는 반드시 1개 이상의 노드를 가짐 트리의 부분 트리(sub tree)도 트리 구조를 따름 Tree 용어 루트 노드 (Root) : 트리의 최상위 노드로 unique 부모 노드 (Parent) : 부모-자식에서 상위 계층 노드 자식 노드 (Child) : 부모-자식에서 하위 계층 노드 형제 노드 : 부모가 동일한 노드 조상 노드 : 해당 노드의 부모 노드부터 루트 노드까지 가는 경로에 존재하는 모든 노드들 후손 노드 : 해당 노드를 루트로 하는 부분 트리에 있는 모든 노드들 내부 노드 (internal/nonterminal) : 자..
Stack (스택) 선형 자료구조로 삽입, 삭제 연산이 한 방향에서 수행 LIFO(Last In First Out) : 나중에 들어간 원소가 먼저 나오는 구조 Stack 용어와 주요 연산 용어 Top : 스택에 데이터가 삽입될 위치 연산 push : 스택의 top에 원소 삽입 pop : 스택의 top에 있는 원소 삭제 및 반환 peek : 스택의 top에 있는 원소 반환 Stack 시간 복잡도 데이터 삽입/삭제 : O(1) top 데이터 조회 : O(1) 특정 데이터 조회 : O(n) Stack 활용 시스템 스택(System Stack)과 실행시간 스택(Runtime stack) 프로그램의 함수 호출과 복귀에 따른 실행 순서 관리 웹 브라우저 방문 기록 관리 (뒤로가기) 실행 취소 (undo) 수식의 후..