과거에 BASIC을 배울 땐 서브루틴과 함수가 분리되어 있었다. 포트란도 그러했다. 그러다가 C 언어를 배울 땐, return 유무에 따라 성질이 달라질 뿐 모두 함수로 통합이 됐다. 그러다가 JavaScript를 배울 땐, _객체_로서 함수 개념을 배우게 된다. 이 말은 함수와 자료가 통합되었다라고 말할 수 있다. Javascript가 구현하는 함수객체는 function func1 ( ) { /* code */ } func1()으로 쓰면 { ... } 안의 내용이 실행된다. func1.abc = "def" 로 쓰면 func1를 객체 취급하여 'abc'라는 키를 추가한다. 이런 발상의 전환이 통합의 구체적인 모습이다. func1.apply func1.call func1.bind 이런 함수는..
짧은생각 Javascript와 python에서 제공하는 배열/리스트에서 특정 값의 위치를 찾는 비슷한 명령어로 각각 indexOf, index 라는 메소드가 있다. 이 둘은 찾지 못했을 때의 특성이 다른데, Javascript: -1 을 return 한다. Python: ValueError 예외를 발생한다. 언어를 다루다보면 이 둘은 묘한 선택의 순간을 만드는데, 전자는 매번 return 값을 확인해야하고, 후자는 앞 뒤로 예외 처리 구문을 넣어야한다. Javascript/Java/C++ 계열에 익숙하다보면 정상적인 처리를 해야하는 상황을 예외를 발생시켜 점프하는 것에 약하지만 부담을 느낀다. 스택을 되돌리는 백그라운드 작업에 원하는 모든 리소스 해제는 잘 일어나는 것일까랄지, 단순히 값 하나만 비교하면..
요샌 일부러 마크다운편집이 가능하면 그걸 써보려고 노력한다. 오래 알아왔지만, 글 쓰는 일이 줄어들어 마크업이 할 일이 줄어 드니 영 느리다. 그래서 간단한 의식의 흐름대로 기술을 할 때, 쓰는 나와 읽는 당신의 관계에서 단순히 글의 연속으로 전달되는 것이 아닌, 강약이 전달되려면 강조 혹은 병렬적 정보전달은 필요한 것 아닌가 싶다. 머라고 주절 주절 쓰는 것은 사실 마크다운 문법을 테스트하기 위함이지 그 ^이상^도 이하 도 아니다. 어떤 문법은 것은 지원되지 않을 수도 있음을 고려해서 테스트해 본다. 문법을 익히는데 쓰는 글은 의미가 없어도 상관없고, 표현이 거칠거나 맥락을 뛰어 넘는 전개 가 이루어지기도 한다. 그래도 글의 모양을 갖추려면, 가독성이 고려되어야하고 적당한 길이어야하며 무엇보다 독자가 ..
npm, yarn을 설치했다면, bootstrap theme 변경을 위한 초간단 테스트를 할 수가 있다. #!/bin/bash mkdir bootstrap-customizing cd bootstrap-customizing yarn init -y yarn add bootstrap node-sass mkdir -p public/css yarn node-sass --recursive --output public/css \ --source-map true --source-map-contents true \ node_modules/bootstrap/scss bootstrap은 scss로 관리되고 있으므로 yarn(npm)으로 받아다가 바로 컴파일 해 볼 수가 있다. 위의 예는 directory 만들고, 빠르게 n..
unzip 을 구현해 볼까? 하는 마음이 들었다. 다 뻘짓이 되긴 할텐데, 동기는 이렇다. 윈도우에서 한글로 된 파일을 압축하면 맥에서 잘 풀리지가 않는다. 7z으로 풀어 볼까? 7z도 안되는군. 7z 옵션중에 charset을 지정하는게 있더라. CP949를 넣어보니 안된다. 아, 이게 머라고, 2020년에도 고통을 받아야하나. huffman coding 이런거 봐야하나. 그 테이블 튜닝을 하면 성능이 더 좋아지려나? 실리콘밸리의 파이드파이퍼는 대체 뭘 쓴 거지? 아 놔..
Javascript에서 하나의 배열에서 다른 배열로 원소들을 옮기는 것은 내장 명령어로 구현되어 있지 않다. 따라서 구현을 직접해야하는데, 다음과 같이 한다. src 배열에서 dest 배열에 원소를 추가하면서 옮긴다고 하면, Array.prototype.splice.bind(dest,dest.length,0).apply(dest, src.splice(0)); splice 함수는 배열의 내용을 자르는 것 뿐 아니라 새로운 원소들로 대치하는 것도 가능하다. splice(start-index, [length, [insert element1, [insert element2 ...]]]) 와 같은 방식으로 사용한다. length가 생략되면 배열 끝까지를 나타내므로 src.splice(0) 으로 모든 원소를 잘라낸..
리눅스는 주로 까만 화면의 터미널로 사용하지만, 가끔은 X Window 응용프로그램을 사용해야할 때가 있다. (xcalc 랄지...) 난 리눅스를 데스크탑으로 사용하지 않으므로, X System 전체를 설치하지 않는다. 이런 상황을 해결하기 위해서 맥북에 X Window를 설치하고 ssh X portforwarding을 하면 되는데, 다음과 같은 방법으로 한다.Linux 에서1. sshd의 X11 포트포워딩을 허용한다.$ sudo vim /etc/ssh/sshd_config확인! X11Forwarding yes설정 파일 내용중 X11Forwarding yes 가 아니라면 고쳐주고 sshd를 재시작한다. 요즘 systemctl로 관리하므로, systemctl restart sshdMacOSX에서1. X W..
- Total
- Today
- Yesterday
- OpenID
- 킹벤자민
- 대화
- 클레로덴드럼
- SSO
- JavaScript
- 퀴즈
- SVN
- url
- 구근
- MySQL
- 수선화
- Tattertools plugin
- tattertools
- Subversion
- 디버깅
- BlogAPI
- Linux
- ssh
- nodejs
- perl
- TCP/IP
- macosx
- 벤자민
- 오픈소스
- writely
- 덴드롱
- VIM
- 식물
- 커피
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 |