목록CS (13)
백엔드 개발자
IP는 인터넷 프로토콜(IP, Internet Protocol)로 컴퓨터 네트워크에서 데이터를 패킷(packet) 단위로 송수신하기 위한 규칙이다.데이터를 목적지까지 안전하고 효율적으로 전달하는 데 필요한 핵심 프로토콜로, 인터넷을 비롯한 네트워크 통신의 기본 원리를 규정한다.OSI 7 계층에서 3계층인 네트워크 계층에서 사용하는 대표적인 프로토콜이다.IP 주소와 라우팅이때 네트워크 상에서 호스트들은 고유한 IP 주소로 식별되고, 출발지 IP 주소에서 목적지 IP 주소까지 전달하는데 라우터를 거치는 과정인 라우팅이 일어난다.IP 특징이런 IP의 특징은 비신뢰성 과 비연결성 이다.기본적으로 데이터가 손실되거나 잘못된 순서로 도착할 수 있으며, 데이터를 전송하기 전에 발신자와 수신자 간에 연결을 설정하지 않..
1. UDP의 개요사용자 데이터그램 프로토콜, User Datagram ProtocolUDP는 비연결형 프로토콜로, 송신자가 데이터를 수신자에게 보내기 전에 별도의 연결을 설정하지 않습니다. TCP와 비교하면 상대적으로 간단한 구조로, 데이터를 빠르게 전송하는 것을 목표로 합니다. 신뢰성보다 속도가 중요한 애플리케이션에서 주로 사용됩니다. TCP의 3-way handshake와 같은 연결 설정 과정이 없으며, 데이터 전송이 매우 빠르게 이루어집니다. 또한, UDP는 데이터의 신뢰성을 보장하지 않기 때문에 패킷 손실, 중복, 순서 뒤바뀜 등을 감지하거나 복구하지 않습니다.주요 특징:비연결성 (Connectionless): 데이터를 전송하기 전에 연결을 설정하지 않으며, 수신자의 응답을 기다리지 않고 계속 ..
1. TCPTCP는 연결 지향적이며, 신뢰성 있는 데이터 전송을 보장하는 전송 계층(Transport Layer)의 프로토콜입니다.TCP는 IP위에서 동작하는데, IP가 데이터를 목적지로 라우팅하는 역할을 한다면, TCP는 그 데이터가 정확하고 순서대로 도착하도록 관리하는 역할을 합니다. TCP는 패킷 손실, 패킷의 순서 뒤바뀜, 혼잡한 네트워크 상황 등 다양한 네트워크 문제를 해결하기 위해 고안된 여러 메커니즘을 포함하고 있습니다.TCP의 동작 흐름을 크게 보면 연결을 생성하고, 데이터 전송, 연결 종료의 순으로 이루어집니다.2. 3-Way Handshake (3단계 핸드셰이크)TCP는 연결 지향적 프로토콜이기 때문에, 데이터를 전송하기 전에 송신자와 수신자 간에 연결을 설정하는 과정이 필요합니다.이 ..
프로젝트 성능 개선을 위해 부하테스트 툴인 JMeter를 활용했다.그리고 특정 API에 대해서만 오류 80% 정도로 아주 높게 측정되었고, 해당 api를 보니 외부 api를 호출하는데 매 요청마다 호출하고 있었다. 이건 그날의 뉴스 정보를 가져오는 api라 캐싱하여 사용하기 위해 Redis를 이용하였다.그런데 오히려 성능이 더 떨어지고 다른 api들까지 오류가 났다.Redis를 살펴보니 메모리 사용률이 80퍼 였다.... // 이 명령어로 메모리 정보를 확인할 수 있다. redis-cli info memory //대략 이런 정보들을 확인할 수 있다. _human이 붙은게 우리가 보기 쉬운 형태로 변환해 준 값이다. 기본은 바이트 단위이다. # Memory used_memory:..
JOIN 두 개의 테이블을 합치는 것을 JOIN이라고 한다. JOIN을 하는 방법은 크게 4가지 정도가 있다. 설명을 위해 두 개의 테이블이 있다고 가정하겠다. User 테이블 user_id name age item_id 1 홍길동 20 1 2 최세은 25 2 3 이가경 25 3 Item 테이블 item_id name price 1 부활 1000 2 시간증가 500 INNER JOIN 우선 가장 많이 사용되는 JOIN 방법이다. A와 B테이블의 공통된 부분만 가져오는 것이다. 그냥 JOIN 명령어를 사용하면 기본적으로 INNER JOIN 을 한다. SELECT * FROM User A INNER JOIN Item B ON A.item_id = B.item_id 결과는 두 테이블에 공통적으로 존재하는 것만..