본문 바로가기

분류 전체보기

[자작NAS] 우분투 서버에 Docker로 Snapdrop 설치 Snapdrop은 웹 브라우저를 통해 기기 간 파일을 공유할 수 있도록 해주는 서비스입니다. 애플의 AirDrop에 영감을 받아서 제작되었다고 합니다. 아래 링크는 Snapdrop의 공식 Git 저장소입니다. RobinLinus/snapdrop: A Progressive Web App for local file sharing (github.com) RobinLinus/snapdrop A Progressive Web App for local file sharing . Contribute to RobinLinus/snapdrop development by creating an account on GitHub. github.com Snapdrop을 도커로 설치하는 방법을 알아보겠습니다. 먼저 설정 파일이 저장.. 더보기
[Python] 파이썬 튜플(tuple) 사용 방법 파이썬은 리스트(list)와 유사한 튜플(tuple) 데이터 타입을 제공합니다. 튜플은 리스트와 유사하게 여러 데이터를 담을 수 있습니다. 다만 튜플은 한 번 생성된 데이터를 변경할 수 없다는 특징이 있습니다. 튜플은 값을 변경하지 않고 계속 참조하고 싶을 때 고려할 수 있는 데이터 타입입니다. 파이썬의 튜플에 대해서 알아보도록 하겠습니다. 1. tuple 생성 파이썬에서 튜플은 ()로 표현되며 다음과 같은 방법으로 생성 가능합니다. a = (1, 2, 3) b = ('Green', 1, (1, 2)) c = tuple((1, 2, 3)) 여러 타입을 한 튜플 안에 넣을 수 있으며 튜플 자체도 타입이기 때문에 포함될 수 있습니다. 간단하게 ()로 초기화를 할 수도 있고 tuple()을 사용할 수도 있습니.. 더보기
[Python] 파이썬 리스트(list) 사용 방법 리스트(list)는 프로그래밍에서 많이 사용되는 데이터 구조입니다. 특정 데이터를 반복적으로 처리하는데 특화되어 있습니다. 파이썬에서 제공하는 리스트는 C++의 vector나 자바의 ArrayList와 유사합니다. 파이썬의 리스트는 다양한 타입을 한 리스트에 저장하는 것이 가능합니다. 리스트를 통해 데이터를 순차적으로 접근하거나 임의의 위치의 데이터를 접근할 수 있습니다. 파이썬 리스트를 사용하는 방법을 알아보도록 하겠습니다. 1. list 생성 파이썬에서 리스트를 생성하는 방법은 다음과 같습니다. a = [] b = [1, 2, 3] c = list() 리스트는 []로 표현되기 때문에 간단하게 []를 통해 빈 리스트를 생성(a)할 수 있습니다. 혹은 리스트에 데이터를 넣으면서 생성(b)하거나 list(.. 더보기
[Java] 자바 Vector 사용 방법 Vector는 ArrayList와 LinkedList와 같이 리스트를 구체화한 클래스입니다. ArrayList와 LinkedList에 대한 내용은 아래 링크에서 확인 가능합니다. 2020.11.11 - [Programming/Java] - [Java] 자바 ArrayList 사용 방법 2020.11.28 - [Programming/Java] - [Java] 자바 LinkedList 사용 방법 Vector는 컬렉션 프레임워크(Collection Framework)가 존재하기 전에 추가된 레거시 클래스 중 하나입니다. 현재는 제너릭 등을 지원할 수 있도록 재설계되어 있습니다. 내부에 배열을 가지고 있으며 순서대로 값들이 저장됩니다. Vector와 ArrayList는 거의 유사한 형태의 클래스로 크기가 가변적.. 더보기
C++ fstream 객체를 통한 파일 입출력 C++ 프로그래밍을 하다 보면 파일을 자주 다루게 됩니다. 필요한 데이터를 바이너리에 모두 넣지 않고 별도의 파일로 분리해서 읽어올 수 있습니다. C++은 파일 입출력을 지원하기 위한 ifstream, ofstream 클래스를 제공합니다. 파일 입출력을 처리하는 방법을 알아보겠습니다. 1. 파일 생성 및 열기 C++의 ifstream이나 ofstream을 사용하려면 헤더를 추가해야 합니다. #include ofstream은 파일에 기록할 때 사용하고 ifstream은 파일에 저장된 데이터를 읽어올 때 사용합니다. 입력과 출력이 모두 가능한 fstream 클래스 역시 존재합니다. 클래스의 open() 메소드를 통해 파일을 열거나 생성할 수 있습니다. std::ofstream ofs; ofs.open("파일.. 더보기
C++ string (문자열)의 부분 문자열 추출 (substr) C++ 문자열을 다루다 보면 문자열의 일부를 추출해야 하는 상황이 있습니다. 예를 들어, 파일의 확장자 부분만 추출하고 싶을 때 부분 문자열 추출이 필요합니다. C++ string 클래스는 부분 문자열 추출을 위한 substr()이라는 메소드를 가지고 있습니다. string 클래스의 substr()을 활용하는 방법을 알아보겠습니다. string::substr()은 다음과 같은 형태의 함수입니다. string substr (size_t pos = 0, size_t len = npos) const; 시작 지점(pos)과 길이(len)를 전달받아서 부분 문자열을 리턴합니다. 기본값으로 pos는 0으로 지정되어 있으며 len은 npos가 지정되어 있습니다. len은 문자열의 마지막 문자보다 더 긴 길이가 입력되.. 더보기
리눅스 ZIP 파일 압축 및 해제(zip/unzip) ZIP은 가장 가장 흔하게 볼 수 있는 압축 파일입니다. ZIP은 여러 파일을 하나의 파일로 묶어주고(Archiving) 무손실 압축(Compression)을 지원합니다. 리눅스 환경에서도 ZIP 파일로 압축하거나 압축된 ZIP 파일을 해제해야 하는 상황이 발생합니다. 리눅스 환경에서 ZIP 파일을 다루는 방법을 알아보겠습니다. 1. ZIP 패키지 설치 리눅스는 기본적으로 ZIP이 설치되지 않은 상태일 수 있습니다. 데비안이나 우분투 계열의 리눅스에서는 아래 명령어로 설치를 할 수 있습니다. sudo apt install zip CentOS나 페도라 계열의 리눅스에서는 yum 명령어로 설치가 가능합니다. sudo yum install zip 설치를 완료하면 zip 명령어를 사용할 수 있게 됩니다. 2. .. 더보기
리눅스 IP 주소 확인 방법 리눅스에서 몇 가지 명령어를 통해 IP 주소를 확인할 수 있습니다. 리눅스 명령어를 통해 IP 주소를 출력하는 방법을 알아보겠습니다. 1. ip addr 명령어 기본적으로 사용할 수 있는 명령어는 ip addr입니다. ip addr 도커 등을 설치해서 사용하는 경우 많은 정보가 한 번에 출력되기 때문에 확인이 어려울 수 있습니다. 이럴 때 grep으로 "inet "이 포함된 라인만 출력하면 됩니다. ip addr | grep "inet " 다음과 같이 IP가 표시됩니다. 마지막 부분이 ens나 eth를 포함하는 라인의 IP를 확인하면 됩니다. 위 결과에서는 마지막 부분이 ens33인 라인의 IP인 192.168.1.248이 IP입니다. 2. ifconfig 명령어 ifconfig 역시 리눅스에서 IP나 .. 더보기