본문 바로가기

javascript

(29)
[JavaScript] 유저의 Local Time 과 UTC Time 구하기 서버 - 클라이언트 환경에서의 타임존 유저의 채팅 환경을 구현하는 개발을 진행하던 중, 유저가 메시지를 입력한 시간을 저장하고 유저의 타임존에 맞는 시간 정보를 보여주어야 했습니다. 클라이언트 환경에서 유저가 메시지를 입력한 시간을 서버의 DB에 저장하고 유저가 채팅방에 다시 들어왔을 때 메시지들을 저장된 시간에 맞게 보여주어야 했습니다. 이때 유의해야 할 점은 유저가 서로 다른 타임존을 가지고 있다는 것입니다. 그렇기 때문에 서버는 다양한 타임존의 클라이언트 환경을 지원하기 위해서 타임존에 영향을 받지 않는 절대값을 가지고 있어야 합니다. UTC (Universal Time Coordinated) 소프트웨어에서 사용하는 세계 표준 시간으로 GMT 또는 UTC 를 사용하는데 원래는 GMT(Greenwic..
TIL no.63 - Object 객체 : JavaScript ` YOU DON'T KNOW JS ` 의 Chapter 3 객체 를 읽으며 배운 내용들을 이해하기 위해 정리한 글입니다. 이전 챕터에서 this 가 원하는 객체를 가리키게 하기 위해서 헷갈리는 개념임에도 불구하고 이해하기 위해 노력해보았습니다. 그래서 객체는 정확히 무엇일까요 ? 자바스크립트를 처음 배울 때도 그렇고 지금도 그렇고 인지하게 되는 사실 하나는 자바스크립트에서 객체를 빼면 시체라는 것입니다. 그만큼 중요하고 어렵기도 한 개념이고 알면 알수록 더 깊어지는 기분이 드는 것 같습니다. 자바스크립트는 객체 지향 프로그래밍 언어입니다. 대표적으로 JAVA 에서는 이러한 객체지향 언어를 구현하기 위해서 클래스 기반으로 객체의 자료구조와 기능을 정의하고 생성자를 통해 인스턴스를 생성합니다. 클래스가 없..
TIL no.62 - 실행 컨텍스트 : JavaScript 실행 컨텍스트에 대해 정리하기 전에 함수의 범위, 스코프에 대해 간략하게 정리하겠습니다. 자바스크립트에서는 전역 변수와 지역 변수를 사용합니다. 전역 변수는 코드의 혼란을 야기하기 때문에 최대한 지양하지만 스코프를 설명하기 위해 두 개념이 필요합니다. 스코프 함수 스코프 때문에 지역변수는 전역변수에 영향을 끼칠 수 없습니다. 지역 변수는 오직 스코프 라는 단어 그 자체의 의미로 보아 해당 범위 안에서만 사용할 수 있습니다. 자바스크립트는 변수의 범위를 호출한 함수의 지역 스코프부터 전역 변수들이 있는 전역 스코프까지 점차 넓혀가며 찾게 됩니다. 이렇게 지역 스코프에서 찾지 못한 변수를 바깥 스코프, 그리고 전역 스코프까지 옮겨가며 찾는 것을 스코프 체인이라고 부릅니다. 을 실행 컨텍스트로 알아보도록 하겠..
TIL no.61 - 03 전송계층 제 3장 전송 계층에서의 키워드는 TCP, UDP, 신뢰성 있는 데이터 구조의 원리, 혼잡제어의 원리 를 다룬다. 강의와 책 참고 자료를 통해 공부 후 이 키워드에 대해 잘 이해하게 되기를 바란다. (하위로 흐름) APP 메시지 TCP 데이터의 세그먼트로 들어온다 Network 패킷안에 세그먼트가 데이터로 들어간다. Link 전송 단위인 Frame 의 데이터로 들어간다. 트랜스포트 계층 프로토콜 서로 다른 호스트에서 동작하는 애플리케이션 프로세스 간의 논리적 통신을 제공한다. 애플리케이션 계층 프로토콜은 호스트 간의 논리적 통신을 제공한다는 점에서 차이가 있다. 트랜스포트 계층은 하위 네트워크 프로토콜이 비신뢰적일 때, 즉 네트워크 프로토콜이 패킷을 분실하거나 손상하거나 복사본을 만들 때에도..
TIL no.58 - this 왜 헷갈릴까? : JavaScript javascript 에 대한 이해를 높이기 위해 `You don't know JS` 책을 참고하여 이해를 돕기 위해 공부한 내용을 정리했습니다. 이전에 `코어 자바스크립트` 책을 읽으며 this 에 대해서 이해하고 구글링을 더해 헷갈리는 부분을 확실히 하려고 했었습니다. 다시 이 책을 통해 this 에 대한 개념을 공부하는데 이전에 공부했던 부분을 복습하는 차원에서 더 확실하고 명료하게 정리할 수 있을 것 같습니다. this 는 자바스크립트에서 가장 헷갈리는 키워드 중 하나입니다. 항상 같은 곳을 가리킨다면 헷갈릴 이유도 없겠지만 this 는 여러 방법에 따라 다른 곳을 가리킵니다. 이전에 this 에 대해 블로그를 작성했었는데 그 글에서도 다루었듯이 많은 사람들이 this 를 단어 자체의 의미로 해석해..
TIL no.54 - array.reduce() : javascript array method 지금까지 map, forEach 를 반복문을 사용할 때 유용하게 사용했습니다. reduce는 위 array 메서드가 할 수 있는 부분을 다룰 수 있으며 더 복잡한 구조도 다룰 수 있는 아주 유용한 메서드입니다. 또한 배열로만 반환하는 것이 아니라 원하는 데이터 구조로 반환하는 것이 가능합니다. 👍🏻 그렇다고 map과 forEach 대신 무조건적으로 사용해서는 안됩니다. 코드의 가독성을 위해 map과 forEach로도 가능한 간결한 코드에서는 적절한 메서드를 사용하는 것이 좋습니다. array.reduce() arr.reduce(callback[, initialValue]) reduce는 첫번째 인자로 콜백함수를 받습니다. 그래서 반복문을 반복하는 숫자만큼 콜백함수가 실행됩니다. initialValue 로..
TIL no.53 - arrow function 화살표 함수 - arrow function은 ES6 이후로 등장한 새로운 개념입니다. arrow function 은 단순하고 간단한 문법으로 함수를 작성하기 위해 사용되는 개념입니다. 작성이 편리하고 보기에도 간결하기 때문에 여기저기 흔하게 사용되는 것을 볼 수 있었을 것입니다. 일반 함수의 모양과는 다르게 //함수 선언식 function hiThere() { console.log('Hi there ~'); } //함수 표현식 const function = function () { console.log('Hi there ~'); } arrow function은 이렇게 선언합니다. () => console.log('hi there ~') 함수 선언식에는 이름이 있는 반면에 arrow function은 익명함수로 표현합..
TIL no.51 - 객체 지향 프로그래밍과 함수형 프로그래밍 객체 지향 프로그래밍보다 더 발전 되어 나온 것이 함수형 프로그래밍이라고 생각할 수 있으나 이는 맞지 않습니다. 객체 지향과 함수형 프로그래밍은 서로 다른 패러다임이라고 생각하시면 될 것 같습니다. 이 두가지의 차이점을 알아보고 이해하며 공부해보겠습니다. 객체 지향 프로그래밍 (Object Oriented Programming) :객체 중심적인 프로그래밍으로 데이터를 추상화시켜 객체를 만들고 객체 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법 캡슐화의 특징을 가진 코드들로 코드의 재사용성이 높아지고 이러한 객체로 작성된 코드는 정보 은닉성의 특징을 띄어 유지 보수가 쉬울 수 있습니다. 하지만 처리 속도가 상대적으로 느리고 객체가 많으면 용량이 커질 수 있다는 단점이 있습니다. - 정보 은..