2017/02 22

크롬 익스텐션 Autoupdating 번역.

원문 : https://developer.chrome.com/extensions/autoupdate 자동 업데이트.개발자들은 본인이 개발한 익스텐션이나 앱들을 자동으로 업데이트하길 원합니다. 버그나 보안취약점을 고치고, 기능을 추가하고, 성능을 향상시키고 유저 인터페이스 등을 개선하기 위해서죠. 혹시 이미 Chrome Developer Dashboard를 이용해서 배포할줄 안다면, 더이상 안 읽어보셔도 됩니다. 왜냐하면 Chrome Developer Dashboard를 이용하면 크롬 웹스토어와 똑같이 앱을 업데이트하고 배포할수 있기 때문이죠. 스토어말고 다른곳에서 호스팅하고 싶으면 계속 읽으세요. Hosting과 Packing도 읽어야 할 겁니다.주의 : M33이후로 윈도우 유저들은 크롬 웹 스토어에서만..

web/etc 2017.02.28

로스트 시즌 1

What's this for? 뭘 위한건데요? -> 왜 필요하 냐?, 뭐에 쓰려고? 등. in an attempt to : ~하려고 here's the thing : 이게 문제야.(이제 설명해줄게.) i'm in the middle of something. : 나 뭐하고있는중이야. butter somebody up : ~에게 아부하다 give or take : 어림잡아서요.(부사) make progress : 진행하다. on the same diet : 같은 식단을 먹다. a and b are on the same diet : a 와 b는 같은 음식을 먹었어요. once in a while : 가끔은.(부사)

private/English 2017.02.26

unittest. 테스트

unittest모듈을 사용해서 테스트를 할 수 있다. 공식 doc : https://docs.python.org/2/library/unittest.html 해야될 것들. 1. 클래스를 구현해서 테스트를 하는데, unittest.TestCase를 상속받아야 한다. 2. 테스트할 함수들의 이름은 test로 시작하도록 구현한다. 이름이 test로 시작하지 않으면 테스트가 되지 않는다. 3. self.failUnless나 self.failIf등등의 메소드를 상속받으며 이 안에 테스트할 함수를 인자로 넣는다. # -*- encoding: cp949 -*-import unittest # Here's our "unit".def IsOdd(n): return n % 2 == 1 # Here's our "unit tes..

크롬 익스텐션 Content Scripts 번역

원문 : https://developer.chrome.com/extensions/content_scripts Content Scripts는 웹 페이지의 안에서 돌아가는 자바스크립트 파일입니다. 표준 DOM을 사용해서 브라우저가 방문한 웹 페이지의 정보를 읽거나, 변화를 만들어 낼 수 있습니다. 아래에 content scripts가 할수 있는 것들이 있습니다. 1. 하이퍼링크로 처리되지 않은 url들을 하이퍼링크로 만들기.2. 읽기 쉽게 폰트 사이즈 키우기.3. DOM의 microformat data 찾고 변경하기. content scripts는 몇가지 제한이 있습니다. 아래는 content scripts가 할수 없는 것들입니다. 1. 아래를 제외한 크롬 api사용하기.사용할수 있는 것들.extension..

web/etc 2017.02.23

2017-02-20 월요일

오늘 처음으로 코드리뷰를 받았다. 코딩은 많이해봤지만 개발은 많이 안해봐서 그런지 코드리뷰를 받는것은 처음이었다. 그런데 코드리뷰를 해주신 분이 엄청난 경력자이어서인지... 대단했다.내 코드가 반토막으로 줄었는데 가독성은 늘어났다. 가독성뿐만 아니라 에러가 발생했을때 디버깅도 확실히 쉬워졌다. 처음으로 개발하면서 자괴감이 듦과 동시에 선배 개발자에 대한 존경심이 생겨났다. 그러면서 이렇게 바꾸는게 어떤 패턴이라고 설명해 주셨는데 정말진짜 개멋있었다. 와... 나도 빨리 고수가 되고 싶다. 오늘 코드리뷰 받고 목표 하나 삼은건 디자인패턴 책을 사야겠다... 나도 이거 익히면 그나마 나아지겠지... 코드리뷰하면서 하도 털려서 그런지 원래는 퇴근시간되도 팔팔했는데 정신적으로 매우 피곤했다. 조금 일찍 자야겠다..

크롬 익스텐션 Overview 번역

