전체 글 408

[Git] 협업 프로젝트 개인 레포 fork 해서 리팩토링하기!

fork개인 레포로 복사하고자 하는 원본 레포에서 fork 해오기clonegit clone 로컬에서 fork한 레포 주소를 clone 하기브랜치기존 팀 컨벤션 처럼 기능 개발 시 feat 브랜치 생성 후 개인 레포의 dev 브랜치에 pr 올리거나,원본 레포에 반영하고 싶으면 원본 dev에 pr 올리기 (원본 레포에 issue 먼저 생성 후)?? 이렇게 하는거 맞나

Stack/Git 2025.12.03

[부하 테스트] 현업에서 부하 테스트를 왜 할까?

현업에서 부하 테스트를 왜 할까? 💡부하 테스트란 ?시스템(전체 인프라 구성 요소)이 어느 정도의 트래픽 혹은 요청을 견딜 수 있는지 테스트하는 것💡현업에서 부하 테스트를 왜 할까?프로덕션 환경에서 서비스를 배포 하기 전, 백엔드 서버가 예상되는 트래픽을 견딜 수 있는지 검증하기 위해 부하 테스트를 해볼 수 있다.부하 테스트를 통해 서버가 얼마나 많은 동시 요청을 처리할 수 있는지, 어느 정도의 트래픽까지 감당 가능한지 미리 파악할 수 있다.서버가 터져서 장애가 발생하기 전에 트래픽 증가에 대비해 서버 용량을 미리 감지하고 대처할 수 있도록 준비하는 것이 부하 테스트의 핵심 목적이다.트래픽 걱정 없이 가장 좋은 사양의 서버를 쓰면 되지 않을까?오버 스펙의 고사양 컴퓨터를 서버로 사용하면 수많은 트래픽..

[부하 테스트] 부하 테스트 란?

