목록Server-Side (32)
패키지
nodejs 프로젝트 중 아래와 같은 에러메세지 발생 throw er; // Unhandled 'error' eventError: listen EADDRINUSE :::3000 위의 에러는 이미 3000번의 포트를 이미 사용중에 있기 때문에 뜨는 에러라고 한다.나같은 경우 너무 띄워놓은 프로젝트가 많아서 충돌이 났던것 같다. 정상적으로 종료되지 않는 노드 서버를 죽여서 위의 에러를 해결할 수 있다.나는 프로젝트 창을 모두 닫고 재실행하여 위의 에러를 해결했다. - 출처http://tom7930.tistory.com/27
오랫만에 소스를 update하고 올리는데 아래와 같은 에러가 발생하였다. node : 'node' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오.Visual Studio Code의 파워쉘과, cmd로 node, supervisor로 각각 app.js를 실행해보았으나 아래와 같은 에러가 발생했다.발생원인은 환경변수 경로 설정문제였다. 해결과정 중 늘상 환경변수란 말을 쓰면서 실제로 환경변수가 정확히 어떤 것인지에 대해 정확히 알지 못했음을 반성했다. ㅠㅠ 에러 발생원인윈도우 -> 고급 시스템 설정 -> 환경 변수 -> Path확인 결과1) C:\Program F..
데이터 전송시 데이터 길이 한계, (전송할 데이터 많을시)제목과 본문(수천줄)데이터가 중간에 끊기지 않으려면===> (온전히 데이터가 전송되게 하려면 데이터 전송방식을 post로 지정해야 한다.) get방식 장점- 하나의 어플리케이션, 하나의 라우터가 get방식으로 전송된 쿼리스트링에 따라 다른 결과를 리턴해준다는 장점이 있다.- express가 기본적으로 제공 post방식 장점- url에 데이터가 포함되어 있지 않다.- 불필요하게 정보가 노출되지 않는다.- 용량이 큰 데이터 전송에 대한 제한이 없다- body-parser를 추가 해야 한다.
템플릿 엔진 = 정적 기능 + 동적 기능 독립적으로 다른 곳에서 사용할 수도 있다. 템플릿 엔진 = 어떤 특정한 기술, 어떤 특정한 상품이 아닌 어떤 기술/상품군을 의미 하는 것 템플릿 엔진에 들어가는 것 ==> jade, 핸들바.. express자체는 템플릿 엔진 기능을 제공하지 않는다, 템플릿 엔진을 사용하기 위해선 따로 설치해서 express와 연결하여 사용해야 한다. [템플릿엔진이란, 템플릿엔진을 사용하면 어디가 좋아]- 정적인 파일만을 서비스한다면 필요없음- 동적인 결과를 정적인 파일에 담기위해 사용함- 풀어 설명하자면, 자바스크립트 코드로 연산된 결과를 변수에 넣고 변수를 뷰 파일에서도 사용할 수 있게끔 함- 템플릿엔진 사용 이유 : 클라이언트 요청에 따라 웹문서 들어가는 내용(결과)이 달라질..
Javascript와 Node jsNode.js : 기초적인 명령들을 제공 javascript : Node.js들의 명령들을 조합하여(node js 가 제공하는 기능들을), 제공하는 문법에 맞춰, 의도하는 프로그램을 구성 함. Module 과 NPMModuel : 우리가 만들 app을 구성할 부품으로 사용될 작은 프로그램 들 (모듈 종류 : Express, underscore, Jade ) NPM : npm이 있기 때문에 모듈들을 npm을 통해서 application에 담아 , 새롭고 다양한 app들을 만들어 낼 수 있다. Router과 Controller 라우터 : 사용자의 요청을 어떤 controller로 전달해 줄것인가를 결정하는 중계자 역할. Controller => [회원가입, 로그인, 로그아웃..
Node.js 란, node js 를 사용함으로서의 장점.Node.js는 자바스크립트(javascript)로 서버 프로그래밍을 할 수 있도록 해주는 플랫폼. [ 장점 ]1. V8 Engine 위에 작동하는 이벤트 처리 I/O 프레임워크이다.구글이 javascript 코드를 동적으로 컴파일하여 기계어로 바꾸는 V8 엔진을 개발하면서 javascript 실행 성능이 크게 좋아졌다. 2. Event-driven 방식비동기 프로그래밍이다. 요청이 들어오면 결과를 즉시 받아들이는 동기프로그래밍과 달리 비동기는 이벤트 요청시 바로 결과 값을 받지 않아도 된다. 때문에 다양한 요청처리가 가능하다. 3. 프론트엔드와 백엔드를 javascript언어로 관리가 가능하다. 새로운언어를 습득하지 않고 기존 언어를 활용해 서버..
**객체모델링** object 사람 class 설계도 변수 (member) 멤버-메소드(member-method) ** 객체지향! --> 객체를 재사용. 1. member 변수 2. 생성자 ( 객체 초기화 ) 3. member method package day3; public class Person { // 1. member 변수 String name ; int eye =2; int nose = 1; int mouth = 1; int age; int gender; //여:1 여자:2 제3 :3 float weight; float height; //'생성자'는 클래스의 이름과 같은값 // JVM : JRE + a // 클래스 내에 생성자가 1개도 없다면 // 기본 생성자는 존재하는 것으로 인식함(기본제공)..
이름지정 규칙 1) A-Z, a~z, 0 ~9, $ 2) 첫글자문자 3) 글자수제한 x 4) 예약어 x 5) 의미있게 지정 1) 클래스명 : 첫글자 대문자, 사이공백 x, 뒷 단어 첫글자 대문자 2) 변수명 : 첫글자 소문자. 뒷 단어 대문자 3) 메서드명 : 첫글자 소문자. 뒤에 괄호 4) 생성자 : 클래스명과 동일, 뒤에 괄호 5) 상수 : 일반적으로 대문자(MAX_VALUE)
3차 배열은 주로 게임해서 씁니다아 package day2; public class ArrayEx5 { public static void main(String[] args) { int[][][] m = new int[3][2][4]; } } ------------------------------------------------------ package day2; import java.util.Arrays; public class ArrayEx5 { public static void main(String[] args) { int[] m = { 1,2,3,4,5,6,7,8,9,10 ,11,12,13,14,15,16,17,18,19,20, 21,22,23,24,25,26,27,28,29,30, 31,32,33..
package day2; import java.util.Scanner; public class ArrayEx1 { public static void main(String[] args) { //사용자로부터 3개의 정수를 입력받아 //총점과 평균을 출력하세요 Scanner sc = new Scanner(System.in); System.out.println(""); System.out.print(" 국어 :"); int a = sc.nextInt(); System.out.print("영어 :"); int b = sc.nextInt(); System.out.print("수학 :"); int c = sc.nextInt(); System.out.println(" kor :"+a); System.out.printl..
package day2; public class MethodEx2 { static void printGoo(int num){ //c스타일도 가능 for (int j = num; j
package day2; public class STMTEx11 { public static void main(String[] args) { //밖에 있는 for문을 죽임 outer: for(int i = 0; i
package day2; //ctrl + shift + o import java.util.Scanner; public class STMTEx5 { public static void main(String[] args) { // 조건 분기문 //사용자에게 값을 받기 Scanner sc = new Scanner(System.in); System.out.println(""); int a = sc.nextInt(); if(a > 90 ) { System.out.println(" a 는 90보다 크다."); } else if(a==90){ System.out.println(" a는 90 입니다. "); } else { System.out.println(" a는 90 미만 입니다. "); } System.out.pr..
HashMap이란 Map 인터페이스의 한 종류로서 Key와 Value값으로 데이터를 저장하는 형태를 가지고 있다. Map이란 Key(키), value(값)을 하나의 쌍으로 묶어서 저장하는 컬렉션 클래스들을 구현하는데 사용되는 것. key, value 값으로 저장하는 list형태의 조상이라고 생각. HashMap은 Map인터페이스를 구현한 것 이기 때문에 Map의 속성을 모두 가지고 있고, 저장 방식 또한 동일. 그리고 해싱(hashing)이란 검색 방법을 사용하기 때문에 / 많은 양의 데이터를 검색하는데 있어서 뛰어난 성능을 보여준다. HashMap에서 한가지 주의 할 것은 map에 데이터를 등록할 때, key값은 중복되지 않고, value값은 중복이 허용된다는 점. 생성자/메서드 설명 HashMap()..
JAVA에서 스택(Stack)과 힙(heap) (메모리공간)스택 : 메소드 호출과 지역변수가 있는곳힙 : 모든 객체가 있는 곳 이클립스를 사용하면서 시스템 과부하나 (out of memory)메모리 부족 현상이 가끔 있다.이는 jvm이 메모리 영역을 사용하기 때문에 나타나는 현상인데,jvm은 메모리 관리를 heap과 permgen 영역으로 나누어 관리한다.jvm의 일반적인 실행 영역은 heap영역.permgen 영역은 클래스 메타 데이터를 관리해주는 영역.그렇게 때문에 jvm의 heap영역과 permgen 영역을 늘려주면 보다 전보다 원활한 작업을 진행할 수 있다.Xms heap영역의 시작크기Xmx는 heap영역의 최대크기주의할 점 : heap영역의 최대크기는 heap영역의 시작크기보다 같거나 커야 한다..