Programming/java
-
debezium server 정리 및 트러블슈팅Programming/java 2023. 2. 6. 00:27
개요 CDC(Change Data Capture) CDC는 변경 데이터 켑처이라는 의미로 주로 데이터베이스와 같은 데이터 스토어의 데이터 변경을 포착하여 ETL, 감사(audit), 캐싱과 같은 다양한 후속 처리를 하는데 사용한다. Debezium 이름은 DB와 주기율표에 많은 요소 이름에 사용되는 -ium 접미사의 조합 Debezium은 다양한 데이터베이스를 모니터링하며 모든 이벤트를 대상으로 변경 사항을 분을 거의 즉시 응답하는 분산 오픈 소스 플랫폼이다. debezium은 결함과 실패를 허용하도록 설계되었고 수행하는 유일한 방법은 분산 시스템을 사용하는 것이다. Debezium은 모니터링 프로세스 또는 커넥터를 여러 시스템에 분산시킬 수 있고 문제가 발생하면 커넥터를 다시 시작할 수 있다. 카카오커..
-
가비지 컬렉션, 컬렉터(Garbage Collection)란?Programming/java 2020. 3. 1. 16:37
Garbage Collection, 줄여서 약어로 GC라고도 부른다. 영어로 그대로 읽어서 가비지 컬렉션이라고 부른다. 메모리 관리 방법 중에 하나로, 시스템에서 더이상 사용하지 않는 동적 할당된 메로리 블럭을 찾아 자동으로 다시 사용 가능한 자원으로 회수하는 것으로 시스템에서 가비지컬렉션을 수행하는 부분을 가비지 컬렉터라 부른다. 가령 C언어는 프로그래머가 메모리를 할당한 뒤 수동으로 해제까지 직접 해 줘야 한다. 그래서 메모리를 할당해놓고 필요없어진 뒤에도 해제를 안하는 일 등이 생겨서 메모리 누수가 생기거나 거꾸로 해제했던 메모리를 다시 사용하거나 하는 실수 등에 버그가 양산된다. 이러한 문제들을 해결하기 위해서 제시된 것이 가비지 컬렉션이다. 이 가비지 컬레션 기능을 채택한 언어의 경우에는 이 가..
-
추상클래스와 인터페이스의 공통점과 차이점Programming/java 2019. 11. 3. 02:20
추상클래스와 인터페이스를 알아보기 앞서 인터페이스와 추상클래스가 언제, 그리고 왜 쓰이는지 그 목적성에 대해서 분명히 알고 개념을 익힌다면 더욱 공통점과 차이점을 명확하게 할 수 있을 것이다. 추상 클래스 클래스가 미완성이라는 것은 멤버의 개수에 관계된 것이 아니라, 단지 미완성 메서드(추상메서드)들 포함하고 있다는 의미이다. 추상클래스로 인스턴스는 생성할 수 없다. 추상클래스는 상속을 통해서 자손클래스에 의해서만 완성될 수 있다. 즉 상속을 강제하기 위한 추상메서드를 하나 이상 가진 클래스를 말한다. 추상클래스는 다음과 같은 특징을 가지고 있다. 공통 구현을 상위 클래스에 뽑아내려고 사용 자신의 생성자로 객체 생성 불가능 하위 클래스를 참조하여 상위 클래스의 객체를 생성 하위 클래스를 제어하기 위해 사..
-
오버로딩과 오버라이딩의 차이점Programming/java 2019. 10. 28. 19:45
지난 포스팅의 객체지향 프로그래밍에서 다형성을 설명할 때, 하나의 클래스 내부에 같은 이름의 기능을 여러 개 정의하거나 상위 클래스의 기능을 하위 클래스에서 다시 정의하는 것, 즉 오버라이딩과 오버로딩에 대해서 간략하게 짚고 넘어갔었다면 이번에는 오버라이딩과 오버로딩이 구체적으로 어떻게 사용되는지. 또, 어떤 차이점을 가지고 있는지에 대해서 알아보자. 우선 다형성이란 하나의 메소드나 클래스가 있을 때 이것들이 다양한 방법으로 동작하는 것을 말한다. 예를들면 키보드나 스마트폰을 예를 들어보자면 키보드는 같은 버튼의 동작 방법을 가지고 있더라도 ESC는 취소, Enter는 실행의 목적을 가지고 있고 스마트폰의 키패드 또한 문자나 게임 등의 모양은 같지만 다른 기능들을 수행하는 것들을 말한다. 자바에서는 주로..
-
[JAVA]랜덤 난수 만들기Programming/java 2019. 10. 3. 01:31
자바에서 랜덤 난수로 1~n까지의 무작위 값 얻기 기본적으로 자바에서는 0.0에서 0.999999999 즉 1에 가까운 무한소수까지 중에 하나를 랜덤으로 추출해주는 random() 함수를 제공한다 예를 들면 Math.random() \* 5 를 하면 0.0에서 4.999999...의 값을 리턴 받을 수 있다. 여기서 우리는 실수형 double값으로 리턴받는다는 사실을 알 수 있고 int형으로 형변환을 한다면 소수점 이하 자리수는 떨어져 나가고 0~4까지의 랜덤한 값을 리턴받을 수 있다는 점 또한 알 수 있다. 하지만 우리가 원하는 것은 양수, 즉 1이상의 숫자부터라고 한다면? 랜덤해서 나온 값은 1을 넘지 않으므로 그냥 간단하게 뒤에 +1만 붙여주면 된다. 그렇게하면 위에서 예를들은 Math.random..
-
[JAVA 개념알기]변수Programming/java 2019. 9. 30. 22:44
변수 어떤 언어를 배우든 꼭 등장하는 개념이 있다. 바로 이 변수이다. 변수는 말 그대로 변하는 수를 변수라고 수학에서 표현하지만 우리가 배우고자하는 프로그래밍에서는 조금 다르다. 프로그래밍에서 말하는 변수란 메모리상의 공간을 의미한다. 쉽게 비유적으로 생각하면 값을 담는 상자 정도로 이해하면 좋다. 변수는 하나의 값을 저장하는 상자, 메모리상의 공간! 이 변수는 하나의 상자에 하나의 값만이 대응되므로 또 하나를 넣게 된다면 그 변수의 값은 두 개가 되는 것이 아니라 덮어써서 이전의 값은 사라지게 된다. 즉, 하나의 변수에는 단 하나의 값만 저장할 수 있다는 점. 이제 자바에서 변수를 어떻게 사용하는 지 알아보자. 변수의 선언과 초기화 방법 변수를 사용하려면 먼저 변수를 선언해야하는데, 변수의 선언방법은..