https://developer.chrome.com/extensions/overview 번역 개요. https://developer.chrome.com/extensions/getstarted를 본후에는 익스텐션을 개발할 준비는 끝났다. 기초.크롬 익스텐션은 크롬에 기능들을 추가할 수 있는 압축된 html,css,javascript,image 등등의 파일들의 집합이다. 익스텐션은 본질적으로 웹 페이지이며, 브라우저가 웹 페이지에 제공하는 XMLHttpRequest부터 html5를 위한 JSON까지 api들을 사용할수 있다. 익스텐션은 다른 웹 페이지나 서버와 content script나 cross-origin XMLHttpRequests를 사용해서 통신할 수 있다. 또한 bookmarks나 tabs같은 브..

web/etc 2017.02.20

2017-02-19 일요일

인천 가서 친구를 만나고 왔다. 얘는 군대문화를 좋아한다. rotc를 갔다온 이후부터 그랬는지는 모르겠다. 지금도 군대에서 나온걸 후회하면서 군대에서 다시 불러주면 기꺼이 갈 용의가 있다고 한다. 취업을 잘 못했으면 이해했을법도 한대 취업도 잘 했다.(유명 대기업) 거기에 일이 힘든것 같지도 않다고 하는데... 신기하다. 지금 일하는 직장이 군대?와 관련되서 예비군도 안간다고 했다. 그러면서 예비군이 재밌어서 가고싶다는 말도 했다. ???? 안가면 좋은거 아닌가 ㅋㅋㅋ 거기에 군대문화?를 좋아해서 그런지 아부왕인것같다. 술먹고 알아서 선배들에게 컨디션 사다주고 진짴ㅋㅋㅋㅋ 근데 또 페이스북이나 애 성격보면 받는건 좋아하지 않는것 같다. 얘랑 이것에 대해서 4번정도 얘기한것같은데 볼때마다 신기하다. 항상 ..

맥에서 pip로 모듈 설치시 operation not permitted에러

ex) dmgbuild를 설치하고자 한다. sudo pip install dmgbuild를 했는데.... sudo로 관리자 권한으로 실행했음에도 불구하고...이처럼 갑자기 죽어버리는 경우가 있다. 지금보니 dmgbuild라는 모듈 말고도 여러가지 앱이 동일한 원인으로 죽는 경우가 많은것 같다. Exception:Traceback (most recent call last): File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7.egg/pip/basecommand.py", line 215, in main status = self.run(options, args) File "/Library/Python/2.7/site-packages/pip-9.0.1-py2.7...

웹 브라우저 동작 원리

http://taligarsiel.com/Projects/howbrowserswork1.htm#Parsing_general 의 내용을 복붙해놓음. 놔두고 계속 읽어야지. 추가 : 아니..... 영어 해석해서 대부분 읽었는데 이미 네이버에서 번역본을 출간해놨었다.... 갓네이버... 번역본 : http://d2.naver.com/helloworld/59361 How browsers workBehind the scenes of modern web browsers Safeguarded by Incapsula IntroductionThe browsers we will talk aboutThe browser's main functionalityThe browser's high level structureCommu..

web/etc 2017.02.17

js deferred promise 비동기 처리 관련.

deferred와 promise는 비동기 처리 관련 자바스크립트 객체다. Promise는 비동기 처리 로직을 추상화 한 객체와 그것을 조작하는 방식을 말한다. deferred와 promise의 개념.http://stackoverflow.com/questions/17308172/deferred-versus-promise 의 대답인데 쉽게 잘 설명해놓은것 같다.down voteacceptedFirst: You cannot use $.Promise(); because it does not exist.A deferred object is an object than can create a promise and change its state to resolved or rejected. Deferreds are ty..

web/back + front 2017.02.15

2017-02-14 화요일

처음으로 비동기 프로그래밍을 해봤는데 어렵다. 비동기 개념 자체도 어려운데 비동기인 부분이 큰 시스템의 일부분으로 있어서 일단 사용법만... 익히는데 2시간은 걸린 것 같다. 당장은 쓰는 방법만 익혀놓고, 아까 구글링하다가 이것에 관해서 책을 찾았는데 지금 공부하려고 다시 찾아보니 안 나온다. 회사 노트북에 받아놨었는데 나중에 한번 더 공부해야겠다. 쓰는 방법만 알고 편하게 살긴 싫다. 우리팀 팀원들이 되게 꾸준하다. 묵직하게 코딩을 오래한다고 해야하나... 난 몰랐는데 동기들과 오늘 한잔하면서 알게 되었다. 평소에 어떤지 카페는 얼마나가는지 등등. 듣고나니 우리팀이 많이 부지런한 것 같다. 지금 생각해보면 업무중에는 조용하다. 쉬는시간도 딱히 정해져있는게 아니라 쉬고싶으면 쉬면 되는데 잘 안쉬는것 같다..

