2025/03 19

SSE란??

서버에서 클라이언트로 보내고 싶을때가 있다. 그럴때는 웹소켓을 해야만 하는줄알았는데, 그것 말고 HTTP 기반으로 동작하는 방식이 있어서 정리!!   SSE의 주요 특징단방향 통신: 서버에서 클라이언트로의 데이터 전송만 지원!!HTTP 기반: HTTP 프로토콜을 사용하므로 별도의 프로토콜이 필요하지 않음자동 재연결: 연결이 끊어지면 자동으로 다시 연결합니다.이벤트 스트리밍: 여러 이벤트 유형을 전송할 수 있으며, 각 이벤트에 대해 커스텀 이벤트 타입을 지정할 수 있습니다.텍스트 전송: 데이터는 항상 UTF-8 인코딩의 텍스트로 전송됨.                                                                 SSE                            ..

TIL 2025.03.25

토스 3년차 백엔드 과제 후기

토스 3년차 이하 개발자 서류 통과 후에 과제가 있다. 처음부터 빈 프로젝트에서 하는게 아니고 기존 코드 리팩토링이나 수정사항이 문제로 주어진다. 재밌었다. 이렇게도 문제  내는구나~  근데 여기서 질문 있을 수 있다! 걍 GPT 쓰면 되는거 아님??? 결론부터 말하면 쓸수는 있다! 근데 LLM 여부 검사한다고 한다. + 서술형으로 코드의 근거 등을 제출해야 할 수 도 있음!! 재밌었다!!  몰랐던 개념도 알게되고.. 또 비슷한 과제 있으면 풀어보고싶다~

카테고리 없음 2025.03.21

트래픽 처리 부하테스트 일기

Troughput + latency TPS  ( Troughput ) 처리량. // RPS 랑 비슷함.100tps임.  latency : 요청에 대한 응답 시간임.평균 응답시간! 을 레이턴시라고 함.  부하테스트 툴은 암거나 써도 된다. 우선 k6 로 해보면 이미 서버가 있다고 가정하고, ec2로 인스턴스 하나 만든다. 주의사항 : 프리티어 말고 t3a.small 정도로 해야함. 그래야 충분한 부하 가능 EC2에서 5665 포트 열어주고,   설정하고 들어가서 아래 코드를 치면 k6가 설치된다. sudo gpg -k && / sudo gpg --no-default-keyring --keyring /usr/share/keyrings/k6-archive-keyring.gpg --keyserver hkp://..

TIL 2025.03.20

node-js ec2 명령어

EC2에서 node-js 다운명령어입니다~~ 저장용인데 쓰시면 됩니당 sudo su 명령어로 들어간다음에 apt-get update && \ apt-get install -y ca-certificates curl gnupg && \ mkdir -p /etc/apt/keyrings && \ curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | sudo gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg && \ NODE_MAJOR=20 && \ echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node..

TIL 2025.03.20

k8s 서비스

서비스.. 그냥 대충 연결.. 이정도로 알았는데 좀 알아보자. 서비스 : 파드 앞단에서 균등하게 요청을 분배해주는 역할을 하는 친구!! 로드밸런서 + 사용자로부터 요청을 받는 역할도 함 spec: type: NodePort selector: app: backend-app # deployments의 label과 일치해야함.!! ports: - protocol: TCP port: 8080 # 쿠버네틱스 내부에서 Service에 접속하기 위한 포트 번호 targetPort: 8080 # 파드의 포트번호 nodePort: 30000 #외부에서 접근할 수 있는 포트#서비스도 독립적인 네트워크 환경임!! 파드랑 또 다름 Service가 종류가있음. 1. NodePor..

TIL 2025.03.20

k8s 잠시

1포트포워딩 함. ( 이유 : 파드 외 내부 네트워크가 달라서) 그래서 localhost:80 으로 못들어감 따라서 kubectl port-forward pod/nginx-pod 80:80 같이 해야함  + 아래 같은 경우, 실제로 ports: 아래 부분은 의미가없음. 가독성만을 위한거임 . 실제로 8080 한다고해서 nginx가 8080으로 띄워지지 않음 spec: containers: - name: nginx-container image: nginx ports: - containerPort: 80        명령어 잠시 저장(kubectl get pods kubectl port-forward pod/파드명 [로컬포트]/파트포드] 내부 접속 kubectl e..

