Programming 35

[JavaScript] 화살표함수(Arrow Function)가 유용할 때는 언제일까?

이 글은 Jan Guardian의 Clean JavaScript 강의를 보고 요약하였다. 오늘은 화살표 함수(Arrow Function)에 대해 정리해보았다. 1.일반함수와 간결성에 차이가 없다면 쓸 필요가 없다 아래는 일반함수를 화살표 함수로 변경한 코드이다. //일반 함수 function isAdmin(user){ return user.role === 'admin'; } //화살표 함수 const isAdmin = (user) => { return user.role === 'admin'; } 화살표 함수는 function 대신에 화살표( =>) 키워드를 이용하기 때문에 화살표 함수(Arrow Function)라고 불린다. 화살표 함수 쓴 것까지는 좋다. 하지만 위의 코드에서는 코드가 전혀 줄어들지 않..

Pure Function(순수 함수)는 왜 함수형 프로그래밍의 핵심 개념일까?

자바스크립트로 함수형 프로그래밍(Functional Programming)을 공부하다가 처음 알게된 개념이다. Pure Function? 번역 그대로 순수 함수라는데 함수형 프로그래밍의 핵심 개념 중 하나라고 한다. 도대체 이게 왜 핵심개념 중 하나라는 건지 이해가 안되서 정리를 해보았다. 일단 공신력있는 위키피디아 정의를 알아보자 the function return values are identical for identical arguments (no variation with local static variables, non-local variables, mutable reference arguments or input streams, i.e., referential transparency), and..

[Java] Executors로 스레드 관리하기

Thread Pool 과 Executor Framework를 사용하는 이유? - 자바에서 Executors는 task를 간단하게 비동기로 처리할 수 있게 해주는 thread-pool과 API를 제공하는 framework이다. 각각의 프로세스에 스레드를 새로 생성하고 관리하는 작업은 메모리를 소비하고, CPU에서는 컨텍스트 스위칭(Context Switching)이 일어나 그 만큼의 시간을 소비하게 된다. 이 때 Thread Pool을 사용한다면 스레드를 재사용하여 효율적으로 스레드를 관리할 수 있다. Thread Pool은 Queue 자료구조로 관리된다. Executor는 크게 4 타입으로 구분된다. 1.) SingleThreadExecutor - task를 순차적으로(sequential)로 실행하기 위..

[자료구조] 연결리스트로 Stack(스택) 구현해보기

Stack은 추상자료형(Abstract Data Type , ADT)이기 때문에 구현 방법을 따로 명시하지 않아 어떤 방법으로든 구현이 가능하다. 보통 Array, LinkedList, Deque 중에서 사용하는데, 이 글은 LinkedList를 통해 Stack을 구현하는 방법을 소개한다. Stack 자료구조란? Stack 자료구조를 tail이 없는 LinkedList라고 생각하면 쉽다. LinkedList에서는 head를 제외하면 포인터를 이용해 노드에 접근하기 때문에 중간 노드로의 바로 접근이 불가하다. Stack도 이와 마찬가지로 중간으로의 접근이 불가하고 항상 LinkedList의 head에 해당하는 top에서만 접근이 가능하다. 그림으로 표현하면 아래와 같다. Stack은 그림과 같이 접시처럼 ..