본문 바로가기
반응형

전체 글83

[Cheerio],[Axios] 모듈을 사용한 웹 크롤링 - 1 https://thebook.io/ 더북(TheBook) thebook.io 길벗에서 제공하는 IT도서 열람 서비스인 `TheBook`이라는 사이트가 있다. 이렇게 주제별로 나눠져 있어, 한 페이지씩 넘기면서 책의 일부를 열람할 수 있다. 그런데 이전 페이지와 연결되는 경우 이전으로 다시 돌아가야 하는 불편함이 있다. 그래서 이 웹사이트를 크롤링해서, 내용을 html로 직접 가져온뒤 다시 웹페이지로 렌더링 해주는 서비스를 만들어 보려한다. TheBook의 URL은 아래와 같다. https://thebook.io/080212/ch01-01/ thebook.io 다음에 오는 URL은 책의 id이다. 그 다음 오는 URL은 책의 각 주제와 소주제를 의미한다. URL에 책의 id만 입력하여 접속하면, 이렇게 '.. 2020. 4. 1.
[부스트코스] 2. DB 연결 웹 앱 | 7. MySQL - BE 1. 개요 '데이터베이스(Database)'의 뜻은 위키백과에 따르면 데이터베이스(영어: database, DB)는 여러 사람이 공유하여 사용할 목적으로 체계화해 통합, 관리하는 데이터의 집합이다. 작성된 목록으로써 여러 응용 시스템들의 통합된 정보들을 저장하여 운영할 수 있는 공용 데이터들의 묶음이다. 라고 정의 되어 있다. 즉, 재사용을 목적으로 하는 데이터의 집합이라고 할 수 있다. 이 집합은, 그저 입력할 때마다 차곡차곡 쌓이기만 하는 것이 아니다. 전체가 체계화 되어 있어서 다른 테이블과 연결되어 유기적으로 작동한다. 이러한 '데이터베이스'를 구축할 수 있게 도와주는 소프트웨어가 바로 '데이터베이스 관리 시스템(Database Management System, DBMS)' 이다. 물론 데이터베이.. 2020. 3. 27.
[부스트코스] 2. DB 연결 웹 앱 | 4. redirect & forward 1. redirect redirect 는 HTTP 프로토콜로 정해진 규칙으로, 서버가 클라이언트에게 특정한 URL로의 이동을 요청하는 작업니다. 이때 사용하는 HTTP 상태코드는 302이고, 헤더의 'Location' 값에 이동할 URL을 추가하여 응답하게 된다. 이 상태코드를 받은 브라우저는 헤더의 Location 값으로 서버에 재요청(새로고침)을 한다. servlet과 jsp는 reidrect 작업에, HttpServletResponse 클래스의 sendRedirect() 메서드를 사용한다고 한다. jsp도 결국에는 servlet으로 변환되기 때문에, servlet에서 사용하는 객체를 그대로 사용할 수 있다. 이를 jsp의 내장객체라고 한다. page1.jsp 와 page2.jsp 를 생성하여, pa.. 2020. 3. 20.
[부스트코스] 2. DB 연결 웹 앱 | 3. JSP - BE | JSP 1. 개요 JSP는 Java Server Pages 의 약자로, HTML 내에서 자바(Java) 코드를 이용하여 동적으로 웹 페이지를 생성할 수 있도록 도와주는 기술이다. HTML의 자바 코드 컴파일은 Server에서 행해지고, 그 결과가 클라이언트로 전송되기 때문에, ServerSide 스크립트 언어라고 할 수 있다. 작성된 JSP는 WAS, (예를 들자면 톰캣)에서 Servlet으로 변환되어 자체적으로 사용된다. 그렇기에, 결론적으로 가장 중요한 점은 'Servlet 으로 변환이 된다'는 것이기에, Servlet 메서드의 기능을 사용할 수 있다는 것이다. jsp 파일에 대한 요청이 들어오면 위 그림과 같은 순서대로 서버는 응답을 한다. 1. hello.jsp 에 대한 요청이 들어온다. 2. Serve.. 2020. 3. 13.
[Linux] 사용 중인 포트 종료하기 NodeJS 등을 사용하다보면 가끔씩 비정상적으로 종료되면서, 특정 포트에서 서버를 실행할 수 없다는 오류가 나기도 한다. 이럴 때에는 직접 사용 중인 포트를 종료시켜주어야 한다. netstat -nap 이 명령어는 위와 같이 열려있는 모든 포트를 보여주는 명령어이다. 80번 포트에서 Node express server를 실행하고 다시 netstat -nap 명령어를 입력하면 아래와 같이 80번 포트가 열려 있는 것을 볼 수 있다. 특정 포트를 검색하고 싶다면, 파이프라인과 grep 명령어를 사용하면 손쉽게 찾을 수 있다. 예를 들어 80번 포트를 검색하고 싶다면 위의 터미널에서 address 가 :80으로 끝날 것이기 때문에 netstat -nap | grep :80 이 명령어를 사용하면 이렇게 특정 .. 2020. 3. 12.
[Webpack] file-loader Javascript에서는 ESM, commonJs 를 통하여 다른 JS파일에서 내보낸 함수나, 객체등을 가져올 수 있다. //index1.js const obj = require('./index2.js'); console.log(obj.name); //index2.js const obj = {name: 'from index2'}; module.exports = obj; 이렇게 index1.js, index2.js 파일을 만들고 node js로 실행해보면 name이 정상적으로 출력되는 것을 확인할 수 있다. node js에서는 아직은 experimental module로 ESM을 지원하기 때문에, 특별한 설정을 하지 않으면 ESM을 사용할 수 없기에 CommonJs를 이용했다. 물론 ESM과 commonJ.. 2020. 3. 11.
[부스트코스] 2. DB 연결 웹 앱 | 2. WEB UI 개발 -FE | Ajax 통신의 이해 1. Ajax Ajax는 "Asynchronous JavaScript and XML"의 약자이다. 즉, "비동기적인 Javascript와 XML" 이라는 뜻을 가지고 있다. 그렇다면 '비동기'란 무엇일까? 비동기는 말하자면, '순서를 기다리지 않는 방식'을 의미한다. 아래의 그림을 보자. 위의 그림은 '동기식 처리', 아래 그림은 '비동기식 처리'를 나타낸 것이다. Get Data from Server 이라는 작업은 Task1의 과정에 속해있다. 위 도표와 같이 Task1의 과정 중간에 Get Data from Server 작업이 발생할때, 이 작업이 이루어지는 동안 Task1, Task2가 중지되어 있는 상태를 유지하고 Get Data from Server 작업이 마무리 되면 다시 Task1, Task.. 2020. 3. 6.
[부스트코스] 1. 웹 프로그래밍 기초 | 5. Servlet - BE | Request, Response 객체 1. WAS의 요청과 응답 먼저 이 다이어그램을 보자. 클라이언트의 웹 브라우저에서는 서버의 WAS로 요청을 보낸다. 그럼, WAS는 요청 시의 정보를 가지고 HttpServletRequest 객체를 생성하고, 웹 브라우저에 반대로 응답을 보내기 위한 HttpServletResponse 객체를 생성한다. 이 두가지의 객체를 서블릿으로 전달하고, 서블릿에서는 이 객체를 사용하여 여러 작업들을 하게 된다. 실제로 doGet, doPost 메서드의 파라미터로 protected void doGet(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { } protected void doPost(HttpServ.. 2020. 2. 28.
[부스트코스] 1. 웹 프로그래밍 기초 | 5. Servlet - BE | Servlet Lifecycle Servlet 어플리케이션을 알맞게 생성하기 위해서는, Servlet의 동작방식을 잘 알고 있어야 한다. 그중에서도 가장 기본이 바로 Lifecycle이다. 1. 개념 Servlet이 WAS 위에서 생성되면 아래와 같은 순서대로 Servlet의 매서드들을 실행한다. 1. WAS는 Servlet 요청을 받으면, 일단 그 Servlet이 메모리에 있는지 확인한다. 2. 메모리에 없다면, Servlet의 생성자를 이용해서 그 Servlet을 메모리에 등록한다. 3. init() 메서드를 실행한다. 4. service() 메서드를 실행한다. Client의 요청을 처리한다. 5. WAS가 종료되거나, Servlet이 갱신되면 destroy() 메서드가 실행된다. 2. 실행 저번 포스팅을 참고하여 Lifecycle.. 2020. 2. 24.
[부스트코스] 1. 웹 프로그래밍 기초 | 5. Servlet - BE 1) Servlet 이란? 자바 웹 어플리케이션 (Java Web Application) 은 WAS(Web Application Server ex) Apache Tomcat)에 설치되어 동작하는 어플리케이션 을 의미한다. 여기서 'Servlet'은 이 자바 웹 어플리케이션에 포함된, 자바로 작성된 클래스 중 하나이다. 자바 웹 어플리케이션은 Servlet 뿐만 아니라, 다른 여러가지 리소스(HTML, CSS, ...)들을 포함한다. 그렇다면, Servlet은 자바 웹 어플리케이션에서 어떠한 역할을 하는 것일까? Servlet은 '동적인 처리를 하는 프로그램의 역할'을 한다. 부스트코스 강의에서는 아래와 같이 Servlet을 정의한다. - Servlet은 Was에서 동작하는 Java class - Serv.. 2020. 2. 21.
반응형