반응형

전체 글 226

[Knowledge] Transaction Isolation level이란? (격리수준)

오늘은 Transaction Isolation Level을 공부해보자. 트랜잭션 격리수준 (Isolation level)이란 동시다발적으로 여러 트랜잭션이 처리될때 트랜잭션간에 서로를 방해하게 둘지 말지 결정하는, 얼마나 서로 고립되어있는지를 나타내는 수준이다. 한 트랜잭션이 다른 트랜잭션이 변경한 데이터를 조회할수 있게 할지말지 결정하는데, 격리 수준에 따라 다르다. 그럼 격리 수준(Level)을 한번 알아보자. 격리 수준 DIRTY READ NON-REPEATABLE READ PHANTOM READ READ UNCOMMITTED O O O READ COMMITTED O O REPEATABLE READ O(InnoDB는 발생 X) SERIALIZABLE READ UNCOMMITTED (Level 0) ..

[Kafka] Spring boot 에 Kafka와 Websocket을 이용한 심플 예제

오늘은 간단하게 Kafka와 Websocket을 이용하여 멀티서버에 대응할 수 있는 구조를 만들어 보려고한다. 심플하게 구동이 잘 되는지 용도이기때문에, 보안관련 Interceptor던, Kafka를 정밀하게 사용하는 코드는 없다...! 먼저 Zookeeper와 Kafka가 켜져있어야 app을 실행시킬때 오류가 나지 않는다... 궁금한것들은 하나씩 찾아보기로 하고... 우선 샘플 코드를 실행시키는데에 집중해보자..! 우선 websocket 서버를 간단하게 구축하고... 1). webSocketConfig websocket을 사용할때 필요한 설정들을 넣어주자..! @Configuration @EnableWebSocket public class WebSocketConfig implements WebSocke..

[Algorithm] Programmers 신고 결과 받기 풀이

문제 : https://programmers.co.kr/learn/courses/30/lessons/92334?language=java 코딩테스트 연습 - 신고 결과 받기 문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의 programmers.co.kr 해설 : 우선 중복된 신고는 없다 라는것에 Set을 생각해서 넣어두고 사용했다 혹자는 stream에 distinct를 사용해서 중복을 제거햇던데... ㄷㄷ.. 열심히 배워보자.. 1). 나를 신고한 사람을 Set에 담아두고 나를 신고한 사람이 k명 이상일때 신고한 사람에게 메세지를 보내는것으로 작성하였다. 풀이 : imp..

[Kafka] Windows에 Kafka 설치 및 간단한 예제

kafka download 및 간단한 topic 발행 및 consumer의 event consume을 Test해볼차례이다. Kafka url : https://kafka.apache.org/downloads Apache Kafka Apache Kafka: A Distributed Streaming Platform. kafka.apache.org kafka 버전은 관계없이 테스트해보기 위해서 받은거기때문에 상황에 맞게 버전선택을 하면 될것이다. 우선 2.8.1 버전을 받아서 원하는 위치에 설치해준다. 다운로드 후 zookeeper를 먼저 실행시켜준다. 위치는 kafka/bin/windows에 보면 있으니...! .bat file을 config 파일을 함께 구동시켜준다. ./zookeeper-server-s..

[Kafka] Kafka란? Kafka의 기본 개념

Kafka .. 요즘 개발자 공고를 보면 쉽게 볼 수 있는 기술이다. 그렇다면 Kafka가 무엇이고, 어디에 쓸수있을지 한번쯤은 생각해봐야된다!!. Kafka Document : https://kafka.apache.org/documentation/ 1). Kafka란? Pub/Sub 모델을 기반으로 한 Message Queue이다. 요즘 MSA (Micro Service Architecture)가 유행..? 처럼 자리 잡고있는데, 이때 많이 사용하고 있다. Kafka는 분산환경에 특화되어있는 특징을 가지고있다. Scalable하다. (클러스터 구성 가능하다) 2). Kafka에서 사용되는 구성요소 2-1). Event or Message Producer ( Publisher) 와 Consumer(Sub..

[Kafka] 설치시 오류 대응

