back-end/🐾 삼냥이즈 기술노트 3

[삼냥이즈 기술노트] Proxy

이전 글에서는 DNS가 도메인을 IP로 변환하는 과정을 정리하였다.실제 웹 요청은 DNS 이후에도 여러 단계를 거친다.클라우드 플레어의 작동 방식을 더 잘 이해하기 위해 Proxy와 Reverse Proxy에 대해 정리해 보았다.ProxyProxy는 대리 서버라는 뜻이다. 일반적으로 Proxy 서버라고 하면 정방향 Proxy를 의미한다.Proxy 서버의 경우 일반적으로 클라이언트 바로 다음에 위치한다ClientForward ProxyInternetServer즉 클라이언트가 서버로 보내는 요청을 인터넷을 타기 전에 가로챈다.이렇게 가로채는 이유는 다음과 같다익명성 - 서버는 접속한 클라이언트를 알 수 없다. 클라이언트 대신 Forward Proxy가 서버가 대신 보냈기 때문.캐싱 - 같은 네트워크에 있는 ..

[삼냥이즈 기술노트] DNS

서비스를 운영하며 클라우드 플레어를 사용하다보면 DNS라는 단어를 자주 접하게 된다.DNS를 비롯한 네트워크에 대해서 학교에서 이론적으로 배웠지만 공부한 후로 시간도 좀 지났고, 실제로 서비스를 운영하다보니 헷갈리는 점이 많아서 한번 정리해보았다. DNS란 무엇인가인터넷에서 다른 서버에 요청을 보내기 위해서는 해당 서버의 IP 주소를 알아야 한다.하지만 사용자는 일반적으로 IP 주소 대신 도메인 네임으로 서버에 접근한다. (sam-meows.com 등등).따라서 도메인 네임을 실제 IP 주로소 변환하는 과정이 필요하며, 이 과정을 담당하는 시스템이 DNS이다.또한 DNS 시스템을 위한 정보(어떤 도메인이 어떤 IP에 해당하는지 등)를 저장하고 제공하는 서버를 DNS 서버라고 한다. DNS 조회 과정DNS..

[삼냥이즈 기술노트] MVC 패턴

삼냥이즈에서 NestJS 백엔드를 개발하면서 내가 아는 전통적인 방식의 MVC 패턴을 적용하기 어렵다는 생각이 들었다.NestJS 서버는 현재 사실상 api 서버로 운영되고 있기 때문에 View라고 부를 만한 것이 Nest 어플리케이션 안에는 없다. 하지만 유니티 클라이언트를 View라고 생각하고 서비스 전체를 MVC 패턴으로 분리하고자 한다면 어려움에 부딪힌다. 기본적으로 MVC 패턴에선 View에서 Model이 전달한 데이터를 스스로 저장하고, 이를 처리하는 로직이 들어가선 안된다. 하지만 게임의 특성 상 응답 시간이 매우 중요하고, 따라서 클라이언트에서 자체적으로 관리하는 데이터를 먼저 띄워준 후, 이를 서버에서 검증하는 방식이 일반적이다. 이런 생각이 문득 들어 생각을 정리하기 위해 MVC 패턴에..