분류없음2017.10.14 05:20

npm, nodejs 모두 똑같이 동작하지 않아 해결방법을 찾았다.



1. node 지우고


sudo rm -rf /usr/local/lib/node /usr/local/lib/node_modules /var/db/receipts/org.nodejs.*



2. 여기서 다시 설치하면 된다.


https://nodejs.org/en/

신고
Posted by icaynia
분류없음2017.10.13 03:58

예전에 RSA 암호화를 아주 잘못되게 구현한 적이 있었다. node.js 기반 웹 서비스였는데 그냥 취미로 만들던 것이라 보안같은건 1도 신경쓰지 않고 개발했었다사실 보안을 잘 몰랐다. SSL 인증서를 구입하면 그나마 편하긴 한데, 퍼블리싱할 것도 아니고 그냥 방구석 라즈베리파이에서만 돌릴 것이라 구지 돈 들여서 구입할 필요도 없었다. 나중에 퍼블리싱 할 것 같음 쓰지 뭐... 하는 생각으로 미루었다.


기획했던 서비스는 유저 기능이 필요했다. 하지만 사용자는 한명뿐이었다고 한다. 유저 기능을 구현하기 위해 db 스키마를 만들고 회원가입, 로그인 폼 만들고 하면서 기능을 개발했다. 패스워드 입력창을 지긋이 바라보면서 아무리 유저가 혼자라지만 많은 사람이 쓸 것 생각하고 기획한 것이니 보안을 무시할 수 없겠다는 생각이 들었다. 그렇다고 SSL을 구입할 생각도 아니었으니 답은 RSA 암호화 알고리즘을 쓰는 것 하나였다.

그래서 RSA 도입을 시도해봤다. 해커가 유저의 패킷을 도청했을 때 평문이 나타나지 않게끔만 하면 성공이다. 웹 클라이언트의 스크립트 부분에서 암호화 돌려서 서버에 POST시켜주면 되는 건데... 여기서 나의 멍청함이 등장하기 시작하였다. 나는 웹의 자바스크립트에서 암호화를 돌린 것이 아니라 그냥 평문을 서버에 POST 날리고 그걸 서버에서 암호화한뒤 result로 암호문을 받고, 그걸 다시 POST해서 서버에 전송시킨 것이었다. 패킷 스니핑 해보니 역시 테스트하고 있던 비밀번호가 적나라하게 보였다. 지금 생각해봐도 되게 웃기다 ㅋㅋ 


변명을 좀 해 보자면, RSA에 대해 알게 된 게 그때가 처음이었고, RSA 라이브러리가 왜인지 클라이언트단에서 잘 안먹혔던 점도 있었다. 그리고 수단과 방법을 가리지 않고 '어떻게든' 암호화해서 서버로 전송시켜주면 된다고 착각하고 있었다. '어떻게든' 한다는 방법이 서버로 돌리는게 돼서 문제였는데, 결과적으로 암호화를 구현한 의미가 사라져 버리게 되었다. 그냥 가볍게 프로젝트 한다는 생각으로 해서 착각한 것인지 모르겠지만 아무튼 통신 구조나 설계를 좀 더 정확하게 이해할 필요를 느낄 수 있었던 경험이었다.



신고
Posted by icaynia
분류없음2017.09.02 02:33

http://www.freenom.com/



위 사이트에서  .tk .ml .ga .cf .gq을 사용할 수 있습니다. 사용법은 따로 작성하지 않겠습니다~


참고로 .ga의 경우 아프리카 중서부에 있는 가붕이라는 국가의 최상위 도메인 코드라고 합니다. 다른 국가 코드는 https://ko.wikipedia.org/wiki/국가_코드_최상위_도메인 에서 볼 수 있습니다.

신고
Posted by icaynia
분류없음2017.07.06 00:39

[이벤트 페이지 바로가기]


[이벤트 페이지 바로가기] 이미지 출처 : 인터파크 제이펍 이벤트 페이지



페이스북이나 블로그에 공유하고 글의 링크를 이벤트 페이지에 남긴 후,

추첨되면 '딩코스티커'를 주신다고 합니다!



저도 이 글을 통해 참여해봅니다! 이벤트를 노려 봐도 될 것 같군요 으흐흐

