아파치 카프카를 사용하기전에 설치하려는 PC나 서버에 Java가 설치되어 있어야합니다 Java 설치후 환경변수 까지 끝난 상태에서 카프카를 사용하는 방법에 대해서 설명합니다 https://kafka.apache.org/downloads 24-08-01 기준 최신버전은 3.8.0 이므로 해당 버전을 다운받습니다 Scale 2.13 버전으로 해당 버전을 다운로드 한다음 압축파일을 풀어줍니다 압축이 정상적으로 풀렸다면 해당 폴더를 터미널로 접근합니다저는 WindowPowerShell로 접근하도록 하겠습니다우선 Kafka를 실행하기 전에 먼저 Zookeeper를 실행해줘야 합니다 bin\windows\zookeeper-server-start.bat .\config\zookeeper..
과거 대규모의 데이터가 아닌 적은양의 정형화된 데이터가 주를 이루던 시절단일 서버로 서비스가 돌아가던 시절에는 end - to - end 방식으로 해도 문제가 없었습니다 서비스의 규모가 크지않다면 각 서버를 직접 연결하여 통신하게 되면, 전송속도도 빠를분더러수신된 데이터의 결과도 빠르게 파악할수있는 일반적인 메시지 통신 방법을 사용했습니다 좀더 시간이 흘러 고객들은 더많은 서비스를 원하고 기업도 해당 서비스를 제공하려고 합니다하지만 서버가 한두개 늘어갈수록 여러 문제점과 직면하게 됩니다 첫번째로 서버가 하나씩 늘수록 기존에 사용하던 플랫폼과 연결하는데 많은 시간이 걸린다는것서버 하나가 증가함에 따라 데이터를 전송하는 라인이 기하급수적으로 복잡해지게 됩니다 (n^2) 또한 각기 다른..
SSH란 무엇일까? SSH(Secure Shell)는 호스트 컴퓨터에 접속하기 위해서 사용하는 인터넷 프로토콜 이다우선 SSH가 무엇떄문에 나왔는지 과거로 가보도록 하자 과거에도 호스트 컴퓨터에 접속하기 위한 여러 프로토콜이 존재했었다대표적으로 Telnet, Rlogin, RSH등과 같은 원격 접속 프로토콜이 있었는데위에 프로토콜에는 큰 결함이 하나 있었다 바로 원격서버에 접속하여 Command를 전송하는 과정에서 데이터를 평문(Byte Stream)으로 전송한다는 것이였다데이터가 따로 암호화되지 않기때문에 스니핑을 통해서 외부로 데이터가 노출되기 쉽다는 문제였다 과거에는 이런 보안적인 문제가 크게 이슈가 되지않았지만 현대에 이르러서는 해당문제가 큰 골칫거리였다그래서 나온게 SSH(Secure Shel..
우리는 현재 빅데이터 속에서 살고있다한국에 많은 기업들이 보유하고 있는 데이터 용량은 2016년 1.45PB에서 2018년에는 7배가깝게 늘었다고한다페이스북에는 몇천억개의 사진들을 보유하고있으며, 구글에 저장되어있는 정보도 상상할수없을 만큼 많을것이다 그에따른 빅데이터들을 처리할수있는 기술은 요즘시대에 필수불가결이 되었다빅데이터를 처리하는 기술에 탄생배경과 무엇이 있는지 보도록 하자 탄생배경 옛날에는 데이터가 그렇게 많지 않았다 애초에 데이터를 저장할수 있는 공간도 적었다하나의 디스크에서 데이터를 읽고 쓰는작업에 대해서 크게 문제가 되지않았다 하지만 계속 시간이 흘러가 점점 IT 분야는 발전하고 이에따라 많은 데이터를 필요로 하게되었다2014년 기준으로 뉴욕증권거래소에서는 하루에 4.5TB에 데이터가 ..
데이터베이스 내에서 가장 큰값을 뽑아내 +1을 시키는 자동채번을 구현해야 한다큰값을 가져올때 MAX를 이용하는게 좋을까 아니면 ORDER BY DESC LIMIT을 사용하는게 좋을까결론으로 말하자면 인덱싱 되지않은 필드라면 MAX()가 좀더 성능상으로 좋다 MAX() SELECT MAX(FIELD)FROM SAMPLE_TABLE SAMPLE_TABLE안에 MAX()를 이용해 FIELD 칼럼에 가장 큰 값을 가져올때 다음과같은 과정을 거친다인덱싱되지 않은 최악의 경우 MAX()를 사용하면 테이블을 풀스캔하면서 가장큰값을 도출한다 그 결과 테이블 전체를 한번만 통과하면 가장큰값을 가져올수있다인덱싱이 된 필드도 결국 순회해야하기 떄문에 최악과 최적이 거의 차이가 없다고 볼수있다 ORDER BY L..
프로시저(Procedure) 여러 쿼리를 한번에 수행하는 것을 프로시저(Procedure) 라고 한다 우리가 SQL을 사용할때 SELECT, CREATE, UPDATE, DELETE 등 쿼리문을 사용하여 DB를 조작해 원하는 데이터를 핸들링한다 하지만 이러한 간단한 작업만 있으면 좋겠지만 현실은 그렇지않습니다 여러개의 쿼리가 하나의 로직을 수행하기 위해 묶여 돌아가는 복잡한 작업하는 경우가 흔하게 발생하는데 우리는 이것을 Java단에서 해결하기위해 Service 로직들을 만들어서 하나로 묶는 Transaction(트랜잭션) 작업을 하곤합니다 트랜잭션의 설명은 여기 게시물에서 확인할수있습니다 이외에도 DB에서는 함수(Function) 과 프로시저(Procedure) 라는 기능을 지원하는데 우리가 트랜잭션을..