반응형

전체 글 116

Celery 도입

최근 회사에서 Celery를 사용할 일이 생겨서 Celery를 구축하면서 알게된 것들을 기록하고자 한다. 1. Celery 도입기존에는 파이썬 스크립트를 직원이 직접 출근 후에 수동으로 cli 명령어를 통해 for문으로 직접 돌려야하는 수동 이슈가 있었음.celery 및 n8n을 도입하여 동시에 5개씩 처리하며 수동으로 작동하는 프로세스를 자동화 하고자 함 2. Celery의 작동 원리Celery는 크게 세 가지 요소로 구성됨Producer ( Client / Web Server) : "이 작업 좀 처리해줘" 라고 메세지를 발생하는 역할인데 현제 이 역할은 A 서버의 nestjs WAS에서 진행한다. 보통은 Celery는 Fastapi랑 호환성이 좋은데 우리 회사에서는 nestjs에서 프로듀서 역할을 담..

언어/python 2026.01.11

빌드타임 vs 런타임

1. 빌드타임 ( 컴파일 타임 포함 ) - 빌드타임은 .java 소스코드를 .class(Java byt code)로 번역 - 외부 라이브러리 사용 시 Symbolic references만 존재하며 정적 빌드 개념은 없음 - 외부 라이브러리(클래스 파일) 링크는 JVM 에서 처리함 2. 런타임 ( 링크 타임 포함 ) - JVM의 Class loader가 절차에 따라 Bytecode 로딩 후에 메모리에 적재함. - 추가 클래스 파일도 로드하고 링크함. 3. 순서java 소스코드 작성(.Java) -> .class -> Link -> Run 이렇게 순서로 갈 수 있는데 보충설명을하자면, 우리가 소스코드를 작성하면 .Java의 소스코드를 .class로 번역을 하는 과정을 컴파일 과정이라고 한다. 그런데 우리가..

언어/java 2025.08.17

실시간 채팅 구현] kafka 적용기 -1 (kafka를 redis 대용으로 사용가능한가?)

이번에 팀 프로젝트로 실시간 채팅 서비스를 웹앱으로 구현하기로 하였는데 실시간 채팅 서비스 구현은 나도 처음인지라 어떠한 기술을 도입하는게 안정적인 서비스를 고민하던 차에 kafka와 redis를 이용하여 채팅 서비스를 구현하기로 하였는데 팀원들과 카프카 및 레디스에 대해서 논의하다가 다음과 같은 궁금증이 생겼다.1. 애초에 내가 생각하던 카프카 및 레디스의 역할1) 카프카- 실시간 채팅 서비스를 구현할 때, 웹소켓을 이용해서 채팅을 한다면 채팅 내역들을 추후 백업 등을 할 때 필요하므로 영구적으로 DB에 저장해야한다고 판단하였다.- 실시간 채팅 시 메세지를 DB에 저장을 할 때, 메세지 건마다 DB로 insert문을 날려야 하니 DB 입장에서는 병목현상이 발생할 수도 있고, 만약 DB가 중간에 뻗는다면..

빅데이터/kafka 2025.05.27

[elk] elasticsearch & kibana 비밀번호 변경

이번에 도커 컴포즈를 통해서 elk를 서버에 설치하는데 문제가 발생하였다.기존에 받은 elk의 docker compose 에서 비밀번호를 env에서 관리하였는데, 각각의 elk 폴더의 Dockerfile에서 해당 비밀번호 환경변수를 관리하고 있어서 단순히 메인 폴더에서 env에 내가 원하는 비밀번호로 변경을 한 후 docker compose up -d 를 쳤다.그러나 kibana에서는 계속 아래와 같은 에러 로그를 보이면서 elasticsearch와 연결이 안되는 것이었다.2025-04-12T08:55:55.320+00:00][ERROR][elasticsearch-service] Unable to retrieve version information from Elasticsearch nodes. conne..

빅데이터/ELK 2025.04.12

flutter] GetX란? -1

GetX란 무엇인가?Flutter를 사용하다 보면 애플리케이션의 복잡도가 높아질수록 상태 관리, 라우팅, 의존성 주입이라는 3가지 과제를 만나게 됩니다. 특히 앱이 점점 커지면서 여러 개의 위젯에서 동일한 데이터를 공유하거나, 페이지 간 데이터 전달이 복잡해질 때, 기존의 Provider나 setState() 방식만으로는 한계를 느끼게 되죠.이럴 때 등장한 것이 GetX입니다. GetX는 Flutter에서 상태 관리, 라우팅, 의존성 주입을 하나의 패키지로 간편하게 해결할 수 있도록 도와주는 종합 솔루션입니다. 1. GetX의 철학간결성 (Simplicity): 최소한의 코드로 최대한의 기능 구현성능 (Performance): 위젯 트리에 영향을 거의 주지 않아 빠른 반응 속도반응형 프로그래밍 (Reac..

카테고리 없음 2025.04.05

nestjs) 미들웨어,가드,필터

