분류 전체보기 29

[Python] 리눅스 환경에서 파이썬 배포파일 만들기

최근 리눅스 환경의 경우 기본적으로 파이썬이 설치가 되어 있어 파이썬 소스파일을 바로 실행시킬 수 있습니다. 다만, 이 경우 배포가 필요한 경우 소스파일을 공유해야 하는 문제가 발생하게 됩니다. 이 전에 공유해 드린 Windows 환경에서와 같이 리눅스 환경에서도 pyinstaller 를 통해 배포파일을 생성하는 방법을 알아 보도록 하겠습니다. 우선 저의 리눅스 테스트 환경은 아래아 같습니다. [root@instance1 dist]# uname -a Linux instance1 4.18.0-408.el8.x86_64 #1 SMP Mon Jul 18 17:42:52 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux [root@instance1 tmp]# cat /etc/*release..

[Windows] 메모리 관리 맛보기

Windows에서 관리되는 메모리 기법에 대해 간략히 알아 보도록 하겠습니다. 1. 메모리 관리 기법 - Windows의 경우 가상메모리 관리 기법 사용합니다. 2. Virtual Memory - 물리 메모리 크기의 한계를 극복하기 위해 나온 메모리 관리 기법으로, 물리메모리+Disk Swap 영역을 합쳐 가상 메모리 영역으로 관리. - OS에서는 개별 프로세스에 메모리 할당 시 물리메모리 주소공간을 할당하지 않고 가상메모리 주소 공간을 할당. - 가상메모리는 4KB 단위 블록으로 나눈 Page 단위로 관리하고, 물리메모리 역시 가상메모리와 맞추기 위해 4KB 단위 블록으로 나눈 Page Fram 단위로 관리. - Page는 가상메모리를 같은 크기의 블록(보통 4KB)으로 나눈 것을 의미하며, Frame..

OS/Windows 2023.11.03

[Linux] Unix/Linux 메모리 관리 맛보기

Unix/Linux OS별로 메모리를 관리하는 방식에 대해 간략히 알아 보도록 하겠습니다. 1. Linux 1) 메모리 할당 방식 - 리눅스는 여유 메모리를 캐쉬 영역으로 사용하려고 하는 습성이 있습니다. - 이유는 여유 메모리를 최대한 캐쉬영역으로 활용하면 성능향상에 도움이 되기 때문입니다. - 커널 2.6부터는 이 부분에 대해 제한을 두게 되며,(#cat /proc/sys/vm/swappiness) 기본적으로 60%로 설정되어 있어서 물리 메모리 사용률이 해당 값 이상으로 사용되면 Swapping을 하기 시작합니다. 2) 참조사항 - Linux 의 경우 Filecache영역이 큰경우 Used+Filecache 사용률이 100% 가까이 발생할 수 있는데, 이는 리눅스가 자체적으로 유휴 공간을 Cache..

OS/Linux 2023.11.03

[Python] 파이썬 디렉토리 크기 확인

업무용 PC 및 노트북을 사용하다 보면 간혹 Windows OS Drive 사이즈가 부족한 경우가 발생하는데, 이때 어느 디렉토리에서 많이 사용 중인지 확인 후 필요없는 파일들을 찾아서 삭제를 해주어야 합니다. 많은 디렉토리를 하나씩 클릭하여 사이즈를 확인할 수 도 있겠지만, 이건 너~무 비효율적인 방법입니다. 이런 경우 파이썬을 통해 손쉽게 확인이 가능합니다. 아래 코드를 참조하여 나만의 디렉토리 체크 프로그램을 만들어 업무에 활용해 보시기 바랍니다. import glob, os import time # 현재시간 정보 def cur_time_func(): # Current Time now = time.localtime() check_time = "%04d-%02d-%02d %02d:%02d:%02d" ..

[Python] 파이썬 파파고(Papago) API 연동

네이버에서 제공해주는 Open API를 통해 나만의 번역 프로그램을 만들 수 있습니다. 개인적인 불편함을 해소하고자 파이썬을 통해 간단한 번역 프로그램을 만들어 보면서 테스트한 내역을 공유하고자 합니다. 역시 사람은 직접 경험해보고 불편함을 느껴야 무언가 아이디어를 생각해내고 새로운 것을 만들려고 시도하는 것 같습니다.. 우선 네이버에서 제공하는 Open API를 사용하기 위해서는 사용 신청을 하여야 합니다. 신청하는 사이트는 아래와 같습니다. 네이버 개발자 센터 - NAVER Developers NAVER Developers 네이버 오픈 API들을 활용해 개발자들이 다양한 애플리케이션을 개발할 수 있도록 API 가이드와 SDK를 제공합니다. 제공중인 오픈 API에는 네이버 로그인, 검색, 단축URL, ..

[Linux] 리눅스 Disk 상태 체크 방법

리눅스에서 하드 디스크의 상태를 확인하기 위해서는 smartctl 을 사용합니다. 만약 서버에 smartctl을 사용할 수 없다면 아래와 같이 yum을 통해 설치하면 됩니다. yum install -y smartmontools smartctl 명령어를 통한 Disk 체크 방법은 아래와 같습니다. 1) 명령어 #smartctl {옵션} {디스크} 2) 옵션 -a : 기본적으로 모든 정보를 확인할 때 사용합니다. -H : 간단하게 디스크의 상태를 확인할 때 사용합니다. -i : 간단하게 디스크 정보를 확인할 때 사용합니다. smartctl -a /dev/sda 위의 명령어를 실행했을 때 디스크마다 다른 항목들의 로그들이 나오는 경우도 있으며, 출력되는 내용이 다른 경우도 있습니다만 그중에서 유심히 봐야 할 ..

