본문 바로가기

멋쟁이사자처럼25

[node.js] 프로젝트를 마무리하면서 - 정리, 그리고 해커톤 [서비스 URL]- http://www.politics-watch.com/ [기술 스택]1) 웹 서비스 : Express(nodejs), firebase(auth) - AWS EC2 2) 크롤링 : request, cheerio, mecab-ya(nodejs) / crond - AWS EC2 3) DB: mysql server(AWS RDS) [프로젝트 관련 지식](1) 목표, 컨셉, 디자인, 기능, 사용자 기능 사용 단계, 개발 순서 등 모든 계획을 짜놓은 뒤(초기 계획) 개발(2) 버젼 계획이 있어야함 : 초기 버젼 계획을 세우고 추후 생각나거나 기획된 기능은 다음 버젼, 개발 단계에 돌입했다면 최대한 수정없이(3) 무작정 개발보다는 프로젝트 단계를 지켜나갈 것 : 필요한 정보 설계(DB) -> 기능.. 2017. 8. 20.
[자바스크립트] 함수 호이스팅 [목표]- 자바스크립트 내부 동작 잘 이해하기 : 코드를 복붙하더라도 알고 써야지! [호이스팅이란]- 선언문이 최상위에서 처리되는 것을 호이스팅이라 함- 글로벌 영역(전역)으로 선언되어있는 변수, 함수 선언문들을 먼저 수집하여 전역객체(window)의 프로퍼티로 등록함- 할당문은 자바스크립트 코드 실행(런타임 과정) 시 할당됨 [발생하는 이유]- 자바스크립트의 선언문은 자바스크립트 인터프리터가 해석을 할 때 가장 먼저 처리함(최상위) [호이스팅 예시 - 함수]1234567function foo(){ console.log("함수선언식")} var foo = function(){ console.log("함수표현식")}cs- 같은 함수인 것 같지만, 호이스팅에서 차이가 남, 아랫글이 차이에 대한 부분임 1-1.. 2017. 4. 20.
[자바스크립트] 함수 내부 동작 [함수 내부동작]- 자바스크립트 엔진의 내부를 살펴보면 함수가 실행스택에 쌓일 때 함수는 객체를 생성함- 객체는 Variable Object(줄여서 VO 라 함)임 - 객체 내부(프로퍼티)는 아래와 같음1) arguments 객체 : 함수로 넘어오는 인자 정보를 담는 객체, 배열은 아니지만 배열과 유사한 형태(배열객체가 제공하는 메소드 사용X)로 저장2) 지역변수, 함수 3) scope chain : [[Scopes]] 프로퍼티 참고- 변수의 범위를 담은 프로퍼티- 선언된 지역변수는 지역변수의 값, 그렇지않은 것은 전역객체의 변수 프로퍼티값 참조- 전역객체에서도 없으면 undefined (상위 객체에서도 없을 때에 undefined 즉, 선언되지않은 값) [함수 상세하게 보기]1) 콘솔창에 함수 만들기1.. 2017. 4. 19.
[자바스크립트] 느슨한 타입 [목표]- 자바스크립트 특징 이해하기 : 그냥 아 그렇구나하고 넘어가는게 아니라... [느슨한 타입이란]- 타입없이 변수를 선언하는 것- 자바스크립트가 변수를 선언할 때 타입없이 var(variable 약어)로만 선언함- 느슨한타입과 반대되는 말은 강력한타입, 강력한타입은 반대로 변수를 선언할 때 타입을 선언해야함1234567/* javascript (loose typing) */var a = 1 // typeof(a) === Numbervar b = "str" // typeof(b) === String /* java (strong typing) */int a = 1;String b = "str"cs - 타입없이 선언했다고해서 변수의 타입이 없는 것은 아님 : 내부적으로 정해짐- 내부적으로 변수의 타입이.. 2017. 4. 19.
[자바스크립트] 프로토타입체인 [목표]- 헷갈리는 자바스크립트 프로토타입기반 객체지향 안헷갈리게 하기 [자바스크립트 객체 그리고 프로토타입체인](1) 객체리터럴 : 숏컷 방식(간단하게)1var obj1 = { } cs (2) 생성자 : 위의 객체와 동일한 객체를 만들어냄, function Object()의 인스턴스 객체1var obj2 = new Object()cs - Object 타입은 모든 객체의 최상위타입- 자바스크립트는 프로토타입(객체의 원형을 가진 객체, 함수의 공통된 프로퍼티, 메소드 저장)을 이용한 상속을 지원함- 그래서 Object 타입 생성자의 프로토타입 객체를 상속받은 인스턴스 객체가 생성되어 obj2에 저장되었다고 표현- 프로토타입을 이용하여 객체와 객체끼리 연결하고 한쪽 방향으로 상속받는 형태를 만들 수 있음- .. 2017. 4. 16.
[node.js] 비동기 프로그래밍 [목표]- 동기 프로그래밍과 비동기 프로그래밍의 차이점을 알자- 비동기 프로그래밍은 어떤 때에 사용하는 것이 좋은지 찾아보고 생각해보자- nodejs는 비동기프로그래밍 하기가 쉬움을 느끼자- nodejs api 문서를 보면서 api 사용하는 것에 익숙해지자- 콜백함수란 무엇이고, 콜백함수 지옥 맛보기- 앞으로 nodejs를 공부함에 있어서 어떤 것을 공부해야할지 생각해보기 [비동기프로그래밍이란]- 영어로는 Asynchronous - 집안 일(빨래, 설거지, 청소)을 할 때 빨래 다하고 설거지 다하고 청소 하는 것, 순서대로 완료시키고 다음 넘어가는 것은 동기적인 것- 빨래, 설거지, 청소 업체를 불러 동시에 처리하는 것, 하나가 완료됨과 상관없이 동시에 일을 처리하는 것을 비동기적인 것이라 함- 일 처리.. 2017. 4. 12.
[node.js] 모듈 그리고 npm [모듈이란]- 부품과 같은 것- 어떤 기능을 쉽게 만들기위해 필요한 것- 정해진 모듈 사용방법에 따라 사용을 하면 어떤 기능을 쉽게 만들 수 있음- 기능이라는 것이 웹서버 내 기능 뿐만 아니라 컴퓨터 내에 어떤 처리를 쉽게할 수 있도록 도와주기도 함- 예시 : 공식홈페이지에서 가져온 웹서버 구축 코드123456789101112const http = require('http');const hostname = '127.0.0.1';const port = 3000;const server = http.createServer((req, res) => { res.statusCode = 200; res.setHeader('Content-Type', 'text/plain'); res.end('Hello World\n'.. 2017. 4. 12.
[자바스크립트] 클로저(closure) [목표]- 이전에 배운 자바스크립트 관련 개념을 통해 클로저 이해하기- 클로저 특징을 활용 예시 알아보기(클로저를 사용하는 이유)- 클로저를 배움으로서 자바스크립트 개발에 있어서 도움이 되는지 스스로 생각해보기 [클로저란]- 실행컨텍스트에 대한 지식이 있어야 이해할 수 있음- 자바스크립트에서 함수는 일급객체(매개변수, 리턴값, 변수 대입 등 값처럼 사용가능)라는 것을 기억해야 이해할 수 있음- 일급객체라는 말을 이해하려면 실행컨텍스트 포스팅 볼 것(자바스크립트 엔진이 함수 스코프 정의 시 객체 만들고 프로퍼티 - 값 정의하는 부분)- 자바스크립트 뿐만 아니라 함수를 일급 객체로 취급하는 함수형 언어에서 사용되는 중요한 특성- 외부함수와 내부함수와 관련된 것12345678function outer(){ /.. 2017. 4. 11.
[자바스크립트] 실행컨텍스트: js 동작원리 [목표]- 실행컨텍스트, VO를 이해하기- 자바스크립트 동작원리를 이해해야 패턴을 왜쓰는지 알 것 같으니깐 이해하기 [실행컨텍스트란]- 실행컨텍스트는 추상적인 개념- 어떻게 자바스크립트 코드가 실행되는지 이해하기위해 알아야하는 개념- 실행컨텍스트는 실행되는 코드의 한 덩어리라 생각하면 됨- 예시(1) 함수가 호출되면 함수의 실행컨텍스트가 생성됨(2) 실질적으로는 함수 내부 정보를 담는 객체가 생성되고, 그 객체에는 함수 정보가 담김(프로퍼티 생성 : 변수명, 함수명 등이 프로퍼티로 생성됨) => 변수에 대한 값 혹은 함수의 실행 부분이 초기화되는 것은 아님 - 호이스팅 부분과 관련되어있음) => 이후 코드가 실행됨 12345678910111213console.log("이것이 global context").. 2017. 4. 8.
[웹 기본개념] 세션 [목표]- 세션과 쿠키의 필요성 인지하기- 쿠키와 세션의 차이를 이해하기- 내가 사용하고 있는 서버언어의 쿠키, 세션 이용방법 찾아보기 [세션이란]- 쿠키보다 안전하고, 조금 더 많은 정보를 저장할 수 있음- 쿠키가 클라이언트 측(웹브라우저)에 이전 통신 정보를 저장하는 것(HTTP 통신은 이전 통신 상태, 정보를 알지못함) : 장바구니, 로그인 정보 등 - 쿠키 보안 이슈 (1) 사용자의 웹브라우저와 서버가 통신하는 과정에서 중요한 정보(로그인시 아이디 비밀번호)가 왔다갔다하는데 중간에 탈취가능성 (2) 클라이언트 컴퓨터 해킹 - 쿠키 정보 탈취 가능성 - 세션 (1) (쿠키 방식 + 서버 측 db에 정보 저장) 혼용(2) 쿠키 방식 - 브라우저 저장(사용자 식별자값만 저장), 실제 값(비밀번호)은 서.. 2017. 4. 5.