전체 글 63

코딩 부트캠프 후기: 내일배움캠프에서 개발자가 되기 위한 첫걸음

솔직하게 경험한 내일배움캠프(Java Spring 부트캠프) 후기내일배움캠프 이전의 삶저는 고등학교를 졸업한 후, 편의점, 공장, 아울렛, 음식점 등 다양한 직종에서 아르바이트를 하며 살아왔습니다.개발자와는 전혀 무관한 직업군에서 쉼 없이 일하며 군대까지 다녀왔죠.이후 운 좋게 한 회사에 입사해 프로그램 사용법 안내와 전화 상담 업무를 맡았고,고객들의 공통적인 요구사항을 정리해 보고서를 작성하다 보니 어느새 기획자로 근무하게 되었습니다.약 1년 6개월간 기획자로 일하며 직업에 대한 만족도는 높았지만,업무량이 점차 늘어나면서 새로운 도전을 생각할 여유는 없었습니다.그럼에도 불구하고 동료와 지인들이 “개발 공부를 해보는 게 어떠냐”는 권유를 꾸준히 했습니다.결정적으로, 부트캠프를 통해 개발자로 전향한 친구의..

카테고리 없음 2024.11.27

JMeter 테스트 기록

윈도우로 JMeter 사용한 경험 기록용.1. 우선 jmeter.bat 으로 들어갑니다.2. Thread Group 을 추가했습니다.Thread 10000명이 10초안에 1번씩 실행. 즉 초당 1000개 실행하는 꼴 3. HTTP Request 등록(테스트할 요청)localhost : 8080캡처본에는 GET으로 되어있지만 POST 가 맞습니다. 4. 헤더 설정(HTTP Header Manager) : 문서로 정리해서 여러개 올리려면 CSV 사용JWT 토큰이 필용해서 넣어줬습니다.5.테스트 결과 보기테스트 결과를 보는 방식으로 위에 3개를 선택했습니다. 6.결과 : 감당하기 힘들어 보였습니다. 낮게 잡고 조금씩 높여봐야겠어요...1. Data = 검은색의미이 항목은 각 요청이 완료된 순서를 기준으로 값을..

카테고리 없음 2024.11.15

JMeter

JMeter 테스트 구성1) Test Plan (테스트 계획)모든 테스트의 기본 구조입니다. 테스트의 실행 흐름을 정의합니다. 2) Thread Group (스레드 그룹)사용자의 수와 요청 빈도를 설정하는 곳입니다.여기서 스레드를 설정하여 가상 유저를 시뮬레이션합니다.Number of Threads (사용자 수)여기서 요청을 보내기 위한 스레드 수를 설정합니다.1000으로 설정하면 1000명의 유저가 동시에 요청을 보낸다고 생각할 수 있습니다.Ramp-Up Period (스레드 증가 시간)각 스레드가 시작될 때의 지연 시간을 설정합니다.예를 들어 1000으로 설정하면 1000개의 스레드가 1000초에 걸쳐 차례대로 시작됩니다.Loop Count (반복 횟수)각 스레드가 요청을 반복하는 횟수입니다.예를 들..

카테고리 없음 2024.11.14

Redis Cluster, Redis Sentinel

Redis ClusterRedis Cluster는 Redis의 분산 데이터베이스로,데이터를 여러 개의 Redis 노드에 분배하여 처리할 수 있도록 지원합니다.여러 개의 Redis 인스턴스를 클러스터로 묶어서 데이터를 샤딩(분할)하여 분산 처리하는 방식입니다.특징:데이터 분할데이터를 여러 개의 노드에 샤딩하여 분배합니다.즉, 한 노드에 모든 데이터를 저장하지 않고, 데이터가 여러 노드에 분산되어 저장됩니다.자동 장애 조치노드 중 하나가 실패할 경우,클러스터 내에서 자동으로 다른 노드가 해당 노드의 역할을 대신합니다.수평 확장성Redis Cluster는 수평 확장이 가능하여,클러스터에 노드를 추가함으로써 저장 용량과 성능을 확장할 수 있습니다.복제Redis Cluster는 각 샤드마다 복제본을 두어 고가용성..

