본문 바로가기
[node.js] 프로젝트 - 고정 IP, 네임서버 변경, 도메인 연결, 프록시 서버 [어플리케이션 고정 IP 발급, 네임서버 도메인 매칭]1) instance management page > Elastic IPs 발급 2) 발급받은 고정 IP 선택 > Actions > Associate address > 인스턴스와 연결 3) 네임서버 설정 : 구매한 도메인이 고정 IP(어플리케이션 컴퓨터, 서비스)를 가리키게 만들기 => AWS Route53 : AWS DNS 서비스 - https://console.aws.amazon.com/route53/home?region=us-east-1#DomainListing: => AWS에서 도메인을 구매해서 바로 Route53 사용해도되고, 외부 업체에서 도메인 구매하고 외부 업체 네임서버를 사용하면됨 => 닷홈에서 도메인을 사고, 도메인 네임 서버를 AW.. 2017. 8. 1.
[자료구조 알고리즘] 재귀 호출 : 논리를 코딩하기 [재귀함수 호출]- S(n) 결과값 도출을 위해 S(n-1)이 필요할 때 재귀 호출을 사용 => 패턴화를 위해 예시 경우의수 2~3가지를 대입해서 실행해보고 패턴화해서 코드로 짜기 123456789101112void Recursive(int num) { if(num 복사본(Recursive) -> 복사본(Recursive) -> 복사본(Recursive) => 원본의 복사본 실행 => 명령문 실행 : 명령문은 CPU로 이동(복사)되어 실행 => 메모리(스택)에 이전 함수(복사본)의 주소가 저장 : 마지막 호출된 복사본이 종료되면 이전 함수(복사본)으로 돌아감 - 재귀 함수 탈출 조건 : 끝남 조건, 무한루프 X => OutOfMemory - 반복문을 간결하게 작성함 : 함수를 스택에 쌓고 연산하는 것보다.. 2017. 7. 31.
[node.js] 핫키워드 서비스 관련 모듈 - 타이머 [타이머 만들기]- 기준시와 현재시간의 차이를 계산해서 보여주기 - 기준시는 어떻게 정하는가? 파라미터 interval로 받은 값을 n이라고 했을 때 n의 배수 시간대가 기준시가 됨(0-23시 중) - 시간 계산은 어떻게? 시간과 분을 따로 보지않고 하나의 단위로 변환한 뒤 계산을 한 후 나타낼 때에는 시간과 분으로 각각 다시 변환해서 보여줌 => milliseconds 단위로 변환 : js 내장 객체 Date을 사용, Date 객체의 getTime 메서드를 이용하면 시간을 밀리세컨즈 단위로 변환해줌 => 밀리세컨즈 : 1000분의 1초, 다시 말해 1000밀리세컨즈가 1초 - setInterval 함수로 일정간격마다 시간 계산 함수를 호출해서 시간 계산을 한 뒤 특정 dom의 텍스트 노드를 변경해줄 것.. 2017. 7. 29.
[자바스크립트] 필수 개념 - 어렴풋이 알면 모르는 것 [기본이자 필수개념 - js 프로그래밍 할 때 모르면 코드 못짜, 다른 사람 코드 못봐] 1) 브라우저 환경에서 자바스크립트는 샌드박스 환경에서 실행됨 : 파일 입출력 막기2) 함수를 통해 생성된 객체는 __proto__ (부모 객체의 프로토타입을 저장하는 프로퍼티가 존재함) => new String, new Object, new 사용자함수 등 => 사용자 함수를 선언하는 것 : new Function()=> 리터럴로 string을 생성하는 경우에는 x=> 부모 객체의 prototype 객체 프로퍼티에 추가를 하면 상속받는 객체들이 추가된 메서드나 변수를 사용할 수 있음 => 프로토타입 체인 : 해당 객체에 프로퍼티가 존재하지않을 경우 부모 객체로 올라감 => 즉시 반영 : 부모 역할을 하는 functi.. 2017. 7. 28.
[자료구조 알고리즘] 자료구조, 알고리즘, 함수(패턴), 빅-오 표기 [자료구조와 알고리즘]- 프로그램 : 데이터 표현(자료구조)하고, 표현된 데이터를 처리(알고리즘)하는 것임=> 어떤 자료구조를 사용했을 때 효율적(알고리즘 : 시간, 공간)으로 처리할 수 있을 것인가?=> 어떤 결과값을 리턴해내야하는가 : 어떤 결과가 필요한가부터 정하고 => 반 학생(36명) 중 아침을 먹고온 사람이 있는지 없는지 체크할 때 : 배열, 순차탐색 알고리즘 (1) 선형구조 : 리스트, 스택, 큐(2) 비선형구조 : 트리, 그래프(3) 파일구조 : 순차파일, 색인파일, 직접파일(4) 단순구조 : 정수, 실수, 문자, 문자열 - 알고리즘 맛 보기(1) 순차탐색알고리즘12345678int LSearch(int arr[], int len, int target){ for(int i=0; i 주변에 .. 2017. 7. 24.
[node.js] 프로젝트에서 실제 동작할 때 쓰일 크롤러 [사용하는 모듈 및 문법](1) require : 필요한 데이터가 있는 문서를 서버에 요청하고 응답받는 모듈(스크래핑 작업) (2) cheerio : 응답받은 문서에서 필요한 데이터를 쉽게 가져오기위한 모듈(파싱 작업) (3) mecab-ya : 파싱한 문장 안에서 진짜 필요한 명사만을 긁어내기위해 사용하는 모듈(+ mecab 프로그램 설치해야함) (4) Promise : 여러번 처리하는 require(비동기) 요청-응답 완료 후 mecab을 실행시키기위해 사용하는 ES6 문법 [실행코드]"use strict"; const request = require('request'); const cheerio = require('cheerio'); const mecab = require('mecab-ya'); f.. 2017. 7. 19.
[자바스크립트] use strict [use strict란]- 코드를 검사할 때 엄격하게 함 : 컴파일 단계에서 오류, 아래 엄격하게 제한되는 부분들이 있음 => 코딩 실수를 잡아내서 예외 발생시킴 - ECMAScript5 문법 - 선언 컨텍스트에 따라 적용범위가 다름 : 스크립트 전체 코드나 함수에 적용시킬 수 있음, 블록( { … } )문에는 적용X => 선언하는 방법은 : “use strict”; 로 선언 - strict mode를 지원하지않는 브라우저의 경우 : 값이 할당되지않은 변수(undefined)로 간주해서 컴파일 에러나지않음 [use strict를 사용함으로서](1) var나 let, const 변수를 선언하는 키워드없이 변수 선언이 안됨 : 암묵적인 전역변수 선언 (2) 같은 이름으로된 함수 파라미터 선언 불가 (3) e.. 2017. 7. 13.
[node.js] 프로젝트 개발 - 크롤링, 형태소 분석, mysql서버 insert [계획과 실행 혹은 테스트 코드]- 첫번째 모듈 : 크롤링, 코드는 아래에 있음 (1) request 헤더, 메세지 설정한 후 요청 날림 : request module (2) request에 대한 response가 날아오면 두번째 파라미터 콜백함수가 실행됨 : cheerio 파싱 => 1, 2번은 Promise를 리턴하는 함수로 만들기, 모듈화해서 두번째 모듈에서 함수 호출, then에서 형태소 분석 기능 호출 => 크롤링이 완료되면 크롤링 결과에 따라 형태소 분석 함수가 호출되거나, 에러 메세지를 띄울 수 있도록 하기위해 => 콜백 지옥을 벗어나는 길, 콜백함수에 대한 순서를 보장하기위한 방법 : 상태를 가짐 => crawl 함수는 Promise 인스턴스를 리턴 : 파라미터로 성공했을 때, 실패했을 때.. 2017. 7. 11.
[자료구조 알고리즘] 공부를 시작하기에 앞서서 - 왜 필요한가 [알고리즘 공부가 필요한 이유]- 문제를 인식할 수 있는 능력 - 문제 해결 방법을 생각하는 능력- 문제 해결 방법을 구현하는 능력 관찰하는 자세(사람 만나고 어떤 일들이 일어나는지 여러 매체를 통해 관심을 가져보고 직접 겪은 일들에 대해서도 생각해보고)해결 방법을 찾는 훈련(알고리즘)구현 하는 능력(프로그래밍 - 자료구조) 3박자를 고루 가지고 있어야 실력 있는 프로그래머가 아닐까싶다. 이제 공부를 시작하겠습니다.재미부터 붙이고 - 백준의 누워서 읽는 알고리즘부터 2017. 7. 6.
[node.js] mysql 모듈 - aws rds mysql 인스턴스 연동하기 [mysql 인스턴스 테스트 - 레코드 추출하기]- 단어, 날짜, 카운트(날짜 AND 단어별 카운트) - 고민했던 것 : 카운트를 컬럼으로 둘 것인가 OR 하나씩 저장시켜서 쿼리문으로 조합할 것인가 - 카운트는 컬럼으로 두지말고 단어와 날짜를 가지고 그룹핑하고 카운트 시키면 되겠음 - 일단 테스트해보고 바꿔가는 형태로 해봐야겠음 : 크롤링부터 데이터 저장까지 [mysql 세팅 및 테스트]- 환경 : AWS RDS mysql-community-server 5.7, 3306 port - 접속 환경 : AWS RHEL 7.2 instance - 특징 (1) inbound 규칙에서 해당 인스턴스만 접근하도록 해당 인스턴스 시큐리티 그룹만 접근가능하도록 설정해둠 (2) 원래는 aws instance에 mysql .. 2017. 7. 5.