memostack
article thumbnail
최댓값 찾기 알고리즘 (with Python3)
Algorithm 2020. 2. 19. 23:21

최댓값 찾기 최댓값을 찾는 알고리즘 상당히 간단한 알고리즘이다. (하나하나 비교하면 됨) 하나씩 비교를 하다보니 시간복잡도는 O(n)이 된다. 코드 본 글에서는 unittest를 이용하여 알고리즘을 풀이합니다. 로직이 달라지는것은 아닙니다. 사실 파이썬에는 max() 라는 내장함수를 제공해주는데, max([5, 3, 2]) 안에 숫자로 구성된 리스트를 넣어주면 알아서 최댓값을 반환해준다. # -*- coding: utf-8 -*- import unittest class Exam02(unittest.TestCase): @classmethod def setUpClass(cls) -> None: cls.items = [10, 92, 4, 7, 44, 80, 98, 50, 74, 32] ...생략... def ..

article thumbnail
Spring Boot 프로젝트 생성하기
Backend/Spring Boot 2020. 2. 18. 22:26

스프링 부트 프로젝트 생성 스프링 부트 프로젝트를 생성 할 수 있게 도와주는 사이트가 있다. (https://start.spring.io) 위와 같이 원하는 Version, Metadata, Dependency 를 정하여 프로젝트를 구성한다. Generate 버튼을 통해 만들어진 프로젝트를 다운로드 받는다. Spring Boot 실행 간단한 API 를 생성하여 화면에 띄어보고, Spring Boot 를 실행해본다. 의존성 설정 pom.xml spring-boot-starter-web 아티팩트(Artifact)를 추가한다. ... org.springframework.boot spring-boot-starter-web ... API 생성 TestController.java package com.example..

article thumbnail
Spring Boot에 Swagger2 (스웨거) 적용하기 (Maven)
Backend/Spring Boot 2020. 2. 18. 22:08

환경 운영체제: Mac OS Spring Boot 버전: 2.2.4.RELEASE Maven 버전: 4.0.0 Swagger 란? 스웨거(Swagger)는 REST API 문서를 자동으로 생성해주는 오픈소스 프레임워크다. 자동으로 프로젝트의 코드를 읽고 API 문서를 생성해주기 때문에, API 스펙(Spec)이 바뀌어 API 문서들을 다시 수정하는 번거로움이 없다. (매번 문서 작성하고... 수정하고... 리소스가 많이 들어가는 일이다. 이건 정말 좋은듯) 또한 스웨거가 제공해주는 UI 에서 실제로 REST API 를 던저보고 응답을 받을 수 있기 때문에 테스트도 할 수 있다. Swagger2 적용하기 Swagger에도 버전이 존재하는데, 본 글에서는 Swagger2를 이용한다. 프로젝트 생성하기 202..

article thumbnail
알고리즘의 시간 복잡도 - 빅오(O) 표기법
Algorithm 2020. 2. 16. 13:47

수 많은 알고리즘이 존재하지만, 어떤 알고리즘이 성능이 좋은지 평가하는 확실한 방법은 무엇일까? 방법은 수학적으로 증명하는 방법이다. 빅오(O) 표기법 빅오 표기법은 알고리즘의 성능 평가 방법 중 가장 많이 사용하는 방법 중 하나다. 가장 많이 사용하는 이유는 최악의 성능을 측정할 수 있기 때문이다. (최악의 성능을 알 수 있다면, 적어도 이 정도의 성능은 보장한다는 뜻이므로) 빅오 표기법 이외에도 오메가 표기법(Omega Notation), 세타 표기법(Theta Notation) 이 있지만, 본 글에서는 빅오 표기법에 대해서만 논한다. 알고리즘 분석하기 분석하기 전, 가정 3가지 헤더 파일은 알고리즘의 성능에 영향을 주지 않는다. 함수 진입, 함수 반환은 알고리즘 성능에 영향을 주지 않는다. 프로그램..

article thumbnail
1 부터 n 까지 더하기 알고리즘 (with python)
Algorithm 2020. 2. 16. 00:56

본 글은 Python3.7 환경에서 진행합니다. unittest 로 작성되어 있지만, 알고리즘을 확인하는데는 문제가 없습니다. 단순히 더하는 방법 결론부터 이야기 하자면 이 방법은 비효율적이다. 1 부터 10 까지 더하는 알고리즘을 작성하면 아래와 같이 생각할 수 있다. 코드 test_sum 함수를 보자. # -*- coding: utf-8 -*- import unittest class Exam01(unittest.TestCase): def test_sum(self): """1 부터 n 까지 더하는 알고리즘""" answer = 0 # 정답 for _ in range(1, 11): answer += _ # 1 부터 10까지 더한다. self.assertEqual(answer, 55) if __name__..

article thumbnail
Mac 환경의 Docker 는 /var/lib/docker가 없다.
DevOps/Docker 2020. 2. 15. 02:22

Mac 에는 /var/lib/docker 가 없다. Cent OS 로 Docker 를 사용해오다가 Mac OS 에서 Docker를 사용하고 잠시 당황했었다. 볼륨을 생성하기 위해 아래 명령어들을 수행했다. $ docker volume create jenkins_home jenkins_home $ docker volume ls DRIVER VOLUME NAME local jenkins_home $ docker volume inspect jenkins_home [ { "CreatedAt": "2020-02-14T17:06:34Z", "Driver": "local", "Labels": {}, "Mountpoint": "/var/lib/docker/volumes/jenkins_home/_data", "Name"..

article thumbnail
Docker 기본 명령어 정리
DevOps/Docker 2020. 2. 14. 23:59

1. 이미지 관리 1.1. 이미지 보기 $ docker images REPOSITORY TAG IMAGE ID CREATED SIZE jenkins latest cd14cecfdb3a 19 months ago 696MB 1.2. 이미지 가져오기 (pull) 이미지에 대한 정보는 DockerHub(이미지 저장소)에서 찾아볼 수 있다. https://hub.docker.com $ docker pull jenkins Using default tag: latest latest: Pulling from library/jenkins 55cbf04beb70: Pull complete 1607093a898c: Pull complete 9a8ea045c926: Pull complete ...생략... 1.3. 이미지 제..