본문 바로가기

All posts123

[NodeJS] Node 의 this 란? (+ 화살표 함수의 this) ✨ console.log(this) 의 결과 이전에 정리해두었던 자바스크립트(이하 JS)의 this 에서 주의사항으로 언급했듯, 브라우저에서 실행되는 JS 의 this 와 node 에서 실행되는 JS 의 this 는 다르다. [Javascript] Javascript 의 this 란? ❗ 주의: Node 에서의 this 는 조금 다릅니다. 이 글에서 다루는 내용은 브라우저에서 작동하는 JS 에서의 this 입니다. Javascript 의 this 는 자주 등장하지만, 정확히 알기 힘든 개념이다. 이번 글에서 haeunyah.tistory.com 브라우저의 전역객체는 window 이다. 따라서 전역 scope 에서 console.log(this) 를 입력할 경우 window 가 뜨는 것이 맞다. conso.. 2021. 9. 10.
[Network] TCP/IP 프로토콜 스택 (근데 이제 OSI 7계층을 곁들인) 📌 Introduction 네트워크, 즉 인터넷으로 이루어지는 모든 통신은 정보를 담은 '패킷'을 교환을 통해 이루어진다. 이 패킷은 노트북이나 라우터와 같은 물리적인 장치에서 또 다른 장치로 이동하는데, 공기 중에 떠다닐 수 있는 전기 신호로 변환되기 때문에 가능한 일이다. 장치끼리 통신할 때 사용하기로 한 표준 '프로토콜' (규약) 이라는 것이 존재한다. 인터넷이 21세기만큼 보편화 되어 있지 않던 1900년대에는 규약이 따로 없었던 때도 있었지만, 갈수록 전달되는 payload (내용) 이 커짐으로써 정보 통신의 단위와 단계를 치밀하게 설계하여 효율성 증진의 필요성이 커졌다. 이에 따라 등장한 것이 네트워킹 과정을 표준화한 TCP/IP 프로토콜 스택이다. ✨ TCP 와 IP, 그리고 TCP/IP 프.. 2021. 9. 9.
[Javascript] Javascript 의 this 란? ❗ 주의: Node 에서의 this 는 조금 다릅니다. 이 글에서 다루는 내용은 브라우저에서 작동하는 JS 에서의 this 입니다. Javascript 의 this 는 자주 등장하지만, 정확히 알기 힘든 개념이다. 이번 글에서는 this 의 기초 작동 방식과 바인딩에 대해 설명하고자 한다. this 의 개념에 접근하기 전, 먼저 알아두어야 하는 실행 컨텍스트와 프로퍼티 & 메서드부터 살펴보자. ✨ Javascript 에서의 실행 컨텍스트 이전 글에서 잠깐 언급했지만, Javascript 는 컴파일 언어가 아닌 인터프리터 언어이다. 인터프리터 언어로 작성된 코드는 실행 즉시 인터프리터가 코드를 한줄씩 읽어내려가며 실행한다. 이 때 인터프리터는 코드 해석을 조금이라도 편하게 하기 위해 코드를 작은 조각으로 .. 2021. 9. 7.
[Javascript] 이벤트 루프 (Event Loop) 란? ✨ JS, Event Loop, Single Thread NodeJs 의 single/multi thread 여부를 정리하다보니 Js 의 Event Loop 개념을 조금 더 확실히 알아두어야겠다는 생각이 들었다. [NodeJS] NodeJS 는 Single Thread 일까? Multi Thread 일까? ✨ 고민이 시작된 계기 JS 기초를 학습하던 당시에는 스레드와 프로세스의 기본 개념을 학습해두기만 하고, 구체적으로 살펴보지 못했었다. 웹개발 교육과정이 끝나갈 무렵, 실시간 줌 강의에서 haeunyah.tistory.com 자바스크립트는 싱글스레드 언어이다. 하지만 이전 글에서도 볼 수 있었듯, 멀티스레드처럼 동시에 여러 태스크의 작동이 가능하다. 이 특징은 브라우저 런타임 환경에서도 동일하다. 왜일.. 2021. 9. 7.
[NodeJS] NodeJS 는 Single Thread 일까? Multi Thread 일까? ✨ 고민이 시작된 계기 JS 기초를 학습하던 당시에는 스레드와 프로세스의 기본 개념을 학습해두기만 하고, 구체적으로 살펴보지 못했었다. 웹개발 교육과정이 끝나갈 무렵, 실시간 줌 강의에서 크루분께 "JS 는 싱글 스레드일까요?" 라는 질문을 들었고, 내 대답은 당연히 "yes" 였는데, 의외로 "No" 라는 반응도 많았다. 다들 조금씩 다르게 알고 있는 이유가 궁금해서 구글링을 해 보니, 헷갈릴만한 이유가 있다는 생각이 들었다. 이번 글에서는 JS, 그리고 NodeJS 가 과연 Single Threaded 인지 Multi Threaded 인지 훝어보도록 하겠다. ✨ 프로세스와 스레드 (Process & Thread) 프로세스와 스레드는 이전 글에서 이미 한 번 다룬 적이 있으니, 간단히만 짚고 넘어가겠다.. 2021. 9. 6.
[Database] Redis Vs Memcached ✨ Caching Solution 캐싱은 어플리케이션 성능 향상에 가장 많이 기여하는 단계이다. 캐시 서버 또는 in-memory cache 를 구현하기 위해 많이들 알아보는 것이 Redis 와 Memcache 인데, 이 두 가지를 비교해 보며 구현하고자 하는 서비스에 더 적합한 캐시 솔루션인지 알아보자. Memcached 는 2003 년에 나온 고성능 캐싱 솔루션이다. Redis 는 비교적 최근에 나왔으며 (2009년), 여러 기능을 탑재한 캐싱 솔루션이다. AWS 에서는 이들의 공통점과 차이점을 다음과 같이 정리하고 있다. 표로 보니 뭔가 Memcached 가 Redis 에 비해 할 줄 아는 것이 적어보이는데, 실제로도 그렇다. Memcached 는 단순한 작업을 위해 고안된 반면 Redis 는 여러.. 2021. 8. 10.
[프로젝트 후기] 프로젝트 공유 사이트, Gallery:port Intro 프로젝트를 시작할 때 좋은 아이디어를 떠올리기란 여간 힘든 일이 아니다. 아이디어를 참고하기 위해 개발자들이 많이 쓰는 github 과 같은 오픈 소스 플랫폼을 사용하는데, 코드만 적혀있어서 읽기 싫었던 적이 한두번이 아니었다. 우리 팀은 여기서 아이디어를 얻었고 시각적으로 바로바로 프로젝트를 볼 수 있는 공간을 만들었다. 당신의 프로젝트를 공유하고, 여러 작품과 소통할 수 있는 공간, Gallery:port 첫 웹개발 프로젝트, 2주간의 모험 이론 강의 수강을 마치고 드디어 고대하던 (?) 프로젝트를 하게 되었다. 당연한 얘기겠지만, 자습이나 과제 실습만으로는 채워지지 않는 부분들이 굉장히 많다. 무수히 많은 오류를 만날 기회도 상대적으로 적고, 가이드 없이 백지에서 시작해 아름다운 그림(코.. 2021. 8. 10.
[Database] Express/NodeJS 에서 Redis 사용하기 ✨ Redis 란? Remote Dictionary Server (DB) 이며, In-memory Data structure Store 로, 메모리 상에 데이터를 저장한다. 다양한 자료 구조를 저장하지만, 기본적으로 모든 데이터는 Key-Value 쌍을 이루기 때문에 NoSQL DB 로 활용된다. 디스크에 데이터를 저장해 속도가 느린 RDBMS 등의 DBMS 보다 활용도가 높은 케이스가 종종 있는데, 그 대표적인 예가 캐시 (Cache) 이다. 클라이언트에서 서버에게 데이터를 달라는 요청을 보내면 서버는 데이터베이스에서 데이터를 얻어오게 되는데, 동일한 요청이 여러 번 올 경우 계속 데이터베이스에서 같은 데이터를 찾는다. 이는 상당히 비효율적이며, 데이터의 크기에 따라 응답 속도가 계속 지연될 수 있기 .. 2021. 7. 18.
[SQL] MYSQL 기본 문법 ✨ SQL이란? Structured Query Language 의 약자로, RDBMS(Relational Database Management System) 과 정보를 주고받기 위한 언어이다. SQL 내 하나의 Database 는 여러개의 table (또는 entity)로 구성되어 있으며, 각 table 은 행(record), 열(field), 데이터 값(value) 으로 구성되어 있다. SQL 은 기본적으로 쿼리를 활용하여 데이터베이스 또는 테이블에 요청을 보내고 데이터를 받아온다. 가령, users 테이블의 데이터 전부를 불러오고자 한다면, 다음과 같은 쿼리를 보낼 수 있다. SELECT * FROM users; 쿼리는 Case-sensitive 하지 않기 때문에 대소문자 구분없이 사용 가능하나, 작업.. 2021. 7. 17.