개발
-
[JAVA/SPRING] DI(Dependency Injeciton, 의존주입)개발/Java 2019. 1. 27. 01:10
6강 DI(Dependency Injeciton) 6강 DI(Dependency Injeciton)DI(Dependency Injection)란?1. 배터리 일체형 차배터리가 떨어지면 새로 구입해야한다2. 배터리 분리형 로봇배터리만 교체하면 된다.3. 배터리 분리형 라디오배터리만 교체하면 된다.위 경우에서, 당연히 배터리 분리형이 효율적이다.프로그래밍적인 관점에서도 마찬가지이다. 계산기 프로젝트를 진행한다 하였을 때, 모든 기능을 하나의 객체로 만들었으면, 나누기 부분의 기능만 수정하려해도, 전체 프로젝트의 구조를 바꿔야하는 소요가 있다.그러나, 각각의 기능마다 객체를 독립시키면, 수정이 용이하다.위의 경우에서, 모두 배터리라는 객체에 의존해서, 장난감이 만들어진다.그러므로, 배터리에 의존한다. (Dep..
-
[JAVA/SPRING] 스프링 개요개발/Java 2019. 1. 25. 01:07
1강_스프링 개요 인프런 내의 자바 스프링 프레임워크(ver.2018) - 신입 프로그래머를 위한 강좌 강의를 보면서, 내용을 정리하는 포스팅 입니다! 1강_스프링 개요개요주요 기능으로 DI, AOP, MVC, JDBC 등을 제공함스프링 프레임워크에서 제공하고 있는 모듈spring-coreDI와 IoC를 제공(스프링의 핵심)spring-aopAOP(관점 지향 프로그래밍) 구현 기능 제공spring-jdbcDB를 쉽게 다룰 수 있게 해줌spring-tx트랜젝션 관련 기능 제공spring-webmvcMVC 구현기능 제공모듈을 사용하려면, 의존설정을 개발 프로젝트에 XML 파일등을 이용해서 개발자가 직접 해야함.스프링 컨테이너(IoC)객체를 생성하고 조립하는 컨테이너컨테이너를 통해 생성된 객체 = 빈(Bean..
-
[Node.js] node.js 크롤링 방지 우회하기(네이버 크롤링)개발/Javascript 2018. 11. 19. 23:52
node.js 크롤링 방지 우회하기(네이버 크롤링).md 웹 크롤링을 이용하는 프로젝트를 진행하다보면, 네이버, 구글, 다음과 같은 대형 포털사이트를 크롤링하여 정보를 얻는 경우가 많습니다. node.js환경에서 웹 크롤링 하기(cheerio-httpcli) https://hanswsw.tistory.com/6 그런데, 원래 하던대로 크롤링을 해도, 원하는 결과값을 얻지 못할 때가 있습니다. 물론 코드가 잘못됐거나, 크롤링할 selector을 잘못 지정했을 수도 있지만, 네이버같은 대형 포털사이트의 경우에는, 웹서버에서 크롤링 봇을 탐지해서 차단했을 가능성이 높습니다. 네이버에서 차단된 경우, "검색 서비스 이용이 제한되었습니다." 라는 문구가 보입니다. 이러한 경우, 간단한 헤더 설정으로 크롤링 탐지를..
-
[Node.js] node.js환경에서 웹 크롤링 하기(cheerio-httpcli)개발/Javascript 2018. 11. 19. 00:05
웹 크롤링(웹 스크래핑)은, 웹 페이지의 경로를 통해 HTML 정보를 가져와서, 파싱을 통해 필요한 정보만 가공하는 것을 의미합니다. 대표적인 예로, 네이버 실시간 검색어 결과를 가져온다던지, 실시간 환율이나 주식 정보를 가져와서 이걸로 어떠한 프로그램을 만드는 것을 예로 들 수 있습니다. 대표적인 웹 크롤링 라이브러리는 python 환경의 bs4를 예로 들 수 있습니다. 그러나, 이번 포스팅에서는 node.js 환경에서도 쉽게 웹 크롤링을 할 수 있게 하는 모듈을 소개하고자 합니다. 사실, node.js 환경에서도 크롤링을 가능케하는 모듈은 여러가지가 있습니다. 대표적으로, cheerio가 있지만, 제가 사용해본 결과 가장 간단하게 사용할 수 있는 cheerio-httpcli 모듈을 예로 들겠습니다. ..
-
[Node.js] moment.js로 날짜(date)관련 작업을 쉽게하기개발/Javascript 2018. 11. 18. 22:37
JS에서 날짜 관련 작업을 할 때, 아마 가장 유명하고 유용하게 사용되어지는 라이브러리는moment.js가 아닐까 싶습니다. JS에 기본적으로 내장되어있는 Date개체를 불러와서, 날짜 관련 작업을 해도 되지만, 다양한 형식으로 날짜나 시간 형식을 파싱하고 싶거나, 날짜와 관련된 계산을 하고 싶을 때에는, 기본 Date개체를 불러와서 이용하는 것은 불편하다는 생각이 들 때가 많습니다. 그래서, moment.js를 이용해서 편리하게 날짜나 시간을 다루는 방법을 소개해드리고자 합니다. 설치 1npm install momentcs 기본 날짜 형식 출력하기 1234var moment = require('moment');moment().format(); //2018-11-18T22:19:20+09:00moment..
-
[Node.js] mysql을 쉽게 동기식으로 사용해보자! (sync-mysql)개발/Javascript 2018. 11. 11. 21:59
요번 포스팅에서는,Node.js에서 mysql을 사용하는 경우, 아주 간단한 방법으로 mysql의 쿼리를 동기식으로 처리할 수 있는 모듈을 소개해드리고자 합니다. 이전 포스팅에서 언급했듯이, node.js에서 함수는 비동기적이게 작동합니다.async모듈을 통해 동기식으로 처리해보자https://hanswsw.tistory.com/2?category=766598 그래서, 동기식으로 처리해야하는 경우가 있으면,async/await ,promise, async 모듈 등을 이용해서 처리를 하곤 합니다. 하지만, DB를 이용하는 경우, 쿼리문 여러개를 중첩해야하는 경우가 있거나,쿼리문의 결과를 가지고 복잡한 처리를 해야할 경우, 코드의 가독성이 굉장히 떨어지거나,동기식으로 처리하기 복잡해지는 면이 있습니다. 이 ..
-
[Node.js] async 모듈을 통해 동기식으로 처리해보자개발/Javascript 2018. 11. 11. 19:13
많은 분들이 Node.js를 처음 접할 때 겪게되는 어려운 점 중 하나가 바로, Javascript는 비동기 방식으로 함수를 처리한다는 점입니다. 즉, C나 Java같은 언어같은 경우에는, 일반적으로 작성한 순서대로 함수가 동기적으로 실행이 되지만, Javascript는, 함수가 순서대로 실행된다는 보장이 되지 않습니다. 저도 마찬가지로 처음에 Node.js 를 접했을 때, 이 부분 때문에 많이 고생을 했었던 기억이 납니다... 1234567891011121314function func_1(){ setTimeout(function () { console.log('func_1 function is called'); }, 200);}function func_2(){ setTimeout(function () ..