profile
나무아래에 앉아, 코딩하는 개발자가 되고 싶은 박철현 블로그입니다.
태그 목록
전체보기 (75)JavaScript(7)Java(6)NGXS(6)Angular(5)React(4)js(4)generator(3)dart(3)state management(3)promise(3)flutter(3)이펙티브 타입스크립트(2)SOLID(2)callback(2)타입스크립트(2)servlet(2)함수형 프로그래밍(2)link(2)iterable(2)State(2)this(2)ArrayList(2)비동기(2)DIP(1)rm(1)actions(1)스코프 체인(1)OOP(1)redux saga(1)Symbol(1)iterator protocol(1)web application(1)컨텍스트(1)http(1)linux(1)해시(1)weakmap(1)웹 애플리케이션(1)priority queue(1)heap(1)프로미스(1)lifecycle(1)Cache(1)Thenable(1)iterator(1)Constraint(1)preload(1)foit(1)Prototype(1)event loop(1)환경변수(1)Kleisli Composition(1)react redux(1)async(1)web font(1)guard clause(1)module pattern(1)Prettier(1)webpack(1)layout(1)tomcat(1)selector(1)deploy(1)switch(1)포워드(1)const(1)let(1)var(1)fout(1)ocp(1)Husky(1)Lint staged(1)코딩 컨벤션(1)반복자(1)reactive programming(1)todo(1)Collection(1)Iterable protocol(1)구현패턴(1)arrow function(1)rxjs(1)nvm(1)GC(1)LSP(1)html(1)Design Pattern(1)JVM(1)script(1)Regular Function(1)Web Cache(1)모나드(1)open graph(1)실행 컨텍스트(1)Defer(1)node version manager(1)foward(1)포워딩(1)preconnect(1)Dependency Inversion Principle(1)모던 자바스크립트 Deep Dive(1)next.js(1)NestJS(1)OG(1)Map(1)다트(1)DFS(1)CreateElement(1)if(1)jdk(1)State Machine(1)redux(1)상태관리(1)closure(1)깊이 우선 탐색(1)Spring(1)Controller(1)생명주기(1)prefetch(1)typescript(1)Composite(1)단일 책임 원칙(1)Composite Layer(1)API통신(1)Code Convention(1)SRP(1)자료구조(1)requestAnimationFrame(1)npm(1)

[JS] Boxing, UnBoxing

javascript에서 다음과 같은 메소드를 사용한 경험이 있을 것이다. "hello world!"와 1.4435 는 Primitive 타입이다. 즉, 객체가 아니기에 가지고 있는 메소드가 없다. 하지만 메소드를 사용할 수 있는 이유가 바로 Boxing 과정이 이루어

2022년 12월 27일
·
0개의 댓글
·

Liskov Substitution Principle(LSP)

