728x90

Programming 275

JAVA - 컬렉션 프레임 워크 (Collections Framework), List, Set, Map ... (1) 그 중 List

- 컬렉션 프레임 워크에는 대표적으로 3개의 인터페이스가 정의되어 있다. 1. List 2. Set 3. Map - List와 Set 인터페이스는 조상 클래스로 Collention 인터페이스를 가지고 있다. 1. List List 인터페이스는 1) 순서가 있고, 2) 데이터의 중복을 허용한다. - 구현 클래스에는 1) ArrayList 2) LinkedList 3) Stack 등 여러가지 클래스가 있다. 2. Set Set 인터페이스는 1) 순서를 유지하지 않고, 2) 데이터의 중복을 허용하지 않는다. - 구현 클래스에는 1) HashSet 2) TreeSet 등 여러가지 클래스가 있다. 3. Map Map 인터페이스는 1) 키(Key)와 값(Value)의 쌍(pair)으로 이루어진 데이터의 집합이다. ..

Programming/JAVA 2023.05.18

JAVA - Reflection

- 자바 리플렉션(Reflection)이란 컴파일된 자바 코드에서 역으로 클래스를 불러서 메소드(Method) 및 변수(Field)를 구해오는 방법으로 클래스를 동적 로딩하여 사용할 때 많이 사용되고 디컴파일할 때에도 자주 사용되는 기법이다. MyClass myClass = new MyClass("asdf") String myName = myClass.getMyName(); 이런식으로 사용되는데, 이를 Reflection 으로 풀어보면 아래처럼 된다. 먼저 클래스(Class)를 불러오고, 생성자(Constructor)를 구하고, 생성자에 인자를 넘겨 생성자를 만들고 메소드를 얻어와서 invoke() 함수로 실행하는 과정을 거친다. 이를 Reflection 으로 풀어보면 아래처럼 된다. Class myCl..

Programming/JAVA 2023.05.14

JAVA - Class 클래스

- 자바의 모든 클래스와 인터페이스는 컴파일 후 class 파일로 생성된다. - class 파일에는 멤버변수, 메서드, 생성자 등 객체의 정보가 포함되어 있는데 Class 클래스는 이 class 파일에서 객체에 정보를 가져올 수 있다. Class c1 = String.class; String str = new String(); Class c2 = str.getClass(); Class c3 = Class.forName("java.lang.String"); - Class 클래스는 위와 같은 방법으로 불러올 수 있고 그 중에 forName을 통해 가져오는 방법이 많이 사용되고 이를 동적 로딩이라고 부른다. - 동적 로딩이라고 부르는 이유는 보통 다른 클래스 파일을 불러올 때는 컴파일 시 스태틱에 그 클래스 ..

Programming/JAVA 2023.05.14

K8S - Deployment

- 제일 최상위 개념 / 디플로이먼트는 레플리카셋의 상위 개념으로 볼 수 있다. 레플리카셋을 생성하는 디플로이먼트를 정의할 수 있고, 배포 작업을 좀 더 세분화(롤링 업데이트 등) 하여 조작할 수 있는 기능을 가지고 있다. vi dep.yml apiVersion: apps/v1 kind: Deployment metadata: name: dep-nginx labels: app: nginx1 spec: replicas: 2 selector: matchLabels: app: nginx-a template: metadata: labels: app: nginx-a spec: containers: - name: nginx-pod image: nginx:1.14.2 ports: - containerPort: 80 k..

K8S - Replicaset

0. Pod 1. Replicaset 2. Deployment * 크기 Deployment > Replicaset > Pod - auto scaling처럼 이미지를 미리 생성해놓고 pod를 만드는 것과 유사하다. apiVersion: apps/v1 kind: ReplicaSet metadata: name: test-rep namespace: 1team labels: app: test-replicas spec: replicas: 2 selector: matchLabels: app: test-replicas template: metadata: name: nginx-app labels: app: test-replicas spec: containers: - name: n1 image: nginx ports: -..

K8S - yml 파일을 이용한 pod 생성

- yml 파일 작성 vi nginx-bis.yml apiVersion: v1 kind: Pod metadata: name: bis-nginx-pod spec: containers: - name: bis-nginx-container image: nginx:latest ports: - containerPort: 80 protocol: TCP - yml 파일 생성 후 파일을 작성한다. kubectl apply -f [파일명.yml] - yml 파일을 실행시킨다. - pod가 생성된다. - yml 파일 작성 예제 - nginx를 포함한 pod 생성하는 yml 파일 - namespace를 생성하는 yml 파일 - nginx.yml 파일에서 1team의 namespace를 필요로 하기 때문에 namespace를 ..

728x90