Programming(199)
-
자바스크립트로 알아보는 함수형 프로그래밍 정리노트 #3
이 글은 인프런에서 게재되어있는, 유인동 님의 자바스크립트로 알아보는 함수형 프로그래밍을 수강하면서 정리한 노트입니다. 제가 잘못 이해하거나 정리한 내용이 있다면 댓글로 알려주세요. 확인하는대로 수정하도록 하겠습니다. :) "함수형 프로그래밍은 어플리케이션, 함수의 구성요소, 더 나아가서 언어 자체를 함수처럼 여기도록 만들고, 이러한 함수 개념을 가장 우선순위에 놓는다." by 마이클 포거스, 클로저 프로그래밍의 즐거움. "함수형 사고방식은 문제의 해결 방법을 동사(함수)들로 구성(조합)하는 것" by 마이클 포거스, 클로저 프로그래밍의 즐거움. 데이터(객체) 기준의 코드는 아래와 같다. duck.moveLeft(); duck.moveRight(); dog.moveLeft(); dog.moveRight(..
2019.09.15 -
자바스크립트로 알아보는 함수형 프로그래밍 정리노트 #2
이 글은 인프런에서 게재되어있는, 유인동 님의 자바스크립트로 알아보는 함수형 프로그래밍을 수강하면서 정리한 노트입니다. 제가 잘못 이해하거나 정리한 내용이 있다면 댓글로 알려주세요. 확인하는대로 수정하도록 하겠습니다. :) 일급 객체(First Class) 자바 스크립트에서는 함수가 일급 객체(First Class)이다. 일급 객체는 다음과 같은 특성을 지닌다. 리터럴에 의해 생성된다. 변수나 배열의 요소, 객체의 프로퍼티 등에 할당이 가능하다. 함수의 인자로 전달이 가능하다. 함수의 리턴 값으로 반환이 가능하다. 동적으로 프로퍼티를 생성하거나, 할당하는 게 가능하다. add_maker() 다음의 예제를 살펴보도록 하자. function add_maker(a) { return function(b) { r..
2019.09.15 -
자바스크립트로 알아보는 함수형 프로그래밍 정리노트 #1
이 글은 인프런에서 게재되어있는, 유인동 님의 자바스크립트로 알아보는 함수형 프로그래밍을 수강하면서 정리한 노트입니다. 제가 잘못 이해하거나 정리한 내용이 있다면 댓글로 알려주세요. 확인하는대로 수정하도록 하겠습니다. :) 성공적인 프로그래밍 모든 프로그래밍 패러다임은 성공적인 프로그래밍을 위해 존재한다. 이는 함수형 프로그래밍도 마찬가지이다. 그렇다면 좋은 프로그램이란 무엇일까? 바로 사용성, 성능, 확장성, 기획 변경에 대한 대응력이 좋은 프로그램을 좋은 프로그램이라고 한다. 이러한 좋은 프로그램을 효율적이고 생산적으로 만들어내는 것이 바로 성공적인 프로그래밍이다. 함수형 프로그래밍은 성공적인 프로그래밍을 위해 부수 효과를 미워하고, 조합성을 강조하는 프로그래밍 패러다임이다. 순수 함수를 만든다. 순..
2019.09.15 -
3일에 걸친 리펙토링을 하고나서, 코드를 잘 작성하는 법에 대해 생각해봤다.
NVR/DVR에 저장되어있는 기록을 검색해서, 리스트 형태로 보여주는 UI에 추가기능을 구현해야했다. 전임자는 MFC를 이용해서 윈도우 프로그래밍을 하던 사람으로, 팀 내에 안드로이드 개발자가 관두게 되면서 잠시 땜빵식으로 일을 맡게 됐다고 한다. 안드로이드를 하던 사람은 커녕, 자바를 쓰던 사람도 아니었기 때문에 코드를 열어보기 전까지 어느정도의 각오는 되어 있었다. 하지만 현실은 생각보다 더 처참했다. channel이라는 변수명을 입력하다가 자동완성이 되지 않아서 다시 확인해보니, 해당 클래스 내 전체에서 chennel이라고 오타가 난 변수명을 그대로 사용하고 있는 것(심지어 참조하는 부분도 꽤 있었다.)은 애교. 버튼을 선택했을 때는 #ffffff로, 선택되지 않았을 때 #000000로 변경해주는 ..
2019.09.15 -
[lighttpd] TLSv1.0, TLSv1.1 비활성화하기 (TLSv1.2 Only)
lighttpd를 사용하여 TLSv1.0, TLSv1.1을 사용하는 방법은 버전에 따라 갈리게 된다. [Docs SSL, lighttpd] 문서를 살펴보면 ssl.openssl.ssl-conf-cmd라는 녀석이 있다. lighttpd를 빌드할 때 openSSL을 사용하도록 빌드했다면, 이 옵션을 이용해서 openssl 설정 명령어를 설정해두는 게 가능하다. 문서의 예제에도 나와있듯이, TLSv1.2만 사용하고싶은 경우에는 아래와 같이 설정해두면 된다. ssl.openssl.ssl-conf-cmd=("Protocol" => "-ALL, TLSv1.2") 명령어를 보자마자 한눈에 알 수 있겠지만, 사족을 붙이자면 모든 프로토콜을 사용하지 않도록 설정한 뒤 TLSv1.2를 사용하도록 선언한다. 이렇게 되면 T..
2019.08.22 -
Tic-Tac-Toe #1
최근 인프런에서 React.js 강의를 찾아볼까 하다가, Javascript 풀스택 로드맵이라는 수강리스트를 발견해서 웹 게임을 만들며 배우는 자바스크립트를 보게 됐다. 기초적인 문법은 건너뛰고 틱택토를 보면서, 바닐라 자바스크립트를 이용해서 틱택토 게임을 작성해본 적이 있었나? 싶었다. 마침 속깊은 자바스크립트 책을 읽으면서 지난 몇 년간 자바스크립트에 대해 제대로 알지도 못하면서, 자바스크립트를 이용해서 먹고살았나하는 생각에 자괴감이 들던 차. 간단하게 jsFiddle에 접속해서, 간단하게 코드를 작성해봤다. 리팩토링을 통해서 중복코드를 함수로 뽑아내고, 변수 선언을 모듈 최상단에 하는 작업을 거치고나니 이해하는데 크게 어려움은 없었다. 다만 개선할만한 포인트가 몇몇개 남아있었다. 크게 대단한 건 아..
2019.08.21