CS 64

[Kafka] Kafka? 카프카의 기본지식

몇일 전 동료가 kafka 방식의 Subscriber를 구현하는데 어려움을 겪고 있어 잠깐 함께 관련된 것들을 검색하고 고민해 보있습니다. 그러던 중 문득 든 생각이 무심코 kafka(카프카)를 사용은 하고 있는데 알고 있는 지식이 거의 없다는 것을 알았습니다. 그래서 카프카의 기본 지식에 대해서 정리해 보려고 합니다. 궁금하신 사항이나 잘못 기업된 사항이 있다면 댓글 달아주세요. Kafka MSA(Micro Service Architecture)로 어플리케이션이 구성됨에 따라 각각의 서비스들이 통신하는 방법이 복잡해 졌습니다. 이로 인해 데이터 전송 및 배포에 어려움을 겪게 됩니다. Apache Kafaka는 이러한 문제를 해결하기 위해 Linked In에서 개발한 오픈소스입니다. Kafka는 아래의 ..

CS 2022.08.25

[pattern] Command pattern

디자인패턴 스터디의 마지막인 Command pattern 입니다. 총 5분 중 무려 3분이 (저 포함ㅎㅎ) 블로그를 운영했다는(었다)는 것을 알게 되었습니다. 다른 분들의 블로그를 구독하고 gitHub도 follow를 할 생각입니다. 이번 스터디로 디자인패턴의 많은 부분을 배울 수 있어 아주 좋았습니다. 처음 Factory pattern을 보는데 정말 하나도 이해가 되지 않았었거든요. 지금은 그래도 어느정도 pattern에 대한 개념을 받아 들일 준비 정도는 된 듯 해서 많이 뿌듯합니다. 앞으로도 계속해서 다양한 스터디를 통해 좀 더 발전하고 다양한 분들을 만나 경험들을 공유할 수 있으면 좋겠습니다 Command 패턴 커맨드 패턴은 특정 기능들을 캡슐화 시키는 패턴입니다. 보통 매개변수를 이용해서 다양한..

CS 2022.06.25

[pattern] Iterator Pattern

해당 글은 여러 블로그에서 보고 정리한 글입니다. 아래 Refences란에 참조한 블로그 주소들이 존재합니다. 행위 패턴 반복적으로 사용되는 객체들의 상호작용을 패턴화한 것으로, 클래스나 객체들이 상호작용하는 방법과 책임을 분산하는 방법을 정의한다. 객체의 기능은 변하지 않지만 일을 처리하는 방법이 달라질 때가 있다. 응용 분야에 따라 행위가 다른 객체로 옮겨 가거나 알고리즘이 대체되는 경우이다. 그런 경우 대부분 상속 개념을 이용해 사용할 수 있다. 행위 패턴은 여러 가지 행위 관련 패턴을 사용하여 독립적으로 일을 처리하고자 할 때 사용한다. 즉 행위 패턴은 메시지 교환과 관련된 것으로, 객체들 간의 행위나 알고리즘 등과 관련된 패턴을 말한다.[네이버 지식백과] Gof 디자인 패턴 (쉽게 배우는 소프트..

CS 2022.06.05

[pattern]Decorator pattern

[pattern]Decorator pattern 이 블로그 글은 [Design Pattern] 데코레이터 패턴이란 글을 나름대로 간략하게 간추려서 정리한 글입니다. 자세한 사항이 궁금하신 분들은 위의 링크 혹은 하단의 References를 확인해 주시길 바랍니다. Decorator Pattern 객체의 결합 을 통해 기능을 동적으로 유연하게 확장 할 수 있게 해주는 패턴으로 기본 기능에 추가할 수 있는 기능의 종류가 많은 경우에 각 추가 기능을 Decorator 클래스로 정의 한 후 필요한 Decorator 객체를 조합함으로써 추가 기능의 조합을 설계 하는 방식입니다. 데코레이터 패턴을 활용하면 필요 추가 기능의 조합을 동적으로 생성할 수 있습니다. 일반적인 구조(Decorator를 사용하지 않을 시) ..

CS 2022.05.15

[pattern]Builder pattern 알아보기

builder 패턴을 예전에도 몇번 들어보긴 했지만 관심있게 살펴 본 것은 한두달? 전으로 오래되지 않았네요. 저는 builder 패턴이란 개념이 익숙해지기까지 한달 정도의 시간이 걸린 듯 합니데ㅠㅠ(바보...) 시간날때 짬짬이 검색해 보고 모르는 부분을 주변에 물어가면서 조금씩 익숙해 진 듯 합니다. 처음에는 전혀 이해가 되지 않아 참 고생을 많이 했었는데 말이죠!! 회사에서도 직접 써보고 (builder 패턴 작성을 회사에서 오늘 처음 해본건 비밀ㅎㅎ) 몇번 보다보니 슬슬 익숙해 져서 글을 작성해서 정리해 보려고 합니다. 부족한 부분이 있다면 바로바로 수정 반영하도록 하겠습니다~ 발단 출처: https://refactoring.guru/design-patterns/builder 위의 이미지와 같이 하..

CS 2022.04.23

[DesignPattern] Factory pattern 알아보기

프로그래밍을 시작한지 어느덧 1년이 넘었네요. 그렇지만 제대로된 디자인 패턴에 대한 공부를 해본 적이 없다는 생각이 들어 스터디를 시작하게 되었습니다. 그 중 첫주제인 factoryMethod pattern을 공부하려다 보니 factory pattern이 다양한 pattern(Singleton, Builder)의 base가 되더군요. 그래서 factory pattern에 대해 우선적으로 정리를 하려고 합니다. 들어가기에 앞서 추상클래스와 추상메서드에 대해 알고 가면 이해하기 조금 더 편할 듯 합니다. 정리한 코드가 보고싶으신 분은 아래 링크를 확인해 주세요. GitHub: Factory pattern 패키지 Factory pattern Client 측에서 factory를 통해 간단하게 원하는 Object..

CS 2022.04.17

[Cookie]SameSite란? None, Lax, Strict

지인 중 한분이 cookie에 관하여 글을 작성했습니다. 해당 글을 읽다 보니 모르는 부분이 많이 나오더군요. 그래서 그 부분에 관해 간략하게 정리해 보도록 하겠습니다. Cookie 쿠키란 브라우저에 데이터를 저장하기 위한 수단 중 하나로서 브라우저 -> 서버로 요청을 전송할 때 해당 요청에 대한 응답에 Set-Cookie 헤더가 포함되어 있으면 브라우저는 이 Set-Cookie에 있는 데이터를 저장하는데 이것을 cookie라고 합니다. Set-Cookie: ...위와 같은 형태로 Response Header에 표시되게 됩니다. 아래는 실제 개발자도구에서 확인한 모습 입니다. 쿠키는 보통 서버에서 사용자를 식별하기 위한 수단으로 사용되어지며, 이후 브라우저에서 서버로 요청을 보낼 때 Cookie 헤더의 ..

CS 2022.04.03

[Algorithm]이진탐색(Binary Search)

이진탐색(Binary Search) 정렬된 상태의 입력 데이터에 대한 효과적인 탐색 방법 오름차순 탐색 방법 배열의 가운데 원소 A[x]와 탐색키 y를 비교. 1) 탐색키 = 가운데 원소 -> 탐색 성공(인덱스 x)를 반환 후 종료 2) 탐색키 '이진 탐색(원래 크기 1/2인 왼쪽 부분 배열) ': 순환호출 3) 탐색키 '이진 탐색(원래 크기 1/2인 오른쪽 부분 배열) ': 순환호출 예제 T(n) = T(n/2) + O(1) (n > 1), T(1) = 1 T(n) = O(logn) 특징 배열의 데이터가 정렬된 경우에만 적용. 삽입 / 삭제 연산은 부가적인 데이터 이동을 수반. 데이터의 정렬 상태 유지를 위해서 평균 n/2개의 데이..

