전체 글

전체 글

    [웹 프론트엔드 인터뷰] #1. 자바스크립트 엔진은 어떻게 동작하나요?

    웹 프론트엔드 개발자라면 어떤 회사에서, 어떤 프로젝트를 맡아서 개발을 하든지 누구나 궁금해 할 수 있고 누구나 물어볼 만 한 질문들을 골라서 이에 대한 나의 나름대로 최선의 대답을 정리해 보는 포스팅을 연재해 보려고 한다.(반응이 좋으면 계속 연재해 볼 생각) 현업에 계신 많은 웹 프론트엔드 개발자들 그리고 새로운 꿈을 찾아 취업을 준비하는 학생 및 예비 개발자 분들에게 조금이나마 도움이 되기를 바라는 마음으로 글을 작성해 본다. 아직 2년차 웹 프론트엔드 개발자라 잘못된 지식을 알고 있거나, 깊이가 부족할 수 있는데 이러한 부분에 대해서는 날카로운 피드백을 해 주시면 정말 감사할 것 같다. JavaScript 엔진은 어떻게 동작하나요? 자바스크립트 엔진은 자바스크립트 코드를 실행하는 프로그램 혹은 인..

    React 18, 달라진 점들 (React 18, breaking points)

    이번 포스팅에서는 최근에 페이스북에서 발표한 React 18 알파 버전에 대해서 바뀐 점들을 분석해보고 리액트 팀이 어느 방향으로 리액트를 만들어 나가는지 동향을 분석해 보려고 한다. 2021년 6월 8일 리액트 팀은 리액트 18 버전의 주요 변경 사항들을 발표했다. 리액트 18을 다음 메이저 버전으로 가져갈 것이며 리액트 커뮤니티에서의 다양한 의견들을 수용하여 리액트 18의 주요 기능들로 가져간다고 한다. 그리고 여러 사람들로부터 피드백을 듣기 위해 리액트 18 알파 버전을 발표했다. 리액트 18은 다음과 같은 개선사항들이 포함될 예정이다. 즉시 사용 가능한 개선(out-of-the-box improvement) automatic batching (적은 렌더링을 위함) suspense를 위한 SSR 지..

    [네트워크] TCP/IP 보안

    이번 포스팅에는 링크드인 러닝 CompTIA Network+ 5번 강의를 듣고 Securing TCP/IP 에 대하여 공부한 내용들을 정리해 보려고 한다. 네트워크에서 전송되는 데이터는 언제나 노출의 위험이 있다. 인터넷을 이용하면 어떠한 방법으로든 도청 혹은 변조가 가능하기 때문에 이를 방지하기 위한 방법들 중 하나로 암호화가 있다. 암호화(encryption) 암호화란 일상적인 문자로 쓰이는 평문을 암호키를 소유하지 않은 사람이 알아볼 수 없도록 알고리즘을 통해 암호문으로 변환하는 것이다. 암호화의 반대말은 복호화(decryption)이다. 암호화에는 크게 두 가지 방법이 있다. 비밀키 암호화(symmetric encryption, secret-key algorithms) 비밀키 암호화는 암호화할 때..

    [데동여지도] 프로젝트 소개 Part 1. Web Frontend

    데동여지도(dedongyeo) 프로젝트에 대해 설명하는 글을 파트 별로 작성해 보고자 한다. 데동여지도는 2021년 넥스터즈 18기에 만들어진 팀(팀이름: Oh!When?, 우리 언제 만나? 라는 의미)에서 시작했으며, 커플들의 데이트 코스를 기록하고 저장하는 웹/앱 어플리케이션이다. 주요 기능으로는 지도에서 커플들이 방문한 스팟 조회 및 커스텀 스팟 생성, 스티커 찍기, 코스 만들기, 코스 저장하기 등이 있다. 첫 번째 포스팅에서는 웹 프론트엔드 파트의 기술 스택 및 아키텍처를 설명하려고 한다. 기술 스택 웹 프론트엔드에서는 다음과 같은 언어 및 라이브러리, 프레임워크를 사용하였다. TypeScript 4.1 Next 10.x React 17.x Apollo Client GraphQL MapboxGL ..

    [네트워크] DNS(도메인 네임 시스템)

    이번 포스팅에서는 DNS에 대해 공부한 내용을 정리해 보려고 한다. DNS는 Domain Name System의 약자로서, 인터넷 상에서 접근하는 도메인에 대해 찾아가야 할 IP 주소로 변환해 주는 시스템이다. 스마트폰이나 노트북에서 어떠한 서비스를 제공하는 서버에 이르기 위해서는 웹 브라우저에서 IP 주소라고 부르는 숫자를 입력해야 한다. 하지만 우리가 항상 이 숫자를 기억하기 어려우므로, 이름을 부여하여(ex. www.example.com) 웹 사이트로 갈 수가 있다. DNS는 숫자와 이름을 매핑하여 마치 전화번호부처럼 이름에 대한 요청을 IP 주소로 변환하여 최종 사용자가 도메인 이름을 웹 브라우저에 입력할 때 해당 사용자를 어떤 서버에 연결할 것인지를 제어하는 것이다. 이러한 요청을 쿼리라고 부른..

    2021년 상반기 주린이의 재테크 회고록

    2020년 마지막 날 나는 경제적 자유를 이루겠다는 목표를 가지고 재테크 다짐글을 하나 썼다. 그리고 6개월이 지났다. 그 동안 주식 시장에는 정말 많은 변화가 있었다. 그 변화의 흐름 속에서 나름대로 방향을 찾으려고 열심히 허우적 댔던 것 같다. 주식 관련 책 을 읽고 주식 관련 유튜브 (삼프로, 한국경제TV, 슈카, 신사임당, 뉴욕주민, 미주은 등)를 꾸준히 봤다. 그리고 신문도 거의 매일 꾸준하게 읽으려고 노력했다. 미국주식 관련 오픈카톡방에도 들어가서 매일매일 소식을 듣고 소통하려고 노력했다. 그러면서 조금씩 월급의 일부분을 주식에 투자하기 시작했다. 기본적으로 올 해는 내가 아직 주식에 전문가가 아닌 주린이 이므로.. 많은 돈을 공격적으로 투자하기 보다는, 잃어도 크게 상처받지 않을 정도의 돈으..

    [C++] Ch15. 스마트(Smart) 포인터

    이번 포스팅에서는 포큐 아카데미 C++ 강의 중 스마트 포인터 부분에 대한 내용을 정리해 보려고 한다. 스마트 포인터에는 다음과 같이 세 가지가 있다. unique_ptr, shared_ptr, weak_ptr. 이 중에서 unique_ptr는 정말 많이 쓰이고, shared_ptr는 적당히 쓰이며, weak_ptr는 잘 쓰이지 않는다. 포인터는 다음과 같이 사용할 수 있다. #include "Vector.h" int main() { Vector* myVector = new Vector(10.f, 30.f); // ... delete myVector; return 0; } 문제는 더 이상 포인터가 필요하지 않을 때 메모리를 해제해야 한다. 스마트 포인터를 쓰면, delete를 직접 호출할 필요가 없다. ..

    [네트워크] TCP/IP Application

    이번 포스팅에서는 링크드인 COMPTIA 네트워크 강의의 TCP/IP Application 부분 강의를 듣고 정리한 내용을 적어보려고 한다. TCP와 UDP 네트워크 계층 중 전송계층(Transport Layer)은 송신자와 수신자를 연결하는 계층으로, 데이터를 전달한다. 그리고 이 계층에서 데이터를 보내기 위해 사용하는 프로토콜이 TCP와 UDP이다. TCP는 인터넷 상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜이다. 일반적으로 TCP와 IP를 함께 사용하는데, IP가 데이터의 배달을 처리한다면 TCP는 패킷을 추적 및 관리하게 된다. TCP의 특성은 아래와 같다. 연결형 서비스로 가상 회선 방식을 제공한다. 3 Way Handshake 방식으로 연결을 설정하고 4 Way ..