Classpath is empty. Please build the project first e.g. by running 'gradlew jarAll' 위 에러의 원인은 아파치 카프카 binary 파일을 다운받고 실행시킨 것이 아니라, source 파일을 다운받고 실행시켰기 때문이다. Kafka를 다운받을 때는 kafka.apache.org/downloads 에서 binary 파일을 다운받아야한다. Kafka 홈페이지에서 Source download: kafka-2.8.1-src.tgz (asc, sha512) Binary downloads: Scala 2.12 - kafka_2.12-2.8.1.tgz (asc, sha512) Scala 2.13 - kafka_2.13-2.8.1.tgz (asc, sha5..

[Knowledge] API Gateway란? 쉽게 정리해보자.

1). API Gateway란? API 게이트웨이 는 실제 백엔드 서비스 또는 데이터와 접속하고 API 호출에 대한 정책, 인증 및 일반 액세스 제어를 적용하여 중요한 데이터를 보호하는 트래픽 관리자이다. 쉽게말해서 외부 클라이언트와 백엔드 서비스 사이에 존재하여 정책,인증,액세스 제어등을 적용하여 클라이언트에서 원하는 요청을 받아 요청에 맞는 서비스로 라우팅하고 대신 돌려받은 응답을 클라이언트에게 전송해주는 역할을 한다. API Gateway를 사용하는 주 이유는 요즘 같이 마이크로서비스를 지향하는 시대에서, 클라이언트가 아주 단순하게 여러서비스를 이용할 수 있다는 점이다. 트래픽 분산 까지 해주니, 같은 마이크로서비스라도 트래픽이 적절하게 분산될 수 있도록 로드밸런싱 해주어 서비스를 이용할 수 있게 ..

[Knowledge] Stateless와 Stateful 차이

알고있다고 생각했는데, 알고있지 않았던 부분.... 반성해야겠다. 한번 정리해두자..! 간단하게 표현하면 Client의 상태정보를 Server가 저장해놓고 가지고 있느냐, 아니냐에 따라 Stateful / Stateless로 구분된다. 최근에는 서비스들이 Stateless 서비스 구조를 선호한다고 하는데, 그이유도 함께 자세하게 알아보자.. 1). Stateful이란 Stateful 구조는 Server와 Client간 세션의 상태에 따라 Client에게 Response를 보내는 형태이다. 이때 Client 세션의 상태가 필요하기 때문에 서버에서는 Client의 세션 정보를 저장해둔다. 대표적인 Stateful 구조의 프로토콜은 TCP/IP이다. TCP의 3-wayhandshake 과정을 다시 되짚어보면 ..

[Cloud] 오토 스케일링이란??

오토스케일링이란? 서버의 과부하나 장애 등 서비스가 불능상태가 되면 자동으로 서버를 복제/추가 하여 서버를 늘려주는 작업 이부분에서 On premise보다 Cloud가 좋은 점 한가지를 깨달을수 있다. 온프레미스의 단점 장비 유지보수비가 비싸다 서버 증설을 위한 작업이 까다롭다 Onpremise는 서버 증설을 위한 작업이 까다롭다, 이때 Scale up과 Scale out 개념이 나오는데, 한번 확인해보자 스케일업(scale-up) VS 스케일아웃(scale-out) 1. Scale up : 유저들의 트래픽을 보다 신속하게 처리하기 위해 고속의 프로세서를 장착하는 전략 2. Scale out : 같은 서버를 여러 대 복제하여 트래픽을 분산하는 전략 어떤 방향으로 전략을 선택하느냐는 상황에 따라 맞추어야될..

[Cloud] Hypervisor란?? 가상화? 그래서 ?

가상화를 알아보다보니 하이퍼바이저 하이퍼바이저 하면서 계속 나오는 이것! 조금만 더 알아보려고한다. 하이퍼바이저란? 하이퍼바이저는 단일 하드웨어에서 여러 다른 가상 머신을 호스팅할 수있는 프로그램 쉽게 말해 하나의 Host 컴퓨터에서 다수의 OS를 동시에 사용하기 위한 아이이다. 가상화 머신 모니터(virtual machine monitor) 또는 가상화 머신 매니저(virtual machine manager) 약어로 VMM라고 한다. 가상머신을 돌리는 컴퓨터가 Host / 각각의 가상 머신들은 Guest라고 한다. 그래서 Host OS위에 개별 Guest OS를 구동시켜서 도커를 사용하는것과는 다르다. Guest OS는 개별적으로 구동되기 때문에 다양한 운영 체제의 여러 인스턴스가 하드웨어 리소스를 공..

반응형