2025/03 5

트렐로 프로젝트 최종 회고록

1. 트렐로 프로젝트 간단한 구현 정리JavaScript로 백엔드 개발하는 건 편리하지만 잠재적인 위험성이 있음.예외 처리 미숙: 서버가 다운될 수 있다.실수 및 오류 파악의 어려움: 코드가 복잡해서 디버깅하기 힘들다.이런 단점을 극복하기 위해 TypeScript 사용. 코드 입력 시 에러 체크: 실시간으로 오류를 발견해서 안정성을 높인다.객체 지향 프로그래밍(OOP) 용이: 코드의 구조화와 재사용성을 향상시킨다.결국, 순수 JavaScript보다 TypeScript로 전환하는 추세가 늘어나고 있다. 안정성, 가독성, 생산성 면에서 JavaScript보다 강점이 있다. ORM(Object-Relational Mapping)ORM(Object-Relational Mapping)은 객체 지향 프로그래밍 언어..

카테고리 없음 2025.03.23

캐시 데이터 패턴 정리 – Cache Aside, Write Through, Write Back

서버에서 데이터 조회 및 저장 성능을 최적화하기 위해 캐시를 활용하는 것은 필수적이다. 하지만 단순히 캐시를 사용하는 것만으로는 충분하지 않으며, 데이터의 변경 빈도와 일관성 유지 방식에 따라 적절한 캐시 패턴(Cache Pattern)을 선택해야 한다. 이번 글에서는 MAFI4 프로젝트 대규모 사용자 대비 피드백에 관해, 캐시 데이터 활용을 해법으로 적용하기 전 간단한 패턴, 예시등을 정리하였다.1. 캐시를 사용하는 이유캐시는 일반적으로 메모리(RAM) 기반 저장소인 Redis, Memcached 등을 활용하며, 데이터베이스(DB)는 디스크 기반 저장소이다.캐시(Redis 등) vs. 데이터베이스(DB) 비교비교 항목캐시 (메모리 기반)데이터베이스 (디스크 기반)속도매우 빠름 (나노초 단위)상대적으로 ..

카테고리 없음 2025.03.18

최종 프로젝트 MAFI4 회고록

1. MAFI4 간단한 구현 정리메인 페이지 - 룸 리스트로 연결되는 버튼, 간단한 게임, 페이지 관련 정보 게시판 페이지 - 글 CRUD, 댓글 CRUD, 좋아요(토글 기반) 기능 구현 상점 페이지 DB 내 상품 정보 조회, 구매 시 내 포인트 차감(아이템 효과 적용은 미완성) 랭킹 페이지 DB 내 유저 테이블 포인트 컬럼 조회(개선 필요) 마이 페이지 게임 전적, 내 글, 내 댓글, 유저 테이블 조회 및 업데이트 룸 리스트 페이지 레디스에서 현재 룸 조회 룸(게임 방) 페이지 게임 서버와 웹소켓을 통한 이벤트 발행 및 구독, 게임서버 내 게임 로직으로 게임 진행 유저간 소통을 채팅으로 구현하기로 결정하였고, 실시간으로 유저간 소통을 구현하기 위해 웹소켓 반영 관리자 페이지 유저 테이블의 isAdmin..

카테고리 없음 2025.03.18

서버 부하 개선 효과를 정량화하는 방법 – 부하 테스트 및 성능 분석

트러블 슈팅과 서버 최적화를 진행한 후, 성능이 실제로 얼마나 향상되었는지를 객관적으로 측정하는 것이 중요하다. 이를 위해 부하 테스트(Load Test) 및 성능 모니터링 도구를 활용하여 서버 부하를 정량화하는 방법을 정리했다.이후 실제적인 테스트를 적용하지 않은 MAFI4 프로젝트에 적용하여 수치/정량 적 데이터 도출 예정.1. 개선 효과를 수치화하는 주요 성능 지표서버 부하 개선을 검증할 때 가장 중요한 성능 지표는 크게 서버 성능, 요청 처리 성능, DB 성능으로 나눌 수 있다.서버 성능 지표CPU 사용률: 서버의 CPU 사용량(%)을 의미하며, 트래픽 증가에도 일정하게 유지되는 것이 이상적이다.메모리 사용량: 서버의 메모리 사용량(%)을 나타내며, 불필요한 리소스 낭비 없이 안정적으로 유지되는 ..

카테고리 없음 2025.03.18

내일배움캠프 18주차 화요일 TIL

문제가 시작된 이유:글을 올리려고 할 때 "잘못된 요청(Bad Request)"이라는 에러가 발생했음.에러 메시지에 "유효하지 않은 JSON"이라는 내용이 포함됐음.초기 의심:파일을 업로드할 때 문제가 있을 것 같았음.문제가 어떻게 해결됐는지:요청 확인:글을 올리기 위해 클라이언트가 보내는 데이터에는 제목, 내용, 그리고 파일이 포함됐음. 이 데이터는 FormData 형식이었음.문제의 원인:클라이언트에서 데이터를 보낼 때, 모든 요청이 "application/json"으로 설정됐음. 그런데 파일을 보낼 땐 이 설정이 잘못된 거였음.그래서 서버가 JSON 데이터를 기대했는데, 실제로는 다른 형식의 데이터가 와서 오류가 발생했음.문제 해결 방법:글을 올릴 때 데이터가 FormData인지 확인하고, FormD..

TIL 2025.03.04