신고
Posted by icaynia
2017.05.17 13:17
일본어 무작정 따라하기(기본편) + 일본어 무작정 따라하기(심화편) 패키지
저자 : 후지이 아사리
출판 : 길벗이지톡 2014.08.27
상세보기



일본어 무작정 따라하기 책을 구매한 후 정확하게는 1년 9개월 정도 지났습니다. 보통 구매한지 오래 되면 잊어버리기 마련인데 이 책이 일본어 학습에 큰 도움이 되었습니다.

이 책으로 입문한 지 1년 지나고 JLPT N3에 바로 합격했습니다. 흥미가 생겨서인지, 자신감이 생겨서 일본어에 대한 흥미를 잃지 않았고 이후 계획에는 없었던 다른 책을 구매하면서 일본어 실력이 향상된 것 같습니다.

일본어 현지회화 무작정 따라하기, 현지 일본어 듣기 무작정 따라하기 시리즈 등 모두 자연스럽게 구매를 하게 된 것 같습니다. (무작정 따라하기 7권 정도 시리즈 모두 가지고 있습니다 ^^)

지금 일드나 애니메이션을 보면 70%정도는 알아듣는 수준이 된 것 같고 일본 여행 가서 대화를 시도해봤는데 부족하지 않을 만큼 소통이 가능했습니다.

책 정말 강추합니다!

신고
Posted by icaynia
프로그래밍노트2017.05.17 13:05

1. $.cookie is not a function 

html head 태그에 아래 코드 넣어주면 동작한다.

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-cookie/1.4.1/jquery.cookie.min.js"></script>



2. $.cookie("쿠키 이름") 에서 값이 undefined 일때

쿠키가 없거나 쿠키가 http only 로 되어있을 경우 undefined이다.




Node js 기준으로 아래 코드처럼 httponly가 활성화되어 있다면 jQuery에서 쿠키 가져오기가 불가능하다.

res.cookie('foo', '홍길동', {
    httponly:true maxAge: 60 * 60 * 1000 * 24 * 30 // 1 month
});


httponly가 있는 경우 없애주자.

신고
Posted by icaynia

replace("원래 문자", "바꿀 문자");

String str = "Hello world!";

String tmp = str.replace("Hello", "yellow");


tmp 값 출력시 "yellow world!" 로 출력됨.

