서버사이드 개발에 사용되는 SW플랫폼자바스크립트를 활용내장 HTTP가 포함되어, 아파치 등 SW없이 동작 가능.node는 단일 쓰레드 비동기방식이다.하나의 쓰레드가 요청을 받으면 처리가 완료될 때까지 기다리다가, 결과가 완료되면 다시 응답을 보낸다.기존 업무 처리가 완
node js에서 모듈을 사용하고 있습니다.모듈이란 독립된 기능을 갖는 함수, 파일들의 모임입니다.외장모듈 : 라이브러리 (npm 사용)내장모듈 : nodejs에 내장된 모듈어느 객체를 만들고, 이를 모듈화 한 다음 다른 파일에서 가져와 객체에 접근할 수 있습니다.코드
HTTP, Connect 컴포넌트를 기반으로하는 웹 프레임워크입니다.로컬에 익스프레스 모듈을 설치합니다.설치가 완료되면 expressjs의 hello world를 작성해봅니다.해당 코드내의 app.get은 라우팅을 뜻합니다.get메소드의 첫번째 인자인 '/'은 해당 U
먼저 mysql에 필요한 파일이긴한데, 2번에서 설치되는 것 같으므로 일단 2번으로 넘어가세요. C++ redistributable420MB파일 받은 다음에, 설치를 진행합니다. 첫번째 메뉴에서 2번째항목 체크하고 넘어갑니다(1번을 다운로드 받는 작업), excute
프로젝트 환경 : vscode효율적이고 유지보수가 쉽도록 디자인패턴을 적용해 프로젝트 파일을 생성할 것입니다.이를 위해서 express-generator를 설치해 사용하면, 자동으로 프로젝트 파일을 생성해줍니다.명령어를 이용해 generatot을 설치하고 설치가 완료되
express 패키지 생성먼저 생성할 프로젝트 폴더를 엽니다.해당 폴더의 경로에서을 사용하면 package.json파일이 생성이됩니다.해당 패키지에서 사용할 라이브러리를 지정해주는 설정파일이라고 생각하시면됩니다.익스프레스를 사용할 것이므로, express의 구조를 자동
세션과 쿠키라는 단어는 많이 들어보았으나 물어본다면 대답을 할 수 없었습니다. 이에 대해 정리해보려고합니다.connectionless: HTTP는 클라이언트가 요청한 후 응답을 받으면 그 연결을 끊어버리는 특징이 있습니다. 연결을 끊는 순간 클라이언트-서버간 통신이 끝
기존의 nextJS를 이용한 프로젝트를 배포하는 방법으로 next build, start해서 .next정적파일을 배포하는 방식을 사용했다.그러나 이 방법은 VM을 종료하면 배포가 중단되는 이슈가 있었다.현재 Back서버를 배포하는 방법으로 PM2를 이용하고 있는데 이를
Secure Sockets Layer. SSL은 OSI의 특정 계층에 속해있지 않고 전송-응용계층 사이에 독립적인 계층을 만들어 동작한다.이를 SSL Layer라고 한다HTTP는 ww상에서 정보를 주고 받는 프로토콜.HTTP는 클라이언트 - 서버간 웹 페이지 같은 자
nextJS를 배포하기 위해 .next라는 정적파일로 build하고 이를 배포하는 방법으로 기존에 진행했었다.무중단서비스를 위해 PM2로 서버가 크래시나도 재시작을 할 수 있도록 도와주거나 VM이 종료되어도 서버를 계속 배포할 수 있는 도구를 사용했었다.하지만 이 방식
nextJS를 빌드할 때 해당문구가 나왔다.사진에서 잘안보이는데.. getInitalProps 라는 단어가 등장하고 해석하면 server side 랜더가 getInitialProps, getServerSideProps를 사용해서 되었다는 의미이다.해당 함수를 일전에 본
IBM에서는 다양한 서비스들을 제공해줍니다.이중에서도 AI 및 기계학습으로 이용할 수 있는 서비스가 정말 다양했습니다.무려 18개가 무료라니\~~저는 이미지 분석서비스인 Watson Visual Recognition을 사용해보기로 했습니다 ㅎㅎ.Watson Visua
DB에서 받아온 데이터를 우리가 만든 더미데이터의 형식에 맞게 가공해야하는 일을 해야한다.JSON은 객체 형태로 키와 값을 가진다.이렇게만있으면 얼마나 좋을까?일단 이렇게 만들어야한다!{ftseoul : {키...}, { 키... } ssafy: { 키.. } }
객체는 { } 로 구분되며 키와 값의 쌍을 갖는다.객체를 초기화하는 방법은 빈 { }을 할당하는 것과 직접 명시해주는var obj = { car : 'porshe', model : '911' }로 할당할 수 있다.obj객체의 car에 접근하려면 여러 방법이 존재한다.먼
코드 예제CRAWL : 기어다니다웹 사이트를 기어다니면서 정보를 수집하는 봇 = 크롤러크롤링한걸 영리적 목적으로 쓸 때 문제가 생길수도 있음.자스로 크롤링하면 생산성이 좋당CSV? comma separated values콤마와 줄바꿈으로 구분된 값npm i csv-pa
공식문서1초에 10번씩 클릭하면 안되므로 사람인척 해야함.userAgent : 내 브라우저가 크롬인지, 파폭인지 나타내는 문자열 접속할 때 bot은 bot이라고 티가남. 따라서 정상적인 브라우저로 속이기 위해서npm i puppeteer크롬 브라우저의 기반인 Chrom
엑셀에 이미지를 넣을 수 없으니 이미지를 따로 관리해보도록 하자이미지를 버퍼형태로 가져오고, fs모듈이 버퍼를 파일로 바꿔줌npm i axios이미지 주소를 추출한다음 쿼리스트링을 분석해보는 과정이 필요함지금까지 했던 크롤러를 동작시켜보면 화면이 잘려서 출력됨스크린샷을
현재 링크를 저장하면 크롤러는 1회만 수행되어 최신데이터를 받아올 수 없다.그래서 새로고침기능을 추가하여 버튼클릭시 기존 데이터를 삭제하고 새로운 데이터를 insert하도록 할 것이다.순서는 다음과 같이 진행될 것이다.새로고침버튼 클릭back으로 링크카드의 id를 전송
무한스크롤의 페이지를 크롤링하기 위해 드래그를 맨 밑으로 내려서 div, a 등 태그들은 로딩이 됐지만 이미지는 해당 위치로 이동을 해야 로딩되는 방식이어서 img src를 받을 수 없었다. 그래서 setInterval로 시간초마다 일정 높이를 드래그하여 이미지 전체를