jquery 이벤트 흐름.

이벤트는 4가지 종류가 있다. 1. 마우스 이벤트 : 마우스 버튼 클릭했을때 등.2. 키보드 이벤트 : 키보드를 눌렀을때 등.3. 태그요소 고유 이벤트 : ex) img태그같은겨우 이미지가 모두 로딩되면 load이벤트가 발생한다. 4. 사용자 정의 이벤트 : 개발자가 만든 이벤트. 이벤트의 단계. 단계1 : 캡쳐 단계.단계2 : 타깃 단계.단계3 : 버블링 단계. 구글링해서 찾은 이미지인데 5번에 있는 (text)에 접근한다고 가정하자. 1번에서 이벤트가 시작되어 순서대로 가다가 10에서 끝난다. 캡쳐 단계는 목적지까지 가기 전의 경로들을, 타겟 단계는 접근하려는 타겟에 접근한 단계, 버블링 단계는 끝내고 다시 돌아오는 단계이다. 1. 캡쳐 단계.eventphase속성값이 1로 출력되며 이벤트 등록은 $..

web/back + front 2017.02.12

2017-02-11 토요일

나는 술을 좋아한다. 막 새벽 두시까지 많이 마시지는 않는데 일주일에 한번은 먹어줘야 뭔가 체력포션을 마시는 되는 느낌이다. 체력포션보다도 감정포션?을 마시는 느낌이다. 말로 잘 표현을 못하겠음. 지금까지 술을 먹던사람들과 맨날 먹었는데 이제 동기들과도 먹고 다른사람들과도 먹어야겠다. 술을 먹는다는것보단 그냥 다른사람과 같이 있음으로서 마음이 편해지는것 같다. 평일엔 혼자있는걸 좋아하는데 금요일이나 주말엔 꼭 누구던지 술을먹던 뭘하던 다른 사람과 같이 보내고 싶다. 트랙패드2와 애플 유선키보드를 현금으로 용산가서 질렀다. 20만원..... 가슴이 좀 쓰리긴 했는데 뜯어서 제품 상태를 확인해보니 20만원값어치를 한다는 생각이 들었다. 진짜 너무너무너무 예쁘다. 내 책상에 개발환경 다 세팅해놓고 사진 찍어서..

2017-02-09 목요일

오늘부터 코딩거리가 조금씩 이해되기 시작했다. 전반적인 시스템이라던지.. 대충 코딩해서 어떤걸 어떻게 넣어야 할지 파악이 되서 그런지 살짝 이해가 된것 같다. 동기가 동기톡방에 애플 매직키보드와 마우스를 올렸는데 너무너무 사고싶어서 바로 사기로했다. 터치패드 바깥에 나와있는거 사고싶은데... 하다가 다른사람이 사고 당당하게 후기사진을 올린거 보고 감이 왔다. 이건 내꺼다... 어제까지만 해도 좋은거 사고 싶다. 였다면 오늘은 애플 매직키보드와 터치패드2를 사고 싶다. 이다. 토요일날 당장사서 자랑해야겠다.코딩하다가 쉴 틈만 나면 트랙패드 사진이 나와 있는 블로그를 보고 또 봤다... 그거 보느라 한 두시간 날린 것 같다. 글쓰는 도중에도 사고 싶다. 명함 신청을 했다. 당연하게도 업무적으로 필요해서 신청..

2017-02-07 화요일