신고
Posted by icaynia
기타, 리뷰2017.03.03 03:01

 주로 하는 게임들 중 osu!라는 리듬게임을 한다. 난이도도 어려운 것들 위주로 있고, 음악을 좋아하는 것도 있기에 아주 즐겨 한다. 키보드도 기계식 적축 키보드를 구매해서 게임 플레이를 하고 있고, 리듬에 맞춰 노트를 칠 때 마다 스트레스도 아주 풀리는 것 같다. 유튜브의 굇수 분들의 플레이 동영상을 보면서 나도 저렇게 하고 싶다고 생각한다. 엄청 복잡하게 꼬여 있는 노트들을 어떻게 치는가 싶다.


 osu!의 특이한 점이라면 다른 게임들과는 다르게 미션이나 목표가 없다는 점이다. 레벨이 있지만 오른다고 해서 아이템을 주는 것도 아니다(애초에 osu!에는 아이템 같은 건 존재하지 않았다). 멀티 플레이에 들어가 16명이 함께 플레이를 해서, 1등을 하면 기분이 좋아져서 자신감이 생기기도 한다. 그 중에서도 특이한 거라면 내 세계 랭킹 등수를 알려 준다는 점이다. 요새 게임들 보면 퍼센테이지로 알려 주기도 하긴 하지만... 이건 정말 세세하게 알려준다. 세계 랭킹 뿐만 아니라 국내 랭킹도. 참고로 현재 세계 랭킹은 16000등 정도이다. 


 너무 자세하게 나오다보니 랭킹을 올리기 위해 플레이를 계속 하게 되고 더 좋은 성적을 얻어내기 위해 노력하게 된다. 마찬가지로 보상은 주어지지 않는다. 지인 중 세계 랭킹이 600등 정도인 사람이 있는데, 나도 어느새 모르게 저렇게 되고 싶다고 생각하게 됬고 지금도 분명하진 않지만 랭킹을 조금이라도 올리기 위해 플레이한다.


 나는 소프트웨어(프로그래밍), 음악(악기연주나 작곡), 영상, 음향, 조명, 일본어 등 폭넓게 공부하고 있는데, 어느새 나도 모르게 "내가 이 사람 보단 잘하겠지", "모르니까 내가 가르쳐줄게" 라는 식으로 남과 계속 비교하려고 했었다. 나보다 수준이 약간 높은 사람이 있다면 그 사람보단 뛰어넘어야 되지 않을까? 라고 계속 생각했다.


 국민대학교 소프트웨어 캠프의 강연 때 질문을 던진 것이 있다. 구체적으로 기억은 안 나지만 프로그래밍 실력을 명확하게 측정하는 것에 대해, 그리고 내 실력은 왜 늘지 않는 것처럼 느껴질까를 질문했었다. 그때 답은 "그건 중요하지 않다"였다. 그때 깨달은 것이 몇 가지 있는데, 하나는 프로그래밍이란 것은 결국은 창작 툴에 불과하다고 깨닫게 되었다. 프로그래밍이 중요하지 않다는 것을 이야기 하고 싶은 것이 아니라, 그림 편집 툴에 비유를 해 보자면, "C를 쓸 것인가 Java를 쓸 것인가"에 대한 것은 "포토샵을 쓸 것인가 사이툴을 쓸 것인가" 에 대칭이 가능했고, "프로그래밍 언어 문법은 어떻게 쓰는 것인가"에 대한 것은 "포토샵에 있는 붓 툴은 어떻게 사용하는 것인가". 이 밖에도 여러가지가 있을 것이다. 프로그래밍은 문법은 그다지 중요하지 않고 필요할 때 찾아보면 되는 것이다.  또 하나는 결국 프로그래밍으로 무엇을 만들 것인지, 어떻게 효율적으로 개발할 것인지가 중요하다고 깨닫게 되었다. "하드코딩을 해야 할까"는 "포토샵에서 기본 레이어의 백그라운드 색을 입히려면 무작정 붓 가지고 칠해야 할까" 정도로 생각을 할 수가 있었다. 포토샵에서 레이어에 백그라운드를 입히려면 여러가지 방법이 있다. 앞서 이야기한 것 처럼 "붓으로 무작정 색칠하는 것"이 있고 조금씩 더 효율적인 방법을 생각해 본다면 "붓의 크기를 최대 크기로 키워서 색칠하는 것" 또는 "사각형을 레이어 크기만큼 크게 만들어서 래스터화 하는 것" 등등.. (이걸 생각하게 된 이유는 내 노트북에 포토샵을 깔고 보니 도구 모음에 페인트 통이 없었던 것이었는데, 난 포토샵을 잘 못쓰므로 별 생각 안하고 붓으로 무작정 그리는 방법을 계속 사용하다가 익숙해져 버려서..) 프로그래밍도 같은 것 같다.


 그래서 프로그래밍을 잘 하고 못 하고가 중요한 것이 아니라 프로그래밍을 통해 무엇을 만들 것인지, 그리고 그것을 어떻게 효율적으로 만들어 비용을 절약할 것인지를 깨달은 것이다. 서론에 이야기 한 게임과는 다른 것 같다. 사람들에게 똑같은 문제를 주었을 때 제각기 다른 방법으로 해결하기에 다 다르다. 그래서 비교가 가능하고 등수가 나올 수 있는 것. 프로그래밍을 잘하고 못하고를 따질 게 아니라 프로그래밍으로 무엇을 만들었는지, 그 소프트웨어로 우리에게 어떤 영향을 끼치는지를 따지는 것이 중요한 것 같다. 

 현재 아이디어가 여러 가지 생겼고 몇 가지 프로젝트를 혼자 진행하고 있는데 쉽지 않은 것 같다. 진행 속도도 느린 편이고. 하지만 머릿속에선 어떻게 구현해야 할지 또는 이 방법이 좋은지 라던가... 생각이 정리가 잘 되는 것 같다. 개발 비용을 줄이는 것과 효율을 올리는 연습이 필요하다. 그리고 알고리즘만 좀 더 공부하면 최고의 툴 사용자가 될 수 있을 것 같다 ㅎㅎ.

- 지극히 개인적인 생각을 서술한 것입니다. 틀린 부분이 분명 있을 거라 생각합니다. 지적해 주신다면 정말 감사하겠습니다. ^^*

