전체 글

전체 글

    nginx 502 원인: 임시포트 고갈과 keepalive 설정<img src=">

    nginx 502 원인: 임시포트 고갈과 keepalive 설정

    실무에서 겪은 경험🚀 증상부하테스트 중 가상 사용자(VU) 20명 초과 시점부터 502 Bad Gateway 발생특정 URL이 아닌 정적 파일 포함 전 URL에 무작위 분포백엔드 애플리케이션 로그 정상 (에러 미기록)일 502 약 6,000건 누적앱이 502를 인증 실패로 오분류 → 사용자 강제 로그아웃 부작용 발생판단: 앱 로그에 에러가 없는 502는 요청이 앱에 도달하기 전 nginx 단계에서 실패한 것🧐 원인 3중 구조원인은 한 가지가 아닌 3중 구조순서원인502의 직접 원인?1요청마다 공개키 원격 조회(캐시 없음) → 단일 프로세스 인증 모듈 포화일부2DB 커넥션 풀(8)과 Tomcat 스레드(200)가 목표 동시접속 대비 부족아님3nginx upstream keepalive 미설정 → 임시포..

    AWS TechCamp란?

    AWS TechCamp란?

    최근 AWS Builders Korea Program이 새롭게 변화한 AWS TechCamp에 참여하면서 느낀 점을 공유하고자 한다.기존 프로그램에서는 이론과 간단한 실습을 중심으로 진행되었지만, 이번 테크캠프는 한층 더 강화된 학습 경험을 제공했다.실시간으로 과외를 받는 듯한 몰입감이 느껴졌고, AWS 서비스를 깊이 이해하고 실전에서 바로 적용해보고 싶다는 열정이 생겼다.  어떻게 진행되나요?TechCamp는 분기별로 3일간의 세션으로 구성된다.매년 3월(Modern App), 6월(AI/ML), 9월(Data), 11월(Every App)을 주제로 진행된다.하루 두 번, 오전 9~12시, 오후 2~5시까지 강의가 열린다.강의는 기초 과정 (레벨 100), 기본 과정 (레벨 100 - 200) , 심화..

    빅데이터의 파일 형식은 무엇으로 해야할까? (feat. Parquet 란?)

    빅데이터의 파일 형식은 무엇으로 해야할까? (feat. Parquet 란?)

    데이터 엔지니어 프로젝트를 진행하면서 컬럼이 수십개에 레코드는 수십만개의 데이터를 다루면서 데이터 유형에 대해 고민하게 되었다. 단순히 보기 편하고 다루기 쉬운 행 기반 형식의 CSV 파일만을 생각했는데 읽고 쓰는 I/O 성능이 느려서 새로운 파일 유형을 찾게 되었다. 그것이 parquet 같은 빅데이터 파일 형식이다. 1. 고민해야할 점데이터가 기하급수적으로 증가함에 따라 효율적인 데이터 저장방법은 무엇일까?데이터를 행과 열로 구성하는 것의 차이점과 이것이 저장 및 쿼리 효율성에 어떤 영향을 미칠까?행 기반 형식으로 데이터를 저장하는 것의 장단점과 쓰기 작업이 많은 작업에 대한 적합성은 무엇일까?빠른 쿼리 속도와 효율적인 압축 옵션 등 읽기 작업이 많은 작업을 위한 열(컬럼) 기반 저장소의 이점은?Pa..

    Airflow 란 무엇인가?

    Airflow 란 무엇인가?

    1. Airflow 소개파이썬으로 작성된 데이터 파이프라인(ETL) 프레임워크Airbnb에서 시작한 아파치 오픈소스 프로젝트가장 많이 사용되는 데이터 파이프라인 관리 및 작성 프레임워크데이터 파이프라인 스케줄링 지원정해진 시간에 ETL 실행 or 한 ETL의 실행이 끝나면 다음 ETL 실행웹 UI 제공데이터 파이프라인(ETL)을 쉽게 만들 수 있게 해줌다양한 데이터 소스와 데이터 웨어하우스를 쉽게 통합해주는 모듈 제공https://airflow.apache.org/docs/데이터 파이프라인을 DAG(Directed Acyclic Graph)라고 부름1개의 DAG는 1개 이상의 태스크(task)로 구성 2. Airflow 구성웹 서버(Web Server)웹 UI는 스케줄러와 DAG의 실행 상황을 시각화해줌..

    Airflow 설치 - Docker

    Airflow 설치 - Docker

    Apache Airflow 공식 홈페이지 - Running Airflow in Docker 에서 참고하였습니다. 1. 시작 전 (Before you begin)Docker Community Edition(CE)을 본인 컴퓨터에 설치합니다. OS에 따라 Airflow 컨테이너가 제대로 실행되려면 최소 4.00GB에서 권장 8.00GB 메모리를 사용하도록 Docker를 구성해야 합니다. 자세한 내용은 Windows Docker 또는 Mac Docker 를 참고하세요.컴퓨터에 Docker Compose v2.14.0 이상 설치해야 합니다. 버전을 확인하려면 `docker compose version` 명령어를 실행하세요.% docker compose versionDocker Compose version v2...

    CodeDeploy - CodePipeline 만드는 도중 실패 및 설명

    CodeDeploy - CodePipeline 만드는 도중 실패 및 설명

    1. 실패 이유 스프링부트 프로젝트 최상단에 appspec.yml 파일을 만들지 않아서 Deploy가 실패했다.appspec.yml은 CodeDeploy에서 배포 관리하는데 사용하는 파일이다.이 파일에 정의된 일련의 수명 주기(lifecycle) 이벤트 후크로 각 배포를 관리하는데 사용된다.AWS 공식문서 - CodeDeploy 애플리케이션 사양 (AppSpec) 파일 을 참고하면 좋다. 2. appspec.yml 생성위 규칙대로 정의를 하면 되고, 나는 크게 정의할 필요가 없기에 간단하게 적어본다. 이렇게 생성 후 Github에 추가하면 자동으로 우리가 만들었던 CodePipeline이 작동한다.그럼 Source -> Build -> Deploy 가 자동으로 실행하게 된다. 3. 성공나는 codepip..

    FK(외래키)를 주식별자인 기본키(PK)로 꼭 넣어야할까? 아니면 비식별자로 넣어야할까?

    FK(외래키)를 주식별자인 기본키(PK)로 꼭 넣어야할까? 아니면 비식별자로 넣어야할까?

    우선 간단한 개념부터 살펴보자. 🚀 식별자(Identifier) 개념 하나의 엔터티(entity)에 구서된 여러 개의 속성 중에 엔터티를 대표할 수 있는 속성 하나의 엔터티는 반드시 하나의 유일한 식별자가 존재 논리 데이터 모델링 단계에서는 '식별자', 물리 데이터 모델링 단계에서는 '키(key)' 라고도 불림 🚀 식별자 분류와 특징 엔터티 내에서 대표성을 가졌는가? 주식별자 or 보조식별자 엔터티 내에서 스스로 생성 되었는가? 내부식별자 or 외부식별자 단일 속성으로 식별 되는가? 단일식별자 or 복합식별자 업무적으로 의미가 있던 식별자 속성을 대체하여 새롭게 만들었는가? 본질식별자 or 인조식별자 (위 질문에 대한 답이 맞으면 왼쪽 아니라면 오른쪽) 📚 주 식별자(Primary Identifier) ..

    스프링부트 공유라이브러리 만들고 jitpack으로 배포하기 - 2편

    스프링부트 공유라이브러리 만들고 jitpack으로 배포하기 - 2편

    스프링부트 공유라이브러리 만들고 jitpack으로 배포하기 - 1편 스프링부트 공유라이브러리 만들고 jitpack으로 배포하기 - 2편 깃허브 주소 : https://github.com/Sangyong-Jeon/practice_core-service 3. 모든 서비스에 공유할 클래스 만들기 저는 Filter를 만들겠습니다. 이 필터는 요청이 들어오면 콘솔창에 log를 남깁니다. 공유할 클래스를 만드시면 됩니다. 4. 라이브러리 jar 파일로 만들기 위한 준비작업 실행가능한 jar 파일로 빌드하지 않도록 빌드 시스템을 비활성화시키는 작업. 이 작업에서 SpringBootPlugin 비활성화하여 bootJar도 비활성화하고, 실행가능한 jar로 빌드할 수 없게 설정함. 스프링부트 의존성 관리를 위해 bom을..