전체 글

전체 글

    객체, 클래스, 인스턴스의 차이

    객체, 클래스, 인스턴스의 차이객체(Object) : 소프트웨어 세계에 구현할 대상클래스(Class) : 이를 구현하기 위한 설계도인스턴스(Instance) : 소프트웨어 세계에 구현된 실체객체(Object)는 현실의 대상(Object)과 비슷해서 상태나 행동을 가지지만, 소프트웨어 관점에서는 그저 콘셉에 불과하다. 소프트웨어에서 객체를 구현하기 위해서는 콘셉 이상으로 많은 것들을 사고하여 구현해야 하므로, 이를 위한 설계도로 클래스(Class)를 작성한다.설계도를 바탕으로 객체를 소프트웨어에 실체화 하면, 그것이 인스턴스(Instance)가 되고, 이 과정을 인스턴스화(instantiation)라고 한다. 실체화된 인스턴스는 메모리에 할당된다.개념적으로 인스턴스는 객체에 포함된다고 볼 수 있다. 하지만..

    [Node.js] 6. 파일 업로드

    우리는 블로그나 카페에서 내가 갖고 있는 파일을 업로드할 수 있다. Node.js에서도 이러한 파일 업로드를 만들어 실습해보자 express에서는 기본적으로 파일 업로드에 대해서 지원해주지 않는다. 따라서 이에 해당하는 모듈을 설치해야한다. multer라는 모듈은 우리가 파일 업로드를 할 수 있도록 도와준다. npm을 통해서 설치하자 12345//설치npm install multer --save //app_file.js에 작성var multer = require('multer');cs multer 모듈을 사용하기 위해 app_file.js에 위와 같이 require 문을 작성하도록 한다. 우리가 업로드할 파일을 저장할 uploads 폴더를 하나 만들고, multer로 해당 경로를 아래와 같이 app_fi..

    [Node.js] 5. 웹 애플리케이션 만들기

    이제 지금까지 배운 것을 통해서 Express 프레임워크를 통해 간단한 웹 애플리케이션을 만들어보자. 기존의 app.js에 추가하면 가독성이 떨어지므로, 프로젝트에 새로 app_file.js 파일을 만들어 진행하자. 이번 애플리케이션 실습을 통해 파일 시스템 모듈도 활용할 것이다. 데이터 값을 저장할 data 폴더, html로 나타낼 pug 파일을 저장할 views_file 폴더를 만들자. 이제 app_file.js를 작성해보도록 하자 1234567var express = require('express');var fs = require('fs'); // 파일 시스템 모듈 생성var app = express(); // 애플리케이션 객체 생성 app.listen(3000, function(){ console..

    [백준 2292] 벌집

    [백준 2292] 벌집 문제 출처 : https://www.acmicpc.net/problem/2292 문제 위의 그림과 같이 육각형으로 이루어진 벌집이 있다. 그림에서 보는 바와 같이 중앙의 방 1부터 시작해서 이웃하는 방에 돌아가면서 1씩 증가하는 번호를 주소로 매길 수 있다. 숫자 N이 주어졌을 때, 벌집의 중앙 1에서 N번 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나가는지(시작과 끝을 포함하여)를 계산하는 프로그램을 작성하시오. 예를 들면, 13까지는 3개, 58까지는 5개를 지난다. 입력첫째 줄에 N(1 ≤ N ≤ 1,000,000,000)이 주어진다. 출력입력으로 주어진 방까지 최소 개수의 방을 지나서 갈 때 몇 개의 방을 지나는지 출력한다. 예제 입력 113cs 예제 출력 13..

    [Node.js] 4. Express 프레임워크 (get과 post)

    지금까지 진행했던 방식은 get을 이용해 사용자가 데이터를 가져오는 방식이었다. get방식은 사용자의 접속에 의해 애플리케이션이 응답하고, 사용자가 정보를 가져오는 것을 말한다. 이때 쿼리 스트링으로 애플리케이션에 요청하여 정보를 가져오게 된다. 이처럼 get방식은 우리가 서버에 정보를 요청해서 가져오는 것을 말한다. POST 이번에는 post방식에 대해서 알아보자.post 방식은 사용자의 정보를 서버로 전송하는 것을 말한다. 예를 들면, 우리가 홈페이지에서 로그인을 할 때 아이디나 패스워드를 서버로 전송하는 과정이 필요하다. 이럴 때 사용하는 것이 바로 get 방식이 아닌 post방식이다. post 방식을 알아보기 위해 views폴더에 form.jade를 만들자 제목과 내용을 각각 text와 texta..

    [Node.js] 3. Express 프레임워크(템플릿, URL)

    템플릿 엔진 npm 패키지를 통해 jade(현재는 pug로 바뀜)를 설치한다. 1npm install pug --savecs 이제 app.js에 연결시켜줘야 한다. 1app.set('view engine', 'pug');cs 템플릿 pug 파일을 저장시킬 views 폴더를 하나 생성하고, app.js에 경로를 설정한다. 1app.set('views', './views');cs views 폴더에 템플릿 파일을 작성해보자. 우리는 pug를 이용하고 있으므로 temp.pug라고 만든다. temp.pug를 작성하기 전에, app.js에서 이 파일을 불러오도록 만들어야 한다. 12345 app.get('/template', function(req, res){ res.render('temp');}) Colored ..

    [백준 2438] 별찍기 - 1

    [백준 2438] 별찍기 - 1 문제 출처 - https://www.acmicpc.net/problem/2438 문제첫째 줄에는 별 1개, 둘째 줄에는 별 2개, N번째 줄에는 별 N개를 찍는 문제 입력첫째 줄에 N (1 N; if (N >= 1 && N

    [백준 2750] 수 정렬하기

    [백준 2750] 수 정렬하기 문제 출처 - https://www.acmicpc.net/problem/2750 문제N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오. 입력첫째 줄에 수의 개수 N(1 N; for(int i = 0; i > arr[i];}cs i가 N번 반복하면서, 내가 입력한 수들이 arr배열에 저장되었을 것이다. 이제 저장된 arr배열끼리 모두 비교하면서, 가장 작은 것부터 출력해야 한다. arr[0]과 나머지 배열 모두를 비교한다. 만약 arr[0]보다 작은 값이 있으면, arr[0]값과 해당 위치 배열의 값을 바꿔서 저장시킨다. 이러면 기존의 arr[0]의 값은 가장 작은 값이 있던 배열로 이동하고, 배열의 맨 처음은 현재 저장된 값 중에 가장 작은 수가 될..

    [백준 1912] 연속합

    [백준 1912] 연속합 문제 출처 - https://www.acmicpc.net/problem/1912 문제n개의 정수로 이루어진 임의의 수열이 주어진다. 우리는 이 중 연속된 몇 개의 숫자를 선택해서 구할 수 있는 합 중 가장 큰 합을 구하려고 한다. 단, 숫자는 한 개 이상 선택해야 한다. 예를 들어서 10, -4, 3, 1, 5, 6, -35, 12, 21, -1 이라는 수열이 주어졌다고 하자. 여기서 정답은 12+21인 33이 정답이 된다. 입력첫째 줄에 정수 n(1≤n≤100,000)이 주어지고 둘째 줄에는 n개의 정수로 이루어진 수열이 주어진다. 수는 -1,000보다 크거나 같고, 1,000보다 작거나 같은 정수이다. 출력첫째 줄에 답을 출력한다. 예제 입력 121010 -4 3 1 5 6 ..

    [Node.js] 2. Express 프레임워크

    [Node.js] 2. Express 프레임워크 노드보다 더 적은 코드로 많은 일을 해주는 프레임워크들이 존재한다.노드를 이용한 프레임워크 중 하나인 Express에 대해 알아보자 Express 사이트 : http://expressjs.com/ko/starter/installing.html - Express 설치우리 프로젝트 경로에서 npm으로 설치해보자 1npm install express --savecs 간단한 웹 애플리케이션 만들기 해당 예제는 Express 사이트에서 시작히기 메뉴에 'Hello World'를 통해서도 볼 수 있다.app.js라는 파일을 만들고 express를 이용해 코드를 작성해보자지금 할 파일에서는, 앞으로 우리가 만들어갈 프로젝트 내에서 main 파일에 해당하는 내용이다. 1..