본문 바로가기

FullView33

[Typescript] any 타입을 가능한 좁은 범위에서 사용하기 이 글은 '이펙티브 타입스크립트' 책의 내용을 정리한 글입니다. any 타입은 가능한 한 좁은 범위에서만 사용하기 먼저 함수와 관련된 any의 사용법을 살펴봐야 합니다. function processBar(b: Bar) {/*...*/} function f1 () { const x = expressionReturningFoo(); processBar(x); // ~ 'Foo' 형식의 인수는 'Bar' 형식의 매개변수에 할당 될 수 없음 } 문맥상으로 `x`라는 변수가 동시에 `Foo` 타입과 `Bar` 타입에 할당 가능하다면, 오류를 제거하는 방법은 두 가지 입니다. function f2() { const x: any = expressionReturningFoo(); // 이렇게 하면 안됩니다. proc.. 2022. 1. 7.
2021년 회고 및 입사 1주년 회고 이 글은 분기별로 2021년을 회고하고 올해 2022년 목표를 다시 세우기 위해 작성하는 글입니다 :) 들어가며 어쩌다 보니 밀린 회고들을 전부 쓰고있다. 나의 회고시리즈들이 하나둘씩 단기간에 늘어나고 있는데 회고를 좀 미리미리 쓰는 습관을 길러야겠다.. 아래 글들은 나의 회고시리즈다. 충남 SW 해커톤 회고: https://url.kr/3z9qgk 2020년 회고: https://url.kr/idmsrh 면접 및 출근 1주일 회고 : https://url.kr/mie5jc 야구선수에서 개발자가 되기까지: https://yun-min.tistory.com/34 DND 사이드 프로젝트 5기 & UPF 2021 FW 회고 (1): https://yun-min.tistory.com/35 DND 사이드 프로젝트.. 2022. 1. 4.
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.