SOLID에서 L에 해당되는 Liskov Substitution Principle(LSP)이다. 이 원칙은 서브 타입은 기반 타입을 대체할 수 있다는 법칙이다. 즉, 부모 클래스 A를 상속한 클래스 B는 언제든 A클래스를 대체할 수 있다는 뜻이다. 이것은 다형성(pol

2022년 12월 27일
·
0개의 댓글
·
post-thumbnail

[JS] regular function vs arrow function

ES6이전에 사용하던 function 키워드를 이용한 regular function과 ES6에 도입된 arrow function =>을 비교하고 무엇을 선택해야 하는지 정리해보고자 한다.Regular function은 호출할 때 This 바인딩을 진행한다. 메소드가 호

2022년 12월 16일
·
0개의 댓글
·

[JS] thenable

then 메소드를 갖는 객체를 뜻한다. 체이닝이나 await과 같은 promise 패턴을 가진 구문에서 사용할 수 있다. 모든 promise객체는 thenable 객체이지만 역은 성립하지 않는다.위의 예시처럼 thenable 객체는 await를 통해 then() 메소드

2022년 12월 15일
·
0개의 댓글
·

State Machine With Generator

State Machine with Generator

2022년 12월 15일
·
0개의 댓글
·

Dependency Inversion Principle(DIP)

어떤 객체에서 다른 클래스를 의존하고자 할 때 구상 클래스에 의존하지 말고 인터페이스와 같이 추상화 된 것에 의존하라는 법칙이다. DIP에서 의존성은 객체간에 의존성을 말한다. 이를 역전한다는 것의 의미는 구상클래스에 의존하는 부분을 추상화한 클래스나 인터페이스로 의존

2022년 12월 12일
·
0개의 댓글
·

Single Responsibility Principle(SRP)

하나의 클래스는 하나의 책임만 가져야 한다. 로버트 마틴이 얘기한 Single Responsibility Principle(SRP)이다. SOLID원칙 중 S에 해당하는 원칙으로 개체지향원칙의 중요 원칙 중 하나이다. 의미 단일 책임이란 것은 하나의 클래스가 변경되

2022년 12월 12일
·
0개의 댓글
·

promise

정의 promise는 JS에서 비동기 처리를 하기 위한 객체이다. 3가지 상태를 가지고 있으며 미래의 성공 혹은 실패에 대한 값을 가지고 있다. 3가지 상태는 다음과 같다. pending: 처리되지 않은 대기상태 fulfilled: 연산이 성공한 상태 rejecte

2022년 12월 12일
·
0개의 댓글
·

Generator

generator function을 통해 반환된 객체이다. Iterable protocol을 만족하면서 Iterator protocol을 만족하는 객체이다.generator의 특징을알기 위해서는 Iterable protocol과 Iterator protocol에 대해

2022년 12월 9일
·
0개의 댓글
·

켄트 벡의 구현패턴 (2장, 3장, 4장)

주니어인 내가 늘 하는 고민이 있다. 이 코드는 여기에 있어야 할까? 아니면 저쪽에 있어야 할까? 저쪽에 있어도 좋아보이고 이쪽에 있어도 좋아보이고... 이러한 고민을 늘 했었다. 즉, 왜 이렇게 짰는지에 대한 기준이 없었다. 기준이 없기에 난 일관되지 않는 코드를 짜

2022년 12월 6일
·
0개의 댓글
·

Module Pattern

애플리케이션의 기능들이 추가되고 규모가 커짐에 따라 코드양이 많아지고 복잡해진다. 코드의 복잡성이 올라가면서 자연스럽게 유지보수가 어려워져 필연적으로 분리를 필요로 하게 된다. 코드를 관심사나 기능별로 파일을 분리하고 캡슐화하여 복잡성을 줄이는 패턴이 Module Pa

2022년 12월 6일
·
0개의 댓글
·
post-thumbnail

[JS] prototype

자바스크립트는 흔히 프로토타입 기반 언어라 불린다. 모든 객체들이 메소드와 프로퍼티를 상속 받기 위해서 프로토타입 객체를 가진다는 의미다. prototype객체도 prototype을 갖고 상위의 프로토타입 객체도 마찬가지다. 이를 프로토타입 체인이라고 한다. 이에 대해

2022년 12월 2일
·
0개의 댓글
·

HTTP, HTTPS

HTTP와 HTTPS의 차이점은 무엇인지 확인해보고자 한다.HTTP는 HyperText Transfer Protocol의 약자다. 해석하자면 HyperText를 전송하는 규약을 뜻한다. 즉, 서로 다른 시스템 간에 데이터를 주고받게 해주는 프로토콜이다. 하지만 HTTP

2022년 11월 29일
·
0개의 댓글
·

Web Cache

웹 캐시(Web-cache)는 웹에서 사용하는 캐시를 뜻한다. 캐시가 뭘까?캐시란?데이터나 값을 미리 복사해두어 사용하는 장소를 뜻한다. 어떤 값을 다시 계산하는 시간을 줄이기 위해 캐시를 사용한다. - https://ko.wikipedia.org/wiki/캐

2022년 11월 28일
·
0개의 댓글
·

[JS] Closure

Javascript 공부를 하면 항상 나오는 개념이 클로저(Closure)다. 아는 것 같지만 모르는게 더 많은 거 같은 신비한 클로저에 대해 정리해보고자 한다.클로저는 Javascript만 사용하는 개념은 아니다. 함수를 일급 함수로 다루는 언어 혹은 런타임에 함수를

2022년 11월 24일
·
0개의 댓글
·
post-thumbnail

[JS] Map, WeakMap with GC

Map 자료구조는 객체 리터럴(literal)과 비슷해보인다. key-value 쌍을 이용하는 자료구조이고 입력한 순서대로 순회도 할 수 있다. 하지만 둘은 차이가 있다. Map과 객체 리터럴의 차이 Map은 모든 타입 형태에 키가 가능하지만 객체 리터럴은 strin

2022년 11월 22일
·
0개의 댓글
·

[JS] Callback function

콜백 함수(callback function)은 다른 코드의 인자로 넘기는 함수를 의미한다. 넘겨받은 코드는 콜백 함수를 적절한 시기에 호출하여 실행시킨다. 콜백함수의 예로 자주 쓰이는 것이 있다.6시에 일어나기 위해 알람을 맞춰놓고 푸욱 자는 A6시에 일어나기 위해 매

2022년 11월 21일
·
0개의 댓글
·

[JS] const, let, var

역시 정리되지 않는 개념은 내게 아니라는 생각이 든다. 알고 있다고 착각한 const, var, let에 대해 정리해본다. ❌ var 우선 JS에서 var는 ES6 이전부터 사용되고 있는 변수 선언 예약어이다. 특징 함수 스코프(scope)를 갖는다. 재할당 가능하

2022년 11월 19일
·
0개의 댓글
·

[JS] this

Java의 기능을 가져온 Javascript에서 this의 동작 방식은 Java와 많이 다르다. 클래스 기반의 Java의 this는 자기 자신, 인스턴스를 가르킨다. 하지만 Javascript의 this는 상황에 따라 달라진다. Java Javascript의 생성자

2022년 11월 19일
·
0개의 댓글
·
post-thumbnail

Open-Closed Principle(OCP)

정의 확장에는 열려있고 변화에는 닫혀있다는 뜻. 다시 말하면, 변경사항에 대해 기존 코드는 변경하지 않고(Closed) 기능을 추가(Open)하는 것을 의미한다. 직접적으로 두 클래스 간에 직접적으로 의존하게 되면 기존 코드에 변경이 생길 수 밖에 없다. 구현체에

2022년 11월 14일
·
0개의 댓글
·