제11회 빅데이터분석기사 합격 후기
·
Study/Others
어떻게 합격하여 이렇게 합격 후기를 작성하게 됐다.필기는 어찌 한방에 합격했지만 실기는 그렇게 자신이 있진 않았다.필기에서 공부한 개념들을 실기에서 내가 제대로 코드로 쓸 수 있을까? 라는 의문이 있었기 때문.그래도 합격했으니 참으로 다행이라고 생각한다. 점수 잘 난 점수는 아니지만...합격했다는 것이 중요하다! 배경빅데이터분석기사 공부 시작 전 나의 상황 1. 컴퓨터공학 전공2. 파이썬으로 필요한 프로그램 작성해 활용한 경험 有3. 통계 문외한 - 학부 때 통계과목 1학기 수강 그냥 코드 작성에만 좀 익숙한 완전한 노베이스 상태였다. 사용한 교재 https://www.aladin.co.kr/shop/wproduct.aspx?ItemId=343937260 2025 이기적 빅데이터분석기사 필기 기본..
AI로 MSA 서버 만들어 보기 #4 : Write-Behind
·
Study/C++ & C#
1. 컨셉단순한 서버는 "DB 트랜잭션이 끝나야만 유저에게 OK를 보낸다"는 Write-Through 방식을 많이 사용한다.하지만, 이는 DB가 병목이 될 경우 전체 서버의 반응성을 크게 저하할 수 있다.Write-Behind (Write-Back) 패턴은 이를 해결할 수 있다.Memory First: 메모리(또는 빠른 캐시인 Redis)에 먼저 쓰고, 유저에게 즉시 OK를 준다.Disk Later: 실제 견고한 저장소(RDBMS)에는 별도의 워커가 천천히, 모아서 기록한다.본 서버는 이 패턴을 Redis Streams를 통해 구현했다. 2. 아키텍처Decoupling: 채팅 로직(Fast)과 저장 로직(Slow)이 완벽히 분리된다.Peak Load Handling: 트래픽이 폭주하면 Redis Stre..
AI로 MSA 서버 만들어 보기 #3 : Gateway
·
Study/C++ & C#
1. 아키텍처 개요Gateway는 클라이언트와 서버(Game Server) 사이의 Single Entry Point이다.Nginx나 HAProxy 같은 범용 LB와 달리, 세션의 상태를 파악하고 세션 유지(Stickiness)를 수행하는 커스텀 L7 프록시이다.서버가 지속적으로 Redis에 하트비트를 보내 살아있음을 알린다.Gateway는 Redis에서 서버 상태를 읽고 적절히 트래픽을 분산한다. 2. 주요 책임L7 Load Balancing: 서버들의 부하(접속자 수)를 모니터링하여 최적의 서버로 트래픽을 분산한다.Session Binding (Stickiness): 유저가 잠시 연결이 끊겼다 재접속해도, 로직 처리를 위해 반드시 이전에 접속했던 서버 인스턴스로 보내준다.지금의 단순한 채팅 서버에선 필..
AI로 MSA 서버 만들어 보기 #2 : Server
·
Study/C++ & C#
이전에 Core 라이브러리에 대해 설명했다.여기선 해당 라이브러리를 활용해 작성된 Server에 대해 얘기해 보자.1. 아키텍처 철학Server는 "Massively Chat Server"를 지향하며, 다음 3가지 핵심 철학을 지향한다.Gateway-Centric Architecture:클라이언트는 오직 Gateway(w/ L7 Load Balancer)하고만 연결한다.Gateway는 뒷단에 있는 N개의 Server Node 중 하나로 트래픽을 전달한다.Effect: 서버 노드 추가/삭제가 자유롭고(Elasticity), 클라이언트는 IP 변경 없이 그대로 사용 가능.Safety First (Concurrency):Global Mutex + JobQueue: 모든 패킷 처리는 I/O 스레드에서 분리되어 ..
AI로 MSA 서버 만들어 보기 #1 : Core
·
Study/C++ & C#
백엔드란 어렵다.특히 그게 IOCP라면 더욱더.네트워크에 대한 지식뿐만 아니라, IOCP에 대해서도 이해가 필요하다.이전에 ``Boost.Asio``를 통한 서버 공부를 진행했지만, 마음처럼 되지 않았다. 하지만 지금이 어떤 시대인가?대 AI 시대가 열렸고, 엄청난 성능의 모델이 등장했다.지금이라면 내가 원하는 형태의 코드를 AI가 작성해 줄 수 있고, 실제로 동작하는 그러한 코드들을 보며 공부할 수 있다.때는 ``GPT-5``가 갓 나왔을 때. "AI로 ``Boost.Asio``를 기반으로 한 Windows와 Linux 양쪽에서 사용할 수 있는 멀티 플랫폼 서버를 만들어 보자"라고 생각했다. 시작은 ``GPT-5``였지만, ``GPT-5.1``, ``Claude Sonnet 4.5``, ``Gemini..
제11회 빅데이터분석기사 필기 짧은 후기
·
Study/Others
내가 이걸 공부하게 될 줄이야.어쩌다 불가항력으로 인해 공부하게 됐다.공부해서 손해 볼 건 없지.언젠간 내 인생에 도움이 되지 않겠나? 6월 즈음에 책을 주문해 공부를 시작했다.정보처리기사 공부할 때를 생각하고 이걸 빨리 보고 다른 출판사의 교재도 보겠노라 생각했었다.생각해 보면 내 전공이 전공인 만큼 정보처리기사는 공부 요구량이 대단히 적었다.게으름 이슈도 있고 통계라곤 대학 시절 1학기만 들은 것이 다였다.하지만 그것조차 제대로 하지 못했기에 저거 다 보는 것만으로도 벅찼다.한 마디로 요약하자면 "아는 게 하나도 없는 노 베이스" 상태였다는 것이다. 잘 기억이 나지 않거나 처음 보는 개념들을 열심히 외워야 했다.CRISP-DM 방법론의 진행 순서는 뭐고 데이터의 품질 지표는 뭐고...뭐 중간에 익숙한..
[JS] 디스코드 봇에 PLL 정보 출력하게 하기
·
Study/Javascript
KupoBot이라는 FF14 관련한 많은 기능을 제공하는 봇이 있다.그런데 이것이 요즘은 꽤 답답하다.시대가 언젠데 슬래시 커맨드도 안되고... 주로 요청하게 되는 정보는 점검과 PLL 관련 정보인데,아마도 관리자가 직접 정보를 삽입하는 것 같다.공지가 올라온 지 한참 지났음에도 정보를 가져오지 못한다. 점검 같은 경우는 정규식으로 RSS Feed를 파싱해 최신 점검 정보를 가져오게 해 놨다.한번 파싱 하면 그걸 저장해 놨다가 재활용한다.PLL도 그런 식으로 파싱 할 수 있으므로 똑같은 흐름으로 명령어를 만들게 됐다. 1. 그전에 점검 파싱부터먼저 점검 정보 파싱이 어떻게 이루어지는지 보자. async function getMaintData() { const feedUrl = "https://jp.fi..
리눅스 업데이트 미러에 카카오 미러 적용
·
Study/Others
간만에 라즈베리 파이를 켜서 이것저것 설정했다.업데이트 경로를 바꾸려는데, 원래 하던 대로 수정하려고 하니 이런 창이 날 반긴다. ``/etc/apt/sources.list.d/ubuntu.sources``라는 경로로 옮겼다는 내용이다.그럼 저기로 가보자. 오우... 먼가 다르긴 다르다.찾아보니, 다음과 같은 내용을 아래에 추가하고 저장하면 된다. # Kakao Update PathTypes: debURIs: http://mirror.kakao.com/ubuntu/Suites: noble noble-updates noble-securityComponents: main universe restricted multiverseSigned-By: /usr/share/keyrings/ubuntu-archive-k..
티스토리 인라인 코드 태그 래핑 스크립트
·
Study/Javascript
티스토리엔 다음과 같이 코드 블럭을 넣을 수 있습니다.#include #include using namespace std;int doubleDotProduct(const vector& a, const vector& b);int main() { vector vec1 = {1, 2, 3}; vector vec2 = {4, 5, 6}; int result = doubleDotProduct(vec1, vec2); cout 티스토리에서 자체 지원하는 기능이라 사용이 매우 간편합니다. 그런데 ``인라인 코드``를 넣으려면 어떻게 해야 할까요?마크다운 에디터를 쓰거나 html 에디터로 가서 ````와 ````를 필요한 곳에 일일이 지정해 주어야 했습니다.일반 에디터에서도 지원하는데 제가 ..
[C++] 채팅서버에 DB 실장
·
Study/C++ & C#
하기는 금방 했는데, 인생 한 치 앞을 알 수가 없게 돼서 이제야 올린다.  1. DB 설치MariaDB를 사용하기로 했다.Sapphire 프로젝트에서 MariaDB를 사용하고 있기도 하고,나중에 샤딩을 위해서도 좋지 않을까 싶었다. C++에서 마리아 DB와 연동하기 위해선 MariaDB Connector/C++가 필요하다.설치 후 포함 및 라이브러리 경로를 프로젝트 설정에서 잡아주면 끝.  2. DB 구조 잡기유저들은 무작위 16진수 문자열 배열을 ID이자 닉네임으로 사용하게 된다.로그인도 필요 없고 서버에서 임의로 부여한다.오고 가는 것은 클라이언트가 접속했는지, 어떤 채팅을 쳤는지 정도일 뿐이다. 사용자 정보 - 부여받은 ID - IP 주소 - 최초/최근 접속 시간대화 정보 - 메시지를 보낸 사용자..