반응형

분류 전체보기 116

Collection

제네릭 자바에서 제네릭(generic)이란 데이터의 타입(data type)을 일반화한다(generalize)는 것을 의미합니다. 제네릭은 클래스나 메소드에서 사용할 내부 데이터 타입을 컴파일 시에 미리 지정하는 방법입니다. 제네릭 클래스 class AnimalList { private ArrayList animalList = new ArrayList(); void add(T animal) { animalList.add(animal); } void remove (T animal) { animalList.remove(animal); } T get(int index) { return animalList.get(index); } void print() { for (T animal : animalList) { ..

network L3에 대해서 알아보자

IPv4주소의 기본 구조 IP에 의해 캡슐화되는 패킷을 IP패킷이라고 부릅니다. IP패킷은 다양한 제어 정보를 저장하는 IP헤더, 데이터 자체를 나타내는 IP 페이로드로 구성되어 있습니다. IP 헤더 중 가장 중요한 필드는 송신지 IP 주소와 수신지 IP 주소입니다. IPv4 주소는 IPv4 네트워크에 접속된 단말을 식별하는 IP입니다. 32비트로 구성되어 있고, 8비트씩 점으로 구분해서 10진수로 표현합니다. IP 주소는 네트워크 부분과 호스트 부분 2개로 구성되어 있습니다. IP = Network ID + Host ID Network ID는 '어떤 IPv4 네트워크에 있는가'를 나타냅니다. Host ID 부분은 '어떤 단말인가'를 나타냅니다. IPv4 주소와 서브넷 마스크를 조합해서 봄으로써, '어떤..

카테고리 없음 2024.01.31

TCP/IP 통신 과정

네트워크 통신 과정은 택배에 빗대어 표현하면, 이해가 비교적 쉽습니다. 오늘은 TCP/IP 네트워크 통신 과정을 택배에 빗대어 정리해보고자 합니다. 간단한 인터넷 통신 먼저, 간단한 인터넷 통신 예제를 들어보겠습니다. 카페에서 공부하다가 너무 배가 고파서 네이버에 햄버거 맛집 검색한 상황을 예로 들겠습니다. 저는 제 컴퓨터에서 네이버 서버로 햄버거 맛집 정보를 요청했습니다. 이 때, 제 컴퓨터는 Client가 되고, 네이버 서버는 Server가 됩니다. Server에서 Client로 부터 햄버거 맛집 정보 요청(request) 받으면, Client에게 적절한 정보를 응답(response) 해줍니다. 이를 위해 네트워크 상에서 Client와 Server는 TCP/IP 연결을 시도합니다. 이 과정을 3-wa..

카테고리 없음 2024.01.29

[Javascript] Primitive(Value) vs Object(Reference)

Javascript에서 변수를 선언하고 정의했을 때, 메모리에 어떻게 저장되는지 알아보자. 메모리 구조 프로그램이 실행되기 위해서는 먼저 프로그램이 메모리에 로드(load)되어야 한다. 프로그램은 운영체제가 제공하는 메모리 공간에 저장되어 사용된다. 메모리 공간은 다음의 그림과 같이, 코드 영역, 데이터 영역, 힙 영역, 스택 영역으로 나뉜다. 코드 영역 - 실행할 프로그램의 코드가 저장되는 영역이다. - CPU는 코드 영역에 저장된 명령어를 하나씩 가져가서 처리한다. 데이터 영역 - 프로그램의 전역 변수와 정적 변수가 저장되는 영역이다. - 프로그램의 시작과 함께 할당되며, 프로그램 종료 시 소멸된다. 스택 영역 (정적 메모리 할당) - 함수의 호출과 관계되는 지역 변수와 매개변수가 저장되는 영역이다...

카테고리 없음 2024.01.24

네트워킹의 기본

네트워킹의 기본 컴퓨터 사이에 통신을 하려면 컴퓨터의 위치값을 알아야 한다. 각 컴퓨터의 위치값(주소)를 IP 주소라고 지칭한다. (IPV4) 하지만, IP는 총 32bit로 표현되기 때문에 2 ^ 32 개의 IP 주소 밖에 만들지 못한다. -> 서브넷이라는 개념이 생겨났다. IPV4 Classes 첫 번째 옥텟의 앞자리 숫자들을 바탕으로 Class들을 구분한다. A Class 1개의 네트워크가 2^24개의 ip를 보유한다. 이런 네트워크가 2^7개만큼 있음. B Class 1개의 네트워크가 2^16개의 ip를 보유한다. 이런 네트워크가 2^14개만큼 있음. A Class보다 네트워크의 크기는 줄었지만, 네트워크의 갯수는 늘었다. C Class 1개의 네트워크가 2^8개의 ip를 보유한다. 이런 네트워크..

카테고리 없음 2023.01.17

NodeCreationFailure 해결 방법

노드 그룹이 생성되지 않아서 검색해본 결과!!! AWS Document에서 NodeCreateFailure는 노드 IAM 역할 권한이 충분하지 않아 발생할 수 있다고 한다. https://docs.aws.amazon.com/ko_kr/eks/latest/userguide/troubleshooting.html Amazon EKS 문제 해결 - Amazon EKS 해당 위치에 스크립트가 없으면 CNI 컨테이너를 실행할 수 없습니다. 다음 명령을 사용하여 스크립트를 수동으로 다운로드하고 실행할 수 있습니다. curl -O https://raw.githubusercontent.com/awslabs/amazon-ek docs.aws.amazon.com 그럼 IAM을 재설정해보자. 우리가 설정해줘야할 Nodegro..

Kubernetes 2022.11.22

Delete Kubernetes Pods with a ‘regex’

Kubelet 문제로 Cronjob으로 생성한 Patch-istio-configmap이 엄청나게 많이 생성되고, Terminating되어 있는 상태이다...Kubelet 문제는 해결됐는데 Pod들이 아직도 이 상태로 머물러져있다. 이걸 어떻게 일일히 지우지..? 🤔 다행히 regex를 가지고 모든 파드를 지울 수 있었다. kubectl get pods -n istio-system --no-headers=true | \ awk '/patch-istio-configmap/{print $1}'| \ xargs kubectl delete -n istio-system pod --grace-period 0 --force

Kubernetes 2022.11.21

K8S Worker Node - Not Ready

Worker Node #1. Kubelet 상태 확인하기 journalctl -u kubelet #2. Kubelet 재시작 systemctl restart kubelet #3. 다음과 같은 Log 출력됨. "container runtime status check may not have completed yet" -> container runtime 상태를 확인해보자 #4. container runtime 재시작 systemctl restart containerd #5. container runtime 상태 확인 systemctl status containerd #6. Master node에서 해당 Worker node 상태 확인하기 성공😎 Worker Node의 Kubelet이 제대로 동작하지 않아 N..

Kubernetes 2022.11.21

[Python] 이진 검색

이진 검색은 원소가 오름차순이나 내림차순으로 정렬된 배열에서 좀 더 효율적으로 검색할 수 있는 알고리즘이다. 이진 검색은 먼저 배열의 중앙에 위치한 원소에 주목한다. 중앙 원소와 Key(검색하고자 하는 값)을 비교하며, 검색 범위를 좁혀가며 탐색을 진행한다. 맨 앞, 맨 끝, 중앙의 인덱스를 각 각 low, mid, high라고 해보자. 1) mid 값이 Key(검색하고자 하는 값)보다 작은 경우 mid 값 포함 하위 값을 검색 범위에서 제외 low = mid + 1 2) mid 값이 Key(검색하고자 하는 값)보다 큰 경우 mid 값 포함 상위 값을 검색 범위에서 제외 high = mid = 1 3) mid 값이 Key(검색하고자 하는 값)과 같은 경우 값을 찾았으므로 종료 이진 탐색 구현 from t..

Algorithm 2022.10.08

[Python] 선형 검색

선형 검색(linear search) 직선 모양(선형으로 늘어선 배열에서 검색하는 경우에 원하는 키 값을 가진 원소를 찾을 때까지 맨 앞부터 스캔하여 순서대로 검색하는 알고리즘이다. * 선형 검색은 순차 검색이라고도 한다. 배열 맨 앞부터 순서대로 원소를 스캔하는 선형 검색은 원소의 값이 정렬되지 않은 배열에서 검색할 때 사용하는 유일한 방법이다. from typing import Sequence, Any def seq_search(a: Sequence, key: Any) -> int: """시퀸스 a에서 key와 값이 같은 원소를 선형 검색""" for idx, val in enumerate(a): if val == key: return idx return -1 if __name__ == '__main..

Algorithm 2022.10.08
반응형