항상 nestjs를 사용하면서 이 세가지에 대해 개념이 헷갈리는 경우가 많아서 정리하고자 합니다.1. Middleware (미들웨어)Middleware란?Middleware는 컨트롤러에 도달하기 전에 요청을 가로채서 전처리하는 역할을 합니다.Express의 미들웨어와 유사하게, 로깅, 인증, 요청 변환, CORS 처리 등의 용도로 사용됩니다.✅ Middleware 특징요청(Request) → 미들웨어 실행 → 컨트롤러 실행next()를 호출해야 다음 미들웨어 또는 컨트롤러로 요청 전달 가능전역(Global), 모듈(Module), 특정 라우트(Route) 단위로 적용 가능 Middleware 예제: 역할(Role) 기반 접근 제한사용자의 역할(Role)에 따라 특정 API 접근을 제한하는 미들웨어를 만들..

백엔드/NestJs 2025.03.13

postgresql) 서브쿼리란?

데이터베이스를 다루다 보면 특정 조건을 만족하는 데이터를 추출하기 위해 **서브쿼리(Subquery)**를 사용해야 할 때가 많습니다. 서브쿼리는 다른 쿼리 안에서 실행되는 쿼리로, 종종 메인 쿼리의 조건을 결정하는 데 사용됩니다.이번 글에서는 PostgreSQL에서 서브쿼리를 사용하는 방법과 실제 예제를 통해 서브쿼리를 이해해보겠습니다.1. 서브쿼리란?서브쿼리는 SELECT, INSERT, UPDATE, DELETE 등의 SQL 문 내부에서 실행되는 쿼리입니다. 보통 WHERE, FROM, SELECT 절에서 사용됩니다.서브쿼리는 다음과 같이 분류할 수 있습니다:스칼라 서브쿼리 (Scalar Subquery): 하나의 값을 반환하는 서브쿼리다중 행 서브쿼리 (Multi-row Subquery): 여러 ..

DB/postgresql 2025.03.03

[flutter] Guesture Widget(제스처 위젯)의 종류

1. Flutter에서 Gesture를 지원하는 주요 위젯Flutter에서 제스처를 감지하고 활용할 수 있는 주요 위젯들은 다음과 같습니다:위젯 설명GestureDetector터치 이벤트(탭, 드래그, 스와이프 등)를 감지하는 기본 위젯InkWell머터리얼 디자인 효과를 포함한 터치 감지 위젯ElevatedButton, TextButton, IconButton기본적인 버튼 클릭 감지 위젯Dismissible스와이프하여 항목을 삭제할 수 있는 위젯Draggable & DragTarget드래그 앤 드롭을 지원하는 위젯Slider사용자가 슬라이드를 통해 값을 조정할 수 있는 위젯SwitchON/OFF 상태를 전환하는 위젯PopupMenuButton롱프레스 또는 탭으로 메뉴를 표시하는 위젯ListView (sc..

카테고리 없음 2025.02.21

[Flutter] Gesture & Setting

Flutter Gesture 완벽 가이드: 제스처란 무엇이고 어떻게 활용할까?Flutter에서 Gesture(제스처) 는 사용자의 터치 이벤트를 감지하고 UI와 상호작용하는 데 필수적인 요소입니다. 이번 블로그에서는 Gesture란 무엇인지, 종류, 메서드와 옵션들 에 대해 자세히 알아보겠습니다.1. Gesture(제스처)란?Gesture는 사용자의 터치 이벤트(탭, 스와이프, 드래그 등) 를 감지하여 UI 요소와 상호작용할 수 있도록 합니다. Flutter는 GestureDetector 위젯을 통해 제스처를 감지할 수 있으며, 이를 활용하여 다양한 인터랙션을 구현할 수 있습니다.예를 들어, 버튼을 탭했을 때 특정 동작을 수행하거나, 스와이프하여 페이지를 넘기는 기능을 만들 수 있습니다.💡 Gestur..

App/flutter 2025.02.21

nestjs - abstract class (추상 클래스) 란?

nestjs에서 enttiy를 작성할 때, 공통적으로 들어가는 컬럼들을 abstarct entity로 빼서 extends 를 해서 사용하는데, 그러면 abstarct class란 대체 뭘까? 🔥 abstract class BaseEntity의 역할✅ abstract 키워드는 추상 클래스를 정의할 때 사용됨.✅ BaseEntity를 직접 인스턴스화할 수 없고, 다른 엔티티가 extends 해서만 사용할 수 있음.✅ typeorm에서 공통 필드를 관리하는 베이스 엔티티를 만들 때 자주 사용됨.✅ 1. abstract class란?📌 추상 클래스는 직접 인스턴스화할 수 없고, 자식 클래스에서 상속받아 사용해야 함.abstract class Animal { abstract makeSound(): void;..

카테고리 없음 2025.02.02
반응형