본문 바로가기

Java

(6)
카프카 컨슈머에서 poll() 을 요청하면 어떤 일이 일어날까 컨슈머 poll 이 어떤 방식으로 진행되는지 테스트 후 동작방식을 정리해보겠다. 테스트 조건 partition 0 과 partition 1 에 각각 데이터가 20개씩 들어있는 상황 결과 여기서 limit=10 으로 데이터를 컨슈밍했었다면? ✔️ 10개 데이터가 모두 partition 0 or partition 1 에서 컨슈밍 limit=20 으로 데이터를 컨슈밍했었다면? ✔️ 20개 데이터가 모두 partition 0 or partition 1 에서 컨슈밍 limit=21 이상으로 데이터를 컨슈밍했었다면? ✔️ 20개 데이터는 모두 partition 0 or partition 1 에서 컨슈밍 ✔️ 그리고 나머지 1 이상은 또 다른 파티션에서 컨슈밍해온다. Fetch, Poll 컨슈머가 카프카 브로커에서 ..
Java 의 개발 철학과 특징 Java 가 등장하기 전까지, 대부분의 프로그래밍 언어는 특수 OS 나 아키텍쳐에 국한되어 컴파일되도록 설계된다는 문제를 안고 있었다. 이는 플랫폼이 다양해지면서 해당하는 CPU 에 맞는 컴파일러를 구축하게끔 만들었으며, 서로 다른 환경에 따른 컴파일러를 구축하는 문제는 당연히 시간과 비용이 수반된다. 따라서 더 나은 방법을 찾기 위해 Java 개발자들은 Cross Platform 언어를 개발하고자 하였다. Write Once, Run Anywhere Java 는 Write Once, Run Anywhere 을 개발 철학으로 두었다. 다시 말해 플랫폼 독립적인 언어를 지향점으로, 같은 코드를 어느 운영체제에서나 실행시킬 수 있게 하자는 컨셉을 담고 있다. Java 가 한번 개발된 프로그램을 어디서나 실행..
[Spring-batch] ItemWriter 클래스 구현기 (오류 해결) 사실 이 글을 포스팅 하기 전에, Spring batch를 공부한 내용들과 spring batch + quartz 를 연동하기 위한 설정들 등등, 좀 더 기초적인 내용들을 먼저 다루고 싶었다. 하지만 일단 프로젝트의 완성도를 위해 개발부터 진행하고 있던 와중, 나를 너무 힘들게 했던 내용이 있어 먼저 끌고 와보았다. 분명 써놓고 보면 별 것 아닌 것 처럼 보이겠지만... 이 오류를 잡기위해 며칠을 고생한 걸 생각하며,,, 이걸 글로라도 남겨야 시간이 좀 덜 아까울 것 같은,, 그런 보상심리에 포스팅을 시작한다. ㅎㅎ ItemWriter write() 를 execute 할 때 발생할 수 있는 오류 나는 JdbcBatchItemWriter 를 사용하였으며, JDBC의 Batch 기능을 사용하여 모아둔 쿼리문..
함수 호출 시 인자 전달 방식 : call by value와 call by reference 함수 호출 시 인자 전달 방법에는 Call-by-value(값에 의한 호출)와 Call-by-reference(참조에 의한 호출)이 있다. 본 포스팅에서는 먼저 이 둘을 비교하며 설명한 후, 현재 공부하고 있는 java의 인자 전달 방식에 대해서도 설명할 것이다 Call-By-Value (값에 의한 호출)일단 간단히 말해보자면, 이 전달 방식은 caller(호출하는 놈)의 인자의 값이 복사되어 함수(callee, 호출되는 놈)의 인자로 전달되는 방식이다. 코드가 진행되는 순서대로 설명하겠다. 위는 call by value방식의 함수(swap)가 구현된 프로그램이 메모리에 할당되고, 흘러가는 방식을 도식화하여 나타낸 그림이다. 먼저 프로그램이 실행되면, 초기화한 변수에 대한 메모리 할당이 발생할 것이다. ..
명품 java programming 실습문제 : 반복문과 배열 그리고 예외처리 실습문제 7. 4x4의 2차원 배열을 만들고, 이곳에 1에서 10까지 범위의 정수를 랜덤하게 생성하여 정수 16개를 배열에 저장하고, 2차원 배열을 화면에 출력하라. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 import java.util.Random; public class Makingarray{ public static void main(String[] args) { int [][] intArray = new int[4][4]; //배열 생성 for(int i=0; i
명품 java programming open challenging : 카드 번호 맞추기 게임 숨겨진 카드의 수를 맞추는 게임을 만들어 보겠다. 1) 0부터 99까지의 임의의 수를 가진 카드를 한 장 숨기고 이 카드의 수를 맞추는 게임이다. 2) 숨겨진 임의의 수는 random 클래스를 이용하여 정수로 생성된다. 3) 수를 맞추는 사람이 생성된 정수보다 작은 수를 입력한다면, 프로그램은 '더 낮게'를 출력하고, 그 반대라면 '더 높게'를 출력하며 범위를 좁혀가면서 수를 맞추게끔 한다. 4) 게임을 반복하기 위해 y/n을 묻고 n인 경우 종료된다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 import ..