개발/컴퓨터네트워크

BlindTok (4) - Entity와 Service를 너머 API까지 Entity와 Service를 생성하며, 특이 사항들을 기록합니다. 파일을 어떻게 저장했는지, 친구 관계들을 어떻게 인덱스 하나로 처리했는지 등 제가 겪은 어려움을 기록합니다 File 기능 구현의 어려움 저희 서비스에서는 user의 이미지와 음악 파일들을 저장해야하기에 기존의 music 테이블을 지우고, file 테이블을 생성하도록 하였습니다. File Id에 UUID부여 uudi를 사용한 이유는 uuid를 사용하면 전역적으로 유니크한 아이디를 가지기 때문에 테이블에서 중복 문제를 해결 할 수 있습니다. 또한 pk를 자동으로 증가시키는 것보다 추측이나 예측이 어렵기 때문에 보안이 강화됩니다 import {v4 as uuidv4} f..
NAT(network Address translation) NAT(네트워크 주소 변환)는 인터넷에 연결할 때 로컬 네트워크의 여러 장치가 단일 공용 IP 주소를 공유할 수 있도록 하는 네트워킹 기술입니다. 사용 가능한 IPv4 주소의 수가 제한되어 있기 때문에 IPv4 주소 고갈 문제를 해결하기 위한 솔루션으로 NAT가 도입되었습니다. 종종 로컬 네트워크와 인터넷 사이의 게이트웨이 역할을 하는 라우터 및 모뎀과 같은 장치는 NAT와 유사한 기능을 수행합니다. 사용법 일반적인 홈 네트워크 시나리오에서 ISP(Internet Service Provider)는 DHCP(Dynamic Host Configuration Protocol)를 사용하여 가정에 단일 IP 주소를 할당합니다. 컴퓨터 및 스마트폰과 같은 ..
SSH의 포트포워딩 SSH 터널링이라고도 하는 SSH 포트 포워딩은 클라이언트 시스템에서 서버 시스템으로 또는 그 반대로 응용 프로그램 포트를 터널링하기 위한 SSH의 메커니즘입니다 SSH 포트 포워딩은 로컬 포트 ​​포워딩과 원격 포트 포워딩 의 두 가지 유형으로 분류할 수 있습니다. 로컬 포트 ​​포워딩 로컬 포트 ​​포워딩은 보다 일반적인 포트 포워딩 유형입니다. 사용자가 암호화된 SSH 터널을 통해 로컬 컴퓨터에서 다른 서버로 연결할 수 있도록 하는 데 사용됩니다. 이렇게 하면 액세스된 서비스 자체가 암호화되지 않은 경우에도 통신을 암호화된 상태로 유지하면서 원격 서비스에 안전하게 액세스할 수 있습니다. 원격 포트 포워딩 원격 포트 포워딩을 사용하면 원격 서버가 암호화된 SSH 터널을 통해 로컬 ..
· DEV/Backend
직렬화 (serialization) Java의 직렬화는 객체를 파일에 저장하거나 네트워크를 통해 전송할 수 있는 바이트 스트림으로 변환하는 프로세스입니다. 직렬화된 바이트 스트림을 다시 개체로 변환하는 역과정을 역직렬화라고 합니다. Java에서 직렬화는 클래스가 직렬화될 수 있음을 나타내는 Serializable 인터페이스와 보조 스트림를 사용하여 구현됩니다. 정확히는 Serializable 인터페이스는 클래스를 직렬화 가능으로 표시하는 데 사용되지만 실제 직렬화 프로세스는 개체를 읽고 쓸 때 추가 기능을 제공하는 보조 스트림인 ObjectOutputStream 및 ObjectInputStream 클래스를 통해 수행됩니다. ObjectInputStream과 ObjectOutputStream 생성자 설명 ..
거리 벡터 라우팅 알고리즘(Distance Vector Routing Algorithm) 거리 벡터 알고리즘은 동적 라우팅 프로토콜 중 하나로, 라우터가 이웃 라우터와 거리 정보를 교환하며 최적 경로를 찾아 라우팅 테이블을 업데이트하는 알고리즘입니다. 거리 벡터 알고리즘의 장/단점 아래의 장단점을 고려하여 거리 벡터 알고리즘은 주로 규모가 작고 변경이 덜 발생하는 네트워크에서 사용됩니다. 큰 네트워크에서는 링크 상태 알고리즘과 같은 더 복잡한 알고리즘이 사용되기도 합니다. 장점 간단한 구현: 거리 벡터 알고리즘은 상대적으로 간단한 구현으로 네트워크에서 동작하기 때문에 작은 네트워크에서는 효과적입니다. 자동화: 라우터들이 이웃 라우터와 거리 정보를 교환하고 라우팅 테이블을 자동으로 업데이트하므로 관리자의 ..
포이즌 리버스(Poison Reverse) 포이즌 리버스(Poison Reverse)는 라우팅 알고리즘에서 사용되는 기술로, 라우팅 루프(routing loops)를 방지하기 위해 쓰입니다. 이 기술은 라우팅 알고리즘 중 하나인 거리 벡터 라우팅 알고리즘(Distance Vector Routing Algorithm)에서 주로 사용됩니다. Count to Infinity Problem는 무엇인가 포이즌 리버스는 Count to infinity problem의 해결책이기 때문에 Count to infinity problem를 먼저 짚고 가야 합니다 Count to infinity problem은 거리 벡터 라우팅 알고리즘에서 발생할 수 있는 문제입니다. 이 문제는 네트워크에서 특정 링크 또는 라우터가 실패할..
berom
'개발/컴퓨터네트워크' 태그의 글 목록