CS 2022.02.24

[Algorithm]점근성능 표기법(Asymptotic Notation)

계속 느껴오고 생각했던 알고리즘과 OS, 하드웨어 등에 대한 전반적인 지식의 부족함으로 이번에 방통대에 입학을 결정하게 되었습니다. 급하게 신청하느라 추가모집으로 3학년 컴퓨터과학으로 편입하게 되었습니다. 일과 동시에 학업을 수행해야해서 시간이 빠듯할 듯 하지만 그래도 평소에 계속 느껴왔던 부족함을 메꾸기 위해서 열심히 해 보려 합니다ㅎㅎ 우선 알고리즘 과목 수강을 통해 조금 더 체계적으로 문제 해결 능력을 키우고 막혔던 몇몇 프로그램머스 2단계와 leetcode easy 문제들을 다시 도전할 생각입니다. Big O 점근적 상한 어떤 양의 상수 c와 n0이 존재하여 모든 n >= n0 에 대하여 f(n) = n0 에 대하여 f(n) = n0 에 대하여 c1 * g(n)

CS 2022.02.20

[CS]Daemon이란?

현재 진행중인 프로젝트에서 DaemonBatchJob.java 란 파일을 접하게 되었는데 이름으로 그 기능을 짐작하기가 어렵더라구요. batchjob인데 앞에 daemon은 멀까...? 분명 수업을 듣고 개발을 하다 한번쯤 지나가면서 들었던 기억은 있는데(이름이 익숙한데 기존에 알던 개념이랑 매치가 안되서,,,?) 이게 무엇인지 모르겠더라구요. 그래서 한번 검색하고 나름대로 정리해 보았습니다. 멀티태스킹 운영 체제에서 데몬(daemon, 발음: 데이먼/'deɪmən/ 또는 디먼 /'dimən/[1])은 사용자가 직접적으로 제어하지 않고, 백그라운드에서 돌면서 여러 작업을 하는 프로그램을 말한다. 시스템 로그를 남기는 syslogd처럼 보통 데몬을 뜻하는 ‘d’를 이름 끝에 달고 있으며, 일..

CS 2022.02.08
728x90
반응형