밥먹으면서 들은건데 원래 신입이던 경력이던 들어온지 얼마 동안은 그냥 내버려 둔다고 한다. 나같은경우는 한달동안 내버려 둔다고 했다. 한달동안은 '진짜' 놀아도 되는데 그 후에 어느정도 실력이 안올라와있을 경우엔 본인이 책임지는 구조라고 했다. 두려우면서도 정말로 좋은 제도 같다. 우리회사가 아니라 어디서 들은건데 자기가 맡은 일만 하면 가도 되는 곳이 있다고 했는데 우리 팀 같다.(다른 팀은 모르니 제외) 아직 신입이고 2주차라 그냥 지도받으면서 강의받고 공부하고있는데 터치를 거의 안받는다. 질문받을거 있나 물어보는거 말고는 그냥 놔둔다. 힘들면 시간 상관없이 혼자 휴게실에서 쉬다 와도 되고, 한시간동안 나가서 있다 와도 별말 안들을것 같다.(양심에 찔려서 하진 않음.) 방치되면서 노시고 싶으면 노셔도..

2017-02-06 월요일

주말에 동기들끼리 mt를 다녀왔다. 거의 밤새도록 술먹고 마피아게임하면서 놀았다. 역시 술이 제일인것 같다.... 엄청나게 많이 친해졌다. 동기중에 한명이 진행했는데 진행도 잘되서 더 재밌었다. 6개월에 한번씩 가기로 해서 이번 여름에 한번 더 갈것 같다. 저번주는 팀 분위기와 일 프로세스 등 파악시키는거였는지 방치되어서 일이 없었고, 오늘부터 일이 할당되었다. 교육겸 하는거라서 간단한 일인것 같은데 2주정도 기간을 주셨다. 뭔가 제대로 설치하고 소스코드 보니까 진짜 흥미가 생긴다. 높은 외국인이 사무실에 한명 더 들어왔다. 이름은 까먹었는데 우리 팀 사람들도 보는건 처음이라고 했다. 근데 또 처음보는거니까 밥을 먹자고 했다. 인도 사람이라 못먹는게 많아서 식당을 잘 골라야 한다는 말도 들었다. 어쨌든 ..

jquery 노드,스타일,속성,이벤트 다루기

노드 다루기 아이디 이름으로 노드 찾기$('#아이디') 태그 이름으로 노드 찾기$('태그') 클래스 이름으로 노드 찾기 $('.클래스') 속성으로 노드 찾기 $('[속성이름=값]') 찾은 갯수 구하기 $대상.length n번째 노드 접근하기 $대상.eq(index) 자바스크립트 dom 객체 접근하기 $대상.get(index), $대상[index] 순차적으로 노드 접근하기 $대상.each(function(index) { $(this)또는 $대상.eq(index); }) 찾은 노드 중에서 특정 노드만 찾기 $대상.filter('선택자') 찾은 노드의 자손 노드 중 특정 노드만 찾기 $대상.find('선택자') 인덱스 값 구하기 $대상.index(), $목록.index($대상), $목록.index(대상 dom..

web/back + front 2017.02.06

js 정규식 관련.

참고 : http://www.nextree.co.kr/p4327/ 참고2 : https://opentutorials.org/module/532/6580 이거 두개면 될거같다. 테스트는 온라인에서 하지말고 콘솔에서 node가 되면 var a = /^([a-z0-9]{5,})$/.test('abc1'); // false var b = /^([a-z0-9]{5,})$/.test('abc12'); // true var c = /Abc/i.test('abc123'); // true console.log(a); console.log(b); console.log(c); 처럼 만들어서 node ~.js로 실행해서 true나오는지 false나오는지 체크한후 사용.

web/back + front 2017.02.03

2017-02-02 목요일.

외국인 헤더분과 식사를 하였다. 링크드인에 이름을 쳐보니 매우매우 화려한 스펙과.... 스킬을 가지신 분이었다. 되게 높다고들어서 살짝 긴장했으나 역시 그런거 신경안쓰는것같았다. 점심식사를 같이 하는데 테이블의 중간에 앉았었는데 식탁의 중간은 한국말로, 오른쪽은 영어로 수다떨어서 뭔가 이질감이.. 느껴졌다.난 중간에서 조용히 묻어가려고 했다. 처음이라 분위기파악만 하려고 했는데 갑자기 이따 회의시간에 물어본다며 3개의 문장을 생각하라고 했다. 2개는 참, 1개는 거짓인 문장을 생각해서 맞추는 게싱 게임인것 같았는데 아이스 브레이킹용으로 하려고 한것같다.(근데 결국 까먹었는지 안물어봄.) 말이 많은 편이었는데 높은사람임에도 불구하고 편한 사람같아서 다음부터는 친해지려고 노력해야겠다. 점심을 먹고 올라와서 ..