프로그래밍
-
[nodejs] Request모듈을 이용해서 html을 불러올 때 깨지는 문제 해결(cheerio, iconv-lite, request, charset)프로그래밍 2019. 11. 27. 10:58
const cheerio = require('cheerio') const request = require('request') const iconvlite = require('iconv-lite') const charset = require('charset') // 해당 사이트의 charset값을 알 수 있게 해준다. request( { url: 'http://nikon-lenswear.co.kr/assets/store-search-daum/com_list.php?sno=2500&location=default&tmptitle=&title_like=&isee=', encoding: null }, function (error, res, body) { const enc = charset(res.headers, ..
-
[Network] TCP Socket Programming - File Download [Server - Client]프로그래밍 2019. 11. 13. 20:36
서버-클라이언트간 TCP Socket을 사용해 파일을 다운로드하는 예제입니다. Client_Server/Server/files에 있는 test.pdf파일을 Client_Server/Client/files에 다운로드 받습니다. 구현환경 / 언어 : Mac / Java 사용법 : 맥을 기준으로 설명하겠습니다. 1. 2개의 터미널을 켜줍니다. 2. 하나의 터미널에서는 Client_Server폴더 내의 Client 폴더로 이동합니다. 다른 하나의 터미널에서는 Client_Server폴더 내의 Server폴더로 이동합니다. 3. 먼저, Server 폴더에서 Server_Peer.java 파일을 컴파일하고, java Server_Peer 8000 test.pdf 를 통해 파일을 실행시킵니다. 이후, Client 폴..
-
[Docker] Docker(도커)+NodeJs(Sequelize)+Mysql 연동하기 / Docker-Compose 구성 및 Docker-Compose 순서 설정.프로그래밍 2019. 11. 11. 17:06
최근 학교 데이터베이스 과제를 진행하면서 간단한 연락처를 구성하는 웹페이지를 짜게 되었다. 나는 기술 스택을 NodeJS + Mysql 로 사용하고싶은데, 조교님이 기술 스택을 Python(flask) + Postgresql을 사용하셔서 다른 기술스택을 도커에 올려서 제출해도 되냐고 여쭤보니 흔쾌히 OK하셨다. 원래 조교님이 쓰시는 기술스택을 사용하면, 그냥 코드를 알집파일로 압축해서 제출해도 되고 (조교님의 컴퓨터에 파이썬이랑 flask가 다 깔려있다) docker를 통해 제출하고싶으면 조교님이 만들어주신 docker-compose 파일을 사용해, 내부 코드만 짜면 되는데 내가 스스로 다른 기술스택을 위해(왜그랬을까...ㅠㅠ) Dockerfile.dev부터 .dockerignore, docker-com..
-
[자료구조] 이진탐색트리(Binary Search Tree, BST)의 시간복잡도프로그래밍 2019. 8. 14. 21:44
https://ko.wikipedia.org/wiki/%EC%B5%9C%EC%84%A0,_%EC%B5%9C%EC%95%85,_%EA%B7%B8%EB%A6%AC%EA%B3%A0_%ED%8F%89%EA%B7%A0%EC%9D%98_%EA%B2%BD%EC%9A%B0 최선, 최악, 그리고 평균의 경우 - 위키백과, 우리 모두의 백과사전 위키백과, 우리 모두의 백과사전. 컴퓨터 과학분야에서, 주어진 알고리즘의 최선, 최악, 그리고 평균의 경우(best, worst, and average cases)는 각 최소, 최대, 평균 자원의 사용량을 의미한다. 보통 여기서 고려하는 자원은 실행시간 (예, 시간 복잡도:time complexity), 메모리 또는 기타 다른 자원들 이다. 최악의 경우 알고리즘이 항상 제시간 안에..
-
[자료구조] 자바로 트리(Tree) 구현하기, 트리의 탐색프로그래밍 2019. 8. 8. 01:27
자료구조의 일종 사이클이 없는 그래프 정점의 개수 V 간선의 개수 V-1 모두 연결되어있어야 함. 정점의 개수가 V, 간선의 개수 V-1이면 무조건 트리다=> X 연결되어 있어야함! 루트있는 트리 (Rooted Tree) 루트가 있는 트리 parent = 자식 Children을 하위에 가지는 노드. parent가 없다 => root Leaf Node = 트리의 가장 하위에 있는 노드 sibiling = 같은 부모를 가진다. depth = root로부터의 거리 (root = 0) Height = depth들 중에서 가장 큰 값. Ancestor(조상), Descendant(자손) (자신포함) 조상 : 자기 상위~root까지 자손 : 자기 하위 노드. 이진트리 자식을 최대 2개만 가지고 있는 트리 트리는 그..
-
[자료구조] JAVA로 그래프(Graph)구현하기, BFS, DFS프로그래밍 2019. 8. 7. 22:28
자료구조의 일종이다. 정점(Node, Vertex)와 간선(Edge)로 이루어져 있으며 간선은 정점간의 관계를 나타내는데 사용한다. G = (V,E)로 나타낸다. 경로 : 한 정점에서 특정 정점으로 이동하는 방법. 사이클 : 경로중에서 시작과 도착이 같은것(되돌아오는것) 단순 경로와 단순 사이클 : 같은 정점을 두번이상 방문하지 않는다. 보통 특별한 말이 없으면 일반적으로 단순 경로와 단순 사이클을 구한다. 방향이 있는 그래프 (directed graph) = 특정 방향으로만 이동이 가능한 그래프 방향이 없는 그래프 (undirected graph) = 방향이 없는 그래프 (문제를 풀때는 둘다 저장) 간선이 여러개인 그래프도 있다. 루프 : 시작점과 끝점이 같은 간선. 가중치(Weight) : 이동하는 ..
-
[자료구조] Stack 구현하기프로그래밍 2019. 8. 3. 04:43
스택이란 ? FILO(First in Last Out) 방식의 자료구조. -> top을 통해서 스택에 값을 저장하고(push) 스택에서 값을 빼낼 수 있다.(pop) 비어있는지 확인 ? -> top = -1인지 확인. 자바 소스코드 public class Stack{ int top; int[] stack; int size; public Stack(int size){ top = -1; stack = new int[size]; this.size = size; } public void push(int value){ stack[++top] = value; } public int pop(){ return stack[top--]; } public int peek(){ return stack[top]; } publi..