본문 바로가기

Tech

(37)
[미세먼지팁] 윈도우 IntelliJ 그래들 버전 변경 기존 사용하던 맥에서 진행하던 프로젝트를 윈도우에서 이어서 하기 위해 gradle 프로젝트를 import 하던 중 문제가 발생하였습니다. Build file 'D:\System\Documents\Projects\intellij IDEA\cloudconf\build.gradle' line: 2 An exception occurred applying plugin request [id: 'org.springframework.boot', version: '2.3.1.RELEASE'] > Failed to apply plugin [id 'org.springframework.boot'] > Spring Boot plugin requires Gradle 5 (5.6.x only) or Gradle 6 (6.3 or ..
Sysbench를 활용한 mariaDB 벤치마크 마리아db 벤치마킹을 위한 툴을 찾아보다 sysbench를 처음 접하게 되었습니다. 예전부터 사용되던 유서깊은 벤치마킹 툴인데, 한동안 업데이트되지 않았다가 다시 활발히 업데이트가 진행되고 있습니다. git : https://github.com/akopytov/sysbench akopytov/sysbench Scriptable database and system performance benchmark - akopytov/sysbench github.com 맥에서는 homebrew를 통해 관련 디펜던시까지 한번에 설치해 줄 수 있습니다 : brew install sysbench Sysbench에서 지정해 줄 수 있는 대표적인 옵션들은 다음과 같습니다 : General options 설명 기본값 --thre..
iOS 13.3.1 Firebase 연동 시 FBLpromises library not loaded 문제 해결법 iOS 개발 스터디를 하던 도중, CocoaPods를 사용하여 iOS 어플리케이션과 Firebase를 연동하던 중 다음과 같은 문제가 생겨 해결법을 공유하고자 합니다. GoogleService-info.plist 파일을 추가하고, pod init, pod install을 통하여 프로젝트와 코코아팟을 연동하고 프로젝트명.xcworkspace 파일을 열어 기분좋게 빌드를 하면 dyld: Library not loaded: @rpath/FBLPromises.framework/FBLPromises 오류가 뜹니다. 구글링 결과 애플이 iOS 13.3.1 이상에서 무료 개발자 계정의 동적 라이브러리 사용을 제한했다는 소식이 있네요. 해당 버그와 관련된 토론은 다음 링크에서 확인할 수 있습니다. Running iOS..
[DS] 이진 탐색 트리 - Binary search tree, 순회 - Traversal (구현) 이진 탐색 트리의 구현 방법에는 여러 가지가 있습니다. 이 글에서는 리스트를 사용하여 재조정 없이 단순히 삽입만 수행하는 트리를 만들고 각 노드를 탐색하여 출력하고자 합니다. 트리 구조에서 각각의 노드를 정확히 한번씩 체계적인 방법으로 방문하는 것을 트리 순회 Tree traversal 라 하는데, 삽입된 원소들을 순회하는 방법은 크게 두 가지 분류로 나뉘며, 대표적인 다음 네 가지 탐색법이 있습니다. Reference : https://en.wikipedia.org/wiki/Tree_traversal Tree traversal - Wikipedia "Tree search" redirects here. It is not to be confused with Search tree. In computer sc..
[DS] 이진 트리 - binary tree (개념 및 이진 트리의 종류) 트리 Tree 는 원소들을 계층적으로 저장하는 비선형 non-linear 자료구조입니다. * 위 그림의 나무를 뒤집어 둔 것과 비슷하게 생겼습니다. 최상의 원소 루트 root를 제외한 각각의 원소는 하나의 부모 parent 노드와 0개 이상의 자식 child 노드들을 가지고 있습니다. 여기서 자식이 없는 노드를 외부 노드 external node 혹은 리프 노드 leaf node, 하나 이상의 자식 노드를 가진 노드를 내부 노드 internal node 라 칭합니다. 이 중에서, 이진 트리 혹은 바이너리 트리 binary tree 는 하나의 노드가 최대 2개의 자식을 가지는 트리 자료구조를 의미합니다. 아래 그림은 바이너리 트리가 어떻게 구성되는지를 나타낸 것입니다. 이진 트리에서는 내부 노드의 자식을 ..
[DS] 링크드 리스트 - Linked List (개념 및 구현) 앞서 구현한 스택과 큐는 모두 배열을 기반으로 작성되었습니다. 배열은 메모리 공간에서 연속적이며, 임의 접근(Random access)가 가능한 장점이 있지만 고정된 크기를 가지고 있으며 연속된 배열 중간의 원소를 삽입/삭제하는데 걸리는 시간이 크다는 단점을 가지고 있습니다. 이러한 단점을 해결하기 위하여 등장한 것이 '연결 리스트 (혹은 링크드 리스트) Linked List' 자료구조입니다. 링크드 리스트는 배열과 달리 원소뿐만 아니라 다음 원소가 어디 있는지에 대한 위치정보를 포함하고 있습니다. 이러한 데이터 덩어리를 '노드 Node' 라고 부릅니다. 링크드 리스트는 메모리 공간에서 연속적이지 않아도 되며 노드들 가운데 새로운 노드를 삽입하거나 삭제하는 것이 배열보다 용이하고 가변적인 크기를 가지고 ..
[DS] 큐 - Queue (개념 및 배열로 큐 구현하기) 큐는 선입선출(FIFO, First-In, First-Out)의 원리에 따라 삽입과 삭제를 수행하는 자료구조입니다. 실생활의 모든 대기 줄 혹은 매장에서 음료를 판매하는 방식을 생각하면 됩니다. 다음 그림은 큐가 어떻게 동작하는지를 나타낸 것입니다. C++에서 배열을 사용하여 간단히 큐를 구현하겠습니다. 큐는 먼저 들어간 원소가 가장 먼저 삭제되기 때문에 스택과 같은 방법으로 배열을 사용한다면 원소가 하나 삭제될 때 마다 위 그림처럼 다른 원소들을 모두 이동시켜야 하므로 굉장히 비효율적인 방식으로 동작하게 됩니다. 이를 해결하기 위한 방법은 여러 가지가 있지만, 이 글에서는 배열을 환형 방식(Circular way)으로 사용하여 문제를 해결하겠습니다. 환형 배열을 사용하는 경우, 두 개의 인덱스 fron..
모바일에서 티스토리 코드블럭 가독성 높이기 이 블로그에는 티스토리 기본 스킨 중 하나인 Poster 스킨이 적용되어 있으며, 코드블럭의 하이라이팅을 위해 코드 문법 강조 플러그인(Syntex highlight)을 사용하고 있습니다. 지난번에 작성한 글 [DS] 스택 - Stack (개념 및 배열로 스택 구현하기)의 코드를 모바일에서 리뷰하다가 코드가 자동으로 줄이 바뀌어 있는 것을 확인하였고, 다른 티스토리 블로그에서도 코드블럭 내의 소스코드가 자동으로 줄바뀜되어 가독성이 떨어지는 것을 확인할 수 있었습니다. 모바일에서 가장 큰 점유율을 가지는 크롬 브라우저와 사파리 브라우저 모두에서 가로 스크롤링을 지원하기 위하여 스킨의 css를 편집하였습니다. .entry-content hr 부분과 .entry-content pre code 부분을 다음과 같..