목록AI (114)
기록하는삶
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bvfWVk/btrliMnRvfW/axpv5gZbOV0LKQtgAz9db0/img.png)
anaconda prompt에서 아래의 코드를 실행하면 된다. 1) 테마 설정 # jupyter notebook, jupyterthemes 설치 conda install jupyter notebook pip install jupyterthemes # onedork 테마 및 폰트 사이즈, 라인 간격 등 설정 jt -t onedork -T -N -kl -f roboto -fs 12 -tfs 11 -nfs 14 -tfs 14 -ofs 10 -cellw 90% -lineh 170 -cursc r -cursw 6 2) 목차 활성화 # extensions 설치 pip install jupyter_contrib_nbextensions # Nbextensions 활성화 jupyter contrib nbextension..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/cQnMPM/btrlhCZW0Qo/NFiodizkjXEjMG1jSKl9NK/img.png)
배열의 정렬 방법에는 여러 가지가 있다. 대부분의 프로그래밍 언어들은 가장 빠른 시간 복잡도인 O(n*logn)을 자랑하는 퀵정렬을 배열의 정렬 알고리즘으로 채택하여 사용하고 있다고 한다. 이 글에서는 보다 느리고 효율은 떨어지지만 기본적이고 쉬운, 버블 정렬과 선택 정렬에 대해 알아보자. 1) 버블 정렬 버블 정렬은 마치 가장 큰 숫자가 버블이 되어 차례로 맨 뒤로 이동하는 정렬 방법이다. 아래의 방법을 따라 정렬이 이루어진다. ① 0번째 원소와 1번째 원소를 비교, 순서대로 정렬한다. 그 다음 1번째 원소와 2번째 원소를 비교, 정렬한다. 이를 n-1번째 원소와 n번째 원소까지 반복하고 나면, 배열에서 가장 큰 원소(버블)가 배열의 맨 뒤로 이동한 상태가 되고 하나의 사이클이 종료된다. ② 다시 ①의..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dYHpFU/btrkBFoj7cM/McsLeL94qCPNagNtffyic0/img.png)
numpy array는 transpose라는 함수를 제공하지만, list의 경우 내장된 전치함수가 없다. 이를 zip 함수를 이용해 간단히 구현할 수 있다. 다음과 같은 이중리스트가 있다면, 이는 3*3 행렬과 같은 형태이다. 원래 zip 함수는 iterable한 객체의 원소들을 짝지어주는 함수이다. 그런데 인자로 *(iterable)을 전달하면, 헤당 iterable한 객체가 내부적으로 가지고 있는 원소가 또 다시 iterable한 경우에 한해, 각 원소들의 인자들을 순서대로 짝지어준다. 즉, 위의 예시에서는 3개의 원소의 1번인자, 2번인자, 3번인자를 순서대로 짝지어 각각 (1,4,7), (2,5,8), (3,6,9)를 반환했다. 내부 원소들이 iterable이 아닌 경우는 다음과 같이 에러를 반환..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bkKUMu/btri1dBXGBd/M5rlGNa8uOjK77JIsoub00/img.png)
도커(Docker)는 어플리케이션의 가상화(컨테이너화)를 통해 개발 환경에 관계 없이 도커만 설치한다면 어플리케이션을 동일하게 실행할 수 있도록 하는 장점이 있는 도구다. 리눅스 기반으로 개발되었지만 현재는 window와 mac에서도 모두 사용 가능하다고 한다. Windows 10 Pro 기준 설치 방법은 아래 글과 같고, 다른 os의 설치 방법 또한 아래 글에 링크로 포함되어 있다. [설치] https://www.lainyzine.com/ko/article/a-complete-guide-to-how-to-install-docker-desktop-on-windows-10/ [Windows 10] Docker 설치 완벽 가이드(Home 포함) Docker는 경량 가상화 기술인 리눅스 컨테이너 도구입니다. ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/VSBIU/btrio2Oz9hf/g1g0a5raqFGjtMyGbslqX1/img.jpg)
> 트리(tree) 나무를 뒤집은 모습으로 계층 구조를 표현하기에 적합한 자료구조다. 연결 리스트와 같이 메모리 칸을 이용해 정보를 저장하며, 각 메모리 칸은 다른 칸의 위치를 가르키는 포인터를 가진다. 다만 그 모양이 일방향 혹은 양방향의 사슬이 아닌, 하나의 뿌리를 둔 나무의 모양을 띈다는 점에서 다르다. 각 칸을 노드(node), 포인터를 엣지(edge), 그리고 트리의 최상위 정점은 뿌리(root)라 부르며, 노드간 상하관계를 부모자식관계로 표현한다. (학과의 자식 노드는 윤리교육과, 국어교육과, ... 컴퓨터교육과의 부모노드는 학과) 자식 노드를 하나도 갖지 않는 노드들은 잎(leaf)이라 부른다. 한 노드에서 뿌리까지의 경로의 길이를 깊이(level), 트리에서 가장 깊은 노드의 깊이가 트리의..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dYN0p4/btrin0V8hd0/ZWHp9tyujq1Xt1ncSsKYIk/img.png)
> 추상 자료형(ADT_Abstract Data Type) 클래스와 유사한 개념으로서 논리적 관계와 구현 시 관계의 연관성을 서로 분리하며, 물리적 요소와 논리적 요소를 서로 구분하는 작업인 절차적 추상화의 결과로 만들어진 것. 특정 데이터 유형에 필요한 연산이 무엇인지 정해 둔 명세로, 데이터 변수를 조작하기 위한 인터페이스와 실제 구현을 분리함으로써 메모리에서 실제 데이터 조작에 필요한 모든 세부사항을 감출 수 있다. 내가 컴퓨터의 내부 작동 원리에 대해 잘 모르지만, 마우스와 키보드로 컴퓨터를 작동할 수 있는 것 역시 '절차적 추상화' 덕분이다. ex) list, dictionary, set, queue, stack 등 > 데이터 구조(자료구조, Data structure) 데이터 값의 모임, 또 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/bjrNg8/btrigJ8UzyC/liCVClzbCY2aeZnsUwlto1/img.gif)
> 방법(method) 어떤 목적을 달성하기 위해 해야 할 작업에 대해 명확하게 지시한 것 > 알고리즘(algorithm) 방법 중에서도 작업의 횟수가 유한한 것. 절차, 방법, 명령어들의 집합을 말하기도 하며, 일련의 순서를 포함한다. 주로 컴퓨터가 작업을 처리하는 방법을 말한다. > 시간 복잡도(time complexity) 알고리즘이 문제를 해결하는데 걸리는 시간. 처리해야하는 연산의 수와 연관된다. n개의 데이터가 주어졌을 때, 해당 알고리즘이 수행되는데 필요한 연산의 수를 n에 관한 함수, T(n)으로 표현한다. 이때 연산의 수는 최선의 경우, 평균적인 경우, 최악의 경우로 나누어 생각할 수 있는데 보통은 최악의 경우를 기준으로 생각한다. ex) 선택 정렬 알고리즘 주어진 리스트 중에 최소값을 ..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/WsB2I/btriiupfd5d/7KV0FC9PXJ3kYQkR5IyILK/img.png)
quasar에서는 페이지 및 페이지 헤더의 형식을 지정하고, 특정 태그로 불러와 사용할 수 있다. 그 중 페이지 헤더에 대해서 살펴보자. components/Page/PageHeader.vue 파일에 다음과 같이 형식을 지정할 수 있다. 태그: header의 형식 지정하기 태그: header에 툴바를 놓고, 나열할 방식 지정 태그: 활용할 버튼/타이틀(string)의 이름과 위치 지정(name으로 불러다 사용할 예정) 위의 예시 코드에서는 가운데 타이틀을 기준으로 왼쪽과 오른쪽에 각각 2개의 버튼을 위치시킬 수 있다. 이제 해당 페이지헤더에 추가한 버튼의 예시를 보자. 해당 코드는 뒤로가기 버튼의 구현 예시다. 버튼의 아이콘과 색깔, 기능 등을 지정한 뒤 PageHeaderBtnBack.vue의 이름으로..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/LvNWv/btrihbwPW5z/pODtRtElQz98BNTDcqX1L0/img.png)
quasar는 css 폴더 하에 색상의 이름을 지정해두고, global하게 불러다 사용할 수 있다. [참고] https://quasar.dev/style/color-palette#util-getcssvar Color Palette | Quasar Framework How to use and customize the Quasar Color Palette. quasar.dev 색상의 id는 adobe color에서 확인할 수 있다. https://color.adobe.com/ https://color.adobe.com/ko/create/color-wheel color.adobe.com 해당 이름들로 지정한 색들을 다른 페이지에서 불러다 사용할 수 있다. 또한 모듈을 이용해 새롭게 색을 지정하거나, 지정한 색..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ybUSB/btrh1Q0FBYO/FNPPvrIXDTq08QzuQ0PDkk/img.png)
어플이나 브라우저에서 언어설정을 바꿀 수 있는 경우가 있다. quasar에서는 i18n이라는 모듈을 활용해 이 기능을 개발할 수 있다. app-internationalization이라 부른다. https://quasar.dev/options/app-internationalization#introduction App Internationalization (i18n) | Quasar Framework How to use vue-i18n in a Quasar app. quasar.dev 위 링크의 설명 순서대로 진행하면 된다. 1. i18n 설치 node.js prompt에서 아래의 npm을 활용하면 된다. $ yarn add vue-i18n@next // or: $ npm install vue-i18n@ne..