본문 바로가기

BackEnd

(64)
Microsoft / Typescript Express 보일러 플레이트 적용기 https://github.com/microsoft/TypeScript-Node-Starter microsoft/TypeScript-Node-Starter A starter template for TypeScript and Node with a detailed README describing how to use the two together. - microsoft/TypeScript-Node-Starter github.com 리액트와 달리 Node.js 에서 Typescript 사용은 조금 더 다른 느낌이다. 일단 왜인지 모르겠지만 webpack이나 babel의 사용없이 tsc라고 불리는 타입스크립트 컴파일러로 js파일로 만드는 과정이라던지 신기한 부분이 많다. (의도가 무엇일까...?) 일단 DB연결후..
Puppeteer.js 를 이용한 웹 자동화 https://github.com/GoogleChrome/puppeteer Puppeteer Puppeteer는 node.js를 이용하여 웹 자동화를 도와주는 API이다. 정말 간단한 사용법에 비해, 엄청나게 파워풀한 기능들을 가지고 있다. 사용 브라우저의 경우 Chrome 시리즈인 Chromium를 이용해서 사용한다. 그렇기 때문에 서버에서 사용시에 굉장히 많은 메모리 소모가 되기 때문에, 여러 사람이 사용하기에는 적합한지는 생각해보아야 할 문제다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 const puppeteer = require("puppeteer"); const doPuppeteer = async() => { const browser = await puppeteer.la..
Parse & Crawling To Node.js (노드로 파싱 및 크롤링하기) 파싱과 크롤링 전에 알아야 할 지식들을 순서대로 알아보자. 1. fs module node.js 자체 모듈이다. 파일 io를 위해서 사용되고 있다. 사용법 fs.readFile(filename, [options], callback) 외부의 파일을 읽을 때 사용된다. 이 때, callback 함수를 사용 할 경우 해당 메소드는 비동기적으로 작용하여 callback을 완료시킨다. 이 외에는 동기적으로 작동한다. 이 때 읽어들인 파일은 버퍼형태로 리턴되기 때문에 toString으로 인코딩 해주어야 한다. const parser = require("csv-parse/lib/sync"); const fs = require("fs"); const csv = fs.readFileSync("csv/data.csv");..
Tomcat Tomcat을 그냥 일반적인 웹서버라고 생각했는데, 정의를 보면 다음과 같다. ...더보기 아파치 톰캣은 아파치 소프트웨어 재단에서 개발한 서블릿 컨테이너만 있는 웹 애플리케이션 서버이다. 톰캣은 웹 서버와 연동하여 실행할 수 있는 자바 환경을 제공하여 자바서버 페이지와 자바 서블릿이 실행할 수 있는 환경을 제공하고 있다. - 위키백과 - 서블릿 컨테이너라는 용어가 낯선데 다음 이미지를 보면 이해할 수 있다. 출처 : https://minwan1.github.io/2017/10/08/2017-10-08-Spring-Container,Servlet-Container/ 해당 이미지처럼 톰켓은 클라이언트와 요청과 응답에 대해 컨테이너를 생성한 후에 정해진 폴더 디렉토리와 web.xml에 맞게 동작한다. Tom..
Maven Java 의존관리도구인 Maven을 하나하나 살펴보자. 최초에 Maven프로젝트를 생성시에 pom.xml이 생성된다. 이때 groupId와 artifactId 태그의 경우에는 컴파일을 한 파일들이 관리되는 디렉토리명으로 지정된다. packaging태그에서는 빌드 후 배포시에 어떤 형식으로 지정되는지에 대해서 나타나는데 일반적으로 war(WebApplication Archive) 형식으로 취한다. 의존관리 도구 이외에도 maven은 다른 역할을 하는데, pom.xml은 Effective POM을 상속받기 때문에 Effective POM을 통해서 다양한 명령어를 사용할 수 있게 된다. 코드를 보면 repository 태그에 저장소 URL이나, sourceDirectroy 의 현재 프로젝트의 위치등을 확인할 ..
DI(Dependency Injection) 1. DI는 디자인 패턴의 일종이다. DI(Dependency Injection) 의존성 주입을 이해하기 위해서 의존성이 무엇인지 살펴 보았다. public class ElectronicCarToy { private Battery battery; public ElectronicCarToy() { battery = new NormalBattery(); } } 해당 클래스 안에는 새로운 Battery라는 객체를 생성한다. 이와 같이 클래스 안에 다른 클래스를 가지게 되는것을 의존성을 가졌다고 말한다. 그런데 이와 같은 코드에서 Battery가 다른 객체로 바뀌어야 할 경우에는 ElectronicCarToy 객체 마저 변해야 한다. 이를 막고자 의존성 주입이라는 디자인 패턴이 있다. public class E..
[실습] DB데이터로 Navigation 만들기 (Mybatias,Gson) 해당 테이블의 데이터들을 가져와서 navigation을 만들어보자. 1. jdbc 및 dbcp 의존성 추가하기 org.mariadb.jdbc mariadb-java-client 2.2.1 commons-dbcp commons-dbcp 1.4 해당 과제는 maven을 통해서 설치해주었다. 사용할 jdbc 및 dbcp를 설치 해준다. 해당 과제에서는 mariadb jdbc를 설치해주었따. dbcp는 db에 상관없이 위의 코드를 이용해서 설치해주자. 2. context-datasource에 bean객체 추가해주기 3. MainController에 do요청 추가하기 @RequestMapping("/ajaxSelectMenuList.do") public void ajaxSelectMenuList (HttpServ..
Tiles설치 및 사용하여 html 템플릿 관리하기 1. 설치하기 해당 설치는 maven dependency를 통해서 설치하는 방법이다. 4.1.2.RELEASE 3.6.0 3.0.8 2. tiles 관련 dependency 추가 하기 org.apache.tiles tiles-jsp ${org.apache.tiles-version} org.apache.tiles tiles-core ${org.apache.tiles-version} dependency를 추가한 후 설치된 파일을 확인한다. 3. dispatcher에 tiles 관련 설정하기 /WEB-INF/tiles/default-layout.xml ViewResolver에서 BasedViewResolver의 order 순서를 바꾼다. tilesViewResolver의 order 순서를 1로 두어서, til..