분류 전체보기
-
[sftp] vscode 에서 서버 연결하기CS/기타 2021. 3. 1. 12:05
vscode 의 "sftp" 확장 프로그램을 쓰면 서버의 소스를 로컬에서 vscode로 편집할 수 있습니다. 저는 가상머신의 리눅스 환경에서 프로젝트를 진행하다가 vim 보다는 아무래도 vscode 가 익숙하여 로컬 vscode 에서 서버를 연결하여 사용하였고 그 방법을 공유하려고 합니다. *서버에 ssh 가 설치되어 있지 않아서 sftp 이용이 불가할 수 있으니 sudo dpkg -l | grep ssh 로 확인해보시고 없다면 sudo apt-get install ssh 로 ssh 를 먼저 설치해주셔야 합니다.* 1. SFTP 확장 프로그램 설치 vscode 에서 sftp 를 사용하기 위해 확장 프로그램을 설치하여야 합니다. - vscode 에서 왼쪽 메뉴의 저 테트리스 같은 모양을 누르면 확장 프로그..
-
[Vim]vim 기본설정 및 팁CS/기타 2020. 12. 10. 20:58
VIM(VI iMproved) : 리눅스 터미널 환경에서 사용가능한 대표적인 텍스트 편집기 vim 의 설정값은 .vimrc 파일을 수정함으로 변경할 수 있고, .vimrc 파일은 언제나 홈 디렉토리에 존재해야 한다. 1. .vimrc 파일 생성하기 cd ~ vim .vimrc 2. .vimrc 파일 설정하기 필자가 사용하는 개인 설정값을 아래 첨부합니다. 복사해가실 분은 아래 코드블럭을 사용해주시면 됩니다. if has("syntax") syntax on endif set autoindent set cindent set ts=4 set sts=4 set shiftwidth=4 set laststatus=2 set hlsearch set scrolloff=2 set showmatch set nocompat..
-
[알고리즘] 동적 계획법(Dynamic Programming) - 기본CS/Algorithms 2020. 12. 9. 21:24
동적 계획법(Dynamic Programming) 짧게 줄여서 DP 라고 부르는 이 알고리즘은 분할정복(Divide and Conquer) 알고리즘과 마찬가지로 복잡한 문제를 여러 개의 부분 문제들(Sub-problem) 으로 나누어 푼 후, 그 결과를 이용하여 복잡한 문제를 푸는 알고리즘이다. 다만 분할정복 알고리즘과의 차이는 DP 에서는 각 부분 문제들간에 겹치는 부분이 존재한다는 것인데, DP 는 이러한 겹치는 부분들을 메모이제이션(Memoization) 이라는 기법을 사용하여 단 한 번만 계산하도록 함으로써 알고리즘의 작동 시간을 줄이는 게 핵심입니다. 그렇다면 메모이제이션이라는 것은 무엇인지 알아봅시다. 피보나치 수열을 예로 들면, 아래와 같이 Fib(0) ~ Fib(3) 은 동일한 값을 구하는..
-
[웹서버] 라즈베리파이로 홈 서버 만들기CS/Server 2020. 10. 30. 11:04
안녕하세요 점점 날씨가 차가워지고 있네요. 오늘은 제가 집 어딘가 구석에 숨겨두었다가 어느날 이걸로 뭐 할 수 있는게 없을까? 해서 라즈베리 파이로 웹 서버를 만들게 된 이야기를 포스팅 해보려고 합니다. 마침 요즘 사이드 프로젝트로 책을 읽고 독후감을 쓸 수 있는 웹 사이트를 하나 만들고 있었는데 이 웹을 aws 같은 호스팅 서비스를 이용하지 않고 라즈베리파이를 이용해서 집에 직접 서버를 운영하기로 했습니다. 1. 웹 서버 설치하기 라즈베리 파이를 서버로 이용하기 위하여는 라즈베리 파이가 서버로서 동작할 수 있도록 웹 서버 소프트웨어를 설치해주어야 합니다. 일반적으로 많이 쓰이는 웹 서버 소프트웨어는 아파치(Apache), 엔진엑스(Nginx) 등이 있는데 라즈베리 파이라는 제한된 환경을 고려하여 아파치..
-
[포트포워딩] 라즈베리파이 외부접속하기CS/Server 2020. 10. 24. 17:23
안녕하세요, 오늘 다를 주제는 라즈베리 파이에 관한 주제입니다. 요즘 사이드프로젝트로 웹 사이트를 하나 만들고 있던 와중에 방 정리를 하는데 예전에 구매해두었던 라즈베리 파이를 발견했습니다! 그 때 이번에 만드는 사이트는 이 라즈베리파이를 서버로 구동해보면 재밌겠다 라는 생각을 했습니다. 저는 평소에 주로 카페에서 공부를 하는데 문제는 라즈베리 파이를 들고다니기엔 번거롭다는 거였습니다. 그래서 포트포워딩을 통해 집에 연결해놓은 라즈베리파이를 외부에서 접속하는 방법에 대해 알아보고 포스팅 해보도록 하겠습니다. 1. 같은 네트워크에서 접속하기 우선 기본적으로 라즈베리파이와 같은 네트워크에 연결되어 있을 때는 단순 아이피 주소와 ssh 를 사용하여 접속할 수 있습니다. ifconfig 를 사용하여 라즈베리 파..
-
[C++ STL] 리스트(List)CS/C++ 2020. 8. 8. 18:44
STL 은 C++ 표준 템플릿 라이브러리이고, 일반적으로 가장 많이 사용되는 라이브러리는 컨테이너 라이브러리 입니다. 컨테이너는 말 그대로 자료 형들을 담는 역할을 하고 STL 컨테이너는 list, vector, deque, map, set 이 있습니다. 이 포스트에서는 list 에 대해서 다뤄보겠습니다. List 의 자료구조는 연결 리스트로 되어 있다. List 는 앞뒤로 모두 이동이 가능한 이중연결 리스트로 이루어져 있습니다. 연결 리스트는 일반적인 배열과는 다르게 조금 복잡한 모양과 구현 과정을 가지는데요, 이러한 자료구조를 사용함으로써 얻는 몇 가지 이득이 있습니다. 길이가 가변적이다. 배열은 처음 설정할 때 그 크기를 정해줘야 하고, 이 크기를 넘어서는 데이터가 들어가면 컴파일 오류를 일으키는 ..
-
[C++ STL] 템플릿(Template)CS/C++ 2020. 8. 5. 16:23
STL 이 Standard Template Library 의 약자이며 표준 템플릿들의 모음이라는 것을 알게 되었는데 이 템플릿(Template) 이라는 것이 도대체 뭘까요? '템플릿' 이라는 용어는 PPT 템플릿, 파일 템플릿 등 일상 생활에서도 많이 사용됩니다. 사전적 의미로는 '틀', '주형' 등의 의미로 무언가를 담거나 미리 정해두는 틀이라는 의미를 갖습니다. C++ 에서는 이러한 템플릿을 함수나 클래스를 담는 틀로써 사용합니다. 만약 여러분이 여러 명의 학생들을 가르치는 교수이고 이 학생들의 시험 성적을 분반, 성적 순으로 정렬하여 한 번에 볼 수 있도록 프로그램을 만들고 싶다고 하면 우선적으로 분반별로 학생들을 정렬해야 합니다. 이를 위해서 두 수를 비교하는 함수를 만들어 보도록 하죠. int ..
-
[알고리즘] 재귀(Recursion) - 하노이탑CS/Algorithms 2020. 8. 4. 17:02
하노이의 탑은 3개의 기둥과 서로 크기가 다른 여러개의 원판들이 있을 때 이 원판들을 한 기둥으로부터 다른 기둥으로 옮기는 일종의 게임입니다. 게임을 시작하기 전 초기 상태는 3개의 기둥 중 하나의 기둥에 모든 원판들이 아래에서부터 크기가 큰 순으로 놓여져 있으며, 최종 목표는 이 원판들을 하나씩 옮겨서 순서 그대로 다른 기둥에 쌓는 것입니다. 이 때 2가지 규칙이 있습니다. 원판은 한 번에 한 개씩만, 기둥에서 기둥으로만 움직일 수 있다. 쌓아 놓은 원판은 항상 위의 것이 아래의 것보다 작아야 한다. 하노이탑은 재귀함수를 사용하여 해결할 수 있는 대표적인 문제입니다. 1, 2, 3번 기둥이 있고, n 개의 서로 다른 크기의 원판들이 있다고 할 때 1번 기둥에 쌓여져 있는 n 개의 원판들을 모두 3번 기..