TIL 2025.03.20

https 아니고 http면..?

뭐 보안은 안좋다는거 알겠는데.. 왜지? 라고 궁금했다. 그냥 구현했을뿐.. 그리고 클라이언트가 https면, 서버는 http면 안된다길래 왜..? 라고 했는데 이유가 있었다. 우선 보안  어떻게 훔쳐보는거지? -> 공용 Wi-Fi (MITM 공격 가능)스타벅스, 공항, 카페 등에서 제공하는 공용 Wi-Fi를 사용할 때 발생.같은 네트워크를 공유하는 모든 사용자의 패킷을 감청할 수 있음.같은 로컬 네트워크 (LAN)같은 네트워크 안에 있으면 ARP 스푸핑 등으로 패킷을 가로챌 수 있음. 예: 회사 내부망, 기숙사 Wi-Fi, 공유기 해킹.라우터 해킹 (ISP 스니핑)라우터나 인터넷 제공업체(ISP)에서 패킷을 감청할 수 있음.국가 기관, 검열 시스템 등이 이 방법을 활용. 보통 Wireshark 라는 패..

카테고리 없음 2025.03.19

CSRF 해결책

CSRF(크로스 사이트 요청 위조, Cross-Site Request Forgery)는 사용자가 원치 않는 요청을 보내게 만드는 공격임  CSRF가 어떻게 일어날까? 네가 은행(A사이트)에서 로그인 함.브라우저에 자동 로그인 유지되는 쿠키(세션) 저장됨.즉, 다시 로그인할 필요 없이 바로 계좌이체 가능.해커가 악성 사이트(B사이트)를 운영함.B사이트에는 숨겨진 HTML 폼이나 자동 요청 코드가 있음.네가 B사이트를 방문하는 순간, 자동으로 A사이트에 요청이 날아감.A사이트(은행)는 네가 이미 로그인된 상태이므로, 자동 로그인 쿠키가 함께 전송됨.즉, 요청이 네가 직접 보낸 것처럼 보임!  해결책 )  CSRF Token 사용  서버에서 랜덤한 토큰을 발급하고, 요청마다 확인하는 방식임. -> Spring..

TIL 2025.03.19

sql injection / XSS 예방법

1. SQL InjectionSQL Injection은 웹 애플리케이션의 데이터베이스를 공격하는 방법! 개념: 공격자가 웹 애플리케이션의 입력 필드에 악의적인 SQL 코드를 삽입하여 데이터베이스를 조작하는 공격임 ' OR '1'='1위 코드를 로그인 필드에 입력하면, 원래 쿼리가 SELECT * FROM users WHERE username='' OR '1'='1' AND password='password''1'='1'은 항상 참이므로 인증을 우회할 수 있습니다. 예방법:Prepared Statements 사용하기입력값 검증 및 이스케이프 처리ORM(Object-Relational Mapping) 활용데이터베이스 권한 최소화  -> ORM 쓰면 대부분 해결. BUT 네이티브 쿼리 사용시나 동적쿼리 만들때..

TIL 2025.03.19

spring servlet 정리.

면접때 서블릿을 물어봤는데 어정쩡.... ㅜㅜㅜ 정리좀하자 정리해보자. 1. 서블릿(Servlet)이란?서블릿은 Java EE기반의 웹 애플리케이션에서 클라이언트 요청을 처리하고 응답을 생성하는 서버측 컴포넌트임.즉, HTTP 요청을 받고, 비즈니스 로직을 수행하고, HTTP 응답을 반환하는 역할을 하지. 🌟 서블릿의 주요 특징클라이언트 요청을 처리하고 응답을 생성HTTP 프로토콜을 기반으로 동작 (HttpServlet을 상속받음)싱글톤 패턴으로 관리 (기본적으로 하나의 인스턴스가 여러 요청을 처리) 2. Spring에서 서블릿의 역할Spring 프레임워크에서 서블릿을 직접 다루지는 않지만, 내부적으로 DispatcherServlet이 핵심 역할을 함!🔥 DispatcherServlet이란?Sprin..

TIL 2025.03.17