본문 바로가기

자바컬렉션 프레임워크(Java Collection Framework) 장점 / 종류 자바 컬렉션 프레임워크란? 애플리케이션을 개발하다 보면 다수의 객체를 저장해두고 필요할 때마다 꺼내서 사용해야되는 경우가 발생하는데 이런 경우 가장 간단한 방법은 자바의 배열을 이용하는 것이다. 배열은 쉽게 생성하고 사용할 수 있는 반면 저장할 수 있는 객체 수가 배열을 생성할 때 결정되기 때문에 불특정 다수의 객체를 저장하는데 문제가 생길 수 있다. 또한 데이터를 삭제하게 되면 해당 인덱스의 데이터는 비어있게 되어 메모리가 낭비되는 등 여러 문제가 발생할 수 있다. 자바는 JDK 1.2 버전부터 이러한 문제를 해결하기 위해 자료구조(Data Structure)를 바탕으로 객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 java.util 패키지에 컬렉션과 관련된 인터페이스와 클래스들을 포함시켜놓았다... 더보기
Javascript uuid 생성(v4) Javascript uuid 생성 방법(v4) uuidv4() { return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) => (c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16)); } UUID(Universally Unique identifier)란? 네트워크상에서 고유성이 보장되는 id를 만들기 위한 표준 규약 고유성을 보장하기 위해 중앙관리시스템에 있어서 일련번호를 부여해 주면 간단하지만 동시다발적이고 독립적으로 개발되고 있는 시스템들의 경우 중앙관리시스템은 불가능 → 따라서 개발주체가 스스로 이름을 짓도록 하되 고유성을 충족시키기 위해 탄.. 더보기
JAVA 자바 메모리 구조(Runtime Data Area) JAVA 참조 타입 (reference type) - 자바에서 지원하는 데이터 타입은 크게 두가지로 분류될 수 있다. 기본 타입(primitive type) : 정수타입(byte, char, short, int, long), 실수 타입(float, double), 논리 타입(boolean) 참조 타입(reference type) : 배열 타입, 열거 타입, 클래스, 인터페이스 - 참조 타입이란 객체(Object)의 번지를 참조하는 타입을 말한다. - 기본 타입을 이용하여 선언된 변수는 실제 값을 변수 안에 저장하지만 참조 타입을 이용해서 선언된 변수는 메모리의 번지를 값으로 갖게 된다. JAVA 참조 타입은 메모리의 번지를 값으로 사용하기 때문에 JAVA 메모리 구조에 대해 알아볼 필요가 있다! JAVA.. 더보기
자바(JAVA) 특징, Java 에디션, JVM, JRE, JDK 정리 자바(JAVA) 특징 - 자바(JAVA)란 ? 1995년도에 처음 썬 마이크로시스템즈에서 발표된 프로그래밍 언어이자 플랫폼. 1. 이식성이 높은 언어 - 자바 언어로 개발된 프로그램은 소스 파일을 다시 수정하지 않아도 자바 실행환경(JRE : Java Runtime Environment)이 설치되어 있는 모든 운영체제에서 실행 가능 2. 객체 지향 언어 - 객체 지향 프로그래밍(OOP : Object Oriented Programming)은 부품에 해당하는 객체들을 먼저 만들고 이것들을 하나씩 조립 및 연결해서 전체 프로그램을 완성하는 기법으로써, 이 때 사용되는 언어를 객체 지향 언어라고 하며, JAVA는 100% 객체 지향 언어 → 객체 지향 언어가 가져야할 캡슐화, 상속, 다형성 기능을 완벽하게 지.. 더보기
Dockerfile을 통한 apache http server Docker image build 간단하게 Dockerfile 명령어를 학습하고 Dockerfile을 도커이미지로 빌드하여 컨테이너로 올려본다. Dockerfile이란? Docker는 Dockerfile을 읽어 자동으로 이미지를 build 할 수 있음 Dockerfile은 Docker 이미지가 어떤 단계를 거쳐 빌드되어야 하는지 그 단계를 알 수 있 Dockerfile은 이미지를 만들기 위한 모든 명령어를 담아낸 스크립트(설정파일) Dockerfile 작성 Dockerfile을 작성할 때, 실제 파일의 이름을 'Dockerfile'로 만들어야함 명령어는 대소문자를 구분하지 않음. 그러나 관례상 인수와 더 쉽게 구별하기 위해 대문자로 작성 Dockerfile 포맷 : 하나의 Dockerfile은 기본적으로 다음과 같은 구조를 가진 여러개의 명령문으.. 더보기
Kubernetes(k3s) helm chart를 이용한 NGINX Ingress Controller 설치 Kubernetes Ingress란? - Ingress는 HTTP, HTTPS 등 네트워크 Layer7에 대한 설정을 담당하는 리소스 - Ingress의 기본적인 역할 : 외부 HTTP 호출에 대한 트래픽을 처리 (부하 분산, TLS 종료, 도메인 기반 라우팅 등을 제공) - Ingress는 쿠버네티스 클러스터 내부 서비스에 외부에서 접근이 가능한 URL을 부여함으로써 일반 사용자들이 쉽게 접근할 수 있는 통로를 제공 - Ingress는 그에 맞는 IngressController가 존재하며 Ingress Controller는 Ingress에 정의된 트래픽 라우팅 규칙을 보고 라우팅을 수행 Kubernetes Ingress Controller란 ? - 실제로 Ingress의 규칙을 읽고 외부의 트래픽을 S.. 더보기
Kubernetes helm stable repository install 쉬운 방법! Kubernetes helm 패키지 매니저에 대해서 알아보자. 쿠버네티스 위에서 동작하는 애플리케이션은 Deployment, Service, ConfigMap 과 같은 다양한 리소스의 조합으로 구성되어 있음. 애플리케이션을 배포할 때, 이러한 리소스들을 개별적으로 생성하지 않고 하나의 패키지로 묶어서 배포하는 것이 일반적. Kubernetes helm이란? - helm은 쿠버네티스 패키지 매니저로써 apt, yum, pip 툴과 비슷하다고 생각하면 된다. - helm을 이용하면 쿠버네티스에 원하는 소프트웨어(패키지)를 손쉽게 설치할 수 있음! - helm 패키지 또한 YAML 형식으로 구성되어 있으며 이것을 chart라고 부른다. Kubernetes chart 구조 values.yaml : 사용자가 원하.. 더보기
Error: looks like "https://kubernetes-charts.storage.googleapis.com" is not a valid chart repository or cannot be reached 에러 해결 Error: looks like " 더보기