전체 글36 Forward Proxy, Reverse Proxy의 정의와 차이점 Proxy 프록시 서버는 클라이언트가 자신을 통해서 다른 네트워크 서비스에 간접적으로 접속할 수 있게 해 주는 컴퓨터 시스템이나 응용프로그램 입니다. 이러한 프록시 서버는 크게 `Forward Proxy` 와 `Reverse Proxy`로 나뉩니다. Forward Proxy 클라이언트(사용자)가 인터넷에 직접 접근하는게 아니라 포워드 프록시 서버가 요청을 받고 인터넷에 연결하여 결과를 클라이언트에 전달 (forward) 해줍니다. 프록시 서버는 Cache 를 사용하여 자주 사용하는 데이터라면 요청을 보내지 않고 캐시에서 가져올 수 있기 때문에 성능 향상이 가능합니다. Reverse Proxy 클라리언트가 인터넷에 데이터를 요청하면 리버스 프록시가 이 요청을 받아 내부 서버에서 데이터를 받은 후 클라이언트.. 2022. 1. 2. traceroute 명령의 동작원리 안녕하세요 :) 오늘은 맥 환경에서 자주쓰는 Traceroute 명령의 동작 원리를 알아보려고 합니다. Traceroute란? `Traceroute` 는 패킷이 사용자가 지정한 목적지 까지 도달하는 동안 거쳐가는 라우터의 IP를 확인할 수 있는 명령입니다. 사용자가 특정 목적지까지 가는 경로를 알기를 원한다면 traceroute는 아주 큰 도움이 되는 명령어입니다. Traceroute 사용 방법 먼저 사용방법은 아래와 같습니다. $ traceroute [탐색하고자 하는 경로] 만약 탐색하고자 하는 경로를 [www.google.com] 으로 한다면 아래와 같은 결과가 출력됩니다. Traceroute 동작 원리 Traceroute의 동작 원리는 `ICMP` 방식으로 이루어 집니다. 하지만 여기서 방화벽 등등.. 2022. 1. 2. JS Garbage Collection Garbage Collection `Garbage Collection`(이하 GC) 은 메모리 관리 기법 중 하나로 프로그램이 동적으로 할당했던(Heap 영역) 영역 중에서 필요없게 된 영역을 해제하는 기능이다. 즉, 동적으로 할당 된 메모리 영역 가운데 어떤 변수도 가리키지 않는 메모리 영억을 탐지하여 자동으로 해제하는 기법이다. C언어 같은 `Unmanaged Language`는 메모리 관리를 위해 `malloc()`, `free()` 등을 사용하지만, 자바스크립트 같은 경우에는 그렇지 않다. 즉, 자동으로 메모리를 할당하고 쓸모 없어졌을 때 자동으로 해제하는 기법을 사용하는데, 이게 바로 GC의 목적이다. 이렇게 GC에 의존하는 코딩을 하라고 만든것은 아니다. 이러한 자동 메모리 관리는 잠재적 혼란.. 2022. 1. 2. DND 사이드 프로젝트 5기 & UPF 2021FW 회고 (2) 이 글은 6월 말부터 12월 말까지 6개월동안 DnD 사이드 프로젝트 및 UPF 2021FW를 진행하며 느낀 점과 회고를 작성한 글입니다. UPF 2021 FW DND를 성공적으로 마무리짓고, 약 1달여간 휴식기를 가졌다. 물론 고려했던 기능들을 전부 완성한건 아니지만 나름 최종발표도 잘 해냈던 것 같았다. 그렇게 휴식기를 가지던 중 친구가 UPF 2021 FW 라는 외부활동을 추천해 주었고 이 외부활동은 다른 외부활동이나 만들다가 터진 프로젝트를 고도화 하는 외부활동이다. 다른 외부활동과는 다르게 상당히 신선했고 DND 멤버들끼리만 하면 늘어지고 잘 진행될 것 같지 않아서 멤버들에게 물어봤더니 상당히 적극적이였다. 그렇게 새로운 외부활동에 지원서를 넣었고 활동 팀으로 선정되어 UPF 활동을 시작하게 되.. 2022. 1. 2. [GraphQL] PayloadTooLargeError 에러 해결 방법 `PayloadTooLargeError` 는 페이로드로 전달되는 데이터의 크기가 너무 크면 발생하는 에러입니다. 디폴트로 100kb가 지정되어 있는데 이는 `express` 미들웨어 옵션을 수정해주면 됩니다. GraphQL 기준으로 아폴로 서버 인스턴스를 생성한 후에 생성된 인스턴스를 이용하여 미들웨어를 수정하면 해결됩니다. const { GraphQLServer } = require("graphql-yoga"); const apolloServer = new GraphQLServer({ schema, // 스키마 지정 context, // 컨텍스트 지정 }); const options = { port: 1234 bodyParserOptions: { limit: "10mb", type: "applicati.. 2021. 12. 31. 싱글톤 패턴과 문제점 안녕하세요 :) 싱글톤 패턴은 흔히 사용하는 디자인 패턴중 하나입니다. 이러한 싱글톤 패턴을 왜 안티패턴이라고 하는지 알아보려고 합니다. 싱글톤 패턴이란? 싱글톤 패턴은 전역 변수를 사용하지 않고 객체를 하나만 생성합니다. 생성된 객체를 어디에서든지 참조할 수 있도록 하는 패턴입니다. 생성자(Constructor)가 여러 차례 호출되어도 실제로 객체는 하나만 생성됩니다. 최초 생성 이후에 호출된 생성자는 최초에 생성자가 생성한 객체를 리턴합니다. (위 특징과 같습니다.) 환경설정 관리 클래스나 커넥션 풀과 같이 pool 형태로 관리되는 공통 클래스에 사용되는 것이 일반적입니다. 싱글톤의 특징 고정된 메모리 영역을 얻으면서 동시에 단 한번만 `new` 를 사용하여 메모리 낭비를 방지할 수 있습니다. 싱글톤.. 2021. 12. 30. 이전 1 2 3 4 5 6 다음 반응형