전체 글(16)
-
[Python] 완전탐색 Brute Force
초보자를 위해 작성된 글입니다. 코드레벨의 설명을 매우 자세하게 포함하고 있습니다. 완전 탐색 완전 탐색 (Brute Force)란 모든 경우를 탐색하여 문제의 정답을 구하는 방법입니다. 기본적으로 우리가 IF - Else를 통해 모든 분기를 처리한다면 이것도 완전탐색이라고 볼 수 있습니다. 완전 탐색은 특정 알고리즘이라기 보다는 컴퓨터가 매우 빠른 연산력을 가지고 있다는 것을 바탕으로한 문제를 해결하는 하나의 방법론입니다. IF - Else 조건에 대한 모든 경우에 대한 분기가 있다면 완전탐색으로 볼 수 있습니다. 그러나, 의외로 개발을 하다보면 조건을 누락하는 경우가 많습니다. a = 100 current = 1 visit = [False, True] if visit[current] and a > 0..
2021.12.13 -
[DB #1] DBMS Intro
Introduction 데이터베이스의 핵심적인 내용과 전체적인 그림을 서술하고, 중요한 개념들을 소개한다. 연재되는 글의 작성에는 Database System Concepts - 6th edition "Abragan Silberschatz, Henry F.Korth, S.Sudarshan" Database Management Systems - 3rd edition "Ramakrishnan, Gehrke" Data Mining Concepts and Techniques - 3rd edition "Jiawei Han, Micheline Kamber, Jian Pei" 의 책이 인용되거나 참고되었다. 온라인 reference들은 인용될 때 별개로 표시한다. 앞으로 작성될 포스트들은 이해할 수 있도록 풀어서, ..
2021.11.09 -
벨만포드 알고리즘(백준 11657번)
벨만포드 벨만 포드 알고리즘은 음의 가중치를 갖는 간선을 포함한 그래프의 최소거리를 구하는 알고리즘입니다. O(n*e)의 시간복잡도를 통해 한 출발점에 대한 모든 정점의 최소거리를 구할 수 있습니다. 이 때, 음의 사이클이 존재하면, 최소거리를 구하는 것은 불가능합니다. 그 이유는 음의 사이클이 존재할 경우, 그 사이클을 무한 반복하면 거리가 계속해서 줄어들기 때문입니다. 알고리즘은 단순합니다. 전체간선을 통해, 최소거리를 한번 갱신하면 어떻게 되는 지 생각해봅시다. 시작에는 시작점은 0, 모든 점은 무한대로 설정합니다. 해당 데이터를 가지고 모든 간선에 대해 탐색하여, d(v) > d(u) + e(u, v) : u점에 가는 값과 u점에서 v점으로의 간선을 더한 값이 현재 v점을 가는 비용보다 작다면 갱..
2021.02.17 -
[개발자는 코딩만] CI구축02 : Docker, Jenkins, Nginx, React
배포 지난 포스트에서는 jenkins가 github의 webhook을 통해 main브런치에 푸시된 것을 알게되고, 가져와 빌드하여 컨테이너 이미지를 생성하고, 이미지를 도커 허브에 업로드까지 했습니다. 이제 테스트 서버에 해당 도커 이미지를 설치하고, 실행하는 파이프라인을 작성하겠습니다. 1. 우선 테스트 서버로 사용할 가벼운 ec2를 하나 구매하겠습니다! ec2를 구매한 뒤, 해당 ec2에 도커를 설치합니다. 이 때, usermod 명령어를 통하여, ssh를 사용하는 계정이 도커명령어에 접근할 수 있도록 해주세요~ 도커 설치 : docs.docker.com/engine/install/ubuntu/ Install Docker Engine on Ubuntu docs.docker.com 도커를 설치한 뒤, ..
2021.02.12 -
[개발자는 코딩만] CI구축01 : Docker, Jenkins, Nginx, React
개발자가 실제 서비스에 대한 코딩 외에 빌드, 테스트, 배포의 과정이 너무 복잡해짐에 따라, 개발자들이 부담해야 되는 반복적인 작업을 대신 해줄 데브옵스가 강조되고 있습니다. 오늘 포스트에서는 다음과 같은 작업을 해보려고 합니다. 워크로드는 다음과 같습니다. 개발자는 React 프레임워크를 통해 웹 어플리케이션을 제작하고, 빌드하여, 이를 테스트 서버에 구동시켜 테스팅 하고 싶다. 테스트서버는 컨테이너를 통한 실행을 수행하고, 컨테이너는 react 프로젝트를 빌드하여 Nginx로 서버를 구동한다. 이를 지원하기 위한 데브옵스 환경을 구축해보겠습니다. 동작 1. 개발자가 github에 push하면, webhook을 통해 jenkins가 이벤트를 받고, 파이프라인을 동작시킨다. 2. jenkins는 파이프라..
2021.02.10 -
분석하는 Go : ReadAll
이 문서의 모든 자료는 Go 공식 document와 Go언어의 소스코드를 직접 분석하여 작성합니다. 작성하는 것에 정말 많은 시간이 들은 내용이므로 불펌자제 부탁드리고, 제 내용을 참고하실 때 출처 기록부탁드립니다. 출처 : golang.org/pkg/io/ioutil/ 개요 ioutil은 I/O utility함수를 구현합니다. 구성은 Variables 변수 func NopCloser func ReadAll func ReadDir func ReadFile func TempDir func TempFile func WriteFile 로 되어있습니다. 앞으로의 포스트에서 각 패키지를 조금 뜯어 보며, 다양한 함수를 다룰 계획입니다. 이 포스트에서는 이 ReadAll 함수를 코드레벨까지 자세하게 다루겠습니다. ..
2021.02.08