CS 5

WebSocket(STOMP) 정리

WebSocket웹 서버와 양방향 통신을 가능하게 해주는 프로토콜이다.웹 서버는 기본적으로 단방향 통신으로 요청을 받으면 응답을 해주는 친구인데,간단하게 식당가서 주문하지 않는 음식은 안가져다 준다는 거다.WebSocket을 제외한 양방향 통신 구현물론 WebSocket 없이 양방향 통신은 가능하다. 보통 Polling을 사용하는데이는 클라이언트가 일정 주기로 서버에 요청을 보내 새로운 데이터를 받아오는 방식이다.쉽게 말해 식당에서 주기적으로 주방장한데 음식 언제나오냐 재촉하는거라 생각하면 편하다. Polling 방식으로도 양방향 통신이 가능하지만 문제점이 몇가지 존재한다.1. 실시간 성이 떨어짐서버에 주기적으로 요청을 보내 데이터가 준비됐는지 확인을 하는 방식은 실시간성이 떨어진다.2. 불필요한 네트워..

CS 2025.02.02

데이터가 많은 경우 성능 개선

데이터가 많을 경우의 성능 개선에 대해 공부를 해봤다. MySQL을 Raspberry Pi 3 Model B+에 올려서 실행했다. Row: 45,034(중간에 Raspberry Pi가 열받아 죽어버려서 어중간한 개수가 됐다.) 데이터는 더미 데이터를 활용했다..DELIMITER $$DROP PROCEDURE IF EXISTS loopInsert$$ CREATE PROCEDURE loopInsert()BEGIN    DECLARE i INT DEFAULT 1;            WHILE i 1. DB 접속2. 사용 할 Schema 접속(use weather;)3. SQL 파일 실행(SOURCE {Path.sql})성능 개선 차이를 알기 위해 기본 읽기 성능을 먼저 알아보자.488 ms485 ms500 ..

CS 2025.01.24

Json Web Token의 문제 해결

1. Json Web Token 탈취Json Web Token에 경우 복호화가 쉽기 때문에 탈취되었을 경우 민감한 정보 노출 문제가 생길 수 있습니다.이는 Session 방식과 Json Web Token 방식 비교에서 확인 하실 수 있습니다. 저희 서비스에서는 Json Web Token에 민감한 정보를 포함하지 않도록 하여 해당 문제를 보완했습니다.Json Web Token 포함 데이터: id, username, role 또한 Json Web Token이 탈취 되었을 경우 사용자의 민감한 데이터에 접근이 가능하며 이를 악용할 수 있는 문제가 있습니다. 저희 서비스에서는 Json Web Token의 유효시간이 10분으로 짧게 하여 탈취되었을 때의 문제를 최소화 시켰습니다.2. 짧은 로그인 시간Json We..

CS 2025.01.16

Session 방식과 Json Web Token 방식 비교

Session 방식방문자가 웹 서버에 접속해 있는 상태를 하나의 단위로 보고 그것을 Session이라고 한다.웹 서버는 이러한 각 단위에 세션 ID를 부여하고 같은 브라우저인지를 구별한다.Session 방식의 작동 원리1. 클라이언트가 서버에게 Login 요청을 한다.2. Login이 성공하면 세션 객체를 생성하고 세션 ID를 Set-Cookie를 통해 클라이언트에 전달한다.3. 세션 객체는 서버에 저장된다.4. 클라이언트가 서버에 요청할 때 마다 요청 헤더에 세션 ID가 전달된다.5. 서버에서 클라이언트로 받은 세션 ID를 확인해 세션 객체를 검색해 인가를 진행한다. 장점1. 쿠키 방식과 동일 하지만 쿠키에 아무런 정보가 없어 해석이 불가능 하다 단점1. 서버에 세션 객체를 저장하기 때문에 사용자가 많..

CS 2025.01.16

왜 테스트 코드를 사용해야 하는걸까?

버그 발견코드가 예상대로 작동하지 않을 때, 테스트 코드를 통해 문제를 빠르게 찾을 수 있다.어떻게 버그를 발견 할 수 있을까?작성한 테스트 코드를 실행하여 예상된 결과와 실제 결과를 비교하여작성한 로직이 정상적으로 실행이 되는지 확인이 가능하다.예상된 결과와 실제 결과가 다르다면 테스트가 실패하게 된다. -> 로직이 잘못되었음회귀 방지테스트가 있다면 새로운 기능을 추가하거나 수정할 때 기존 기능이 영향을 받지 않았는지 확인이 가능하기 때문에 안전하게 수정이 가능하다.회귀 버그소프트웨어에서 기존에 정상적으로 작동하던 기능이 새로운 변경이나 업데이트로 인해 발생하는 오류이다.이러한 버그는 코드 수정, 새로운 기능 추가 등 다양한 이유로 발생할 수 있다. 변경 사항 추적테스트 실행: 코드 변경 후, 기존의 ..

CS 2024.10.18