분류 전체보기
-
[Apache Kafka] 간단히 카프카 실습하기Apache Kafka 2024. 11. 11. 23:23
아파치 카프카란 분산형 데이터 스트리밍 플랫폼으로, 주로 대규모 실시간 데이터 처리 및 데이터 파이프라인 구축에 사용된다고 한다.나는 이렇게 말로만 보면 잘 이해가 안 돼서.. 프로듀서에 의해 데이터를 적재하고 컨슈머가 데이터를 사용하는 간단한 실습을 진행해보자!카프카가 무엇인지 감이 잘 안 잡혀서 정리해 봄- 카프카는 서버임- 카프카는 이미 완성된 데이터 스트리밍 서비스임- 카프카는 서버에 설치해서 사용하는 미들웨어임Docker 컨테이너 구축(1) 주키퍼 컨테이너 실행docker run -d --name zookeeper -p 2181:2181 zookeeper2181 포트를 사용한다.카프카의 클러스터 관리를 담당하는 주키퍼를 도커 허브에서 공식 이미지를 다운로드하여 이를 기반으로 컨테이너를 실행한다...
-
[Java] I/O 정리Java 2024. 11. 9. 12:03
출력 스트림: 자바 프로세스가 가지고 있는 데이터를 밖으로 보낼 때 사용입력 스트림: 외부 데이터를 자바 프로세스 안으로 가져올 때 사용각 스트림은 단방향으로 흐름InputStream / OutputStream자바 1.0부터 제공된 추상 클래스이를 상속 받은 다양한 클래스가 제공됨FileStreampublic class StreamStartMain1 { public static void main(String[] args) throws IOException { FileOutputStream fos = new FileOutputStream("temp/hello.dat"); fos.write(65); // int fos.write(66); fos.writ..
-
[Java] Charset과 문자 인코딩Java 2024. 11. 8. 21:41
문자 집합1. ASCII오늘날 사용하는 많은 문자 집합의 기초가 되는 문자 집합UTF-16을 제외한 대부분의 문자 집합에 호환됨한글 지원 X2. ISO_8859_1ASCII + 서유럽 문자 추가한글 지원 X한글 문자 집합3. EUC-KR초창기 등장한 한글 문자 집합ASCII + 자주 사용하는 한글2byte 한글4. MS949마이크로소프트가 EUC-KR을 확장하여 만든 문자 집합복잡한 한글 표현 가능 (쀍, 뷁, 삡 등)윈도우 시스템에서 계속 사용됨유니코드1990년대에 전 세계 모든 문자들을 단일 문자 세트로 표현할 수 있는 유니코드 표준이 등장함UTF-16, UTF-85. UTF-16영문을 2byte로 사용하고, ASCII와 호환되지 않는다는 단점으로 인해 현재는 잘 사용되지 않음자주 사용하는 기본 다국..
-
[Java] 다형성 (Polymorphism)Java 2024. 11. 7. 22:30
1. 다형성이란?객체가 여러 형태를 가질 수 있는 능력자바의 객체지향 개념을 이해하기 위한 중요한 개념이다.다형성을 활용하면 코드의 확장성, 유연성을 향상시켜 유지보수하기 쉬워진다.다형성은 부모와 자식 관계 에서만 사용할 수 있다.인터페이스와 구현 클래스도 부모 - 자식 관계이다.부모 타입의 참조변수는 자식 타입의 객체를 가리킬 수 있다. 2. 부모 타입의 참조변수로 자식 타입의 객체 참조하기부모 - 자식 관계로 맺어진 Phone 클래스와 SmartPhone 클래스가 있다.지금까지는 A 타입 변수에는 A 타입의 값만 대입할 수 있었다.부모 - 자식 관계인 경우에는 부모 타입의 참조변수에 자식 객체를 참조하는 참조 값을 대입할 수 있다.Phone p = new SmartPhone();중요한 것은 참조변수 ..
-
[Java] Dump File에 대해서Java 2024. 10. 31. 23:31
자바의 덤프 파일이란?덤프 파일(Dump File)이란 자바 애플리케이션에서 문제를 진단하고 디버깅하는 데 사용되는 파일이다. 덤프 파일은 JVM의 상태가 담겨있어, 시스템 오류가 발생했을 때 그 문제의 원인을 파악하고 해결하는 데 도움을 준다. 이러한 덤프 파일에는 몇 가지 종류가 있다. 함께 알아보도록 하자. (1) 힙 덤프 (Heap Dump)힙 덤프란 JVM 힙 메모리의 상태를 캡처한 파일로, 모든 객체와 그 참조 관계가 포함되어 있다. 힙 덤프는 주로 메모리 누수 분석, GC 튜닝, 객체 사용 패턴을 파악하는 데 사용된다. 일반적으로 .hprof 확장자를 가지며 jmap, jvisualvm, MAT(Memory Analyzer Tool) 같은 툴을 통해 분석할 수 있다. (2) 쓰레드 덤프 (T..
-
[Java] Native Resource와 native 예약어Java 2024. 10. 30. 22:44
이 글을 읽기 전 먼저 읽으면 도움이 됩니다. https://jngsngjn.tistory.com/41 [Java] JVM의 메모리 영역 (JVM Memory Structure)JVM(Java Virtual Machine)의 메모리 영역은 Java 애플리케이션이 실행될 때 사용하는 메모리 공간을 여러 영역으로 나눈 것이다. 크게 5가지 영역으로 구분되며, 각 영역은 고유한 역할을 가지고 있다. jngsngjn.tistory.comGC(Garbage Collector)는 JVM에서 더 이상 참조되지 않는 객체(불필요한 객체)를 자동으로 탐지하고 메모리에서 제거한다. 이렇듯 GC의 역할은 자바 프로그램이 실행되는 동안 힙 메모리에 할당된 객체들 중에서 필요 없는 객체를 찾아 메모리를 회수하는 것이다. 이렇게..
-
[Java] JVM의 메모리 영역 (JVM Memory Structure)Java 2024. 10. 29. 22:57
JVM(Java Virtual Machine)의 메모리 영역은 Java 애플리케이션이 실행될 때 사용하는 메모리 공간을 여러 영역으로 나눈 것이다. 크게 5가지 영역으로 구분되며, 각 영역은 고유한 역할을 가지고 있다. 최적화가 요구되는 경우 GC 튜닝, 힙 영역 설정, 쓰레드 스택 크기 조정 등이 이루어질 수 있다. 1. Method Area클래스에 대한 구조적 정보를 저장하는 곳이다. 메서드 영역은 JVM에 의해 한 번 로드되면 프로그램 종료 시까지 유지된다. Java 8 이전까지는 PermGen(Permanent Generation) 영역으로 관리되었으나, Java 8 이후부터는 PermGen이 사라지고 Metaspace라는 별도 영역으로 관리되고 있다. Metaspace는 힙 영역 밖의 네이티브..
-
[Java] Comparable과 ComparatorJava 2024. 10. 25. 23:15
1. 이해하기자바에서는 객체를 정렬하는 기준으로 Comparable과 Comparator를 제공한다.이 둘은 객체 정렬에 필요한 메서드를 정의한 인터페이스이다.Comparable : 기본 정렬 기준 제공하며, 객체가 자신과 다른 객체를 비교할 수 있는 기능을 가진다.Comparator : 기본 정렬 기준 외에 다른 외부 기준이 필요할 때 사용한다. 인자로 전달받은 두 객체를 비교하는 외부 비교 기준이다. 특정 속성이나 여러 속성에 따라 객체를 비교하는 커스텀 정렬 기준을 설정할 수 있다.2. Comparablepublic interface Comparable { public int compareTo(T o);}객체의 자연스러운 순서를 정의하는 데 사용 (예: 날짜, 이름, 나이 등 기본 정렬 기준)..