-
죽지 않고 유지하는 pm2 사용법 :: 마이구미Nodejs 2016. 7. 2. 15:14
이번 글은 Node.js에서 사용할 수 있는 프로세스 관리자 모듈을 알아보겠다.크게 모듈에는 Strongloop, PM2. Forever 세 가지가 있다.Forever는 나머지에 비해 다소 기능이 떨어진다. 소규모 프로젝트에 어울린다.이번 글에서는 PM2를 다룰 예정이다. Node.js 웹서버를 실행하기 위해서는 대부분 node 명령어를 사용한다. $ node 노드 실행 시 오류가 있으면 프로세스는 중단된다. 또한 종료하여도 중단된다.그래서 한번이라도 사용해봤다면 이런 생각은 한번쯤 했을 것이다.그렇다면 어떻게 톰캣처럼 서버가 계속 중단되지 않고 실행될까?그때 이용하는 모듈이 PM2이다. $ npm install pm2 먼저 npm를 이용하여 pm2를 설치한다.끝이다. 이제 pm2 명령어들만 알면 된다...
-
Github 기본 설명서 1편 :: 마이구미GitHub 2016. 7. 1. 17:38
GitHub Git 많이 들어봤을 것이다. 이번 글에서 세부적인 내용들은 생략을 할 것이고, 큰 틀에서 바라볼 것이다.이것들만 알면 충분히 유용하게 사용할 수 있다. Git은 무엇이고 GitHub은 무엇이다. 많은 글들이 있다.자칫 어렵게 보일 수도 있는 글들이 너무 많다.중요 핵심만 설명하면 간단하다.아래 이미지를 보자. Git은 많이 듣던대로 프로젝트를 할 때 소스 관리를 위해 사용된다.더 와닿게 설명한다면.다들 공감하겠지만 나 또한 겪은 경험으로 말해보겠다.뭐가 됬든 무언가를 개발하고자 할 때 그냥 막 코드를 짠다.그리고 ' 버그 없네 잘되고 있네 ' 개발을 한다.그리고 가끔 파일을 저장한다면 이런식으로 저장해둘 수도 있다. 하지만 작업 중 버그로 인해 전체에 영향을 미치게 되었다.이 때 어디서부터..
-
백준 1157번 단어 공부 [아스키 코드] :: 마이구미알고리즘 풀이/수학 2016. 6. 28. 16:11
이번 글은 백준 알고리즘 1157번 단어 공부 문제를 풀어보겠다.문제는 간단하다.알파벳 대소문자로 된 단어가 주어지면, 이 단어에서 가장 많이 사용된 알파벳이 무엇인지 알아내는 프로그램을 작성하시오.단, 대문자와 소문자를 구분하지 않는다. 어떻게 접근하겠는가?사람마다 당연히 다르겠지..?나는 아스키 코드를 사용해봐야겠다고 생각이 들었다.아스키 코드를 어떻게 활용해서 문제를 풀 지 한 번 생각해보고 읽기 바란다. 다들 아스키 코드 잘 알고 있을 것이다.문제에서는 알파벳만을 사용하므로 65번부터 122번 까지만 사용하면 된다. 일단 먼저 크기가 26인 배열을 선언할 것이다.왜 26만 선언할까?? 눈치 챘을거다. 알파벳의 갯수는 26개이다. int[] arr = new int[26]; String str = ..
-
카카오 프로필 업데이트 안되는 현상 :: 마이구미오픈 API 2016. 6. 27. 20:04
이전 글에서 로그인과 프로필 정보 조회 API에 대해서 알아보았다.이번 글은 프로필에 관련된 문제를 살짝 짚고 넘어가보고자 한다.이슈는 카카오만 유일하게 프로필이 업데이트가 안되는 현상이다.카카오톡 프로필 사진을 변경하는 횟수는 정말 많다. 그런데 프로필 변경을 하더라도 반영되지 않는 문제를 보았다.다른 SNS들은 프로필 변경을 하면 자동으로 업데이트가 되는데 카카오만 유일하게 되지 않았다.일단 천천히 살펴보자. 프로필 API를 사용하는 이유는 거의 해당 계정의 프로필 이미지를 사용하고자 할 것이다.API를 통해 이미지 경로를 내려받을 수 있기 때문에 쉽게 이용할 수 있다. 위 이미지의 img 태그를 보면 알다시피 내려받은 URL을 통해 프로필 이미지들을 이용할 수 있다.이용하는 SNS에 API를 요청하..
-
ie에서 indexOf() 해결 방안을 알아보자.크로스 브라우징 2016. 6. 19. 15:05
이번 글은 자바스크립트의 Native 메소드인 indexOf()에 대해서 알아보자. 누구나 한 번쯤은 썼을 것이다. 유용한 메소드이기 때문이다.간략히 말하면 문자열의 위치를 알려주는 메소드이다.간단한 예제를 보자. var str = "자바스크립트 indexOf" str.indexOf('indexOf') // 7 var arr = ['자바스크립트','indexOf'] arr.indexOf('indexOf') // 1 indexOf를 사용할 때 뭔가를 찾고 싶을 때 사용할 것이다. 여기서 내가 말하고자 하는 것은 indexOf 메소드는 하나의 메소드가 아니다.무슨 말이냐하면.indexOf 메소드는 String의 네이티브 메소드, Array의 네이티브 메소드 각각의 네이티브 메소드이다.즉 기능은 같지만 엄연히..
-
euc-kr 문제 해결을 위한 iconv :: 마이구미Nodejs 2016. 6. 17. 19:47
이번 글은 Node.js 모듈 iconv에 대해 알아보자.본인의 경험을 토대로 글을 써보겠다.본인은 cherrio를 활용하여 네이트 페이지를 크롤링을 시도했다.살짝 잘 가져오는 지를 확인하기 위해 크롤링을 시도해보았다. 기본적인 예제다. 문제 없는 코드이다. 하지만 예측하지 못한 결과가 나왔다. 문자가 깨진 상태로 출력되었다.그 이유는 utf-8이 아닌 euc-kr을 쓰는 페이지였다. 이러한 경우 iconv을 쓰면 간단히 해결 가능하였다. $ npm install iconv 혹시나 본인이 경험했던 iconv 모듈 설치 시 에러가 뜨는 경우가 있을 것이다.아래를 보자. node-gyp 관련 문제이다.자세히 알아보기 위해 문서를 보자. npm 사이트에서 node-gyp 문서의 Installation을 확인해..
-
백준 1003번 피보나치 함수 :: 마이구미알고리즘 풀이/수학 2016. 6. 15. 22:07
이번 글은 백준 알고리즘 문제 1003번 "피보나치 함수"에 대해 다뤄본다.피보나치 수는 너무도 대중적이기에 많이 들어보았으리라 생각한다.' 0 1 1 2 3 5 8 13 21 34 55.......' 일단 문제를 보자. n번째 피보나치 수를 구하는 과정에서 재귀를 통해 돌아갈 때 n이 0일 때와 1일 때의 경우가 얼마나 되는지 카운트를 구하는 문제이다. 먼저 순수한 방법으로 풀어보자.위 그림에 있는 소스를 활용해서 0일때 1일때 카운트 변수 만들어서 if문 들어가면 ++해주면 된다. 이렇게 하더라도 사실상 원하는 결과값이 나온다.알고리즘 문제에는 시간 제한이 있다.그 말은 막 짜면 안되고, 문제가 원하는 로직은 꼭 존재한다.그걸 캐치하여 최소한의 시간으로 돌아가도록 소스를 짜야한다. (속도를 고려하는 ..
-
Oauth 2.0 비전공자 쉽게 알아보자 2 :: 마이구미오픈 API 2016. 6. 14. 21:14
이번 글은 로그인 API와 프로필 조회 API를 살펴볼 것이다. 예시는 네이버를 활용하자.시작하자. 네이버 개발자 센터에서 애플리케이션을 만들면 위 그림과 같이 Client ID, Secret 키를 얻을 수 있다.이 두 녀석이 꼭 필요하다. 로그인 API를 이용하기 위한 네이버에서 내려준 고유 식별키라고 생각하자.기본적인 셋팅은 생략하겠다. 이 두가지 api 요청 URL만 이용하면 로그인 뚝딱이다.먼저 로그인을 하기 위해서 네이버 로그인 페이지로 이동을 위하여 위 그림 설명에도 나와있듯이'네이버 아이디로 로그인 인증 요청'의 요청 URL을 이용한다.요청 URL의 요청 변수 명세에 따라 파라미터를 붙여주어 페이지 이동을 하게 한다.그렇다면 https://nid.naver.com/oauth2.0/author..