싸피 3개월차.. 합격후기 쓰려고 했던거 까먹고 지금 쓰기 시작했습니당사실 어디까지 말해도 되는지 몰라서 조금 모호하게 작성했습니다ㅜ싸피 하게 된 이유?! 자바나 알고리즘 강의를 들으면서 밥도 무료로 먹을 수 있고, 매달 100만원이 안정적으로 들어온다는 점에서 취준하기에 최적화된 환경이라 생각해서 싸피에 들어가기로 결심했습니다! 2025년 8월 졸업 예정이었기에 바로 14기에 지원했습니다.싸피 서류 준비사실 서류는 특별히 더 신경써서 준비하진 않았습니다!내가 무엇이 부족하고 싸피에서 어떻게 채워나갈 수 있는지를 명확하게 작성하려고 했습니다. 면접에서 자소서를 바탕으로 질문이 들어올테니 구체적으로 작성하기 보다는 질문거리를 만드는 느낌으로 작성했습니다.그렇지만 지피티 돌린 것처럼 추상적인 말은 아니었습니..
실시간 게임 듀오 매칭 서비스 겜구에서 소켓 부분은 nodejs 의 socket.io 라이브러리를 활용해서 개발했습니다. 어느날부터 계속해서 소켓 서버가 죽는 문제가 발생했습니다...로그를 살펴보니, 매칭 객체를 제대로 초기화하지 않아서 생긴 문제였습니다. 1. socket.data.matching 객체 초기화 문제기존에는 socket.data.matching=null으로 초기화했습니다. 이렇게 했더니 NullPointException이 발생해서.. 다음과 같이 resetMatchingObject 메서드를 만들어서 초기화를 진행했습니다.function resetMatchingObject(socket) { socket.data.matching = { gameMode: null, ..

예전부터 주구장창 이 에러가 discord back-monitoring 채널에 올라왔다. gamegoo 백앤드 서버는 back-git-pr, back-deploy, back-monitoring을 통해 Github, CICD, AWS를 연동해서 서버 상태를 확인한다. 에러가 발생할 경우 back-monitoring에 다음과 같이 에러 메세지가 올라온다.예외 메시지를 보자마자 @Version 안 썼는데 왜... 동시성 오류가 났을까라는 생각이 들었다. 문제 원인 파악 문제의 중심은 로그인 시 발급되는 RefreshToken 저장 로직이었다. /** * 리프레시 토큰 생성 * * @param member 로그인한 회원 * @param refreshToken 리프레시토..

문제 상황프론트 개발자님으로부터 매칭 중 문제가 발생했다는 연락을 받았다.- sender(A)는 matching-fail 발생- receiver(B)는 matching-found-success emit까지 완료- 그러나 sender에게 matching-found-sender가 전송되지 않음 즉, receiver만 매칭 flow가 진행되었고 sender는 중간에 매칭이 진행되지 않는 상황이었다.문제 확인곧바로, 해당 시간대의 8080 Java Spring API 서버와 3000 NodeJS socket.io 서버 로그를 확인했다. 다음은 그 중 해당 에러와 관련된 로그만 캡쳐해온 사진이다. 다음 UML은 각 매칭 flow를 figma에 그린 것이다. 다음 flow는 매칭 성공 flow의 일부분이다. 실시..
안녕하세요! 열심히 서비스를 만들었지만,, 트러블슈팅도 많이 해봤지만,, 노션에만 정리하고 정작 블로그에 포스팅한 트러블 슈팅이 없다는 것을 깨닫고 하나씩 작성해보려합니다. 처음엔 단순한 매칭 실패처럼 보였는데, 깊이 파고들다 보니 null 처리 누락, DB 접근 예외, 컬렉션 수정 중 예외, 구조 분리 등제법 복잡하고 중요한 문제들이 얽혀 있더라고요. 이번 글에서는 그 과정을 어떻게 추적하고, 해결했는지를 공유해보려 합니다.문제 상황매칭 요청을 보냈는데, 클라이언트에서는 응답이 오지 않고, 소켓 서버(3000번 포트)에서도 matching-started가 emit되지 않는 현상이 발생했습니다.딱 봐도 어딘가 중간에 끊긴 것 같았죠. 그래서 API 서버 로그와 Docker 로그를 확인해봤습니다.org.s..
안녕하세요! API를 만들고, 서버를 운영하며 과연 제가 만든 API는 성능이 어떨까 궁금해졌습니다.그래서!!! 성능테스트를 하기로 마음 먹었습니다.오늘은 성능테스트에 대해서 공부한 겸, 공부한 내용을 정리해볼까합니다. 성능 테스트를 왜 할까? 개발을 하다 보면 “우리 서버는 몇 명까지 감당할 수 있을까?” “어떤 API가 병목일까?“와 같은 고민을 하게 됩니다.이를 확인하기 위해 필요한 것이 바로 성능 테스트입니다. 성능을 어떻게 측정할까?1. Latency (지연 시간)요청자가 보낸 요청이 응답을 받을 때까지 걸리는 시간예: 고속도로의 제한 속도에 비유할 수 있어요.2. Throughput (처리량)서버가 단위 시간 안에 처리한 요청의 수 (RPS: Request Per Second)예: 고속도로..
모빌리티모빌리티 == 이동성교통수단에 IT가 접목된 것사전적 의미 : 어디든 자유롭게 이동할 수 있다는 것단순한 교통수단을 넘어 도시 인프라, 에너지, 데이터 기술과 맞물린다.키워드전기화자율화연결성ex) 킥보드 : 모바일 폰으로 킥보드를 예약하고, GPS 기반으로 위치 정보를 알 수 있도록 되어있다.주요기술1. 자율주행사람의 개입 없이 차량이 스스로 주행하는 기술차량이 스스로 인지→판단→제어하는 능력을 갖는 것장점교통사고 감소 (인간 오류 제거)운전 시간 절약노인·장애인 등 교통 약자 지원 가능단점윤리적 문제 (사고 시 책임 소재)도심 환경에서의 인식 오류인프라 부족 및 법·제도 미비해결 방안고정밀 지도와 AI의 강화학습 결합, 윤리 기준 마련, 시범지역 확대 통한 실증 강화단계 명칭 설명Level 0비..
1. 블록체인의 등장 배경중앙 집중형 시스템은 오랜 기간 주요 서비스 구조로 사용되어 왔지만, 다음과 같은 구조적 문제를 안고 있었습니다. 보안 취약성 → 단일 서버가 공격당하거나 장애가 발생할 경우 전체 시스템이 마비됨투명성 부족 → 데이터의 처리 방식이나 이력이 일반 사용자에게 공개되지 않아 신뢰에 한계가 있음신뢰 비용 → 거래나 검증 시 제3자(은행, 기관 등)의 개입이 필요하여 수수료와 절차가 증가 이러한 문제를 해결하기 위한 대안으로 블록체인 기술이 제안되었으며, 비트코인의 핵심 기술로 전 세계적으로 주목을 받기 시작했습니다. 2. 블록체인의 개념데이터를 일정한 크기의 블록 단위로 묶고, 이를 시간 순서대로 연결하여 분산 저장하는 데이터베이스 구조 네트워크 참여자 전체가 동일한 원장(장부)을 ..
- Total
- Today
- Yesterday
- Linux
- 교환학생
- 자바스크립트
- MySQL
- 혼공단 SQL
- 스페인
- JS
- 공룡책
- 프로젝트
- 운영체제
- AWS
- 혼공
- Process
- 해커톤
- 혼공단 9기
- JavaScript
- 스페인 교환학생
- C++
- 백준
- 개발
- 혼공학습단
- googleapis
- SQL
- Signal
- 리눅스
- 혼공단
- 개발일지
- 프로그래머스
- 깃 예제
- nodejs
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |