본문 바로가기

개발31

C++ String 사용할 때, 시간복잡도 줄이는 법 문자열 s 뒤에 "A"를 10만 번 더하는 경우, 아래 케이스에서 for 연산을 10만 번 반복합니다. 1번 케이스 함수실행시간 : 0.004013s #include #include #include using namespace std; int main() { clock_t start, finish; double duration; string s; int n = 100000; start = clock(); for (int i = 0; i < n;i++) { s += "A"; } finish = clock(); duration = (double)(finish - start) / CLOCKS_PER_SEC; cout 2023. 7. 13.
[log.io] 웹으로 간단하게 로그 확인하기 log.io log.io - Real-time log monitoring in your browser How does it work? Inputs watch log files for changes, send new log messages to the server, which broadcasts to web clients. Log messages are tagged with stream and source information based on user configuration. log.io has no persistence layer. File inputs logio.org log.io는 Typescript 기반의 로그 관리를 위한 오픈 소스 도구입니다. log.io는 실시간으로 서버 및 애플리케이션의 로.. 2023. 7. 4.
도커 컨테이너에 vim 설치하기 리눅스에서 파일 텍스트를 편집하기 위해 vi 명령을 사용할 수 있습니다. 우분투 컨테이너에 bash로 접속하여 vi 명령을 사용합니다. 하지만 컨테이너에는 기본적으로 에디터가 설치되어 있지 않아 사용할 수 없습니다. 따라서 vim 에디터를 설치해야 합니다. 구글에 리눅스환경에 vim 설치방법이 다양하게 나와있습니다. 먼저 $ apt-get update명령을 통해 apt-get을 업데이트 해야 합니다. 13: Permission denied 권한이 없어 에러가 발생합니다. 그러면 $ sudo apt-get update명령을 통해 root 권한으로 명령을 실행합니다. 이번에는 sudo 명령이 실행되지 않아 에러가 발생합니다. Docker | bash: sudo: command not found 윈도우에서 도.. 2023. 6. 29.
2023년 1회 정보처리기사 후기 (feat. 연서중 답안지 파쇄) 2023년 정기 기사시험 1회 정보처리기사 필기 1번, 실기 2번 총 3번의 시험을 치루게 되었습니다 이번 실기 합격률은 거의 27%... 사실 재시험 난이도는 기존 시험과 동일하게 출제한다고 하였는데 코딩문제는 확실히 쉬운 느낌이었습니다 주관식은 네트워크 관련 문제가 대다수여서 쉽지 않았습니다 첫 시험때 가채점으로 60점대였는데, 확실히 붙기위해 한번 더 시험봤다 생각하려 합니다 - 시험 준비물 필기시험 : 필기구 (연습지는 따로 제공합니다. 시험 후 제출) 실기시험 : 볼펜, 수정테이프 (수정액은 불가) 필기시험 3월 21일 필기시험을 진행하였습니다. 일산공인시험센터에서 응시하였고, 건물 9층으로 가면 바로 시험에 대해 안내해주십니다 PC로 시험을 진행하고 과목 별 20문제씩 총 100문제입니다 공부.. 2023. 6. 9.
[C++] String 공백 분리 C++ STL sstream을 사용하여 문자열의 공백을 기준으로 분리합니다. 공백을 기준으로 분리한 후 변수에 저장, vector에 저장 #include #include #include #include using namespace std; int main(){ // 공백 분리할 문자열 선언 string str = "aaa bb c"; // 문자열을 스트림화 stringstream ss(str); string word; vector words; // 스트림을 통해, 문자열을 공백 분리해 vector에 할당 while (getline(ss, word, ' ')) { words.push_back(word); } cout 2023. 5. 18.
Elasticsearch 기본 Elasticsearch란? 엘라스틱서치는 아파치 루씬(Apache Lucene) 기반의 오픈소스 검색 엔진으로 아파치 루씬이 가진 한계를 보완하기 위해 개발되었습니다. 엘라스틱서치는 루씬 엔진을 확장하고 관리하기 위해 Java 언어와 JVM을 활용합니다. 엘라스틱서치는 NoSQL 데이터베이스 중 하나로서, 기존의 관계형 데이터베이스(RDBMS)와는 다르게 엘라스틱서치는 JSON 형식의 문서(document)를 저장하며, 각 문서는 고유한 식별자와 그에 따른 데이터를 가집니다. 이러한 문서들은 인덱스(index)내에 저장되어 있으며, 이를 통해 빠른 검색 및 분석을 수행할 수 있습니다. 대량의 데이터를 빠르게 저장, 검색 및 분석할 수 있기 때문에 주로 로그 및 이벤트 데이터 저장, 웹 사이트 검색, 모.. 2023. 5. 17.
[Docker] 도커 네트워크 (Docker Network) 도커 네트워크 도커 네트워크는 격리된 컨테이너들 사이의 통신을 돕는 가상 인터페이스입니다. 이를 통해 가상 네트워크 토폴로지를 구축할 수 있습니다. 도커는 각 컨테이너에 172.17.0.X 의 IP를 순차적으로 할당합니다. 이 IP는 내부 IP이기 때문에 컨테이너 내부에서만 사용할 수 있습니다. 이때, 호스트에서 ifconfig명령을 실행해보면 veth라는 네트워크 인터페이스가 있습니다. 이것이 바로 도커가 생성하는 가상 인터페이스 입니다. 도커 데몬을 실행하면 다음과 같은 네트워크들이 기본적으로 생성됩니다. $ docker network ls 를 통해 현재 생성되어있는 네트워크 목록확인할 수 있습니다. 컨테이너를 실행할 때 따로 옵션을 설정하지 않는다면 기본적으로 디폴트 브릿지 네트워크에 자동 연결됩니.. 2023. 4. 12.
[Linux] 우분투에서 사용중인 포트 확인 우분투에서 사용하고 있는 포트를 확인합니다. 아래 명령을 통해 현재 사용하고 있는 포트를 확인할 수 있습니다. $ netstat -tnlp | grep "LISTEN" netstat -tnlp | grep "LISTEN" 하지만 netstat 명령이 설치되지 않은 경우 아래 에러가 발생합니다. Command 'netstat' not found, but can be installed with: sudo apt install net-tools 아래 명령을 통해 설치합니다. $ sudo apt-get install net-tools 2023. 4. 12.
[Logstash] 로그스태시 파이프라인, 필터 이 글에서 다루는 내용들은 ELK stack이 구축되어 있다는 가정하에 작성하였습니다. 로그스태시는 플러그인 기반의 오픈소스 데이터 처리 파이프라인 도구입니다. 다소 복잡하고 귀찮은 데이터 전처리 과정을 별도의 어플리케이션 작성 없이 비교적 간단한 설정만으로 수행할 수 있습니다. 로그스태시는 ELK stack에서 데이터를 수집 - 변환 - 저장 - 시각화 하는 서비스를 구성할 때 로그스태시는 데이터를 수집하거나 원하는 형태로 가공하는 역할을 합니다. 비츠를 포함한 여러 소스 파일을 입력으로 받을 수 있고 데이터를 수정/삭제/추가해 엘라스틱서치나 다른 시스템으로 데이터를 전송할 수 있습니다. 로그스태시에서 가장 중요한 부분은 파이프라인입니다. 파이프라인은 데이터를 입력받아 실시간으로 변경하고 이를 다른 시.. 2023. 4. 11.