목록개발자의 길 (44)
내맘대로 살기🎉
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/9t1QL/btqATggcOKb/wjApXitsKWnfN0jpvklNJ0/img.png)
안녕하세요. 여러분 ! 해림(Harris Lim)입니다. IT직종으로 취업을 한지 어언 1년 반 정도 되어갑니다 ! 일을 하다보면 Network에 대해 접할 기회가 조금씩 있는데, 그럴 때마다 정말 무지하네요. 한 번은 Server Client 간 Socket통신을 할 때, 대용량 데이터 통신은 안정적이지 않은 것을 알고난 후 내 무지함이 큰 실수로 돌아올 수 있겠다고 생각하였습니다. 그래서!!! Network 공부를 하기 위해서 이리 저리 검색해본 결과, 이 책으로 공부하는 것이 좋다고 하여 중고로 구입을 했습니다. 오늘부터 열심히 노트북으로 따라하며, 정리를 하려고 합니다. 파이팅 !!
C언어는 함수로 시작해서 함수로 끝난다. int main(void) - (* int = 출력형태 * main = 함수이름 * (void) = 입력형태)"출력의 형태가 int이고 입력의 형태가 void인 main이라는 이름의 함수" "표준함수"- printf같은 기본적으로 제공되어 있는 함수."표준 라이브러리"- 표준함수의 모임. "헤더파일"- 표준함수의 호출을 위해서는 printf 함수와 관련 있는 헤더파일 선언을 해야한다. (#include ).- 헤더파일은 소스코드 맨 앞부분에 와야한다. "return"- 함수를 호출한 영역으로 값을 전달.- 현재 실행중인 함수의 종료.- return 0을 하는 이유, 보통 0은 정상적인 종료의 상황에서 전달하는 값. 0이 아니라면 비정상적인 상황. "주석"- 프로그..
사실 나도 정규표현식을 직접 사용해보지 않았고, 많이 알고 있지 못하다. 공부를 하던 중에 공유하고 싶고, 정리를 하면서 머리 속 깊은 곳에 새겨두고 싶은 마음이 있어서 글을 쓰게 되었다. 함께 사용 가능한 세 가지의 플래그 i - 정규표현식이 대소문자를 구분하지 않도록 한다. /harris/i는 harris뿐만 아니라 Harris, hARris 등 대소문자를 구분하지 않는다.regexper.com에서 확인해본 결과 Flags:Ignore Case라고 표현되는 것을 확인할 수 있다. /harris/라고 하면 "harris"라는 문자 그대로 가져온다. g - 지정된 패턴에 해당하는 모든 부분을 매치시킨다. Flags를 확인해보면 Global을 확인할 수 있다. m - 여러 줄을 포함하고 있는 문자열을 매치..
md5로 암호화를 하는 방법 1. md5방식의 해싱. (터미널에서 npm install md5 --save)2. 터미널에서 node3. var md5 = require('md5');4. md5('javascript'); 를 검색해보면 암호화된 문자('de9b9ed78d7e2e1dceeffee780e2f919')를 출력한다. 암호화를 푸는 것을 "복호화".복호화가 불가능 한 것을 "단방향 암호화 방법"이라고 한다. md5가 단방향이다.5. 터미널에서 md5('원래의 비밀번호');로 원래의 비밀번호를 암호화한 문자로 얻고 그 문자를 코드에 넣는다. 6. 코드에서 사용자가 입력한 비밀번호도 md5(입력받은 비밀번호) 이렇게 묶어준다. 사용자가 입력한 비밀번호가 어떤 것인지 확인하는 것이 아니라, 사용자가 입력..
처음에 느낌표 두 개를 보고 "이건 도대체 뭐지?"라는 생각이 들었습니다. 그래서 찾봤지요 ! [ 느낌표 두 개 ]라고 검색을 해 본 결과, 아주아주아주 ! 많이 나왔어요. 그래서 쉽게 어떠한 결과인지 알 수 있었습니다. 그런데, boolean으로 형 변환. 0을 false로, 1을 true로.ex)if(!!window.applicationCache){}// 어플캐시를 지원하는 단말이면 true, 지원하지 않으면 false. 이렇게 써져 있더라구요." 아니 그러면 그냥 window.applicationCache라고 하면 되잖아? "라는 생각에 직접 해봤는데, 실제로 굉장히 유용할 것 같더라구요. var ninja = function myNinja(){ var a = 1; var result = "I'm ..
간략하게 두가지 방법으로만 정리해보자. 메서드를 이용한 재귀 메서드를 이용할 때는 익명함수를 사용한다. 어차피 메서드의 이름으로 그 함수를 동작시킬 수 있기 때문에 굳이 함수의 이름을 부여해줄 필요가 없다. 이런 말이 있다. "부르지도 않는데, 고양이에게 이름이 왜 지어줘 ?"(자바스크립트 닌자 비급 中). 맞는 말이다 :-) 코드로 바로 확인해보자. 메서드를 이용한 재귀함수는 이런 식으로 사용하며 된다. 어렵지 않다. 하지만, 주의해야할 점이 있다. 객체를 만들 때, 항상 염두해야할 점으로 재사용성이라고한다. phone이라는 함수를 재사용하려면 위의 ring이라는 메서드의 콘텍스트를 직접 지정해주는 것이 아니라, this로 알아서 자신의 콘텍스트를 잡게 해줘야한다. 재귀를 이용한 인라인 함수 인라인함수..
자바스크립트 닌자 비급이라는 책으로 공부 중에, 정리가 너무 잘되어 있어서, 나 또한 정리를 하고 머릿속에 더 깊숙한 곳에 넣고 싶었다. 다른 언어들과는 다르게 javascript에서는 유효범위가 조금은 다르다. JAVA를 예로 들면, if (window) {var x = 111;}alert(x);라고 하면, x는 undefined 값이 나온다. 하지만 Javascript에서는 x가 111이라는 값을 갖고 있다. 위의 코드에서 변수 a,b,c와 함수 inner()의 유효범위를 확인해보자. outer() 함수 내에 있는 변수 a,b,c는 초기화된 시점에서 outer() 함수가 끝나는 지점까지 그 값을 갖는다.그렇다면 inner() 함수도 선언된 시점에서 outer() 함수가 끝나는 지점까지 함수의 기능을 ..
편집(Edit) view.jade(뷰 단)에 - rid = encodeURIComponent(topic['@rid'])a(href='/topic/'+rid+'/edit') edit를 추가하여 edit기능을 넣어줄 수 있는 버튼(?)을 넣어준다. - rid = encodeURIComponent(topic['@rid'])를 넣어주지 않으면 주소에 #이 들어간다. #이 주소창에 있으면 문제가 생길 수 있으므로 특수문자로 변경해주는 코드를 사용해서 #을 다른 문자로 변형시켜준다. 편집을 하기 위해서는 edit.jade에 db에 있는 글을 읽어오는 로직이 추가되어야 한다. app.get('/topic/:id/edit', function(req, res){ var sql = 'SELECT FROM topic'; /..
DB를 구축할 때 대부분이 이런 형식을 따른다. get('topic/') : view.jade get('topic/:id') : view.jade get('topic/add') : add.jade post('topic/add') get('topic/:id') get('topic/:id/edit') : edit.jade post('topic/:id/edit') get('topic/:id') get('topic/:id/delete') : delete.jade post('topic/:id/delete') get('topic/') node.js에 OrientDB적용시키기 var OrientDB = require('orientjs'); var server = OrientDB({ host : 'localhost',..
먼저 , https://github.com/orientechnologies/orientjs 에서 확인해볼 수 있다. OrientJS 설치 npm install orientjs --save를 터미널 창에서 입력하면 간단하게 설치할 수 있다. OrientJS 간단 사용법 *nodejs는 DB에 대해서는 클라이언트이고, 웹에 대해서는 서버인 것이다. ( 상대적 ) var OrientDB = require('orientjs'); var server = OrientDB({ host: 'localhost', // 이 컴퓨터를 서버로 이용 할 것이니까, locathost port: 2424,// 기본적으로 OrientDB는 2424라는 포트를 사용할 것이다. usernmae: 'root', password: '' }..