반응형

전체 글 763

[도커] apache 웹서버 설치 및 동작(Web server, Docker)

목차 apache 웹서버 설치 및 실행 도커(Docker)에서 웹 서버를 설정할 때 가장 일반적으로 사용되는 두 가지 소프트웨어는 Apache와 Nginx입니다. 이 중에서 Apache가 더 널리 사용됩니다. Apache 웹 서버는 도커에서는 httpd라는 이름으로 알려져 있습니다. 이는 Apache의 공식적인 프로젝트 이름인 "HTTP Daemon"의 약자입니다. Docker에서 이미지를 찾을 때 docker search 명령어를 사용합니다. 예를 들어, Apache 웹 서버의 도커 이미지를 찾기 위해서는 httpd라는 이름으로 검색합니다. 명령어에서 --limit=5는 검색 결과의 수를 5개로 제한하라는 의미입니다. 따라서, docker search httpd --limit=5 명령어를 실행하면 Ap..

[LSH]Min Hashing이란? (Locality Sensitive Hashing#2)

Min Hashing이란? Min-Hashing은 대규모 집합을 짧은 서명(signature)으로 변환하는 기법이며, 이 과정에서 원래 집합 간의 유사성을 보존하는 것을 목표로 합니다. 이 방법은 특히 대용량 데이터에서 유사한 항목을 효율적으로 비교하기 위해 사용됩니다. 1. 0/1 벡터 인코딩 전체 집합(universal set)의 각 원소에 대해, 해당 원소가 주어진 집합에 포함되면 1로, 그렇지 않으면 0으로 표시하는 벡터로 집합을 표현합니다. >> 예를 들어, 전체 집합이 {A, B, C, D}이고, 주어진 집합이 {A, C}라면, 이 집합은 [1, 0, 1, 0]으로 표현됩니다. 2. 집합 연산의 비트 연산으로의 해석 집합 교집합: 두 집합의 교집합은 두 집합에 공통으로 포함된 원소들의 집합입니..

[도커] 컨테이너 실행 및 종료, 백그라운드 동작 (start, run, Docker, Container, background)

목차 컨테이너 실행 Create 1. ps -a 로 현재 실행 중이거나 실행 가능한 도커 이미지를 검색합니다. ubuntu@ip-172-31-4-29:~$ docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 3aa7ae8b50f9 ubuntu "/bin/bash" 2 minutes ago Created laughing_chebyshev 7fc5d1fcff44 hello-world "/hello" 8 days ago Exited (0) 8 days ago great_cerf 2. 구분 되어지는 아이디 일부 값을 입력해서 start로 도커를 실행합니다. 결과로 입력에 사용한 ID가 return 출력 됩니다. start에 별도의 입력을 넣지 ..

[도커] Docker Image와 Container란?(이미지, 컨테이너)

목차 Image로 Container생성 도커 이미지 (Docker Image) 도커 이미지는 컨테이너를 생성하기 위한 템플릿 역할을 합니다. 이미지는 응용 프로그램을 실행하는 데 필요한 모든 것을 포함하고 있습니다. 예를 들어, 특정 소프트웨어 또는 서비스를 실행하는 데 필요한 코드, 런타임, 라이브러리, 환경 변수, 설정 파일 등이 이미지 안에 포함됩니다. 이미지는 불변의(read-only) 특성을 가지고 있으며, 이미지 자체를 수정하는 대신 새로운 이미지를 생성하여 업데이트합니다. 이미지는 Dockerfile이라는 스크립트를 통해 생성되며, 이 Dockerfile에는 이미지를 만들기 위한 명령어들이 담겨 있습니다. 이미지는 도커 허브(Docker Hub)와 같은 레지스트리에 저장되며, 여기서 이미지를..

자카드 거리/유사도란? 예제로 이해하기 (Jaccard, distance, similarity)

목차 자카드 거리/유사도란? (Jaccard, distance, similarity) 고차원 공간에서 "가까운 이웃"을 찾는 것은, 예를 들어 인터넷 상의 다양한 상품, 영화, 또는 문서들 중에서 비슷한 것들을 찾아내는 과정을 말합니다. 여기서 "가까운"이라는 개념을 정확히 정의하기 위해 우리는 "거리"라는 개념을 사용합니다. 이 거리는 물리적인 거리가 아니라, 상품, 영화, 문서 등의 속성이 얼마나 유사한지를 수치화한 것입니다. 이번에 우리가 살펴볼 거리의 종류는 "자카드 거리"입니다. 자카드 거리는 두 집합 사이의 유사성을 측정하는 방법 중 하나로, 자카드 유사도를 통해 계산됩니다. 자카드 유사도 자카드 유사도는 두 집합 간의 유사성을 측정하기 위한 지표입니다. 이는 두 집합이 공유하는 원소의 수를 ..

[LSH]K Shingling(K gram)이란?(Locality Sensitive Hashing#1)

목차 Shingling이란? "Shingling"이라는 용어는 문서(Document) 를 집합(Set)으로 변환하는 과정을 말합니다. 이 과정은 문서의 내용을 분석하고, 비교하고, 유사성(Similarity)을 측정하는 데 유용한 방법입니다. 여기서 '집합'이라는 것은 문서 내의 모든 유니크한 요소(예: 단어, 문자열, 토큰 등)의 모임을 의미합니다. Shingling 과정 문서 정의: 우리가 비교하고 싶은 텍스트 또는 문서가 무엇인지 정의합니다. 토큰화(Tokenization): 문서를 더 작은 단위(토큰)로 나눕니다. 이 토큰들은 문자, 단어, 문장 등이 될 수 있습니다. Shingling: 이제 토큰화된 문서에서 연속적인 토큰의 시퀀스(쉬잉글)를 생성합니다. 각 쉬잉글은 k개의 연속적인 토큰으로 구..

시간 복잡도 O(n^2)이란?(Time Complexity)

목차 시간 복잡도 O(n^2)이란?(Time Complexity) O(n^2)이란? O(n²)는 입력 크기에 따라 알고리즘 실행 시간이 제곱으로 증가한다는 것을 의미합니다. 예를 들어, 입력 크기가 두 배가 되면 실행 시간은 네 배로 증가합니다. 이런 알고리즘은 큰 입력에 대해 느려질 수 있으며, 더 효율적인 알고리즘에 비해 성능이 떨어질 수 있습니다. O(n^2) 계산 방법 O(n²) 시간 복잡도를 nC2와 관련하여 설명하자면, nC2는 n개의 항목 중에서 2개를 고르는 조합의 수를 나타냅니다. 이는 (n*(n-1))/2로 계산되며, 이 식에서 가장 큰 영향을 미치는 항은 n²입니다. 따라서, nC2의 성장률이 n²에 비례한다고 볼 수 있습니다. 배열에서 모든 쌍의 요소를 비교하여 중복을 확인하는 알고..

[Docker] 도커 로그인, 로그아웃, 이미지 다운로드(Login, Logout, Image, ID, Password)

목차 도커 로그인, 로그아웃(ID, PW) 우분투에서 도커를 사용하기 위해 로그인하려면, 먼저 https://hub.docker.com/ 웹사이트에 가입해야 합니다. 가입 후 'My Account'(내 계정) 섹션에서 비밀번호를 설정하면, 그 비밀번호를 이용해 도커에 로그인할 수 있습니다. ubuntu@ip-172-31-4-29:~$ docker login Log in with your Docker ID or email address to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com/ to create one. You can log in with your pass..

[Ubuntu] usermod, groupadd 그룹 만들기 및 권한 허용 변경 예제 실습

목차 usermod, groupadd 그룹 만들기 및 권한 허용 변경 예제 Ubuntu에서 usermod 명령어는 기존 사용자의 설정을 변경할 때 사용됩니다. 이 명령어는 다양한 옵션을 포함할 수 있으며, 사용자를 그룹에 추가하는 것과 같은 여러 작업을 수행할 수 있습니다. 여기에는 몇 가지 주요 usermod 옵션과 사용자를 그룹에 추가하는 예제, 그리고 id -nG 명령어를 사용하여 사용자가 속한 그룹을 확인하는 방법을 설명합니다. usermod 명령어의 주요 옵션 -a, --append: 사용자를 추가할 그룹에 추가할 때 기존의 그룹 멤버십을 유지하면서 추가합니다. 주로 -G 옵션과 함께 사용됩니다. -G, --groups: 사용자가 속할 추가 그룹을 설정합니다. 여러 그룹은 쉼표로 구분되어야 하며..

[전기자전거 리뷰] 오토바이 같은 디자인의 전기 자전거 Deepower Fatire(X20)

목차 전기 자전거 Deepower Fatire 리뷰 가격부터 말하자면 딥파워(Deepower)의 전기자전거는 원래 가격이 340만원이지만, 38% 할인을 통해 약 209만원에 판매되고 있습니다. 딥파워 자전거는 2000W 48V 25Ah의 고용량 리튬이온 배터리를 사용하며, 특히 산악용이나 거친 도로에 적합하게 설계된 20인치 팻타이어를 장착하고 있습니다. 독일 제조 제품으로, 품질을 신뢰할 수 있습니다. 사이즈는 105 x 163 cm 입니다. 사람이 타면 대충 위 정도 느낌입니다. 배터리는 그림과 같이 탈부착 가능하고 자전거 상단에 뚜겅을 열고 넣는 방식입니다. 이 자전거는 7단 변속이 가능하며, 주행 속도는 5단계로 조절할 수 있습니다. 전면에 설치된 LED 조명은 오토바이와 비슷한 느낌을 줍니다...

[Docker] 도커 Compose와 Container란? 설치 방법(ubuntu)

목차 도커 Container란? 컨테이너는 코드와 모든 종속성을 패키징하여, 애플리케이션이 다양한 컴퓨팅 환경에서도 빠르고 신뢰성 있게 실행될 수 있게 만드는 표준 소프트웨어 단위입니다. Docker 컨테이너 이미지는 애플리케이션을 실행하는 데 필요한 모든 것(코드, 런타임, 시스템 도구, 시스템 라이브러리 및 설정)을 포함하는 가벼우면서 독립적인, 실행 가능한 소프트웨어 패키지입니다. 컨테이너 이미지는 런타임에 컨테이너가 되며, Docker 컨테이너의 경우 Docker Engine에서 실행될 때 컨테이너가 됩니다. 리눅스 및 윈도우 기반 애플리케이션 모두에 사용할 수 있는 컨테이너화된 소프트웨어는 인프라에 상관없이 항상 동일하게 실행됩니다. 컨테이너는 소프트웨어를 그 환경으로부터 격리시켜, 예를 들어 ..

[Linux] 프로그램 패키지 업데이트와 업그레이드 차이점 및 프로그램 설치 삭제 방법(ubuntu, apt get update, upgrade, install, remove, purge)

목차 우분투 프로그램 패키지 업데이트와 업그레이드 차이점 apt-get update와 apt-get upgrade는 Ubuntu와 같은 Debian 기반 시스템에서 패키지 관리를 위해 사용되는 명령어입니다. 이 두 명령어는 패키지 관리 과정에서 서로 다른 역할을 수행합니다. apt-get update 이 명령어는 시스템의 패키지 목록을 업데이트합니다. 구체적으로는, 설정된 소스(소프트웨어 저장소)에서 사용 가능한 패키지와 그 버전 정보를 최신 상태로 갱신합니다. 이 과정에서 실제로 소프트웨어를 업데이트하거나 설치하지는 않지만, upgrade나 dist-upgrade 명령어를 통해 실제 업데이트를 진행하기 전에 수행해야 하는 필수 단계입니다. apt-get update를 실행하면, 이후에 설치 또는 업그레..

[Linux] 프로세스 검색 및 종료 방법 예제로 익히기(ps, grep, kill, 우분투, ubuntu)

목차 프로세스 검색 및 종료 방법 예제로 익히기 리눅스에서 프로세스를 검색하고 특정 프로세스를 종료하는 것은 시스템 관리의 일반적인 작업 중 하나입니다. 여기서는 ps, grep, 그리고 kill 명령어를 사용하여 특정 프로세스를 찾고 종료하는 방법을 설명하겠습니다. 이 과정을 단일 명령어 라인으로 수행할 수 있으며, 이는 자동화 스크립트를 작성할 때 매우 유용합니다. 프로세스 검색하기 ps 명령어는 현재 실행 중인 프로세스 목록을 보여줍니다. grep 명령어는 텍스트 검색을 수행하므로, 이 두 명령어를 결합하여 특정 프로세스를 찾을 수 있습니다. ubuntu@ip-172-31-4-29:~$ ps aux USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND r..

[Linux] 리다이렉션과 파이프(검색, 쓰기, grep, <<, >>, 방향키, Redirection, Pipe)

목차 리다이렉션과 파이프 리눅스에서는 프로그램이 실행될 때 세 가지 주요 통신 경로, 즉 "표준 스트림"을 사용하여 데이터를 주고받습니다. 이 세 가지 스트림은 다음과 같습니다. 표준 입력 스트림(stdin): 프로그램에 데이터를 입력하기 위한 경로입니다. 예를 들어, 키보드 입력이 여기에 해당됩니다. 표준 출력 스트림(stdout): 프로그램에서 처리한 결과를 출력하기 위한 경로입니다. 예를 들어, 터미널이나 콘솔 창에 나타나는 텍스트가 여기에 해당됩니다. 오류 출력 스트림(stderr): 프로그램 실행 중 발생한 오류 메시지를 출력하기 위한 경로입니다. 이 스트림을 통해 오류 메시지는 표준 출력과 구분되어 표시됩니다. 리다이렉션(Redirection) 리다이렉션은 표준 스트림의 흐름을 변경하는 기술입..

[Linux] Chmod 권한 변경 숫자로 쉽게 정리, 주요 옵션 설명

목차 Chmod 권한 변경 숫자로 쉽게 정리 chmod 명령어에서 사용하는 숫자 형태의 권한을 rwx (읽기, 쓰기, 실행) 형태로 변환하는 것은 간단합니다. 각 숫자는 다음과 같은 권한을 나타냅니다. 7 = rwx (읽기, 쓰기, 실행 권한 모두 있음) 6 = rw- (읽기, 쓰기 권한 있음, 실행 권한 없음) 5 = r-x (읽기, 실행 권한 있음, 쓰기 권한 없음) 4 = r-- (읽기 권한만 있음, 쓰기 및 실행 권한 없음) 3 = -wx (쓰기, 실행 권한 있음, 읽기 권한 없음) 2 = -w- (쓰기 권한만 있음, 읽기 및 실행 권한 없음) 1 = --x (실행 권한만 있음, 읽기 및 쓰기 권한 없음) 0 = --- (모든 권한 없음) 예를 들어, chmod에서 자주 사용되는 숫자 형태로 75..

[Linux] ls 명령, 옵션과 파일 권한 예제로 익히기(읽고(r), 쓰고(w), 실행(x))

목차 ls 명령과 옵션 ls 명령은 Linux와 Unix 시스템에서 사용되며, 현재 디렉토리 또는 지정된 디렉토리의 내용을 나열합니다. 파일과 하위 디렉토리의 목록을 보여주어 사용자가 디렉토리의 내용을 파악할 수 있게 합니다. 기본 사용법 ls 이 명령은 현재 디렉토리에 있는 파일과 하위 디렉토리의 목록을 표시합니다. 명령 옵션 ls 명령은 다양한 옵션을 통해 출력을 조정할 수 있습니다. 몇 가지 유용한 옵션을 예로 들어보겠습니다: -l: 자세한 정보를 출력합니다. 파일/디렉토리 권한, 소유자, 그룹, 크기, 마지막 수정 날짜 등의 정보를 포함합니다. -a: 숨김 파일을 포함한 모든 파일을 표시합니다. 파일 이름이 .으로 시작하는 파일이 숨김 파일입니다. -h: 파일 크기를 쉽게 읽을 수 있도록 KB, ..

아두이노 온도, 습도 값 파이썬으로 그래프 출력 - 커서 값 출력하기(Arduino, Cursor, Python, Cordination, graph)

목차 파이썬으로 그래프 출력 - 커서 값 출력하기#1 이전 글에서 아두이노(Arduino)를 사용하여 온도와 습도 데이터를 랜덤으로 생성하고, 이를 시리얼 통신을 통해 컴퓨터로 전송하였습니다. 컴퓨터는 받은 데이터를 파이썬(Python)을 이용해 그래프로 나타냈으며, 이번 프로젝트에서는 그래프 위에 마우스를 올렸을 때 해당 위치의 온도와 습도 값을 표시하는 이벤트 처리 코드를 작성하는 것입니다. 이를 구현하기 위한 방법을 자세히 설명하겠습니다. 먼저, 아두이노는 온도와 습도 센서를 통해 데이터를 수집합니다. 이 데이터는 아두이노의 시리얼 포트를 통해 컴퓨터로 전송됩니다. 파이썬에서는 pyserial과 같은 라이브러리를 사용하여 이 시리얼 데이터를 읽을 수 있습니다. 데이터를 읽은 후, 파이썬에서는 mat..

아두이노 온도, 습도 값 파이썬으로 그래프 출력하기, 일정 개수만 출력, 버튼으로 그래프 만들기

목차 아두이노 온도, 습도 값 파이썬으로 그래프 출력하기 앞 포스트에서 제작한 프로젝트와 동일하게 센서 없이 아두이노에서 랜덤으로 온도와 습도를 만들어서 시리얼 통신으로 보냅니다. 아두이노 코드는 아래와 같습니다. 아두이노 코드>> void setup() { // 시리얼 통신을 시작합니다. 보드에 맞는 속도로 설정하세요. Serial.begin(9600); } void loop() { // 가상의 온도와 습도 값을 생성합니다. // 예를 들어, 온도는 20~30도 사이, 습도는 40~60% 사이의 값으로 설정할 수 있습니다. float temperature = 20 + random(100) / 10.0; // 20.0 ~ 29.9 사이의 값 float humidity = 40 + random(200) /..

아두이노 온도, 습도 값 파이썬으로 그래프 출력하기(Arduino, Python, Serial, Graph)

목차 아두이노 온도, 습도 값 파이썬으로 그래프 출력하기#1 우선 제가 가지고 있는 것이 아두이노 보드 밖에 없기 때문에 센서 없이 임의로 데이터를 만들어서 온도와 습도 값을 생성하겠습니다. 아두이노 코드>> void setup() { // 시리얼 통신을 시작합니다. 보드에 맞는 속도로 설정하세요. Serial.begin(9600); } void loop() { // 가상의 온도와 습도 값을 생성합니다. // 예를 들어, 온도는 20~30도 사이, 습도는 40~60% 사이의 값으로 설정할 수 있습니다. float temperature = 20 + random(100) / 10.0; // 20.0 ~ 29.9 사이의 값 float humidity = 40 + random(200) / 10.0; // 40...

갤럭시 탭 리뷰 - 화면 분할 기능(필기에 유용, Samsung Galaxy Tab S9, 키보드)

목차 갤럭시 탭 리뷰 - 화면 분할 기능 위에 사진이 제가 일년 내내 열심히 사용했던 갤럭시 탭입니다. 탈부착식 키보드 덕에 화면 보호도 되고 문서 작성에 굉장히 편했습니다. 그리고 학기 내내 수업 중에 필기를 같이 했던 전자펜도 있습니다.요즘 교수님들도 책보다는 강의 자료를 PPT로 띄우고 하시다 보니 갤럭시 탭은 이제 필수가 되는 거 같습니다. 이번 글은 삼성 갤럭시 제품을 너무 좋아하는 제가 갤럭시 탭에 대해 리뷰 겸 기능 소개를 하겠습니다. 제가 학교를 다니면서 아주 유용하게 쓰는 기능 중 하나는 화면 분할입니다. 이 기능은 생각보다 많은 사람들이 모르더라고요. 화면 분할 기능을 사용하면 여러 애플리케이션을 동시에 실행할 수 있어서 공부나 업무에 매우 효율적입니다. 사용 방법은 아주 간단합니다. ..

반응형