OS/Linux 2022.11.10

[Server] Cloud 서비스 이해

Cloud 서비스란 서버/Storage/Network/Software 등 필요한 IT 자원을 사용자가 직접 구축할 필요 없이 Cloud 서비스 공급 업체를 통해 서비스를 제공받는 것을 의미합니다. Cloud 서비스 유형은 크게 Private Cloud, Public Cloud, Hybrid Cloud 3가지로 정의할 수 있습니다. 그럼 각각의 유형에 대해 간략히 알아보도록 하겠습니다. 1. Cloud 운영 유형 1) Private Cloud 가) 특징 - 기업 자체적으로 Cloud 환경을 구축하여 운영하는 형태입니다. - 기업 자체적으로 유지관리가 필요하며, 보안에 민감한 서비스 환경에 적합합니다. 2. Public Cloud 가) 특징 - 기업 자체적으로 Cloud 환경을 구축 하지 않고, Cloud ..

Server/Cloud 2022.10.28

[PostgreSQL] Table Size 확인

PostgreSQL에서 Table Size 확인 시 아래 쿼리를 통해 조회가 가능합니다. 1) 특정 Table Size 확인 (index 포함) # select pg_size_pretty(pg_total_relation_size('Table명')); postgres=# select pg_size_pretty(pg_total_relation_size('pg_class')); pg_size_pretty ---------------- 224 kB (1개 행) 2) 특정 Table Size 확인 (index 미포함) # select pg_size_pretty(pg_relation_size('Table명')); postgres=# select pg_size_pretty(pg_relation_size('pg_cla..

Database/PostgreSQL 2022.10.28

[PostgreSQL] DB 및 Tablespace Size 확인

PostgreSQL에서 DB 및 Tablespace Size 확인 시 아래 쿼리를 통해 조회가 가능합니다. 1) 특정 DB Size 확인 # select * from pg_size_pretty(pg_database_size ('DB명')); postgres=# select * from pg_size_pretty(pg_database_size ('postgres')); pg_size_pretty ---------------- 7255 kB (1개 행) 2) 전체 DB Size 확인 # select pg_database.datname, pg_size_pretty(pg_database_size(pg_database.datname)) AS size FROM pg_database; postgres=# SELECT..

Database/PostgreSQL 2022.10.27

[Python] 파이썬 Dictionary 사용방법

Python에서 제공하는 자료구조 중 많이 사용하는 것중 하나가 Dictionary 입니다. Dictionary 의 경우 기본적으로 key와 value가 하나 또는 여러개가 { } 로 묶여져 있는 형태이고, Dictionary 내에 있는 데이터의 경우 쉼표(,)로 구분됩니다. {key:value, key:value, key:value} 1. Dictionary 기초 1) Dictionary 선언 가) 데이터가 없는 빈 Dictionary 선언 port_dict = dict() 나) 데이터가 존재하는 Dictionary 선언 port_dict = {'21':'ftp', '22':'ssh', '23':'telnet'} print(port_dict) # Output: {'21': 'ftp', '22': 'ss..