본문 바로가기

자바 파일 입출력 (txt파일 한 문자씩, 한 줄씩, 한 번에 읽기) 자바 파일 입출력원리1. 파일 객체를 만든다.2. 해당 파일을 열어 읽는다. (+읽은 내용 알아서 처리, 어디다 쓰든지 문자열을 바꾸던지 뭐 맘대로 하면 된다.)3. 파일을 닫는다.1) 한 문자씩 읽기1234567891011121314151617181920212223242526package com.tistory.jeongpro; import java.io.File;import java.io.FileNotFoundException;import java.io.FileReader;import java.io.IOException; public class ReadText1 { public static void main(String[] args){ try{ //파일 객체 생성 File file = new File(..
웹 개발하면서 처리해야할 보안, 최소한의 방어, 정보보안 웹 애플리케이션 보안 처리, 해결책 웹 애플리케이션을 개발하면서 대부분 요구사항에 맞는 주요 기능을 개발하는데 열을 올린다.주요 기능을 개발하는 것도 중요하지만 그것 못지 않게 아니면 더 중요한 것이 보안이다.해커가 공격하는 루트는 엄청나게 많지만 개발을 공부하는 입장에서 최소한의 방어를 가진 애플리케이션을 개발해야 한다.간단한 케이스 별로 정리를 해두겠다.1. 버그 없는 코드 유지- 대부분의 버그는 나쁜 것이며 버그가 보안 취약점을 일으킬 수 있다.버그를 최소화 하는 법1) 테스트 하기. 단위테스트부터 꼼꼼한 테스트는 버그를 줄일 수 있다.2) 코드 검토하기. 코드를 많은 사람들과 본다.3) 신뢰할만한 라이브러리 사용. 누군가 라이브러리를 만들었다면 잘 테스트되고 신뢰할만 한지 확인할 것.4) 좋은 코..
mongoose로 Mongodb 사용하기 (+passport 로그인 인증, 보안) Mongoose 미들웨어 Mongoose는 Node.js에서 MongoDB를 조금 더 간편하게 다룰 수 있게 해주는 미들웨어다.Mongoose가 MongoDB에 연결하고 모델을 만들 수 있으며 다양하게 사용가능하다.몽구스를 이용하면서 passport 미들웨어를 통한 로그인을 구현하는 프로필 애플리케이션을 만든다.(feat. cookie-parser, bcrypt-nodejs, connect-flash, express-session ...)* bcrypt-nodejs는 bcrypt 대신 사용함. 이유는 bcrypt가 C코드를 사용해서 C코드 컴파일러 설정이 잘되어 있어야 사용가능한데 예제에서 문제를 일으키기 싫어서 대체. 속도가 느려진다면 나중에 bcrypt로 사용해야함. 프로필 애플리케이션 만들기 & 분..
MongoDB 설치 방법, 환경설정, 몽고 디비 구조 MongoDB 몽고디비는 기존 관계형데이터베이스에서 사용하는 SQL 쿼리 대신 자바스크립트를 이용하는 NoSQL 데이터베이스다.몽고디비를 사용하려면 몽고디비가 설치되어있어야 하고 몽고디비를 실행시켜놔야한다.- 몽고디비 설치(Window)1. https://www.mongodb.com/download-center?jmp=homepage#community여기에 들어가서 Windows Server 2008 R2 64-bit and later, with SSL surpport x64를 설치2. C:\Program Files\MongoDB\Server\3.4\bin 에 몽고디비가 설치되었을텐데,이 3.4디렉토리를 C:\ 밑으로 복사하고 이름을 mongoDB로 바꿔준다.(이제 C:\mongodb\bin이 있는 것이..
Pug 문법 정리 요약 (템플릿 엔진) Node.js 템플릿 엔진 Node.js 에서 사용하는 템플릿 엔진은 굉장히 많이 있다. (pug(jade), ejs, handlebars, mustache 등) 그 중에 자주 사용되는 pug 문법을 정리한다. https://pugjs.org/api/getting-started.html 여기서 language reference를 보면 pug 문법을 더 명확하게 이해할 수 있다. * pug를 사용하는 이유 - 사실 어떤 템플릿 엔진을 사용해도 상관없다. 예를들어 ejs는 html 태그에 부분적인 입력,수정을 하기 때문에 html문법에 이미 적응한 사람이 보기에 쉬울 것이다. 하지만 pug는 코드를 간소화시켰고, 컴파일한 후에 html문서를 렌더링하는 형식이라 생산성이 높아지기 때문에 새로 문법을 익히는데 ..
Node.js API 구축 방법 기초 기본 JSON API API는 한 코드 조각이 또 다른 코드 조각과 통신하는 방식이다.API는 HTTP 요청을 받아서 JSON 데이터로 응답한다. (주로 JSON을 많이 사용한다.)- 기본 원리 요청을 받아서 요청을 분석하고 JSON 개체와 HTTP 상태 코드로 응답한다. 끝.초간단하게 이해하기 위해서 억지스럽지만 임의의 정수를 반환하는 API를 만든다.123456789101112131415161718var express = require("express");var app = express();app.get("/random/:min/:max",function(req, res){ var min = parseInt(req.params.min); var max = parseInt(req.params.max);..
Node.js 라우터 분할, 파일 라우팅 라우터 분할애플리케이션 규모가 커짐에 따라 라우트 수가 많아진다.나중에는 그 라우트의 수를 다루기 어려워질 수 있는데 분할을 통해서 해결할 수 있다.12345678910111213var express = require("express");var path = require("path");var apiRouter = require("./routes/api_router"); var app = express(); var staticPath = path.resolve(__dirname,"static");app.use(express.static(staticPath)); app.use("/api",apiRouter); app.listen(3000); Colored by Color Scripter [app.js 메인 ..
라우팅 (Routing) 라우팅 라우팅 기본 (요청에 따른 매핑)123456789101112var express = require("express");var app = express(); app.get("/about",function(request,response){ response.send("Welcome to myPage");}); app.use(function(request,response){ response.status(404).send("page not found");}); app.listen(3000); 위 처럼 HTTP요청(/about 에 대한 HTTP GET)에 응답하는 애플리케이션을 만들 수 있다.이는 /about에 대한 get요청이 아닌 경우 무시한다.라우트에 대한 매개변수 얻기 1234app.get("user..