우주먼지
article thumbnail
스택 & 큐 (Stack & Queue)
Data Architect/Data Structure 2023. 2. 12. 22:26

💡 스택 & 큐 스택 & 큐 를 배열로 구현했을 때 배열은 순서가 있고 첫 부분을 제거하거나 추가하려면 요소들을 하나씩 뒤로 옮겨야 하며 시간복잡도는 O(n) 임 스택과 큐의 과정이 비효율적이기 때문에 스택과 큐에서는 기본적인 배열을 사용하지 않음 그래서 첫 부분을 제거하거나 추가하는 과정의 시간복잡도가 상수인 연결 리스트를 스택 & 큐에 적용하는게 좋음 배열로 스택 구현 addLast, removeLast -> O(1)의 시간복잡도 addFirst, removeFirst -> 배열의 원소들은 메모리 상에서 순차적으로 저장되기 때문에 맨 앞에서 삽입/삭제 연산이 일어나면 뒤로 한칸씩 미루거나 앞으로 한칸씩 당겨야 하므로 O(n)의 시간복잡도 Last In First Out (LIFO, 후입선출, 나중에 ..

article thumbnail
이중 연결 리스트 & 원형 연결 리스트
Data Architect/Data Structure 2023. 2. 12. 21:41

💡 이중 연결 리스트 & 원형 연결 리스트 이중 연결 리스트(Doubly Linked List) Singly Linked List 관련 포스팅 - https://root-ca.tistory.com/253 전에 만들었던 단순 연결 리스트에 previous 필드를 추가한다 즉, 이중 연결 리스트의 Node 구성은 next & prev & data 3개의 요소가 들어감 원형 연결 리스트(Circular Linked List) tail.next가 null이 아닌 연결 리스트의 노드를 가리키는 연결리스트 단순 연결 리스트의 단점 tail 포인터가 있더라도 removeLast()를 하기 위한 시간복잡도는 O(n)으로 마지막 요소부터 앞으로 넘어갈 방법이 없으므로 비효율적이다. 무조건 처음부터 시작해서 마지막의 2번..

article thumbnail
반복자 (Iterator)
Data Architect/Data Structure 2023. 2. 12. 20:33

💡 Iterator 자바의 컬렉션 프레임워크에서 컬렉션의 요소들을 읽어오는 방법을 표준화 하였는데 그 중 하나가 Iterator 이다. Iterator와 Iterable은 Collection의 상위 인터페이스이다. 상향된 for문을 쓰기위한 인터페이스 구현 Iterator의 구현 메서드 - boolean hasNext() -> 다음 요소가 있다면 true 반환 - E next() -> 포인터 - void remove() - void forEachRemaning(Consumer actions) Iterable의 구현 메서드 - Iterator iterator() - void forEach(Consumer actions) - Spliterator spliterator() Iterator 인터페이스 hasNe..

보호되어 있는 글입니다. 내용을 보시려면 비밀번호를 입력해주세요.
article thumbnail
Kubernetes 복습 (Resources, Use Cases) (진행중)
Ops/Kubernetes 2023. 2. 11. 15:33

⭐ Kubernetes 💡 목차 기본적은 내용은 알고 있으므로 간단한 활용법만 작성 1. Kubernetes 구성 2. Kubernetes Resources 2-1. Pod 2-2. Namespace 2-3. Labels 2-4. Deployments (replicaset, replication controller) 2.5. Statefulset 2-6. DaemonSet 2-7. Service 2-8. ServiceDiscovery 2-9. ConfigMap & Secret 2-10. Volume - emptyDir 2-11. Volume - hostPath 2-12. Volume - NFS 2-13. Volume - static 2-14. Volume - Dynamic 2-15. RBAC 2-16. ..

article thumbnail
API Gateway 개념 & 구축
Framework/Spring 2023. 2. 11. 03:11

💡 API Gateway API Gateway란? 클라이언트의 마이크로 서비스 호출에 대한 접근 인증 및 ACL을 적용하여 중요 데이터를 보호하는 트래픽 관리 외부 클라이언트와 백엔드 서비스 간 통신을 최적화하여 클라이언트에게 원활한 경험 제공 확장성과 고가용성을 보장하며 클라이언트의 모든 API 호출을 가져와 적절한 마이크로 서비스로 라우팅 함. (로드밸런서와 유사한 구조) API Gateway를 사용하는 이유 마이크로 서비스는 각각 자체기능을 필요로 하기 떄문에 어플리케이션을 느슨하게 결합된 여러 서비스로 분해 가능 더 쉽게 개발, 배포 및 유지 관리를 할 수 있지만 고객이 어플리케이션에 빠르고 안전하게 액세스 하기가 더 어려워진다 Non-Blocking I/O가 지원되는 플랫폼에 구축하는것이 가장 ..

article thumbnail
단순 연결 리스트 (Singly Linked List)

💡 LinkedList 포인터를 사용하여 여러 개의 노드를 연결하는 자료 구조 자료구조를 사용할때 항상 경계 조건을 생각하기 배열과의 차이점 배열도 순서대로 여러 데이터를 저장할때 사용한다는 공통점이 있지만 크기 조정이 어렵지만, LinkedList는 항상 맞는 크기로 만들어지도록 설계되어 많은양의 데이터나 순차적 데이터를 사용할때 적합함 LinkedList의 기본 구조 연결 리스트의 기본구조에는 노드가 있다 노드에는 두가지 정보가 들어있다 next - 다음 노드를 가리키는 포인터 data - 노드에 넣는 데이터를 가리키는 포인터 노드를 정의하는 법 public class LinkedList { private Node head; private int currentSize; /** currentSize 변..

검색 태그