카테고리 없음 2024.11.13

Kafka

Kafka 는 분산 메시징 시스템이다대량의 데이터를 빠르게 전달하고, 비동기적으로 처리할 수 있도록 설계되어있다. 1 Kafka 주요 개념1.브로커(Broker) 1) Kafka 클러스터를 구성하는 서버 또는 인스턴스 2) Kafka 클러스터는 여러개의 브로커로 구성되며, 각 브로커는 여러개의 토픽을 저장하고 관리한다. 3) 클라이언트는 이 브로커를 통해 데이터를 주고받는다. 2. 토픽(Topic) 1) 데이터가 저장되는 단위 2) likes_topic, comments_topic 처럼 각각의 타입마다 토픽을 따로 설정할 수 있다. 3) 토픽은 여러개의 파티션으로 나뉘며, 파티션 단위로 메시지가 분산되어 저장된다. 3. 파티션(Partition) 1) 각 토픽은 하나 이상의 파티션을 가질 수 있다. 파티..

카테고리 없음 2024.11.04

멀티스레딩 과 동시성 문제

멀티스레딩(Multi-threading)여러 작업을 동시에 실행하는 것멀티스레딩은 여러 CPU(코어)가 각각 스레드를 맡아 실행하는 방식예시: 한 게임에서스레드 1: 화면에 캐릭터 움직임을 보여준다.스레드 2: 네트워크로 다른 사람의 움직임을 받아온다.스레드 3: 배경음악을 재생한다.이렇게 여러 작업을 각각 다른 스레드에서 동시에 실행하는 것동시성 문제여러 스레드가 같은 자원에 접근할 때 발생하는 문제  예시여러 스레드가 동시에 같은 자원(예: 은행 계좌)을 수정할 때 문제가 발생.예를 들어, 두 스레드가 동시에 잔액을 조회하고 동시에 출금하면 데이터 불일치 발생.두 스레드가 동시에 출금하면 잔액이 음수가 될 수 있음.  동시성 문제 해결 방법1) Synchronized 키워드    한 번에 한 스레드만..

카테고리 없음 2024.10.30

Redis 사용 기록 겸 후기 (카드 조회, 조회 인기순)

public CardResponseDto cardRead(Long cardId, AuthUser user) { // Redis Key 설정String viewKey = "card:" + cardId + "views"; // 카드 조회수 키String userKey = "user:" + user.getUserId() + ":card:" + cardId + ":";String cardInfoKey = "card_info" + cardId; // 캐시에 저장 키 (인기순위 조회용)String rankingKey = "popular_cards"; // 인기 카드 랭킹 키 조회수가 오르는지 확인하기 위한 초기값(현재 카드 조회수)// 현재 카드 조회수Integer currentViews = redisTemplat..

카테고리 없음 2024.10.21

자바 컬렉션 프레임워크 ( List, Set, Map )

Java의 컬렉션(Collection) 프레임워크데이터를 효율적으로 저장하고 관리할 수 있게 해주는 도구 List 순서가 유지됨중복 데이터 허용대표 클래스: ArrayList, LinkedList사용 예: 순서가 중요한 대기열, 이력 기록 등Set순서가 없고 중복을 허용하지 않음.대표 클래스: HashSet, TreeSet.사용 예: 중복 없는 유저 ID, 태그 관리 등.Map키-값(Key-Value) 쌍으로 데이터를 저장.키는 중복 불가, 값은 중복 허용.대표 클래스: HashMap, TreeMap.사용 예: 이름-나이 또는 상품-재고 관리 등.List 와 Set 의 차이점List = 순서 유지, 중복 허용Set = 순서 없음, 중복을 허용하지 않음 순서가 중요하면 List , 중복이 안되는게 중요하면..

카테고리 없음 2024.10.18