본문 바로가기

분류 전체보기127

Git Flow vs Github Flow : 브랜치 전략 목차 LIST  새로운 프로젝트를 시작할 때, 브랜치 전략으로 Git Flow와 Github Flow를 자주 접하게 되는데요. 두 전략의 차이에 대해 알아보겠습니다. Git FlowGit Flow 브랜치 전략은 총 5개의 브랜치로 나누어집니다. main (or master) - 현재 릴리즈된 코드의 저장소이며, Production에 나가는 버전과 일치해야 합니다.develop - main 브랜치를 따서, 릴리즈 이후에 발생한 추가적인 변경 사항을 반영합니다.feature - develop 브랜치를 따서, 새로운 기능을 개발하기 위한 feature 브랜치를 생성합니다. main이나 develop과 달리 feature라는 단일 브랜치가 있는 것은 아니고, 변경 사항마다 생성합니다.예를 들면, bug/Stac.. 2024. 5. 3.
ssh-keygen에 대해 알아보자 목차 LIST   개요업무하면서 종종 ssh-keygen을 사용할 일이 있었는데, 정확히 이해하지 않고 그냥 사용하다가 한 번은 정리해야 할 것 같아서 글 작성합니다. 서버 간에 SSH 통신을 위해 SSH 키 기반 인증을 사용합니다. 이 방법을 사용하면 비밀번호를 사용하는 것보다 안전하며, 자동화된 스크립트를 실행할 때 유용합니다. SSH 키 생성 및 설정1. 키 생성 : 로컬 서버에서 SSH 키를 생성합니다. 일반적으로 RSA 키를 사용하지만, 최근에는 보안성이 강화된 Ed25519 키 사용을 권장합니다. 공개 키와 비밀 키로 구성된 SSH 키 쌍이 생성됩니다.# RSAssh-keygen -t rsa -b 4096# Ed25519ssh-keygen -t ed25519 2. 공개 키 복사 : 위에서 생성.. 2024. 4. 25.
NGINX TCP / UDP Load Balancing NGINX를 사용해서 TCP / UDP 트래픽을 프록시하고 로드 밸런싱하는 방법에 대해 설명합니다. 소개 로드 밸런싱은 네트워크 트래픽을 여러 백엔드 서버에 효율적으로 분산하는 것을 말합니다. Prerequisities '--with-stream' 를 포함하여 빌드된 NGINX Reverse Proxy 구성 먼저, NGINX가 클라이언트의 TCP / UDP 를 프록시된 서버로 전달할 수 있도록 리버스 프록시를 구성해야 합니다. proxy_pass에는 서버가 트래픽을 전달할 proxy된 서버나 upstream 그룹을 지정합니다. stream { server { listen 12345; #TCP traffic will be forwarded to the "stream_backend" upstream grou.. 2024. 4. 17.
Apache Spark : Join strategy 목차 LIST Join operation은 스파크에서 가장 대중적으로 사용되는 transformation이다. 스파크는 join을 어떻게 구현할지 선택하기 위한 몇가지 알고리즘을 사용한다. 이 알고리즘들은 스파크가 작업을 어떻게 처리할지 결정하는 단계에서 사용된다. 아래에서 스파크가 조인을 사용하기 위한 전략을 결정하는지 알아보자. Spark Join 전략의 요소들 Data Size Spark는 비용이 많이 드는 셔플과 정렬을 피할 수 있는 join 전략을 선택한다. 따라서, 데이터가 브로드캐스트 될 수 있다면 해시 기반 join 전략을 더 선호한다. 셔플 (shuffle)? Apache Spark에서 shuffle은 데이터를 재분배하는 과정을 의미합니다. shuffle은 특정 작업을 수행하기 위해 다른.. 2024. 3. 21.
코딩테스트 언어 Java->Python 변경 기록 목차 LIST 코딩 테스트에서 사용하는 언어를 Java에서 Python으로 바꿔보려고 한다. 그래서 가벼운 문제들 풀면서 감잡는 과정 기록 1) 백준 2606번 바이러스 import sys from collections import deque n = int(input()) m = int(input()) table = [[0 for _ in range(101)] for _ in range(101)] for _ in range(m): x, y = map(int, input().split()) table[x][y] = 1 # 이부분! 때문에 처음에 틀렸었음 table[y][x] = 1 result = 0 visited = [0] * 101 stack = deque() stack.append(1) visited.. 2024. 3. 14.
Apache Spark : RDD, Transformation, Action, Persist 목차 LIST RDD 스파크는 연산 과정을 클러스터 전체에 걸쳐 자동으로 병렬화하여 분산 배치된 연산 작업들의 모음으로 표현한다. 이 모음은 RDD(Resilient Distributed Dataset, 탄력적인 분산 데이터세트)라고 부른다. RDD는 분산 데이터와 연산을 위한 스파크의 핵심 개념이다. 즉, RDD는 분산되어 존재하는 데이터 요소들의 모음이다. RDD 기초 RDD는 쉽게 말하면 '분산되어 있는 변경 불가능한 객체 모음'이다. 각 RDD는 클러스터의 서로 다른 노드들에서 연산이 가능하도록 여러 개의 파티션으로 나뉜다. RDD는 외부 데이터세트를 로드하거나 드라이버 프로그램에서 객체 컬렉션(ex. list, set)을 분산시키는 두 가지 방법으로 생성할 수 있다. 아래는 SparkContex.. 2024. 2. 27.
반응형