신고
Posted by icaynia
日本2016.12.03 11:31

일본어를 시작한지는 1년 2개월, 공부기간은 11개월 정도 된다. 그 정도 했는데 공부는 많이 된 것 같다.

내일 JLPT시험을 치는데, 책 한권 풀면서 책에 있는 모의고사 문제집을 2개정도 풀었더니 잘 풀리는 편이였다. 그래서 합격이 될지에 대해선 안심이 된다.

시험이 어떨지는 모르겠지만 그냥 재미있게 치고 오고 싶다.


신고

'日本' 카테고리의 다른 글

JLPT 하루 남았다.  (0) 2016.12.03
[펌]일본어 공부 순서  (0) 2015.09.29
Posted by icaynia
분류없음2016.11.30 00:40

요즈음 내가 얼마나 코딩을 잘 하는가, 프로그래밍을 잘 하는가이다. 페이스북 생활코딩 그룹이나 페이스북 친구에게 프로젝트 결과물을 동영상으로 보여 줄 때는 정말 잘 만들었다고 생각한다. 근데 나는 그정도 프로그래밍을 잘 하지 못하는 것 같고 지금 당장 만들어보라고 하면 만들지 못할 것 같은 느낌도 난다. 


그런 면에서 봤을 땐 나는 프로그래밍을 조금 못하는 편이 아닌가 싶기도 했다. 또한 나는 알고리즘에 대한 것은 거의 모르고 있고, 어제 버블정렬이라는 것을 한번 해 본 정도다. 그것도 그럴 게, 안드로이드를 공부하면서 어플리케이션을 개발하는 것만 신경을 썼고 정렬이라든지 배열을 다루는 것에 대한 건 Java나 안드로이드에서 이미 좋은 걸 제공하고 있었다. 그런 것을 사용하다 보니 자연스럽게 다루지 않게 되고 고찰을 점점 하지 않게 되었다. 게다 구지 정렬이니 뭐니 하는 알고리즘을 사용하지 않아도 안드로이드라면 무엇이라도 자신있게 만들 수 있을 거 같은 아주 한심한 생각을 한 때도 있다.


현재는 안드로이드에 대한 것은 다 아는 편은 아니다. 간단한 어플리케이션이라면 바로 만들 수 있을 지도 모르겠다. 근데 내가 프로그래밍을 잘 하는가 고민하면서 한가지 빼먹은 것이 하나 있었다. 내가 생각한 건 코딩을 잘 하는 거라면 구글에서 구지 레퍼런스를 찾아보지 않아도 만들 수 있는 정도로 생각하고 있었다. only 내 생각이지만 구글 없이 코딩이 가능한가 라고 했을 때 전혀 아닌 것 같았다. 아무리 잘 해도 레퍼런스를 찾아가면서 해야 안정적으로 프로그래밍을 짤 수 있다고 생각했다.


그러면서 내가 맨 처음에 프로그래밍에 입문하게 된 계기인 아두이노를 생각해봤다. 아두이노에서 어떤 걸 만들려면, 사용하는 모듈, 센서의 라이브러리를 가져 와야 된다. 라이브러리는 그 모듈의 제조사의 홈페이지나 github에 있을 수도 있고, 네이버 블로그나 카페에서 찾아 볼 수도 있다. 그리고 그 라이브러리의 함수 예제들을 참고를 해야 사용하는 것이 가능했고, 그렇게 어떤 걸 만들어 동작을 하게 된 경험이 있다.


그래서 지금 생각하고 있는 건, 코딩을 얼마나 잘 하느냐라는 건 별로 중요한 건 아닌 것 같다고 생각한다. 코딩을 해서 뭘 만드는가가 가장 중요한 것 같다. 무엇을 만들려면 결국엔 구글을 통한 레퍼런스, 또는 예제가 필요하고, 그렇게 해야 좋은 프로그램을 짤 수 있다고 생각한다. 알고리즘이라든지, 그런 것도 예제를 통해 알게 될 것이라고 생각한다.


물론 경험이 그다지 있는 편이 아닌 내 생각은 맞을 수도 있고 틀릴 수도 있다. 그냥 그렇게 느끼고 있다는 것이다..!

신고
Posted by icaynia