EC2 인스턴스 생성, 보안 그룹 설정, 탄력적 IP 등등은 모두 설정되어 있음을 가정합니다. 1. 필수 프로그램 설치 (JDK, Nginx)# 1. JDK 17 설치sudo dnf install java-17-amazon-corretto -y# 2. Nginx 설치sudo dnf install nginx -ysudo systemctl start nginxsudo systemctl enable nginx 2. Swap 메모리 설정 : oom 방지를 위해 Swap 메모리를 설정# 1. 스왑 파일 생성 (2GB)sudo dd if=/dev/zero of=/swapfile bs=128M count=16# 2. 권한 설정sudo chmod 600 /swapfile# 3. 스왑 영역 지정sudo mkswap /s..
전체 글
KTX의 빈자리 알림을 보내주는 서비스를 개발하고 있습니다. 시작에 앞서 이 글은 EC2 한대로 최소 중단 배포를 구현하며 겪었던 고민이나 문제 상황만 다룹니다.실제 구현 내용이 궁금하신 분들은 아래 블로그 포스팅을 참고 바랍니다. https://yjh0107.tistory.com/170 [자리나따] EC2 한대로 최소 중단 배포 구현하기 (실전편)EC2 인스턴스 생성, 보안 그룹 설정, 탄력적 IP 등등은 모두 설정되어 있음을 가정합니다. 1. 필수 프로그램 설치 (JDK, Nginx)# 1. JDK 17 설치sudo dnf install java-17-amazon-corretto -y# 2. Nginx 설치sudo dnf install ngyjh0107.tistory.com 1. 서론: 왜 단일 E..
KTX의 빈자리 알림을 보내주는 서비스를 개발하고 있습니다. 발생한 문제서비스의 베타 테스트 중,안정성 체크를 위해 8일 분량의 열차 운행 데이터(약 200만 건)를 DB 에 적재 후 테스트를 했습니다.이때, 핵심 기능인 열차 검색 API의 응답 속도가 현저히 느려지는 문제를 APM을 통해 발견했습니다.성능 저하의 원인을 파악하고 개선의 기준점을 마련하기 위해, K6를 EC2에 설치해 현재 시스템의 RPS와 Latency를 측정하기로 했습니다. 성능 개선 전 (TPS, 지연 시간)1. 부하테스트 (0.4RPS)10분 동안 가상 유저 수가 50명에 도달 하도록 증가 시켜 성능을 측정한 결과는 아래와 같습니다.아래 지표를 보면 HTTP Request Duration에서 요청 하나의 평균 처리 시간이 40초를..
JSCODE CS 스터디에 참여하게된 계기여러 사람들과 공통 주제에 대해 공부하고, 서로 블로그에 작성한 내용에 대해 피드백하고, 이를 면접처럼 서로 질문을 주고 받는 과정에서 제가 모르는 부분을 더 많이 배워갈수 있다고 생각하여 참여하게 되었습니다. 스터디를 통해 개인적으로 성장한점우선 면접에 대한 두려움이 조금이나마 덜어졌으며, 잘못 알고 있던 개념을 피드백을 통해 바로 잡을수 있어서 매우 좋았습니다. 느낀점스터디를 하면서 제가 공부한 내용에 대해 피드백을 받는 것이 큰 도움이 된다는 걸 느꼈습니다. 잘못된 부분을 집단지성으로 바로잡을 수 있기 때문입니다.나중에 취업을 하게 된다면 코드 리뷰, 스터디 문화가 잘 잡힌 회사에서 일하고 싶습니다. 함께 공부하며 피드백을 주고 받는 과정이 개발자로서 성장하..
UDP- 비연결적 프로토콜, 연결과 연결 종료가 없다. (3 way Handshake 같은거 안함)- 데이터 순서가 중간에 바뀐다고 해도 정렬 X- 소켓을 활용해 IP와 PORT를 기반으로 데이터를 전송- 헤더가 작아서 오버헤드 적음Source port : 시작 포트Destination port : 도착지 포트Length : 길이Checksum : 오류 검출 → 데이터가 중간에 손상되지 않았는지 확인하는 데 사용 장점- 연결하지 않고 보내니까 빠르다- 오버 헤드가 적음- 1:1, 1:N, N:N 통신이 가능 단점- 신뢰성이 낮다 (패킷 손실되어도 재전송 x, 패킷 순서 보장 x) 신뢰적 데이터 전송전송 후 대기 프로토콜- 데이터를 전송 후 수신자로부터 ACK를 받을때 까지 대기하는 방식 파이프라인 ..
쿠키- 클라이언트(브라우저)와 서버 간의 상태 정보를 저장하고 주고받기 위한 작은 데이터 조각- key=value 값으로 이뤄진 간단한 텍스트 - 탈취 될 위험 큼 구성요소값 (Value : 저장할 쿠키의 이름과 값)생명주기 (Expires : 만료일 설정)경로 (Path : 해당 페이지 경로에서만 쿠키 사용 접근이 가능)도메인(Domain : 해당 도메인 페이지에서만 쿠키 사용 접근이 가능) 생성방법- response header 에서 Set-cookie 영역에서 설정할 쿠키의 이름 , 값 , 쿠키의 옵션 등을 담아 전송 사용 예시- 세션 관리 : 인가 작업- 개인화 : 다크모드, 광고 그만보기- 트래킹 : 사용자의 행동을 기록하고 분석 (Google Analystic) 세션- 쿠키와 마찬가지로 상태가..
HTTP란- 웹 브라우저가 서버랑 통신하기 위해 만들어진 규칙 HTTP의 요청/응답 모델- HTTP 요청 모델1. HTTP 요청 메서드 (GET, POST..)2. URL 경로3. HTTP 프로토콜 버전 정보4. 헤더들5. HttpRequest Body - HTTP 응답 모델1. HTTP version2. Status Code (200, 201...)3. Status Text (OK, CREATED..)4. 헤더들5. HttpResponse Body HTTP 메서드- GET1. GET은 주로 읽기, 검색을 할 때 사용되는 메서드2. GET은 멱등하다3. 200 OK를 주로 반환 받는다.4. 요청할때 주로 QueryString에 데이터를 담아 보낸다.5. Body가 없다.6. 캐시 가능 - POST1. P..
컴퓨터 네트워크란?- 클라이언트, 서버, 라우터, 스위치 등 네트워킹 장비끼리 서로 연결되어 데이터를 주고 받을수 있는 통신망 데이터 전송 방식1. 회선 교환 방식- 네트워크 회선을 미리 점유해서 1대1 연결 - 음성 전화 시스템에 사용- 장점 : 대용량, 고속 데이터 처리에 우수, 연속적인 데이터 처리에 우수- 단점 : 회선을 효율적으로 사용 못함 2. 패킷 교환 방식- 데이터를 패킷 단위로 네트워크 망에 뿌림- 패킷에 몇번째 데이터인지, 최종 목적지 정보가 있어서 나중에 정렬해서 맞춤- 장점 : 회선 이용률 높음, 에러에 강함- 단점 : 경로 탐색 과정에서 지연, 패킷 추가로 오버헤드 프로토콜이란?- 네트워크에서 데이터를 주고 받기로 한 통신 규칙 (이렇게 보내자고 한 약속)- ex) HTTP, H..