본문 바로가기
728x90

전체 글121

[JVM GC] Garbage Collector에 대하여 1. GC(Garbage Collector) 이름에서 보이는 바와 같이 GC란 JVM 메모리를 자동으로 관리해주는 역할을 한다. (쓰레기 수집) 좀 더 전문적으로 이야기하면 JVM 메모리 중 Heap 영역에서 사용하지 않는 객체를 삭제하여 관리해주는 기능을 한다. 1.1 STW (Stop The World) GC를 하며 메모리가 관리되는 동안 자바 어플리케이션이 멈추는 현상이 있는데 이를 Stop The World라고 부른다. 이 때, GC 스레드를 제외한 모든 스레드는 멈추게 된다. 2. GC 구조 일반적으로 GC구조(단일/병렬/CMS)는 Young 영역과 Old 영역으로 나뉜다. 2-1. Young Generation Young 영역은 크게 3가지로 나뉜다. Eden 영역, Survivor1 영역, .. 2022. 1. 4.
[JVM ] JVM 메모리 (Runtime Data Area) Runtime Data Area : JVM 메모리를 뜻 한다. 이 영역은 5개의 영역으로 나뉘는데 아래와 같다. Method Area Heap Stack PC Register Native Method Area 이 중, Method Area와 Heap 영역은 모든 스레드가 공유하는 공간이고 나머지 Stack, PC Register, Native Method Area의 경우는 각 스레드가 하나 씩 가지고 있는 공간이다. 1. Method Area (메소드 영역) - class data와 static 변수가 저장되는 공간 - 모든 스레드가 공유하는 공간 - JVM이 실행될 때 생성 됨 2. Heap (힙 영역) - new를 통해 동적으로 생성되는 객체가 저장되는 공간 - Heap에 저장된 데이터는 메모리 관리.. 2022. 1. 4.
[OS] Linux 유용한 명령어 모음 - 지속적인 업데이트 ######################################### cmd 모음 ######################################### ////////////////////////////////////////////////////////////////////////////////// part1. find 명령어 ////////////////////////////////////////////////////////////////////////////////// 1. 현재 디렉토리 하위에서 원하는 디렉토리 명 찾기 find ./ -type d -name "test_domain" 2. 현재 디렉토리 하위의 모든 파일에서 원하는 단어 검색 grep -r "test" ./* |more 3.. 2021. 12. 23.
[OHS] ohs 12.2.1.3 Keytool 및 orapki를 이용한 테스트 인증서 생성 보통 Oracle HTTP Server를 설치하고 default 인증서를 사용할 경우, 인증서 유효기간이 설치 시점부터 4년이다. 4년이 지나고 나서는 만료되기 때문에 OHS를 재기동할 때, 인증서 오류로 기동이 안되는 경우가 있다. (NZ_LIBRARY..관련 오류 메세지) 그래서 이번 글에서는 OHS 엔진에서 테스트 인증서를 자체로 제작하는 방법을 해보고자 한다. 이 방법은 단순히 테스트 인증서이기 때문에 보안에는 취약하다. 외부 서비스의 경우에는 당연히 테스트 인증서를 가이드 하지 않고 인증기관에서 발급받은 공인 인증서를 사용하는 것을 권장한다. 이제 실제로 자체 서명된 테스트 인증서를 만들어보자. 1) Set environment variables [ohs@sydev ohs12213]$ expor.. 2021. 12. 22.
[용어정리] DevOps란? 1. DevOps의 의미 DevOps는 Development와 Operations의 합성어이며, 기존의 개발 업무와 운영 업무로 나뉘어진 두 역할 사이의 커뮤니케이션, 협업, 통합을 강조하는 개념이다. 이러한 용어가 탄생하게된 배경은 이렇다. "회사에서 개발을 하다보면 프로젝트를 빌드하고 배포하고 테스트하는 운영 업무까지 함께 해야 한다. 보통 회사에서는 이 두개의 일(개발/운영)을 하는 조직을 나눠서 관리하는데 하나의 서비스를 두 개의 조직에서 관리하다보면 비효율적인 부분도 있고 의사소통에도 문제가 발생할 수 있다. 시스템간 연결이 복잡해지고 기술과 요구 사항이 지속적으로 변화하고 있는 시점에서 시스템 운영에 대한 서로 간의 소통이 매우 어렵게 되고 있다. 서로 간의 업무와 정보가 손쉽게 공유되지 않아.. 2021. 12. 6.
[TOMCAT] 톰캣 세션 클러스터링 테스트 이번 글에서는 아파치 톰캣 9.0에서 세션 클러스터링 테스트 내용을 정리해보고자 한다. 세션 클러스터링이란 간단하게 설명하면, WAS간의 세션을 공유하는 기술이다. 대부분의 시스템이라면 WAS 인스턴스를 다수 기동시켜 운영할텐데, 그 중 하나의 WAS가 장애가 났을 때 다른 WAS에서 세션 정보를 read하여 사용자로 하여금 지속적인 서비스를 제공받을 수 있게끔하는 기술이다. 이 글은 아파치 공식문서의 내용을 정리하여 작성하였다. https://tomcat.apache.org/tomcat-9.0-doc/cluster-howto.html Apache Tomcat 9 (9.0.55) - Clustering/Session Replication How-To Simply add to your or your ele.. 2021. 12. 6.
[Java] 14. 객체 간의 상속 1. 클래스 상속 - 새로운 클래스를 정의할 때 이미 구현된 클래스를 상속(inheritance) 받아서 속성이나 기능을 확장하여 클래스를 구현한다. - 이미 구현된 클래스보다 더 구체적인 기능을 가진 클래스를 구현해야 할 때 기존 클래스를 상속함. - 상속하는 클래스 : 상위 클래스, parent class, base class, super class라고 부름 - 상속받는 클래스 : 하위 클래스, child class, derived class, sub class라고 부름 상속의 문법 class B extends A{} - extends 키워드 뒤에는 단 하나의 클래스만 올 수 있음 - 자바는 단일 상속만을 지원 함 2. 상속을 구현하는 경우 - 상속 클래스는 하위 클래스보다 더 일반적인 개념과 기능을.. 2021. 12. 3.
[Java] 13. 객체 배열을 구현한 클래스 - ArrayList 1. java.util 패키지에서 제공되는 ArrayList - 기존 배열 선언과 사용 방식은 배열의 길이를 정하고 요소와 개수가 배열의 길이보다 커지면 배열을 재할당하고 복사해야 함. - 배열의 요소를 추가하거나 삭제하면 다른 요소들의 이동에 대한 구현을 해야 함. - ArrayList는 객체 배열을 좀 더 효율적으로 관리하기 위해 자바에서 제공해 주는 클래스 - 이미 많은 메서드들이 최적의 알고리즘으로 구현되어 있어 각 메서드의 사용 방법만 익히면 유용하게 사용할 수 있음. 2. ArrayList의 주요 메서드 3. ArrayList 예제 package ch23; import java.util.ArrayList; import ch21.Book; public class ArrayListTest { pu.. 2021. 12. 1.
[K8S] 쿠버네티스 클러스터 조인 실패 시, kube init 재구성하는 방법 * k8s 재설정 : 모든 docker container, image 삭제되는 초기화 작업 [root@k8s-master]# kubeadm reset [root@k8s-node1]# kubeadm reset [root@k8s-node2]# kubeadm reset [root@k8s-master]# systemctl restart kubelet [root@k8s-node1]# systemctl restart kubelet [root@k8s-node2]# systemctl restart kubelet [root@k8s-master]# kubeadm init --apiserver-advertise-address=192.168.80.128 --pod-network-cidr=10.96.0.0/12 > 만약 wor.. 2021. 12. 1.
[Tomcat] Unable to create the file META-INF/war-tracker 톰캣 어플리케이션 배포시 아래와 같은 에러 메세지 발생 30-Nov-2021 10:30:19.451 SEVERE [main] org.apache.catalina.startup.ContextConfig.beforeStart Exception fixing docBase for context [/sample] java.io.IOException: Unable to create the file [/apache/tomcat_9.0.21/servers/testM1/webapps/sample/META-INF/war-tracker] at org.apache.catalina.startup.ExpandWar.expand(ExpandWar.java:180) at org.apache.catalina.startup.Contex.. 2021. 11. 30.
[Java] 12. 자료를 순차적으로 관리하는 방법 - 배열(Array) 1. 배열이란? - 동일한 자료형의 순차적 자료 구조 - 인덱스 연산자[]를 이용하여 빠른 참조 가능 - 물리적 위치와 논리적 위치가 동일 - 배열의 순서는 0부터 시작 - 자바에서 객체 배열을 구현한 ArrayList를 많이 활용함 2. 배열 선언과 초기화 - 배열 선언하기 ex) int[] arr1 = new int[10]; ex) int arr2[] = new int[10]; - 배열은 선언과 동시에 자료형에 따라 초기화 된다. (정수는 0, 실수는 0.0, 객체는 null) - 필요에 따라 초기값을 지정할 수 있다. ex) int[] numbers = new int[] {10, 20, 30}; // 개수 생략해야 함 ex) int[] numbers = {10, 20, 30} // new int[].. 2021. 11. 29.
[Java] 11. static과 싱글톤 패턴 예제 설명에 따른 객체를 구현하여 테스트 코드가 실행되도록 구현해보기. 자동차 공장이 있다. 자동차 공장은 유일한 객체이고, 이 공장에서 생산되는 자동차는 제작될 때마다 고유의 번호가 부여된다. 자동차 번호가 10001부터 시작되어 자동차가 생산될 때마다 +1 번호가 붙도록, 다음 CarFactoryTest.java 테스트 코드가 수행되도록 자동차 공장 클래스, 자동차 클래스를 구현하여라. > 정답은 맨 아래 # CarFactoryTest.java package ch19; public class CarFactoryTest { public static void main(String[] args) { CarFactory factory = CarFactory.getInstance(); Car mySonata = f.. 2021. 11. 28.
728x90