[빅데이터분석기사]제 12회 빅데이터분석기사 전공자 합격 후기
·
자격증
제12회 빅데이터분석기사 필기와 실기에 응시한 후 준비 과정과 시험 난이도를 간단하게 정리해 보려고 한다.배경지식컴퓨터공학을 전공했고, 전산통계, 머신러닝 강의를 수강하였다.하지만 빅데이터 분석기사는 데이터 분석 기획부터 통계, 머신러닝, 결과 해석까지 범위가 넓기에 별도의 시험 준비가 필요했다.필기시험 준비공부 기간필기 공부 기간은 약 2주이다.처음부터 모든 내용을 깊게 이해하기보다는 전체 개념을 확인한 후 문제 풀이에 집중했다.사용한 교재필기는 이기적 빅데이터분석기사 필기 교재를 사용했다.교재에는 개념 설명과 기출문제가 함께 들어 있어 시험 범위를 파악하고 문제 유형을 익히는 용도로 활용하기 좋았다.다만 책의 모든 내용을 완벽하게 암기하려고 하면 범위가 너무 넓어질 수 있기 때문에, 처음에는 전체 내..
[ADsP]제49회 ADsP 전공자 벼락치기 합격 후기
·
자격증
제49회 ADsP 시험에 응시한 후 공부 방법과 실제 시험 난이도를 간단하게 정리해 보려고 한다.배경지식컴퓨터공학을 전공했고, 데이터 관련 수업을 수강한 경험이 있다.또한 빅데이터분석기사 필기에 합격한 상태였기 때문에 통계와 데이터 분석 관련 개념은 대부분 한 번씩 공부한 상태였다.공부 기간공부 기간은 약 3일이었다.빅데이터분석기사 필기 범위와 겹치는 내용이 많아 새로운 개념을 공부하기보다는 ADsP의 기출 유형을 익히는 데 집중했다.사용한 교재사용한 교재는 흔히 미어캣이라고 부르는 교재다.책의 구성이 너무 좋은데 공부 시간이 짧아서 괜히 산 것 같다...개념을 처음부터 자세히 읽기보다는 예상 문제와 기출문제를 풀면서 부족한 부분만 다시 확인하는 방식으로 활용했다.공부 방법기출과 비슷한 유형의 문제가 많..
웹 인증은 왜 필요한가: HTTP Stateless에서 출발하기
·
공부/SECURITY
1. 로그인은 기능처럼 보이지만 실제로는 상태 유지 문제이다사용자 입장에서 로그인은 단순하다. 이메일과 비밀번호를 입력하고, 이후 서비스가 나를 알아보면 된다. 하지만 서버 입장에서는 문제가 더 복잡하다. 서버는 매 요청마다 “이 요청이 방금 로그인한 그 사용자의 요청인가”를 판단해야 한다.이 판단이 필요한 이유는 HTTP가 요청 단위 프로토콜이기 때문이다. 브라우저가 /login 요청을 보내고 성공 응답을 받았다고 해서, 다음 /me 요청이 자동으로 같은 사용자라고 보장되지 않는다. 서버는 요청 하나하나를 독립적으로 받는다.그래서 인증 시스템의 본질은 다음 질문에 답하는 것이다.독립적인 HTTP 요청들 사이에서 서버는 어떻게 같은 사용자를 계속 식별할 것인가? 이 질문에 대한 대표 답이 session과..
Producer–Consumer 패턴이란?
·
공부/CS
1. Producer–Consumer 패턴이란?Producer–Consumer 패턴은“데이터를 생산하는 주체(Producer)와 데이터를 처리하는 주체(Consumer)를 분리하고,중간에 공유 버퍼(Queue)를 두어 두 주체가 서로 비동기로 동작하도록 만드는 디자인 패턴”이다.핵심 아이디어는Producer는 자신의 속도대로 데이터를 생성해서 큐에 넣고,Consumer는 자신의 속도대로 큐에서 꺼내 처리한다.큐가 속도 차이를 완화해 주기 때문에, 한쪽이 느려도 다른 쪽이 바로 막히지는 않는다.다만 큐가 bounded(유한 크기)라면, Consumer가 지속적으로 느리면 큐가 가득 차면서 back‑pressure가 발생할 수 있다.2. 구성 요소대표적인 구성은 다음과 같다.구성 요소역할Producer데이터..
GPU 연산을 분리한 비동기 처리 아키텍처 설계
·
개발 기록
0. 서론현재 진행 중인 프로젝트는 실제 운영을 전제로 준비 중인 서비스다.이 프로젝트는 다음과 같은 현실적인 조건을 가진다.전체 예산이 제한적이다.고성능 GPU는 학교에서 대여한 서버를 사용한다.영상 인코딩이라는 고부하 워크로드를 포함한다.영상 생성 시 크레딧(금전성 자산)이 실제로 소모된다.즉, 이 프로젝트는 성능, 비용, 안정성, 신뢰성을 동시에 고려해야 하는 구조다.이 글은 이러한 환경에서GPU 연산을 API 서버에서 분리하고, 비동기 워커 기반으로 처리하도록 설계한 아키텍처에 대한 정리다. 1. 프로젝트의 제약 조건1.1 비용과 인프라 제약이 프로젝트는 다음과 같은 제약을 전제로 한다.웹/API 서버는 소수의 CPU 인스턴스로 운영해야 한다.GPU 서버는 학교에서 빌린 자원이므로 항상 사용 가능..
[JAVA] 배열(Array) vs ArrayList vs Vector
·
공부/JAVA
과거에는 배열(Array), ArrayList, Vector를 기본적인 연속 메모리 기반 자료구조로 많이 비교했지만,현대 Java에서 주로 사용하는 것은 배열과 ArrayList이고, Vector는 레거시로 간주된다. 이 세 가지는 모두 인덱스로 접근이 가능한 연속 메모리 기반 구조라는 공통점을 가지지만,메모리 할당 방식과 크기 관리, 동기화 여부에서 큰 차이가 있다.1. 세 가지 자료구조 한눈에 보기먼저 전체적인 특징을 간단히 정리한다. 구분배열(Array)ArrayListVector크기고정동적동적내부 구조원시 배열Object[]Object[]메모리 위치힙힙힙인덱스 접근O(1)O(1)O(1)동기화없음없음있음권장 여부제한적대부분거의 없음 2. 배열(Array)2.1 개념과 특징배열은 크기가 고정된 가장..
B-Tree vs B+Tree 완벽 비교: 데이터베이스 인덱스 성능 최적화
·
공부/DB
데이터베이스 관리 시스템(DBMS)의 성능을 논할 때 인덱싱(Indexing)은 결코 빠질 수 없는 주제다. 방대한 데이터를 다루는 환경에서, 원하는 데이터를 얼마나 빠르게 찾아낼 수 있느냐는 서비스의 품질을 결정짓는 척도와도 같다.메모리(RAM)와 디스크(Storage)의 속도 차이는 여전히 거대하다. CPU 레지스터는 나노초(ns) 단위로 접근이 가능하지만, 메모리는 수십 나노초, SSD는 마이크로초(μs), 그리고 HDD는 밀리초(ms) 단위의 시간이 소요된다. 이 물리적 한계를 극복하기 위해 최소한의 디스크 I/O만으로 데이터를 탐색할 수 있는 자료구조가 필요했고, 그 해답의 중심에 B-Tree와 B+Tree가 있다.B-Tree정의 및 구조적 특징B-Tree는 디스크와 같은 보조 기억 장치를 위해..
Redis 없이 외부 API Rate Limit 설계하기
·
개발 기록
현재 프로젝트의 서버 개발을 담당하고 있다.진행중인 프로젝트는 여러 외부 API에 의존하는 구조를 가지고 있다. 그중 일부 API는 서비스의 핵심 기능과 직접적으로 연결되어 있으며, 호출 정책을 위반할 경우 단순한 오류가 아니라 서비스 전체 기능이 중단될 수 있는 리스크를 내포하고 있다. 🚨 문제 상황: 외부 API Rate Limit과 24시간 Ban비즈니스로직에서 상품 정보를 정확하게 조회하기 위해 외부 커머스 API를 사용하고 있다. 개발 중 API 문서를 확인하던 과정에서 다음과 같은 정책을 확인했다.분당 최대 50회 호출 가능제한 초과 시 24시간 동안 API 호출 차단이 정책은 단순히 "잠시 후 다시 시도하라"는 응답을 주는 수준이 아니었다. 한 번의 실수로 하루 동안 서비스의 핵심 기능이 ..