본문 바로가기

분류 전체보기35

Hoisting이란? 핵심만 알고가자 호이스팅이 무엇이고, 언제 발생하는지 예시코드를 통해 알아본다. 그리고 호이스팅이 문제가 되는 지점에 대해서도 알아본다. 인터넷에서 프론트엔드 면접 자료를 찾아보면, 호이스팅에 관한 것은 단골 질문으로 자주 출제된다고 한다. *실행 컨텍스트, 렉시컬 환경, 스코프, var let const의 차이점에 대한 질문도 연계되어 나올 가능성이 높다. 하지만 이 글은 그 부분까진 다루지 않고 호이스팅의 핵심부분만 다루려고 한다. 해당 주제들은 따로 글을 만들어서 다루려고 한다. Question 1: 호이스팅이 무엇인가요? Hoist의 원래 의미는 ‘(밧줄 혹은 장비 등으로) 끌어올리다.’라는 뜻이다. 원래의 의미와 유사하게, 자바스크립트에서 호이스팅(hoisting)은 변수나 함수의 선언이 코드의 최상단으로 끌어.. 2023. 4. 28.
14) javascript의 함수 함수란? 특정 동작을 수행하는 코드의 묶음. 아마 어렸을 때 함수를 공부했다면 이런 그림을 종종 봤을 것이다. input이 있고, input을 가지고 조작하는 어떤 연산과정이 있고, 결과적으로 어떤 output을 내놓는 이런 일련의 과정. 이것을 우리는 함수라고 배웠다. 프로그래밍에서 말하는 함수도 이와 유사하다. 함수의 정의와 호출 Javascript에서 함수는 어떻게 정의하고 어떻게 사용할까? 예시를 통해 한번 보자. 함수의 이름(Function name): 먼저 컴퓨터에게 함수의 이름을 알려줘야 한다. function키워드를 쓰고 그 뒤에 내가 붙이고 싶은 함수명을 붙인다. 매개변수(Parameter): 함수명 바로 뒤에 소괄호를 붙이고 그 안에 매개변수를 선언해준다. 매개변수는 함수 외부의 값이 .. 2023. 4. 26.
TLS(HTTPS)의 동작 원리와 과정 이번 글에선 HTTPS가 무엇인지, HTTPS를 사용하는 이유는 무엇인지, 그리고 HTTPS의 전체적인 동작에 대해서 알아보려고 한다. 웹 보안을 이해하는 데 있어 중요한 개념이기 때문에 꽤 세세하게 다뤘다. 참고사항! * 이 글을 제대로 이해하기 위해선 네트워크 레이어에 대한 약간의 배경지식이 필요합니다. * 비전공자와 전공자 둘 다 도움이 될 수 있는 지식을 전달하고자 했습니다. * 키 생성 알고리즘에 대해 자세히 설명하지 않습니다. HTTPS는 HyperText Transfer Protocol Secure의 줄임말이다. 말에서 알 수 있듯 HTTP의 보안을 강화한 버전이다. HTTPS는 처음 발표된 것이 1994년인데, 약 30년이 지난 지금까지도 활용되고 있는 프로토콜이다. 일단 HTTPS를 설명.. 2023. 4. 24.
프로세스와 스레드에 대해 Q: 프로세스와 스레드에 대해서 말해주세요. 기본적인 CS질문인 것 같다. 이 질문은 스레드를 사용할 때 어려운 점과 스레드를 사용하는 기법에 대한 추가질문을 하기 좋아보인다. 전략: 프로그램과 프로세스가 무엇인지에 대해 설명할 것. 스레드의 컨셉과 필요성에 대해 설명할 것. 멀티프로세스, 멀티스레드를 사용하는 실제 예시를 들어줄 것. 추가적으로 대답을 할 시간이 있다면 스레드를 사용할 때 어려운 점이 무엇이고, 이를 해결하기 위해서 어떤 기법을 사용하는지 설명할 것. A: *프로그램 VS 프로세스 : 프로세스는 프로그램의 인스턴스이다. 일단 프로그램이 뭔지 짧게 설명해야할 것 같다. 좁은 의미에서 프로그램은 컴퓨터 명령어의 집합이다. 프로그램은 대개 컴퓨터의 보조 메모리에 정적으로 저장되어 있다. 프로.. 2023. 4. 12.
HTTP에서 GET과 POST의 차이점 Q: HTTP에서 GET 메소드와 POST 메소드의 차이점이 무엇인가요? 둘의 컨셉은 정말 간단하다. 하나는 데이터를 가져오기 위해서, 하나는 보내기 위해서 사용한다. 기본기 테스트에 가깝다. RESTful API를 이용할 때 이 둘을 모르면 문제가 있다. 그렇기 때문에 실제 대답을 할 땐 디테일한 차이점을 언급해주는 것이 좋을 것 같다. GET 메소드 GET 메소드는 데이터를 가져오기 위해 사용한다. URL을 통해 데이터를 전송하며, 데이터는 URL에 쿼리 스트링 형태로 전달한다. 보안성이 떨어지고 전송 데이터에 길이 제한이 있다. 데이터들은 브라우저에서 캐싱이 가능하기 때문에, 동일한 요청이 반복될 경우 캐시를 이용하여 빠르게 처리할 수 있다. POST 메소드 POST 메소드는 데이터를 전송하기 위해.. 2023. 4. 5.
브라우저에 google.com을 쓰면 일어나는 일 Q: 브라우저 주소창에 google.com을 치면 무슨 일이 일어날까요? 길게 말하면 밑도 끝도 없이 말할 수 있는 부분이다. 주 목적은 컴퓨터 네트워크 전반에 대한 이해를 평가하기 위함인 것 같다. 추가적인 질문으로 ‘웹 브라우저에서 HTML문서가 렌더링 되는 과정’에 대해 물어보기 좋아보인다. 전략: OSI 5 layer를 중심으로 설명하기. 클라이언트의 입장 뿐만 아니라 서버의 입장에서도 설명해보기. 웹 브라우저가 보내는 데이터는 Application layer, Transport layer, Network layer, Link layer, physical layer를 중심으로 차례대로 설명할 수 있다. 이 때 Link layer랑 physical layer에 대한 부분은 구체적으로 설명하려들면 뇌.. 2023. 4. 5.