Load Testing (부하 테스트) 💡부하 테스트 란?예상되는 정상/피크 부하 수준에서 시스템이 문제 없이 동작하는지 검증하는 테스트부하의 단위는 시스템에 따라 동시 사용자 수, RPS(requests per second), 데이터 크기 등으로 정의될 수 있다.💡부하 테스트를 하는 이유실제 트래픽 수준에서 시스템이 정상적으로 작동하는지 검증구성 요소 💡부하 테스트 구성 요소의미 있는 결과를 얻으려면 실제 운영 환경과 최대한 비슷한 인프라(네트워크, 하드웨어, 외부 시스템 포함)에서 테스트해야 한다.핵심은 “사용자 활동을 시뮬레이션하는 모듈”이다. 이 모듈이 실제 서비스 특성에 맞는 시나리오를 실행해야 한다.ex. 이커머스는 상품 탐색, 장바구니 추가, 결제까지의 플로우시뮬레이션은 단순히 양(vo..

[프로그래머스 / Java] Lv.0 약수 구하기

Question https://school.programmers.co.kr/learn/courses/30/lessons/120897 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krAlgorithm정수 n 약수 구하기n % i == 0 이면 약수이므로 count++약수 개수만큼 크기를 가진 배열을 생성다시 1부터 n까지 반복하면서 실제 약수들을 배열에 저장n을 나누어 떨어뜨리는 숫자(i)를 배열에 순서대로 넣는다.Codeclass Solution { public int[] solution(int n) { // 약수 개수 저장할 변수 int count = 0; ..

[프로그래머스 / Java] Lv.1 기사단원의 무기

Question https://school.programmers.co.kr/learn/courses/30/lessons/136798 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krAlgorithm1부터 number까지 약수의 개수 구하기반복문을 이용하여 i = 1부터 number까지 순회한다.각 약수의 개수 중 limit 초과인 수는 power 로 계산divisorCount(i) 결과가 limit 이하라면 → 해당 값을 그대로 사용한다.limit 초과라면 → 약수 개수 대신 power 값을 사용한다.제곱근을 이용한 약수 개수 계산 (divisorCount 메서드)1부터 √num까지만 반복하여 시간복잡도 O(√N)..

[BAEKJOON / Java] 1152. 단어의 개수

Question https://www.acmicpc.net/problem/1152Algorithm표준 입력으로 한 줄을 입력받아 양 끝 공백을 제거한다.문자열이 빈 경우, 단어 수 0을 출력하고 프로그램을 종료한다.빈 문자열이 아니면 단어가 최소 1개 있다고 가정하고 count를 1로 초기화한다.문자열을 한 글자씩 순회하면서, 공백 문자가 나오면 count를 1 증가시킨다.순회가 끝나면 count(단어 개수)를 출력한다.Codeimport java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.util.StringTokenizer;public class Main { public static ..

[DDD] 유비쿼터스 언어 (Ubiquitous Language)

유비쿼터스 언어란? 💡유비쿼터스 언어란?도메인 주도 설계(DDD)에서 팀 전체가 비즈니스 요구사항을 정확하게 이해하고, 혼선 없이 구현·운영할 수 있게 해주는 '공통의 언어'개발자(엔지니어)와 도메인 전문가(기획자, 현업 PM, 마케터 등)가 모두 동의하고 사용하는 단 하나의 공통 용어집을 의미한다.💡필요한 이유기획자, 개발자, 도메인 전문가가 서로 다른 용어를 사용하면 요구사항이 왜곡되고, 시스템이 잘못된 방향으로 구현된다.유비쿼터스 언어는 팀 전체가 동일한 용어를 사용하도록 강제하여, 비즈니스 요구사항과 코드가 정확히 일치하도록 만든다.💡예시👤 기획자 : "이번에 '프리미엄 고객'들에게는 '상품' 가격을 10% 할인해 줘야 해요."💻 개발자 : (생각) '프리미엄 고객? User 테이블의 g..

심화/DDD 2025.11.27

[프로그래머스 / Java] Lv.2 멀리 뛰기

Question https://school.programmers.co.kr/learn/courses/30/lessons/12914 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krAlgorithmf(n) = f(n-1) + f(n-2)n번째 칸에 도달하는 방법은 두 가지 경로로만 가능하다(n-1)번째 칸에서 1칸 점프(n-2)번째 칸에서 2칸 점프경우의 수n경우의 수점화식결과1(1)-12(1,1), (2)-23(1,1,1), (1,2), (2,1)f(2)+f(1)34(1,1,1,1), (1,1,2), (1,2,1), (2,1,1), (2,2)f(3)+f(2)55...f(4)+f(3)8Codeclass Solutio..

[MSA] RabbitMQ

RabbitMQ 💡RabbitMQ 란?데이터(메시지)를 송신자(프로듀서)로부터 수신자(컨슈머)에게 전달하는 중간 매개체 역할을 하는 메시지 브로커이다.💡역할비동기 처리 : 데이터를 비동기적으로 처리하여 시스템의 응답성을 높인다.부하 분산 : 여러 소비자에게 메시지를 분산시켜 시스템의 부하를 균형 있게 분산한다.내결함성 : 메시지를 안전하게 저장하여 시스템 장애 시 데이터 손실을 방지한다.💡기본 구성 요소메시지(Message)RabbitMQ를 통해 전달되는 데이터 단위예를 들어, 사용자 등록 정보나 주문 내역이 메시지가 될 수 있다.프로듀서(Producer)메시지를 생성하고 RabbitMQ에 보내는 역할예를 들어, 웹 애플리케이션이 사용자 등록 정보를 RabbitMQ에 보내는 경우 프로듀서가 된다.큐..

심화/MSA 2025.11.25

[프로그래머스 / Java] Lv. 1 직사각형 별찍기

Question https://school.programmers.co.kr/learn/courses/30/lessons/12969 프로그래머스SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프programmers.co.krAlgorithm첫 번째 정수 입력 : sc.nextInt()를 호출하여 사용자가 입력한 첫 번째 정수를 읽어 변수 a에 저장두 번째 정수 입력 :다시 sc.nextInt()를 호출하여 사용자가 입력한 두 번째 정수를 읽어 변수 b에 저장덧셈 연산 및 출력 : a + b를 계산한 결과를 System.out.println()을 통해 콘솔에 출력Codeimport java.util.Scanner;class Solution { public..