부제: P2P투자, 중금리 금융상품 추천 은행 예/적금 이자 0.1%가 아쉬워서 여기저기 고민하거나, 이자 조금 더 받아보겠다고 저축은행에 쌈짓돈을 넣어두는 사람이 이 글을 봤으면 좋겠다. 내가 바로 그랬기 때문이다. 요즘은 P2P 투자에 푹 빠져있다. 벌써 투자한지 1년이 다 되어간다. 리스크 대비 수익율은 주식보다 떨어지지만, 손이 덜 간다는 점이 정말 좋다. 자세한 것을 이야기하기 전에, P2P금융에 대한 용어에 대해 먼저 짚고 넘어가자. P2P금융은 온라인을 통해 대출-투자를 연결하는 핀테크 서비스 라고 정의할 수 있다. 온라인을 통해 대출과정을 자동화하여 대출자에게는 낮은 금리를 제공하고, 투자자에게는 보다 높은 수익을 제공하는 것이다. 수익성에 대해서 짚고 넘어가자면... 은행에서 취급하지 않..
문성현은 넥센히어로즈의 투수다. "싸움닭" 스타일의 투구로 유명한 선수이기도 하다. 상무에서 군복무를 마치고 2018시즌 넥센히어로즈로 복귀했다. 지명 당시 높은 순위는 아니었지만, 괜찮은 직구 구위와 담력이 장점(도망가는 피칭을 선호하지 않는다. 그래서 안타를 많이 맞기도 한다.)인 선수다. 그러나 제구와 내구성(잔부상이 많다.)에 문제가 있어 커리어 내내 유망주에만 머물고 있는 투수이기도 하다. 문성현은 '문이장'이라는 별명으로 유명하다. 한화 이글스의 안승민과 비슷한 이유인데.. 나이에 비해 늙어보이는 외모 때문에 그렇다. 다른 별명으로는 '문고기', '문소고기', '문비프' 등이 있다. 전부 소고기 관련된 별명인데.. 넥센히어로즈 김시진 감독이 경질되던 날 SNS에 "소고기 먹고 싶다" 라는 글을..
부제: 프로토타입 체이닝. JavaScript 객체지향 패턴. 이번 포스팅은 JavaScript의 prototype에 대해 다루는 글이다. 이미 이전 포스팅들에서 prototype에 대해 어느정도 다루었다. 프로토타입에는 두가지 의미가 있으며, 이를 명확하게 숙지하는 것이 중요하므로 다시 한 번 짚고 넘어가려고 한다. 1. JavaScript의 모든 객체는 '__proto__' 라는 숨겨진 프로퍼티를 갖고 있다. __proto__는 자신의 부모인 프로토타입 객체를 가리킨다. 이러한 링크를 'prototype Link'라고 부른다. 2. JavaScript의 모든 함수는 'prototype' 라는 숨겨진 프로퍼티를 갖고 있다. prototype은 자신에 new 키워드를 붙여 생성한 객체의 부모를 가리킨다...
부제: NOSQL 모듈화 경험기. 나는 다룰줄 아는 언어가 JAVA 밖에 없다. 그래서 요즘 JavaScript를 열심히 보고 있다 ㅎㅎ. 내 생각에는 JAVA와 JavaScript는 완전히 다른 언어이다. 그리고 굉장히 매력적인 언어라고 생각한다. 내가 프로그래밍 언어를 JavaScript로 접했으면 좋았겠다는 생각도 한다. 금요일에 휴가도 썼겠다.. 3일간에 뭘 만들어볼까 고민을 해봤는데, 야구선수 데이터를 활용한 간단한 선수 추천 앱같은 것을 만들어보고 싶었다. 그런데 문제는.. KBO는 OPEN API를 제공하지 않는다.... 나는 phantom.js와 같은 고오급 기술은 사용하지 않았다. request, cheerio 모듈을 활용했다. 닭잡는데 소잡는 칼이 나설 필요는 없으니까! ㅎㅎㅎㅎ 다음 ..
JAVA는 C와 달리 개발자가 명시적으로 메모리를 건드리지(참조하지) 않는다. JAVA는 메모리를 Garbage Collection이라는 알고리즘으로 관리하며, 개발자가 메모리를 관리할 필요가 없도록 한다. (직접 관리하면 오히려 더 안좋은 경우가 많다.) Garbage Collection은 말 그대로 '쓰레기를 정리하는 작업'이다. 그리고 JAVA의 메모리 입장에서 '쓰레기'는 곧 객체, 다시 말해서 '필요 없는 객체'이다. 1. GC와 Heap Garbage Collection을 본격적으로 알아보기전에 JVM의 Runtime Area를 떠올려보자(생각이 안나거나, 잘 모르는 사람은 여기를 참고하자.) Runtime Area의 영역들은 스레드가 시작할 때 생성되는 경우가 있는가 하면, JVM이 시작할 ..
JavaScript의 this는 다른 언어의 this와는 조금 다르게 동작한다. this의 값은 함수를 호출하는 방법에 따라 바뀐다. 좋은 JavaScript 개발자로 거듭나기 위해서는 꼭 이해해야하는 개념이라고 하니, 이번 포스팅에서 다루도록 하겠다. JavaScript에서 함수(Function)을 호출할 때는 암묵적으로 arguments 객체 및 this 변수가 함수 내부로 전달된다. 그리고 방금 언급했듯 함수를 호출하는 방법에 따라 this에 할당되는 값은 달라진다. 지금부터 하나씩 알아보자. 1. 함수를 호출할 때 this 일반적인 함수를 호출할 때, 해당 함수 내부에서 사용된 this는 전역객체(브라우저의 경우 window객체, Node.js의 경우 global 객체)에 바인딩 된다. var n..
지난 포스팅에서 배열(Array)가 객체(Object)로 취급된다는 것을 확인했다. 그리고 JavaScript에서는 함수(Function)도 객체다. 본격적인 이야기를 시작하기 전에, 1급객체(First-Class Citizens)에 대해 짚고 넘어가려고 한다. JavaScript의 함수를 1급 객체라고 표현하기도 한다. 1급 객체는 CS분야에서 자주 쓰이는 용어로, 아래와 같은 특징을 갖는다. ⊙ 변수나 데이터 구조안에 담을 수 있다. ⊙ 파라미터로 전달 할 수 있다. ⊙ 반환값(return value)으로 사용할 수 있다. ⊙ 동적으로 프로퍼티 할당이 가능하다. JavaScript의 함수는 위의 조건을 모두 만족한다. JavaScript의 함수는 입력값을 받아 결과를 반환하는 구조로, JAVA와 같은..
JavaScript에서 배열(Array)은 객체(Object)의 일종이다. 조금 특별한 형태의 객체라고 할 수 있겠다. 다른 프로그래밍 언어의 배열과 유사한 동작을 한다. 이번 포스팅에서는 JavaScript의 배열에 대해 다뤄보려고 한다. 1. 배열 생성 배열을 생성할 때는 대괄호([])를 활용한 표기법인 배열 리터럴을 사용하거나, Array()라는 생성자 함수를 사용한다. var foodArr = ['sushi', 'kimchi', 'apple-pie'] console.log(foodArr[0]); // sushi 출력 foodArr[0] = 200; // 배열의 첫번째 요소가 200으로 바뀜 foodArr[5] = 'pizza'; // 배열의 6번째 요소에 pizza 삽입 첫번째 줄에서 요소가 3개..