본문 바로가기

전체 글219

GCP에서 Squid를 이용한 Proxy 서버 설정 방법 1. Proxy 서버란 Proxy 서버(proxy server )는 클라이언트를 대신해서 간접적으로 인터넷에 접속할 수 있는 중계기 역할을 하는 서버입니다. 예를 들어, 집에 있는 PC에서 google.com 서버의 웹 페이지 접속 시 중간에 proxy 서버를 거쳐가면 서버 입장에서는 접속 IP는 Proxy server에서 접속하는 것으로 인식합니다. 인터넷 속도가 느린 시절에서는 Proxy 서버로 요청된 내용들을 '캐시'에 저장해 놓고, 동일한 웹 페이지에 재 접속 시 원격 서버 접속 대신 Proxy 서버의 캐시를 전송하여 웹 접속 시간을 줄이는 방법으로 사용되었습니다. 이는 외부와의 트래픽을 줄여 네트워크 병목 현상을 방지하는 효과도 얻을 수 있습니다. GCP에서는 Proxy 서버의 활용은 외부 네트.. 2022. 2. 13.
4K Tokkit를 이용한 TikTok 동영상 다운로드 본 포스팅은 4K Download 제품군 중에서 TikTok 다운로드를 쉽고 편리하게 진행할 수 있는 소프트웨어입니다. 4K Download와 관련된 포스팅은 4K Download(Youtube, Naver 영상 다운로드), 4K Youtube to MP3(음악 다운로드), 4K Stogram(인스타그램)이고 링크는 다음과 같습니다. 4K Download 포스팅 초보자도 쉽게 사용할 수 있는 Youtube 동영상/음악 다운로드 Tool: 4K Video Downloader 초보자도 사용하기 쉬운 Youtube에서 음악 다운로드 tool: 4K Youtube to MP3 Instagram 게시물의 사진 및 동영상 다운로드 프로그램: 4K Stogram TikTok 사이트에서 Chrome의 개발자 메뉴를 활.. 2022. 1. 24.
Chrome으로 TikTok 동영상 다운로드 Chrome의 개발자 메뉴(F12)를 사용해서 TikTok동영상을 다운로드하는 방법을 설명합니다. TikTok 동영상 다운로드하는 방법은 특정 사이트나 앱을 활용하는 방법이 있기는 하지만, 본 포스팅에서는 별도의 프로그램 설치 없이 간단하게 Chrome으로 틱톡 동영상을 다운로드하는 방법입니다. 본 블로그에서 설명하는 방법은 Mac OS에서 확인하였고, Windows나 Linux에서도 방법의 차이는 없습니다. TicTok 사이트를 방문하여 원하는 동영상을 선택하여 Chrome 개발자 메뉴 (단축키 F12)를 선택합니다. Chrome 개발자 메뉴에서 오른쪽 Tab 중간에 "Network" 선택합니다. (그림에서 ❶번) 동영상을 선택하거나 Play하면 Chrome에서 다운로드하는 모든 내용이 아래 list에.. 2022. 1. 22.
Google gmail API 사용 방법 (3) - Sample code Gmail API 사용 방법에 대한 3번째 포스트입니다. 앞서 2개의 포스트에서는 1) Google API Console에서 프로젝트를 생성하고, Client ID와 sescret을 받는 과정과 2) 구글 인증 서버에 계정 로그인을 통해서 API scope에 대한 명시적 동의를 받아 서버 인증용 access token을 받는 과정을 설명하였다. 본 게시글은 access token을 사용해서 실제 Google REST API에 호출하는 방법과 샘플 코드를 제공한다. [모바일/REST API] - Google Gmail API 사용 방법 (1) [모바일/REST API] - Google Gmail API 사용 방법 (2) Gmail API 사용: curl 명령어 확인하기 구글 API 사용하기 위해서는 API.. 2022. 1. 9.
안드로이드 스마트 폰 화면 미러링 방법: scrcpy 사용법 안드로이드 스마트 폰 화면을 PC로 미러링 하는 방법을 설명하도록 하겠습니다. 스마트 폰 화면을 그대로 PC에 가져오는 것 뿐만 아니라, 사운드 전송, 마우스로 원격 클릭 및 키보드 입력 값을 전달하여 제어도 가능합니다. 안드로이드 개발자 분에게는 PC에서 원격 디버깅에 활용할 수 있으며, 일반적으로는 회사 보안 정책 상 PC에 카카오톡이 설치가 막혀있는 경우 폰의 카카오톡을 PC에서 사용 가능합니다. 안드로이드 화면 미러링 앱은 PlayStore에도 많지만 광고가 포함된 유료 앱도 많아 무료로 사용할 수 있는 오픈 소스 기반을 scrcpy를 설명하고자 합니다. scrcpy 활용 예 안드로이드 화면/오디오을 PC에 띄우는 경우 (비디오 뿐 아니라 오디오도 전송함) 안드로이드 스마트 폰 원격 디버깅 (US.. 2022. 1. 4.
Flutter TextField 와 TextFormField 스타일 꾸미기 (Sample code) Flutter에서 TextField와 TextFormField 필드에서 Style을 추가하는 방법입니다. 공식 문서는 Create and style a text field에 설명되어 있습니다. TextFormField는 TextField을 Form으로 감싼 것이기 때문에 사용법은 동일합니다. Flutter 버전에 따라서 문법이 변경될 수 있기 때문에 버전에 맞는 문법을 사용해주세요. 본 포스팅과 함께 Form의 Validation 사용법도 참고하세요. Flutter 사용자 입력 값 검증 위한 Form validation과 TextFormField (Sample code) TextField와 TextFormField에 아이콘 추가, Label text, HInt Text 추가 TextField 또는 Tex.. 2022. 1. 2.
Flutter 사용자 입력 값 검증 위한 Form validation과 TextFormField (Sample code) Flutter에서 사용자 입력을 받기 위한 Widget은 TextField와 TextFormField가 2가지 Class가 있습니다. TextField은 사용자 입력을 받고, Widget의 GUI를 설정할 수 있는 Widget이고, TextFormField는 TextField 기능을 포함하여 다수의 입력을 받을 때 편리하게 사용하는 Form기능(예를 들어, validation 기능)을 추가한 wraper class입니다. Form 예제로는 아래 그림과 같이 로그인을 위한 ID, Password 입력, User 정보 생성을 위한 사용자 입력 UI를 예로 들 수 있습니다. 사용자 입력을 위한 Flutter Widget TextFiled: 사용자 입력받기 위한 Widget Class TextFormField .. 2022. 1. 2.
Flutter 이미지 처리를 위한 Image, FadeInImage, CachedNetworkImage, ExtendedImage 사용법 및 성능 비교 지난 포스팅에서는 Material UI와 Cupertino Icon을 사용하는 방법을 정리하였습니다. 이번 포스팅에서는 GUI 처리에서 필수적인 Image 처리 방법에 대해서 설명하도록 하겠습니다. Image 처리 API는 1) App 리소스에 이미지 포함 여부, 2) Placeholder 지원 여부, 3) Cache 기능 지원 여부, 4) 이미지 Display 속도를 기준으로 대락 5가지 정도의 API를 사용할 수 있습니다. 모든 이미지를 App에 assets 형태로 리소스에 포함시킨다면 Image로딩 속도는 빠르나, App의 크기 자체도 커지고 Image 변경 시 App 자체를 변경 후 다시 배포해야 합니다. Internet 이미지는 App Asset 이미지와 반대의 경우로 리소스 서버 또는 인터넷에.. 2022. 1. 1.
Flutter에서 Material UI Icon과 Cupertino Icon 검색하고 사용하기 Flutter로 App을 개발할 때 무료로 배포된 아이콘을 사용하는 경우가 많습니다. 물론 개발팀에 GUI 디자이너가 있다면 이쁜 아이콘을 만들 수 있지만, App Bar나 Menu 에서는 다른 App과 일관성을 가지기 위해서 필요한 아이콘을 찾아 적용하는 경우도 많습니다. Flutter에서 사용할 수 있는 아이콘은 대표적으로 Google에서 만든 Materal UI와 Apple App 스타일의 Cupetino 아이콘이 있습니다. 본 포스팅은 Material UI와 Cupertino Icon에서 적용하고자 하는 아이콘을 검색하고 사용하는 방법을 설명합니다. Flutter에서 많이 사용하는 아이콘: Material UI Icon: Google Style Icons Cuppertino Icon: Apple .. 2021. 12. 30.
Flutter에서 Widget Tree와 layout 디자인 방법 Flutter에서 Widget은 Text, Icon, Image, Button, List, ListView와 같은 UI Component를 구성하는 Class입니다. Flutter App은 Widget과 Layout을 조합하여 Widget Tree를 구성하고 최종적으로 UI를 표시합니다. Flutter에서는 상당히 많은 Widget을 지원하기 때문에 모두 외울 필요는 없고, 자주 사용하는 Widget 정도의 내용만 확인하고 필요에 따라서 공식 문서에서 찾아서 사용하는 것을 추천드립니다. Widget 구성 Tutorial 은 링크를 확인해주세요. Widget Tree Flutter에서 Widget Tree는 React의 component tree 또는 Html DOM tree와 같은 개념으로 UI Comp.. 2021. 12. 29.
Flutter Parent-Child Widget간 State 전달과 업데이트 방법 Flutter Widget 간 State 전달 방법과 업데이트 방법을 정리합니다. Flutter에서는 React Props와 State 관리 방식과 유사한 방식을 사용하고 있습니다. Flutter에서는 크게 2가지 방법으로 분류할 수 있습니다. 부모 Widget에서 자식 Widget으로 State 전달 자식 Widget에서 부모 Widget의 callback함수를 통해서 State update 부모 Widget에서 자식 Widget으로 State 전달 부모 Widget에서 자식 Widget으로 state 전달하는 방법은 다음과 같은 3단계로 진행합니다. 부모 Widget에서 자식 Widget으로 State 보내기 자식 Widget에서 전달받을 state를 class member 변수로 등록하기 자식 Wi.. 2021. 12. 29.
Flutter Stateless와 Stateful Widget 개념과Life Cycle, 대표 Widget(MaterialApp, Scaffold) Widget의 종류: Stateless Widget vs Stateful widget Flutter를 사용하다 보면 화면에 무엇인가 표시하는 경우 모든 것을 Widget으로 처리합니다. Flutter의 Widget은 React의 Component DOM tree와 유사한 개념이며, 상태 관리에 따라서 상태 변경이 가능한 Stateful Widget과 상태 변경이 불가능한 Stateless Widget으로 구분할 수 있습니다. Statless widget: State 변경이 불 가능한 위젯, 화면을 Rendering 후 데이터의 변경이 없음, React Props와 유사 개념 Stateful widget: State 변경이 가능한 위젯, 화면을 Rendering 후 데이터에 의해서 Data를 표시행 하는.. 2021. 12. 28.
Android Studio와 Visual Code로 Flutter Project 프로젝트 생성 Flutter 개발 환경을 설정하고, 프로젝트를 생성하는 과정을 설명합니다. Flutter Project는 Android Studio (IntelliJ), Visual Code, Terminal CLI를 사용할 수 있습니다. 개인적으로 익숙한 IDE를 사용하면 됩니다. Android Studio가 다소 기능이 복잡하지만 다양한 기능을 사용할 수 있고, Visual Code는 다양한 Extention을 활용할 수 있어 코드 생산성이 높습니다. Android Studio (IntelliJ) Visual Code Terminal CLI(Command Line Interface) Android Studio에서 Flutter Project 생성하기 Android Studio에서는 Flutter Plugin을 반드.. 2021. 12. 28.
Flutter 특징과 개발환경 설정 방법 Flutter란 Flutter는 하나의 소스 코드로 Android, I-OS, Web, Chrome OS, Windows, Linux 등의 여러 플랫폼에서 동작 가능한 응용 프로그램을 개발할 수 있는 Cross Platform SDK입니다. Google이 2017년 발표하였으며, 최근까지도 Google 주도하에 활발하게 개발되고 있고, 3rd party lib도 다양하게 개발되고 있습니다. Flutter에서 사용하는 프래그램 언어는 Dart입니다. Dart는 Java Script 문법적으로 비슷하고, C/C++, C#, Python 등의 장점을 수용하였습니다. 기존에 프로그램 언어를 하나라도 알고 있다면 쉽게 사용이 가능합니다. Dart는 Web에서는 Html, CSS, Java script으로 Tran.. 2021. 12. 28.
Selenium 4.0 개선 사항 정리 - WebDriver 자동 로딩 가능 이전 포스팅에서 설명한 Web Crawling 방법에서 사용했던 Selenium이 3.0 버전에서 4.0으로 업그레이드 되었습니다. Selenium 3.0 버전 대비 4.0에서 가장 큰 개선 사항은 OS 별(Windows, Unbuntu, MacOS), Broswer 버전을 자동 감지하여 Web Driver 설치를 자동으로 할 수 있습니다. 이전 버전에서는 Chrome Driver를 버전별로 지정해서 수동으로 설치했었습니다. 만일 Chrome Version이 업데이트되는 경우 Web Driver도 같이 변경해야 하지만, Selenium 4.0부터는 OS와 Web Broswer에 맞는 Web Driver를 자동으로 다운로드하고 로딩이 가능합니다. Python Selenium과 BeautifulSoup을 활.. 2021. 12. 26.
Python 자동 테스트를 위한 Pytest 사용법과 예제 Python에서 Unittest의 가장 많이 사용하는 모듈은 Pytest와 Unittest입니다. unittest는 python 기본 모듈로 설치되고 JUnit와 같은 형식으로 테스트 코드를 간단하게 작성할 수 있고, Pytest는 unittest를 포함하여 다양한 형태의 texture 함수를 지원하고, 매우 다양한 옵션을 지원합니다. 또는 Pytest unittest 뿐 아니라 JUnit 등 다양한 테스트 framework을 호출할 수 있습니다. Test case를 쉽게 작성하고자 하는 경우에는 unittest를 사용하고, 고도화된 Test를 만들고자 하는 경우 pytest를 추천드립니다. Pytest 설치 Python unnittest는 기본 모듈로 별도 설치가 필요 없지만, pytest는 pip를 .. 2021. 12. 12.
Python 단위 테스트(Unit Test)를 위한 unittest 사용법과 예제 Python에서 단위 테스트를 unittest 사용법을 설명합니다. unittest는 Python 기본 Lib로 별도의 모듈을 설치할 필요가 없고, 사용법은 Java의 JUnit과 유사하여 쉽게 사용할 수 있습니다. Python unittest는 테스트 자동화, 자동화를 위한 설정, 종료, 각 테스트 case 실행하고 실행 결과를 report 할 수 있도록 구성되어 있습니다. unittest는 unittest.TestCase 의 함수를 상속받아 객체 지향적인 방법으로 각각의 함수를 지원합니다. Test Fixture: Test를 수행할 때 사전에 필요한 준비와 그와 관련된 동작을 실행합니다. 예를 들어 로그인이 필요한 기능에 대한 로그인을 테스트 전에 사전에 실행하거나, 필요한 데이터를 가져오기, 폴더 .. 2021. 12. 11.
Python Decorator를 이용한 함수 실행 시간 측정 방법 (Sample code) Python 함수의 실행 결과를 측정이 필요한 경우가 있습니다. 일반적으로 linux에서 time 명령어를 사용할 수 있고, Python code 자체에서는 @함수명으로 표시되는 decorator를 사용할 수 있습니다. Python 함수 실행 시간 측정 import time def elapsed(f): def wrap(*args): start_r = time.perf_counter() start_p = time.process_time() # 함수 실행 ret = f(*args) end_r = time.perf_counter() end_p = time.process_time() elapsed_r = end_r - start_r elapsed_p = end_p - start_p print(f'{f.__nam.. 2021. 12. 3.
안드로이드 adb 설치 및 설정 방법 Android ADB (Android Debug Bridge)는 PC와 스마트 폰 간에 통신을 할 수 있는 명령어도 도구입니다. 안드로이드 개발자에게는 apk 설치, log 출력의 등의 개발에 많은 활동에서 adb를 거의 매일 사용하고 있습니다. 또한 디버깅 목적뿐 아니라 스마트 폰 화면을 PC로 미러링 할 수 있는 App에서도 adb를 사용합니다. 예를 들어 scrcpy 와 Mirroid 등 같은 스마트 폰 미러링 앱을 사용하기 위해서는 PC에 adb를 미리 설치해야 합니다. (※ Mrriod는 adb.exe가 설치 파일에 포함됨) 본 포스팅은 상용 단말 (=User version) 기준으로 ADB 연결을 설정하는 과정을 설명하고 요약하면 다음과 같습니다. 스마프 폰 제조사 USB 드라이버를 설치 (각.. 2021. 10. 3.
안드로이드 스마트 폰 오디오 미러링 방법: sndcpy 사용법 안드로이드 스마트의 화면을 PC로 미러링하는 방법에 대해서 아래 포스팅에서 설명하였습니다. 오픈 소스인 scrcpy 기반을 만들어진 소프트웨어로 스마트 폰의 오디오는 PC로 송출하지 못합니다. [모바일 SW 개발/Android] - 안드로이드 스마트 폰 화면 미러링 방법: scrcpy 사용법 [모바일 SW 개발/Android] - Android 스마폰을 PC 화면으로 미러링: Mirroid scrcpy의 개발자가 Audio 미러링이 가능한 sndcpy을 개발하였으며, 실제 테스트 해본 결과 잘 동작하여 본 포스팅을 작성하였습니다. sndcpy의 blog는 아래 링크를 확인 부탁드립니다. blog.rom1v.com/2020/06/audio-forwarding-on-android-10/ Audio forwa.. 2021. 9. 30.
우분투에서 NTFS 를 Read/Write로 마운트 (듀얼 부팅 화일 공유) Ubuntu 20.04 에서 NTFS 디스크는 기본적으로 Read Only 로 마운트한다. 따라서 NTFS 로 포맷된 디스크를 우분투에서 사용해야 하는 경우 마운트 옵션을 Read/Write으로 변경해야 한다. 터미널에서도 옵션 변경이 가능하지만 아래와 같이 '디스크' 프로그램을 사용해서 보다 쉽게 RW 옵션으로 변경할 수 있다. ※ntfs-3g 는 Ubuntu20.04 에서는 기본으로 설치되어 있으며 만일 auto 명령어가 동작하지 않는다면 ntfs-3g를 먼저 설치 (sudo apt install ntfs-3g) 후 아래 과정을 진행해야 한다. 방법: 1) NTFS 디스크 선택 2) Mount 하고자 하는 Partition 의 설정 옵션을 선택 3) 마운트 옵션 편집 선택 4) 부팅할 때 자동 시작 .. 2021. 9. 29.
Docker 개념과 명령어 사용 방법 및 예제 1. Docker란 Docker는 가상 머신처럼 독립된 실행환경을 만들어주는 것으로, 운영체제를 설치하 것과 유사한 효과를 낼 수 있지만, 실제 운영체제를 설치하지 않기 때문에 설치 용량이 적고 실행 속도 또한 빠릅니다. 예전에는 윈도에 VM Ware와 같은 가상 머신을 설치하였으나 최근에는 리눅스 계열에서 Docker가 그 역할을 대신하고 있습니다. 출처: 위키 백과 도커 컨테이너는 일종의 소프트웨어를 소프트웨어의 실행에 필요한 모든 것을 포함하는 완전한 파일 시스템 안에 감싼다. 여기에는 코드, 런타임, 시스템 도구, 시스템 라이브러리 등 서버에 설치되는 무엇이든 아우른다. 이는 실행 중인 환경에 관계 없이 언제나 동일하게 실행될 것을 보증한다. 2. Docker 를 사용하는 이유 Docker는 다양.. 2021. 9. 28.
Ubuntu 20.04에서 NTFS Read/Write로 Mount 하기: Paragon NTFS 동작 확인 외장 하드 디스크나 USB Memory를 Windows, Ubuntu, MacOS에서 사용하기 위해서는 공통적으로 지원하는 파일 시스템을 사용해야 합니다. 파일 시스템으로는 FAT32, ExFat, NTFS, EXT4를 사용할 수 있어야 합니다. 각 파일 시스템의 특징은 아래 테이블에 요약하였습니다. Windows Ubunt MacOS 비고 FAT32 지원 지원 지원 호환성 가장 좋은, 파일 크기가 4GB 이하만 지원됨 ExFat 지원 지원 지원 LG TV(Web OS) 미지원, 유료 라이센스 EXT4 미지원 지원 확인 예정 Linux 계열 OS에서 주로 사용 NTFS 지원 일부 지원 (read only) 일부 지원 (read only) 우분투에서는 ntfs-3g로 사용 시 Read/Write도 가능하지.. 2021. 9. 26.
우분투20.04에서 Bluetooth 5.0 USB 동글 설치: Realtek 8761B Chipset 오래된 PC에 무선 Bluetooth 이어폰으로 사용하려 USB BT 동글을 구매할 계획으로 최근 BT 5.0 기반의 BT 이어폰이 나오기 때문에 USB 동글도 BT 5.0을 지원하는 것으로 구매할 예정입니다. BT 5.0과 BT 4.0의 차이점은 음질은 Codec에 따라서 차이가 발생하기 때문에 구매 포인트는 아니었고, 인식 거리와 저전력이 가능하기 때문에 5.0을 사용할 예정이었습니다. 최근에 한국에서 판매하고 있는 Bluetooth 5.0 USB 동글은 Realtek RTL8761B chipset을 기반으로 만들어서 판매하고 있습니다. 제조사는 달라도 내부 구성하는 Main chip은 RTL8761b로 동일하고 디자인만 다소 차이가 있는 것 같습니다. ETM Networks IPTime BT50 넥.. 2021. 9. 26.
Ubuntu 20.04에서 Kernel 버전 업데이트 방법 리눅스의 가장 큰 장점 중에 하나는 커널만 업데이트 가능하는 것입니다. 노트북이나 PC 구입 시점에서는 지원하지 않은 HW Device Driver도 추후에 최신 Linux Kernel에 적용되는 경우가 종종 있습니다. Ubuntu 20.04 LTS에서 최신 Linux Kernel으로 업데이트하는 방법을 설명합니다. 본 포스팅 내용은 LG 그램 17 노트북으로 확인하였습니다. (설치 방법 링크) Ubuntu 20.04 버전에서 Kernel Update 방법: Ubuntu 최신 커널 Repository 추가 및 설치 Ubuntu Kernel 버전 확인 및 업그레이드 노트북 Secure Boot Disable로 변경 Kernel Version Update 확인 Kernel Version 원복 또는 버전 변경.. 2021. 9. 26.
LG 그램17 노트북에 Ubuntu 20.04를 microSD카드에 설치하기 Main 노트북으로 MacBook을 사용하고 있고, LG 그램 17 노트북에는 Windows를 사용하고 있습니다. 가끔 Ubuntu 환경이 필요한 경우가 있어 우분투를 설치하기로 하였습니다. 설치 방법을 고민한 결과 주로 MacBook은 프로그램 개발과 업무용으로 하고 있어 우분투를 설치하기에는 부담스러웠고, LG 그램 17은 SSD 용량이 256GB 라 공간이 부족하였습니다. SSD 용량, 최저 비용, 설치 시간을 최소로 하는 여러 고민 끝에 집에서 놀고(?) 있는 128GB micro SD카드에 Ubuntu를 LG 그램17 노트북에 설치하기로 하였습니다. 결과적으로 우분투 설치에는 무리가 없으나, 128 GB microSD 카드의 Read/Write 성능이 떨어져서 우분투 설치 시간은 SSD 대비 조.. 2021. 9. 26.
Jupyter Notebook의 업그레이드: Jupyter Lab 설치 및 extension 사용법 Jupyter Lab은 Jupyter Notebook의 업그레이드 개발환경입니다. 기존 Jupyter Notebook은 Web 기반에서 Python 코드를 한 줄씩 실행하고 실행 결과를 확인할 수 있는 장점이 있었다면, Jupyter Lab은 기존 Jupyter Notebook을 포함하여 CSV/TSV 파 일을 오픈하여 편집할 수고, Mark Down 파일, Terminal 기능, Editor Theme 설정 기능, 다양한 Plug in (extension) 기능을 지원합니다. 특히, extension은 Visual Code의 extension처럼 개발에 필요한 다양한 기능을 사용할 수 있습니다. 예를 Git control, Graph (pilot) 기능, Json, Exel 편집 등 매우 편리한 기능을.. 2021. 9. 16.
Web Server 성능 및 Load 측정 Tool: Apache AB (Apache Http Server Benchmarking Tool) 웹 서비스를 구축하고 웹 서버에 동시 접속하는 경우에 대해서 신뢰성과 안정성을 확인할 때 Web Server Benchmaking tool을 사용해서 Load Test를 진행해야 합니다. Web Server에 대한 벤치마킹 테스트 툴은 Apache AB와 JMeter를 활용할 수 있습니다. 본 블로그는 AB를 설명하고자 합니다. Apache AB(ApacheBench) Apache AB는 Apache Websever의 성능 측정을 휘한 Command line Tool로 현재 모든 웹 서버를 테스트할 수 있을 정도로 많이 사용하고 있습니다. 서버의 응답 속도를 명령어 한줄로 측정할 수 있습니다. 전체적인 내용은 아래 유튜브 동영상에 상세하게 설명되어 있습니다. 출처: https://www.youtube.c.. 2021. 9. 13.
Keras 기계 학습 모델의 저장과 로드 방법 (Sample code) 기계 학습 모델의 학습 모델을 저장과 로드하는 방법입니다. 데이터가 큰 기계 학습인 경우 학습 시간이 오래 걸리고, 학습 모델과 예측의 pipeline을 분리하기 위해서 학습의 모델을 저장하고 로드하는 기능이 필요합니다. Keras의 모델의 저장과 로드는 https://www.tensorflow.org/guide/keras/save_and_serialize에서 자세히 설명되어 있고, 본 블로그도 해당 페이지 내용과 확인 결과를 기초로 작성했습니다. Keras 모델은 아래와 같은 요소를 저장하고 있습니다. Keras에서는 모델 저장 API를 사용하면 모델 정보 전체를 저장 또는 가중치 값을 저장합니다. 학습 모델: 모델에 포함된 layer 구성 및 연결 방법 모델의 상태: 가중치 값의 집합 모델 컴파일 상.. 2021. 9. 12.
Python 여러 버전 설치 방법 (3.x and 3.y 동시 설치) 상용 우분투 서버에 파이썬 프로그램을 하나의 설치 파일로 만들어서 배포하는 작업을 진행 중에 있습니다. 최대한 많은 리눅스 서버와 호환성을 유지하기 위해서 가장 낮은 버전의 우분투와 glibc 버전의 환경에서 설치 파일을 만들어야 합니다. 현재 사용하고 있는 서버의 우분투 버전을 조사한 결과 14.04, 16.04, 18.04 버전을 사용하고 있으며, 가장 낮은 14.04 버전을 기준으로 실행 파일을 생성하기로 했습니다. 즉, 우분투 14.04 서버에서 빌드한 프로그램은 14.04 이후 버전 (16.04, 18.04, 20.04) 서버에서 구동을 시킬 수 있습니다. 우분투 14.04 버전을 확인한 결과 Python 2.7.6 버전과 3.4 버전이 설치되어 있고, 설치 파일 생성을 위한 pyinstalle.. 2021. 9. 12.