Flask 활용한 API 만들기 파이썬프로그래밍 © douglasamarelo, 출처 Unsplash 어제 올려드렸어야했는데 여러모로 바쁜듯 안바쁜듯 한 하루였습니다. 그래서 오늘 올리게 되었습니다. 오늘 올리는 자료는 Flask를 활용하여 엔드포인트를 지정하고 메서드 지정 및 파라미터 활용 편 입니다. 간단하면서도 어렵다면 어려운 부분입니다! Python Flask 엔드포인트 만들어보기 이전 포스팅에서 간단하게 / 엔드포인트에 접근 설계를 했었는데 방법은 완벽하게 동일합니다! 기본설계 @app.route('/test1') def test1(): ... @app.route('/test2') def test2(): ... @app.route('/test3') def test3(): ... 이렇게 만들어주면 라우팅이 완벽하게 만들어졌습니다. /test1에 접근하면 def test1()의 기능이 동작할 것 입니다. API를 만들수도 있고 그냥 웹 페이지를 열 수 있습니다. API 생성과 웹 템플릿 읽어들이기 가장 먼저 라이브러리 두 개를 연결해줘야합니다! from flask import render_template from flask import jsonify render_template는 템플릿 폴더를 접근하여 HTML 파일을 열어주는 작업을 담당합니다. jsonify는 데이터를 json화 시켜서 API 작업을 담당합니다. render_...
Flask 설치하기 © artturijalli, 출처 Unsplash 안녕하세요. 오랜만에 파이썬 글을 올리네요!! 오늘은 간단하게 프레임워크를 활용하여 웹 서비스를 만들기 위한 시작편 입니다! Flask를 활용하여 웹 어플리케이션을 만드는 방법에 대해서 알아보려고합니다 오전에는 간단하게 설치하는 방법과 프로젝트 구조에 대해서 알아보고 오후에는 오픈 웹 탬플릿을 올려서 웹 어플리케이션을 만들어보겠습니다. 파이썬 Flask 설치하기 패키지 설치 pip install flask Python 파이프라인을 이용하여 flask를 가볍게 설치해주세요! 프로젝트 만들기 설치가 완료되었으면 간단하게 하나의 껍데기를 만들어보는 시간을 가지겠습니다. from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, Flask' 간단하게 코드를 작성하고 아래의 명령어를 통해서 실행을 시켜보겠습니다! 실행하기 export FLASK_APP=내프로젝트파일.py flask run 실제로 위의 방법도 있지만 프로젝트 자체에 __main__ 에서 app.run()을 활용할 수도 있습니다. app = Flakse(__name__) ... ... ... if __name__ == "__main__": app.run() 저는 첫 번째 방법이 편하여 사용하고 있습니다. 또한 ...
파이썬 남녀노소 누구나 쉽고 빠르게 배우기 안녕하세요 꾹이 입니다. 도서 서평을 받게 되어 처음으로 도서를 읽어보고 포스팅을 올려봅니다. 요새 많은 분야에서 활발하게 활용되는 언어인 Python 관련된 책인데요. 입문서로 내용이 정말 좋은 것 같았습니다. 책은 구독자 30만을 보유하고 있는 코딩 유투버 나도코딩님의 책인데요. 실습 내용으로는 텍스트형을 보여주는 게임 그리고 간단한 계산식을 이용한 계좌 실습을 다루고 있는데요. 기본 입문서에서 나름 탄탄한 내용을 다루고 있는 거 같습니다. 책을 보면서 간단하게 좋았던 부분에 대해서 같이 공유하면서 하나하나 알아가 보겠습니다 나도코딩의 파이썬 입문 책에는 독서를 하는 사람에게 의지를 더해줄 학습 플랜이 잘 다루어지고 있었습니다. 간단한 설치방법부터 그리고 클래스와 예외 처리와 같은 아주아주 중요한 부분까지 아주 잘 나눠져서 구성이 이루어졌습니다. 개인적으로 클래스 부분을 4일에 걸쳐서 괜찮게 나눠서 구성했다는 게 정말 매력적이었습니다. 저 또한 개발을 하다 보면 클래스가 많이 중요하다고 생각이 드는데 이 부분에 대해서 잘 구성한 것 같습니다. 각 장의 시작은 간단한 시작 멘트로 학습에 내용을 간단하게 알아볼 수 있습니다. 시작 전에 가벼운 이해를 통해서 해당 절을 완벽하지는 않겠지만 편하게 숙지할 수 있다고 생각이 드네요. 절의 마지막에는 항상 실습 문제를 구성하여 지루한 부분을 없애는 ...
파이썬 파인콘 하나로 React, Next Pynecone 오늘은 오랜만에 새로운 프레임워크를 소개하려고 합니다. 오늘 소개하는 프레임웍은 Python을 활용하여 만들 수 있는 Framework이며 혁신 그 자체입니다! 저도 공부는 아직 안했지만 자료를 서칭하다가 발견한 엄청난 .. 혁신이네요 (근데 솔직히 아직은 계속된 개발을 진행하고 있는 오픈소스입니다!!) Pynecone 설치해보기 GitHub - pynecone-io/pynecone: Web apps in pure Python. Web apps in pure Python. Contribute to pynecone-io/pynecone development by creating an account on GitHub. github.com 공식 깃의 내용을 발췌하면 파이썬 3.7+ 노드 12.22.0+ 라면 해당 프로젝트를 구성할 수 있다고 합니다. 설치 방법은 pip를 활용하여 설치를 해주시면됩니다. pip install pynecone-io pc init pc run 이제 간단하게 예저 소스를 들춰보겠습니다. 공식 홈페이지의 문서에서 내용을 발췌합니다! https://pynecone.io https://pynecone.io/docs/getting-started/introduction import pynecone as pc class State(pc.State): count: i...
셀레니움 파이썬 ActionChains 그리드 컨트롤 ActionChains 연결하기 액션체인을 활용하여 우리는 마우스를 컨트롤하려고 합니다. 웹 사이트를 크롤링 하다보면 스크롤을 동작시키며 api토인을하여 그리드를 그려주는 시스템이 존재합니다. 이러한 경우를 처리할때 방법중 하나입니다. 셀레니움 ActionChains 연결하기 from selenium.webdriver import ActionChains 그리드 박스 컨트롤하기 본격적인 처리 방법 이러한 박스를 컨트롤하고자 하는 경우 마우스를 움직이는 효과를 만들어주는 것 입니다. 방버으로는 자바스크립트를 활용하는 방법도 존재하지만 우리는 편하게 셀레니움이 제공하는 액션체인을 활용해보겠습니다. 체크해야할 것 표의 영역 정보 표의 스크롤 총 높이 표의 한 줄의 높이 이제 모든 준비가 완료 되었습니다! 실전 el_master = webdriver.drv.find_element(By.[종류],[표의 영역정보] el_total_height = 800 el_row_height = 20 el_for = 800/20+1 for i in range(1,el_for): ActionChains(webdriver.drv).scroll(0, 0, 0, i*el_row_height, origin=el_master).perform() 위의 코드는 정말 그냥 샘플의 느낌의 코드로 만들어 본 것입니다. 총 높이...
프로토콜 버퍼 실습 해보기 © anniespratt, 출처 Unsplash proto 파일 작성해보기 golang [gRPC] 알기이전에 프로토콜 버퍼란 구조 이해하기? gRPC Remote Procedure Calls Protocol Buffers? 이론만 보면 누구에게는 정말 심오하거나 누구에... blog.naver.com 우리는 이전 포스팅에서 프로토콜 버퍼에 대해서 알아보았고 간단하게 사용에 필요한 가이드라인을 간단하게 봤습니다 오늘은 이전 포스팅을 기반으로하여 golang에서 활용할 proto 파일을 작성해보고자 합니다! 필수 패키지 설치 https://github.com/protocolbuffers/protobuf/releases 윈도우일시 위에서 윈도우 버전을 받고 환경변수 설정 필수 $ go install google.golang.org/protobuf/cmd/protoc-gen-go@v1.28 // @latest $ go install google.golang.org/grpc/cmd/protoc-gen-go-grpc@v1.2 // @latest 코드 작성 syntax = "proto3"; package prototest ; option go_package = "prototest"; message ProtoData { string Msg = 1; // 외부에서 사용할거라 앞의 문자는 무적권 대문자 아시죠 !! } 컴파...
gRPC Remote Procedure Calls Protocol Buffers? © geralt, 출처 Pixabay 이론만 보면 누구에게는 정말 심오하거나 누구에게는 정말 쉽게 이해가 될 수 있습니다. 저는 정말 심오하게 이해가되는데 실습을 통해서 하나하나 알아보면 쉽게 이해할 수 있다고 생각합니다. 오늘 내용은 gRPC를 시작하기에 앞서 사용하는 protocol buf에 대해서 알아볼 생각입니다. 프로토콜 버퍼는 데이터의 구조다! 제목 처럼 프로토콜 버퍼는 데이터의 구조라 생각하시면 됩니다. 우리가 주로 사용하고 있는 데이터 구조는 JSON 형식으로 Restful API를 구성하고 HTTP1.1에 심어서 보내는데 비슷하게 프로토콜 버퍼는 바이너리형 데이터로 통신을 한다고 생각하면 된다! 구글에서 설계한 구조 IDL 기반이다 (인터페이스 정의 언어) 서비스 모델 구조 (서비스 1 메시지 2개 가 하나의 묶음이 된다) 메시지 = 요청과 반환 서비스 = 실행 메서드 (원격 함수) 바이너리 형식 네트워크 통신이다 프로토콜 버퍼 코드 이해하기 https://developers.google.com/protocol-buffers/docs/proto3?hl=ko 공식문서를 기반으로 이해를 해보겠습니다! message 정의 syntax = "proto3"; message SearchRequest { string query = 1; int32 p...
GraphQL 아키텍처 © casparrubin, 출처 Unsplash REST와는 또 다른 통신 아키텍처입니다. 역시 어떠한 요청에 대한 응답을 하기 위한 기술입니다. REST와의 차이점으로는 정확한 요청에 대한 결과를 반환해주는게 목적이며 클라가 중심이된다는 점 GraphQL이란? 페이스북에서 만든 쿼리 언어 이며 어떠한 명확한 요청에 대한 명확한 답을 해주는 아키텍처입니다. SQL과 비슷한듯 비슷하지않은 gql이라고 부루는 언어를 사용합니다 실제로 아직 공부를 해보지는 않았지만 공부가 필요할 거 같습니다. 클라이언트 요청에 따른 반환을 명확하게 해줄수 있으며 해당 기능을 쓸 수 있는 언어들도 많다는 점이 있습니다. (클라이언트 중심이다) 서비스 구성시 중요한 점 클라 GraphQL 모듈 필요 서버 GraphQL 모듈 필요 도움을 주는 라이브러리 Realy (릴레이) Apollo GraphQL (아폴로) 사용 문법 { user { name } } { "data" : { "user": { "name" : "꾹" } } } 참고 문헌/자료 - #GraphQL #gql
REST에 대해서 이해하기 © deepmind, 출처 Unsplash REST REST란 Representational State Transfer 의 약자이며 HTTP Method에 정보를 함축하여 보내는 기법입니다. 웹 상에서 URI에 데이털르 심어보내는 통신 방식이라고 보면 될거 같습니다! 구성요소 자원 (Resource) URI를 이용하여 구분을한다. /item/:itemNo 행위 (Verb) HTTP Method를 사용 표현 (Representation of Resource) 현재는 JSON을 주로 사용 CRUD 시스템 구성시 사용하며 아래의 메서드별 정의를 해주는게 원칙입니다. GET : 조회시 활용하는 메서드 POST : 생성을 하는 경우 사용하는 메서드 PUT : 업데이트를 하는 경우 사용하는 메서드 ( 만약 없다면 생성 ) DELETE : 데이터를 삭제하는 경우 사용하는 메서드 PATCH : 부분적인 업데이트를 사용하는 메서드 원래라면 모든 메서드를 상황에 맞게 활용하는게 좋다. 하지만 PUT / PATCH 부분에 대해서는 애매한 부분이 분명 존재하기에 대부분에 프로젝트는 GET / POST / DELETE를 기본적으로 활용한다고 보면 된다! 장점 HTTP 플랫폼에 모두 사용이 가능하다. 범용성 보장되며 상호작용을 지원한다. 서버와 클라가 명확하게 구분된다 단점 구조의 표준이 솔직히 없다. REST API REST AP...
Golang 웹 서버 (API서버) © jordanharrison, 출처 Unsplash 이제 Go를 활용하여 자신의 프로그램을 만들어보세요! Go의 net/http 패키지를 활용하여 API 서버를 고랭으로 구성해보려고 합니다! 고 언어 웹 서버 뼈대 이해하기! 기본코드를 바로 본다음 이해를 하는게 편할 거 같아서 코드를 먼저 이용하여 프로젝트를 만드시고 해당 프로젝트를 실행시켜주세요 ! 실행 후 localhost:3000을 입력하면 Hello Go라는 내용이 나오는 것을 볼 수 있습니다. package main import ( "fmt" "net/http" ) func main() { http.HandleFunc("/", func(writer http.ResponseWriter, request *http.Request) { fmt.Fprint(writer, "Hello Go") }) http.ListenAndServe(":3000", nil) } HandleFunc란? 우리가 일반적인 웹 언어를 활용하여 개발 시의 핸들러 그 의미와 완전히 동일합니다. 처음 받는 인자로는 엔드포인트를 구성하는 것 입니다. 지금 /는 index페이지입니다 인덱스 페이지랑 웹에 도메인으로 접근 시 메인으로 보여줄 페이지를 의미합니다! 두번째 인자로는 실제 해당 엔드포인트로 접근이 이루어질 시 어떠한 행동을 할지에 대한 함수를 작성하면됩니다. 지금은 익명...
postgreSQL 리눅스에 설치하기 © casparrubin, 출처 Unsplash 패키지 등록 포스트그레스큐엘 리눅스에서 설치를 위해서는 먼저 패키지를 등록해주셔야합니다. sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt $(lsb_release -cs)-pgdg main" > /etc/apt/sources.list. d/pgdg.list' wget --quiet -O - https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add - apt-get 업데이트하기 리눅스의 apt-get을 업데이트해주겠습니다. sudo apt-get update postgreSQL 설치 및 실행 위의 모든 사항을 잘 처리하였다면 이제는 postgreSQL을 설치하고 실행해보자! sudo apt-get -y install postgresql-14 저와 같은 경우는 14버전을 설치하였습니다. sudo service postgresql start sudo service postgresql status sudo service postgresql stop 위의 명령을 통해서 postgreSQL을 실행하시면 됩니다. postgreSQL Config 설정 및 계정 만들기 내부에서 사용하는 postgreSQL이라면 문제가 없겠지만 대부분 다...
Clickhouse 집계 프로세스 최적화 해당 내용은 이전 클릭하우스 포스팅에서 집계 작업을 많이 하면서 발생하는 CPU 사용량 및 메모리 사용량을 줄여보는 전략입니다. MV DDL 구문만 활용하여 테이블 수 줄이기? 불가능하다 결국 MV는 특정 데이터나 테이블을 이용하여 유도한 뷰이며 MV를 구성 시 별도 테이블에 데이터를 연결하지 않더라도 자동적으로 임시테이블이 생성된다. (즉, MV를 생성하면서 테이블을 같이 구성하는 DDL문을 사용해보는 것 입니다.) CREATE MATERIALIZED VIEW stream_aggregating_table ( * )ENGINE = AggregatingMergeTree() ORDER BY (*) AS SELECT * FROM stream_table GROUP BY *; 이미지와 같이 inner_id:table uuid로 구성이 되기에 크게 의미가 없다! SELECT uuid, name FROM system.tables WHERE database = '{name_of_database}' AND engine = 'MaterializedView' MV만을 활용하여 최종 결과물 테이블 까지 한 번에 트리거 하기 위의 기본 조건이 불가능하기에 역시 불가능하다. MV로 MV를 유도할 수도 없다. 출력 테이블 단일화 하나의 아웃풋 테이블을 구성하여 특정 키로 출력하는 방안이 있습니다. 테이블의 수를 최적화할...
카프카 엔진 테이블과 집계 자동화 시나리오 © markusspiske, 출처 Unsplash 트리거 실제로 클릭하우스에는 트리거가 존재하지 않습니다. 다만 MV를 활용하여 트리거와 비슷한 행동을 구축할 수 있습니다. 간단하게 카프카 엔진에서 받은 데이터를 집계처리하는 시스템을 만들어보겟습니다. 구현해보고자 하는 프로세스는 위와 같습니다! DDL 이해하기 CK(kafka Engine Table) CREATE TABLE default.st_kafka_topic1 ON CLUSTER 'cluster'( _offset UInt64, _partition UInt64, symbol String, time Float64, price Float64 )ENGINE = Kafka('카프카 주소 정보들', '토픽명', '컨슈머 명', '패킷 정보의 형식' ) // 예시) ('localhost:9092', 'topci1', 'consum-1', 'JSONEachRow' ) SETTINGS kafka_num_consumers = 1, kafka_flush_interval_ms = 10, kafka_max_block_size = 500; 카프카 엔진 테이블은 위와 같이 구성하였습니다. 10ms -> poll 발생을하게 하였고 block_size -> 500Byte 넘어가면 poll을 댕겨오도록 설정하였습니다. Trigger Table CREATE TABLE ...
클릭하우스 설정파일 이해하기 © flowforfrank, 출처 Unsplash config.xml 클릭하우스 설정 파일의 핵심 옵션들은 host 설정부분과 저장공간에 대한 옵션입니다. 다른 옵션의 경우 옵티마이저가 필요없는 상황이라면 그냥 디폴트값 (즉, 설정이 없는 상태)를 사용하는 것이 좋아보입니다. 외부 접속을 허용하고자하면 아래와 같이 0.0.0.0 으로 호스트를 변경해주시면 됩니다. 저장공간의 경우 <path> 부분을 통해서 설정을 하게되며 3개의 클릭하우스를 서로 연결하여 사용하고 있는 경우 각 저장공간을 따로 잡아줘야합니다! 클러스트러 설정을 위한 부분의 경우 원격 쿼리를 전송하기 위한 설정등에 대한 내용입니다! <?xml version="1.0"?> <company> <logger> ... 로깅에 관련된 설정 ... </logger> <query_log> <database>system</database> <table>query_log</table> </query_log> /* 클릭하우스 접속정보 및 데이터 파일 위치 설정 START */ <listen_host>0.0.0.0</listen_host> <http_port>8123</http_port> <tcp_port>9000</tcp_port> <interserver_http_host>0.0.0.0</interserver_http_host> <interserver_htt...
Clickhouse Install © crissyjarvis, 출처 Unsplash 클릭하우스 공식홈페이지 Fast Open-Source OLAP DBMS - ClickHouse ClickHouse is a fast open-source column-oriented database management system that allows generating analytical data reports in real-time using SQL queries clickhouse.com 클릭하우스 구성 선택하기 클러스터러 구성 클러스터러 구성을 하고자 한다면 일단 싱크를 어떠한 도구를 활용할 지를 선택해야합니다. 주키퍼를 사용하거나 클릭하우스에서 제공하는 키퍼를 사용해도 됩니다. (개인적으로 추천하는 건 주키퍼를 추천합니다!) 단일 구성 단일 구성의 경우 따로 주키퍼나 키퍼가 필요없습니다. 클러스트러 구성 클릭하우스 다운로드 sudo curl https://clickhouse.com/ | sh 자신이 구성하고자 하는 디렉토리 위치에 다운로드를 해주시면 됩니다. 저는 패키지 파일을 받아서 활용했으며 버전은 23.10 버전을 사용하였습니다. 클릭하우스 실행하기 서비스를 만들어 실행하여도 됩니다. 또는 클릭하우스 실행파일 옵션 중 --daemon을 활용하여 실행해도 됩니다. 우분투환경에서 cli로 클릭하우스를 구성하다보면 권한 문제가 발생할 수 있습...
Python 자연어 처리 머신러닝 딥러닝 © johnschno, 출처 Unsplash 오늘은 파이썬의 머신러닝과 딥러닝을 알아보도록 하겠습니다. 머신러닝에 딥러닝이 포함되어 있으며 가볍게 표현하면 규칙을 잡아서 해당 규칙을 분석하여 어떠한 결과를 도출해서 모델을 만드는 것이라고 보시면 됩니다! 서두는 가볍게 이 정도까지만 각설하고 간단하게 검증 하는 과정에 대한 이론과 간단한 용어들에 대해서 정리해보겠습니다! 모델을 만드는 과정 © kellysikkema, 출처 Unsplash 데이터를 분류하는 작업을 가장 먼저 해야하는데 데이터는 작게는 2가지 크게는 3가지로 분류하게 됩니다. 트레이닝 데이터 검증 데이터 / 테스트 데이터로 머신러닝의 재료를 만들어 줍니다. 모델은 일단 트레이닝 데이터를 활용하여 기본적인 훈련을 진행시키고 검증 데이터를 활용하여 튜닝여부를 판단하게 됩니다. 튜닝을 하는 이유는 성능을 더 올리기 위해서 하는 행동입니다. 하지만 이렇게 모델을 만들어도 완벽한 결과를 만들 수 는 없습니다. 그래도 꼭 튜닝은 해줘야합니다 튜닝을 하게 되는 이유는 크게 회귀와 분류에 의해서 발생하는 문제를 고치기 위한 행동이라고 보시면 됩니다. 튜닝을 해야하는 이유인 문제의 종류 연속된 범위의 결과를 예측하는 결과의 문제 회귀 어떠한 문제에서 결과를 선택하는 과정의 문제 분류 나는 위의 두 가지 문제에 대해서 차차 학습할 예정이고 보통은 ...
Python 자연어 처리 샘플 데이터 테스트 © clemhlrdt, 출처 Unsplash 05-01 코사인 유사도(Cosine Similarity) BoW에 기반한 단어 표현 방법인 DTM, TF-IDF, 또는 뒤에서 배우게 될 Word2Vec 등과 같이 단어를 수치화할 수 있는 방법을 이해했다면 이러한 표현 방법에 대해서 … wikidocs.net 해당 자료를 근거하여 캐글의 데이터셋을 이용해보자! 내용 중 하단에 캐글 영화 데이터셋 중 movie_metadat (무비메타데이터)셋을 활용하는 과정 입니다. 내용을 보면 TF-IDF 방식으로 수치도를 구현하고 코사인 유사도 분석을 하는 프로그램을 소개합니다! 데이터 셋 다운로드 The Movies Dataset Metadata on over 45,000 movies. 26 million ratings from over 270,000 users. www.kaggle.com 해당 사이트에서는 이 외에도 각종 데이터셋을 제공받을 수 있습니다. 데이터 세트도 있고 이미 공부가된 모델들도 있습니다. 강의 내용을 보면 해당 영화 데이터 셋을 사용하여 특정 영화의 유사한 영화들을 뽑아내는데 한번 테스트 해보자! 코드 이해하기 Python 자연어 처리 코드를 이해해보겠습니다. 코드 부분만 복사해서 간단하게 테스트가 가능합니다. 중요한 부분들은 다시 한번 되짚어 보자! import pandas as ...
Python 자연어 처리 백터의 유사도 (코사인, 유클리드, 자카드) © cdr6934, 출처 Unsplash 오랜만에 파이썬 자연어관련 블로그 포스팅을 합니다. 포스팅에 앞 서 모두들 크리스마스는 재미있게 보내셨는지요. 저는 아내와 재미있는 시간을 보냈습니다. 내년 소원도 같이 빌고 즐겁게 시간을 보냈어요 슝슝 벌써 12월의 마지막 주라니 말도 안돼 2022년 정말 즐거운 한 해 였는데 기분 좋은 일이 더 많은 한 해였습니다. 오늘 하루도 회사에서 새로운 다짐을 하고 있어요! 본격적으로 백터의 유사도란? 우리는 이전 포스팅에서 수치화 유사도에 대해서 배웠습니다 Bow TF-IDF Word2Vec이 대표적인 수치화 방법이 였습니다. 오늘은 수치화된 결과를 백터 유사도를 활용한 방법론에 대해서 알아보는 시간이 될 것 같습니다. 간략하게 정리하면 수치화된 결과를 토대로 문서의 유사도를 분석하는 방법입니다! 대표적은 코사인 그 외 유클리드, 자카드가 있습니다! 그럼 하나하나 체크해보겠습니다! Python 코사인 유사도 문서의 단어나 문장을 수치화 한 갚을 토대로 구하는 방법이며 Numpy - norm (놈)을 활용하여 간단하게 테스트가 가능합니다! 공식은 위와 같다고 합니다! 자연어 처리 코사인 유사도는 위와 같이 두 데이터를 비교하여 각도를 기준으로 -1 0 1이 표현됩니다. 당연히 1에 가까울 수록 유사하다는 뜻이며 서로 직각을 이루면...
Python 자연어 처리 단어 표현 방법 © deepmind, 출처 Unsplash 오늘은 파이썬을 활용한 단어 표현 방법에 대해서 알아보려고합니다. 그 전에 먼저 가볍게 언어 모델이 무엇인지에 대해서 이해하고 그 다음 단어 표현 방법 카운트 기반으로 한 표현 기법인 BoW DTM TF-IDF를 이해해보자! 언어 모델 언어 모델이란 문장에 확률을 할당하는 모델을 의미한다. 방법으로 통계를 이용하는 방법이 존재하며 우리가 잘 아는 GPT, BERT 는 신경망을 이용한 방법입니다! 뭐 결국은 우리도 GPT, BERT로 Python 자연어 처리를 활용해보겠지만 그래도 차근차근 개념이해를 해볼게요! 통계를 활용한 방법 (언어모델) 기게번역, 오타교정, 음성인식을 활용한 더 나은 문장을 선택 하게 하는게 바로 언어 모델 입니다! 즉, 유사도가 높은 문장을 찾아서 선택해주게 하는 것! 대표적인 모델의 종류 SLM 전체 문장을 단어를 기반으로 조건, 문장, 카운트 기법이 적용된 가장 대표적인 모델 N-gram SLM을 기반으로 하지만 일부 단어만 처리하도록 하는 모델 수학 조건부확률을 활용하는 기법이라고 생각하면 될거 같다 강의 내용에 있어서 ( 솔직히 너무 모르겠다 어렵!) PPL - 모델이라기 보다는 비교하여 더 나은 정보를 평가 판단하기 위한 기술이 아닐까 ! 펄플렉서티 생성된 2개의 모델을 비교하기 위해서 모델읠 수치화 하는 방식 카운트 ...
Python 자연어 처리 데이터 분리 © douglasamarelo, 출처 Unsplash 원래라면 바로 라이브러리를 실습하려 했는데 계속 이해를 하려고 공부를 하다보니 차근차근 같이 짚고 넘어가는게 좋은 것 같네요. 오늘은 파이썬의 자연어처리 데이터를 분리하는 단계에 대해서 이해해보겠습니다. 실제로 해당 과정은 학습용 자료와 시험용 자료를 만드는 과정이라고 생각하시면 됩니다! 급하지 않게 차근차근 알아보겠습니다! 데이터 분리 란? 교육을 위한 학습 데이터를 적당히 분류하는 작업입니다. 지도학습과 데이터 셋 분류 작업 지도학습이란? 지도학습은 문제지를 활용한 훈련 데이터 셋이라고 생각하면됩니다. 이해를 하자면 우리가 학원을 다니면 학원 선생님이 문제지와 답안지를 가지고 있는데 그와 동일하다고 생각하면 됩니다. 문제와 답을 연결된 학원선생님 전용 문제지를 의미한다고 생각해주세요. 그래서 실제로 지도학습용 데이터는 문제(data) = 답(label)을 연결해둔 데이터를 토대로 교육하는 방법입니다! 지도학습용 데이터와 지도학습 개념? 위에서 설명한것과 동일하게 지도학습용 데이터란 데이터 = 레이블의 연결된 데이터 입니다! 작업 1) 우리가 만들고 있는 데이터를 문제지 = 정답 을 연결해서 구성합니다. 그럼 우리는 문제지, 정답 이라는 2개로 나누어서 연결이된 데이터 셋이 구성완료 작업 2) 여기서 지도학습에는 시험용 학습지가 필요합니다. ...
Python 자연어 처리 머신러닝 딥러닝 © johnschno, 출처 Unsplash 오늘은 파이썬의 머신러닝과 딥러닝을 알아보도록 하겠습니다. 머신러닝에 딥러닝이 포함되어 있으며 가볍게 표현하면 규칙을 잡아서 해당 규칙을 분석하여 어떠한 결과를 도출해서 모델을 만드는 것이라고 보시면 됩니다! 서두는 가볍게 이 정도까지만 각설하고 간단하게 검증 하는 과정에 대한 이론과 간단한 용어들에 대해서 정리해보겠습니다! 모델을 만드는 과정 © kellysikkema, 출처 Unsplash 데이터를 분류하는 작업을 가장 먼저 해야하는데 데이터는 작게는 2가지 크게는 3가지로 분류하게 됩니다. 트레이닝 데이터 검증 데이터 / 테스트 데이터로 머신러닝의 재료를 만들어 줍니다. 모델은 일단 트레이닝 데이터를 활용하여 기본적인 훈련을 진행시키고 검증 데이터를 활용하여 튜닝여부를 판단하게 됩니다. 튜닝을 하는 이유는 성능을 더 올리기 위해서 하는 행동입니다. 하지만 이렇게 모델을 만들어도 완벽한 결과를 만들 수 는 없습니다. 그래도 꼭 튜닝은 해줘야합니다 튜닝을 하게 되는 이유는 크게 회귀와 분류에 의해서 발생하는 문제를 고치기 위한 행동이라고 보시면 됩니다. 튜닝을 해야하는 이유인 문제의 종류 연속된 범위의 결과를 예측하는 결과의 문제 회귀 어떠한 문제에서 결과를 선택하는 과정의 문제 분류 나는 위의 두 가지 문제에 대해서 차차 학습할 예정이고 보통은 ...
파이썬 남녀노소 누구나 쉽고 빠르게 배우기 안녕하세요 꾹이 입니다. 도서 서평을 받게 되어 처음으로 도서를 읽어보고 포스팅을 올려봅니다. 요새 많은 분야에서 활발하게 활용되는 언어인 Python 관련된 책인데요. 입문서로 내용이 정말 좋은 것 같았습니다. 책은 구독자 30만을 보유하고 있는 코딩 유투버 나도코딩님의 책인데요. 실습 내용으로는 텍스트형을 보여주는 게임 그리고 간단한 계산식을 이용한 계좌 실습을 다루고 있는데요. 기본 입문서에서 나름 탄탄한 내용을 다루고 있는 거 같습니다. 책을 보면서 간단하게 좋았던 부분에 대해서 같이 공유하면서 하나하나 알아가 보겠습니다 나도코딩의 파이썬 입문 책에는 독서를 하는 사람에게 의지를 더해줄 학습 플랜이 잘 다루어지고 있었습니다. 간단한 설치방법부터 그리고 클래스와 예외 처리와 같은 아주아주 중요한 부분까지 아주 잘 나눠져서 구성이 이루어졌습니다. 개인적으로 클래스 부분을 4일에 걸쳐서 괜찮게 나눠서 구성했다는 게 정말 매력적이었습니다. 저 또한 개발을 하다 보면 클래스가 많이 중요하다고 생각이 드는데 이 부분에 대해서 잘 구성한 것 같습니다. 각 장의 시작은 간단한 시작 멘트로 학습에 내용을 간단하게 알아볼 수 있습니다. 시작 전에 가벼운 이해를 통해서 해당 절을 완벽하지는 않겠지만 편하게 숙지할 수 있다고 생각이 드네요. 절의 마지막에는 항상 실습 문제를 구성하여 지루한 부분을 없애는 ...
삼성 비스포크 김치냉자고 구매기 쓱 세일 고마워요 쓱 세일에 구매했던 신혼가구 김치냉장고가 도착했습니다. 일자 조율로 조금 늦긴했지만 잘 도착했습니다. 생애 처음 구매해본 김치냉장고에 양문형 김냉이 처음이라 두근두근 합니다! 집에서는 부모님이 사신 위아래 여는 방식만 보다가 양문을 처음보니 정말 신기하긴 했습니다. 오늘은 그래서 비스포크 구매 설치기를 포스팅해보려고 합니다! 설치 과정을 포스팅할 수 없어서 아쉽긴 하지만 베란다에 잘 설치하였습니다. 무려 491L 짜리를 구매했습니다 거거익선 거의 뭐 일반 냉장고 수준입니다. 기능도 3가지 모드로 바꿀 수 있어서 저희 부부는 윗 칸은 냉장 기능 아랫칸은 김냉기능을 활성화 했습니다! 안에 삼성로고가 박힌 보관용기도 함께 포함되어있는데요 해당 부분도 마음에 쏙 드네요 원래 다 주는거 같았지만 이거말고 다른 제품도 있었습니다 그 제품은 안의 통들입니다 이 중 내가알기론 분명 메탈 3통이 추가로 들어와야하는데 들어온 메탈이 없어서 오늘 문의를 다시 남겼다. 분명 쓱세일에 +20만원 상당의 메탈김치통이 있었고 내가 구매한 지점에서도 그렇게 설명받았는데 ㅎㅎ 뭐 그래도 아직 김치를 만든게 없기에 채워놓지는 않았고 문의 결과에 따라서 3통 받아서 중간에 잘 넣어두려고한다. 고기를 재워두는 용도로 쓸 거 같다 처음에 아내와 베란다의 많은 공간을 차지하여 미관상 별로면 어떡하지 걱정했는데 그렇게 크게 ...
하찌하찌 케이스로 에어팟 3세대 새롭게 꾸미자 기존에 사용하던 애플의 블루투스 이어폰이 주머니에 넣었다 뺏다를 자주해서 그런지 때가 너무 탔다 그래서 케이스로 새 단장을 해주려고 합니다. 그래서 준비한게 하찌하찌 에어팟 프로/3세대 혼용 케이스 입니다. 색상도 내 마음에 쏙 드는 핑크색 그리고 캐릭터고 귀염귀염 가장 먼저해야할 건 언박싱! 아이패드 위에서 영롱하게 언방식을 하고 외관을 몇 번 확인했습니다. 처음으로 케이스를 끼는 거 같은데 확인해보니 플라스틱 재질? 보호가 아주 잘 될 거 같아요! 착용하고 보니 아랫부분은 크게 문제가 없지만 윗 부분 뚜껑이 잘못하면 빠지더라고요 그래서 보니깐 3M 테이브를 주는 이유가 있었구나 했어요 하찌하찌 에어팟3 케이스 윗 부분을 열어보면 스티커에 딱 맞게 칸이 있습니다. 해당 부분에 스티커를 붙여주세요! 그 후 찰칵 ! 오늘 출근하면서 같이 챙겨 왔습니다 회사 무선충전기위에 올려보니 아주아주 정상적으로 충전에도 문제가 없네요! 키링도 하나 구매해서 키링을 끼고 다니면 더 이쁠 것 같아요 처음으로 착용해본 블루투스 이어폰 케이스 하찌하찌 에어팟3세대(프로2,3 호환) 제품을 협찬 받았습니다. hazzi.kr #하찌하찌 #케이스 #에어팟3
Node.js 시작을 위한 필수 라이브러리 © casparrubin, 출처 Unsplash 가볍게 오늘은 노드에 활용되는 함수들이 뭐가 있는 지 알아보자! 여러가지 언어를 막 하다보면 이것저것 머리가 복잡해지는 거 같아서 간ㄷ나하게 기록을 한다. 기본 require() 다른 모듈을 연결할때 활용하는 임포트 함수입니다! 모든 언어에서 꼭 알고 넘어가야하는 부분일 것 입니다. 모듈 만들기 외부에서 활용하기 위해서 설정해야하는 옵션들 ! export.module = module module.exports = module exports.a = "hello" module.exports.a = 1 module.exports = { a: 1, b: 'c', fun: () => { ... }, fun2: function(){ ... } } npm Node Package Manager 로 패키지를 설치할때 활용하게 됩니다. npm install 패키지명 npm init은 현재 디렉토리의 패키지를 묶는 행동을 합니다! package.json 현재 디렉토리의 정보를 가지고 있다. pakcage-lock.json 현재 디렉토리의 노드 프로젝트에 사용된 실제 패키지들의 정보를 가지고 있다. 사용하면 좋은 패키지 노드를 하기위해서는 여러가지 패키지들을 알고 있으면 좋다. 실제로 개발을 하다보면 검색을 통해서 패키지명을 다시한번 검토하지만 어느정도 알고 있다면...
WebRTC 1:1 화상 채팅 만들기 © Tumisu, 출처 Pixabay WebRTC에 대해서 이전에 알아보았는데요. 오늘은 1:1 P2P 통신을 같이 만들어보겠습니다. 이해하기 쉽도록 오늘은 모든 함수명 변수명은 한글로 작성하였습니다. 실제 개발을 하신다면 영어로 잡아주세요! 백엔드 개발하기 시그널링 서버 이전 내용을 보시면 시그널링 서버와 그리고 프론트가 필요하다고 하였습니다. 가장 중요한 백엔드 서버를 개발해보겠습니다. 통신의 정보를 주고 받는 도우미 역할인 시그널링 서버 만들기 개발 환경 셋팅 Node.js - express - socket.io const express = require("express"); const socket = require("socket.io"); express 패키지를 활용하여 포트를 개방하는 용으로 사용하며 socket.io를 활용하여 프론트가의 통신을 교환하는 용도로 사용합니다! 시그널링 서버 백엔드 코드 일단 시그널링 서버의 코드를 확인하고 각 역할에 대해서 설명을 달겠습니다. 방정보 = {} io.on('connection', socket => { socket.on('방접속', 방번호 => { if (방정보[방번호]) { const len = 방정보[방번호].length; // 1:1 통신 구현이라 2명 제한 if (len == 2) { socket.to(socket.id).emit('방인...
WebRTC Zoom 클론 서비스 만들어 보기 © charlesdeluvio, 출처 Unsplash 안녕하세요 예전에는 Zoom SDK 를 활용하여 영상/미디어 통신을 이용한 서비스를 구축테스트 해보았는데 이번에는 WebRTC (Web Real Time Communications)에 대해서 알아보려고합니다. 별도 플러그인이 필요하거나 그런것은 아닙니다. 간단하게 인터넷이 가능한 환경에서 통신하는 서비스를 구축하기 위한 기술입니다. WebRTC의 핵심 인터페이스와 알아야할 것 WebRTC An open framework for the web that enables Real-Time Communications (RTC) capabilities in the browser. webrtc.org 공식 홈페이지에 가면 가이드라인이 있기 때문에 더욱 좋은 자료들이 수두룩 합니다. 먼저 가장 중요한 핵심 메서드에 대해서 알아보도록 하겠습니다. 구현은 통신에 활용할 백단 언어와 프론트단 언어는 개발자의 입맛에 따라서 구현하면 됩니다. 아 잡담이 길었네요 본격적으로 핵심 메서드와 알야아하는 사전 지식을 알아보자! WebRTC 프로토콜 소개 - Web API | MDN 이 글은 WebRTC API에 대한 프로토콜을 소개하기 위해 작성 되었습니다. developer.mozilla.org 솔직히 위의 사이트의 내용을 보면 더더더 이해가 쉽습니다! 핵심 객체...
AJAX ? Axios ? 자신이 편한것을 사용하라! © dell, 출처 Unsplash 처음으로 AJAX (아작스, 에이작스)를 위주로 보통 비동기 통신 작업을 하고 있었던 나로써 새로운 언어에 대해서 공부를 하거나 프로젝트를 구성하다보면 Axios를 많이 사용하는 경우가 있었다. 솔직히 말하면 나는 그런 코드가 있으면 그냥 버리고 Ajax로 최대한 구현을 해버렸지만... "시대의 바뀜에 움직일 줄 알아야한다는 생각으로 액시오스 모듈을 접하기로 마음을 먹었다!" (자료들을 찾아보니 Ajax와 거의 동일하며 내부적인 건 모르지만 외적으로 사용하는 건 거의 완전하게 동일하다) 액시오스 란? Axios Node.js의 "Promise API활용한 비동기 HTTP 통신 라이브러리"입니다. 백엔드와 프로트엔드 ㄷ통신의 효율성을 높이기 위해서 Ajax와 같이 더불어 사용하기 좋은 라이브러리라고 합니다! 특징 XMLHttpRequest, http api(Node.js)로 모두 활용이 가능하며 HTTP 요청 취소, 응답결과를 자동으로 JSON화 액시오스 설치부터 간단하게 사용하는 방법 설치하기 yarn add axios npm install axios 자신의 패키지 관리 툴 입맛에 맞춰서 설치를 하시면 됩니다. 저는 npm을 활용하였지만 yarn으로 설치가 가능합니다! 당연히 자신의 프로젝트가 속한 디렉토리에서 설치를 하셔야합니다 연결하기 imp...
node 프로세스 관리 (nodemon, forever, PM2) 오늘은 Node.js 프로세스 무중단 서비스를 위한 기본 베이스를 알아보려고합니다. 노드 프로세스 관리를 위한 모듈에는 nodemon, forever, pm2가 존재합니다. 원래 기존에는 forever로 관리하다가 관리하면서 시각적으로 보기가 불편하여 pm2로 교체 예정입니다. 또한 제가 PM2를 활용하게된 이유는 지금은 수 천명이지만 추 후에는 수 만명 개발한 모듈을 사용할 것이라고 예측되기때문입니다. 그런 경우를 방지하여 싱글쓰레드인 Node.js를 여러 다중 인스터스로 나누어주려고 쓰는 것 입니다. 실제로 여러개의 instance를 열어주고 난 후 결과를 보지는 못하였지만 일단 안전하게 미리 작업해두려고 합니다. PM2 설치하기 PM2 - Home Advanced process manager for production Node.js applications. Load balancer, logs facility, startup script, micro service management, at a glance. pm2.keymetrics.io 공식홈페이지에 접속하시면 아래 이미지를 보시게됩니다. 설치법은 아주 간단한 npm install 명령어를 활용하여 설치해주시면 됩니다. npm install pm2 -g npm install pm2@latest -g 위의 방식 중...
Flask 활용한 API 만들기 파이썬프로그래밍 © douglasamarelo, 출처 Unsplash 어제 올려드렸어야했는데 여러모로 바쁜듯 안바쁜듯 한 하루였습니다. 그래서 오늘 올리게 되었습니다. 오늘 올리는 자료는 Flask를 활용하여 엔드포인트를 지정하고 메서드 지정 및 파라미터 활용 편 입니다. 간단하면서도 어렵다면 어려운 부분입니다! Python Flask 엔드포인트 만들어보기 이전 포스팅에서 간단하게 / 엔드포인트에 접근 설계를 했었는데 방법은 완벽하게 동일합니다! 기본설계 @app.route('/test1') def test1(): ... @app.route('/test2') def test2(): ... @app.route('/test3') def test3(): ... 이렇게 만들어주면 라우팅이 완벽하게 만들어졌습니다. /test1에 접근하면 def test1()의 기능이 동작할 것 입니다. API를 만들수도 있고 그냥 웹 페이지를 열 수 있습니다. API 생성과 웹 템플릿 읽어들이기 가장 먼저 라이브러리 두 개를 연결해줘야합니다! from flask import render_template from flask import jsonify render_template는 템플릿 폴더를 접근하여 HTML 파일을 열어주는 작업을 담당합니다. jsonify는 데이터를 json화 시켜서 API 작업을 담당합니다. render_...
Flask 설치하기 © artturijalli, 출처 Unsplash 안녕하세요. 오랜만에 파이썬 글을 올리네요!! 오늘은 간단하게 프레임워크를 활용하여 웹 서비스를 만들기 위한 시작편 입니다! Flask를 활용하여 웹 어플리케이션을 만드는 방법에 대해서 알아보려고합니다 오전에는 간단하게 설치하는 방법과 프로젝트 구조에 대해서 알아보고 오후에는 오픈 웹 탬플릿을 올려서 웹 어플리케이션을 만들어보겠습니다. 파이썬 Flask 설치하기 패키지 설치 pip install flask Python 파이프라인을 이용하여 flask를 가볍게 설치해주세요! 프로젝트 만들기 설치가 완료되었으면 간단하게 하나의 껍데기를 만들어보는 시간을 가지겠습니다. from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, Flask' 간단하게 코드를 작성하고 아래의 명령어를 통해서 실행을 시켜보겠습니다! 실행하기 export FLASK_APP=내프로젝트파일.py flask run 실제로 위의 방법도 있지만 프로젝트 자체에 __main__ 에서 app.run()을 활용할 수도 있습니다. app = Flakse(__name__) ... ... ... if __name__ == "__main__": app.run() 저는 첫 번째 방법이 편하여 사용하고 있습니다. 또한 ...
파이썬 남녀노소 누구나 쉽고 빠르게 배우기 안녕하세요 꾹이 입니다. 도서 서평을 받게 되어 처음으로 도서를 읽어보고 포스팅을 올려봅니다. 요새 많은 분야에서 활발하게 활용되는 언어인 Python 관련된 책인데요. 입문서로 내용이 정말 좋은 것 같았습니다. 책은 구독자 30만을 보유하고 있는 코딩 유투버 나도코딩님의 책인데요. 실습 내용으로는 텍스트형을 보여주는 게임 그리고 간단한 계산식을 이용한 계좌 실습을 다루고 있는데요. 기본 입문서에서 나름 탄탄한 내용을 다루고 있는 거 같습니다. 책을 보면서 간단하게 좋았던 부분에 대해서 같이 공유하면서 하나하나 알아가 보겠습니다 나도코딩의 파이썬 입문 책에는 독서를 하는 사람에게 의지를 더해줄 학습 플랜이 잘 다루어지고 있었습니다. 간단한 설치방법부터 그리고 클래스와 예외 처리와 같은 아주아주 중요한 부분까지 아주 잘 나눠져서 구성이 이루어졌습니다. 개인적으로 클래스 부분을 4일에 걸쳐서 괜찮게 나눠서 구성했다는 게 정말 매력적이었습니다. 저 또한 개발을 하다 보면 클래스가 많이 중요하다고 생각이 드는데 이 부분에 대해서 잘 구성한 것 같습니다. 각 장의 시작은 간단한 시작 멘트로 학습에 내용을 간단하게 알아볼 수 있습니다. 시작 전에 가벼운 이해를 통해서 해당 절을 완벽하지는 않겠지만 편하게 숙지할 수 있다고 생각이 드네요. 절의 마지막에는 항상 실습 문제를 구성하여 지루한 부분을 없애는 ...
파이썬 파인콘 하나로 React, Next Pynecone 오늘은 오랜만에 새로운 프레임워크를 소개하려고 합니다. 오늘 소개하는 프레임웍은 Python을 활용하여 만들 수 있는 Framework이며 혁신 그 자체입니다! 저도 공부는 아직 안했지만 자료를 서칭하다가 발견한 엄청난 .. 혁신이네요 (근데 솔직히 아직은 계속된 개발을 진행하고 있는 오픈소스입니다!!) Pynecone 설치해보기 GitHub - pynecone-io/pynecone: Web apps in pure Python. Web apps in pure Python. Contribute to pynecone-io/pynecone development by creating an account on GitHub. github.com 공식 깃의 내용을 발췌하면 파이썬 3.7+ 노드 12.22.0+ 라면 해당 프로젝트를 구성할 수 있다고 합니다. 설치 방법은 pip를 활용하여 설치를 해주시면됩니다. pip install pynecone-io pc init pc run 이제 간단하게 예저 소스를 들춰보겠습니다. 공식 홈페이지의 문서에서 내용을 발췌합니다! https://pynecone.io https://pynecone.io/docs/getting-started/introduction import pynecone as pc class State(pc.State): count: i...
Python 자연어 처리 머신러닝 딥러닝 © johnschno, 출처 Unsplash 오늘은 파이썬의 머신러닝과 딥러닝을 알아보도록 하겠습니다. 머신러닝에 딥러닝이 포함되어 있으며 가볍게 표현하면 규칙을 잡아서 해당 규칙을 분석하여 어떠한 결과를 도출해서 모델을 만드는 것이라고 보시면 됩니다! 서두는 가볍게 이 정도까지만 각설하고 간단하게 검증 하는 과정에 대한 이론과 간단한 용어들에 대해서 정리해보겠습니다! 모델을 만드는 과정 © kellysikkema, 출처 Unsplash 데이터를 분류하는 작업을 가장 먼저 해야하는데 데이터는 작게는 2가지 크게는 3가지로 분류하게 됩니다. 트레이닝 데이터 검증 데이터 / 테스트 데이터로 머신러닝의 재료를 만들어 줍니다. 모델은 일단 트레이닝 데이터를 활용하여 기본적인 훈련을 진행시키고 검증 데이터를 활용하여 튜닝여부를 판단하게 됩니다. 튜닝을 하는 이유는 성능을 더 올리기 위해서 하는 행동입니다. 하지만 이렇게 모델을 만들어도 완벽한 결과를 만들 수 는 없습니다. 그래도 꼭 튜닝은 해줘야합니다 튜닝을 하게 되는 이유는 크게 회귀와 분류에 의해서 발생하는 문제를 고치기 위한 행동이라고 보시면 됩니다. 튜닝을 해야하는 이유인 문제의 종류 연속된 범위의 결과를 예측하는 결과의 문제 회귀 어떠한 문제에서 결과를 선택하는 과정의 문제 분류 나는 위의 두 가지 문제에 대해서 차차 학습할 예정이고 보통은 ...
파이썬 토네이도 웹 소켓 서버 © cgower, 출처 Unsplash 오랜만에 개발 포스팅입니다. 오늘은 웹 소켓 서버를 파이썬 토네이도 웹 프레임워크를 활용하여 구성해보겠습니다. 웹 소켓 서버 만들기 위한 전처리 import tornado.websocket import tornado.ioloop import tornado.web 웹소켓 서버 코드 #import datetime import tornado.httpserver import tornado.websocket import tornado.ioloop import tornado.web def app(): #WebScoket Server class WSHandler(tornado.websocket.WebSocketHandler): clients = [] def open(self): self.write_message("Hello") WSHandler.clients.append(self) def on_message(self, message): self.write_message('Msg : ' + message) def on_close(self): WSHandler.clients.remove(self) @classmethod def writeToClients(cls): for client in cls.clients: client.write_message("Hi") return torna...
Flask 활용한 API 만들기 파이썬프로그래밍 © douglasamarelo, 출처 Unsplash 어제 올려드렸어야했는데 여러모로 바쁜듯 안바쁜듯 한 하루였습니다. 그래서 오늘 올리게 되었습니다. 오늘 올리는 자료는 Flask를 활용하여 엔드포인트를 지정하고 메서드 지정 및 파라미터 활용 편 입니다. 간단하면서도 어렵다면 어려운 부분입니다! Python Flask 엔드포인트 만들어보기 이전 포스팅에서 간단하게 / 엔드포인트에 접근 설계를 했었는데 방법은 완벽하게 동일합니다! 기본설계 @app.route('/test1') def test1(): ... @app.route('/test2') def test2(): ... @app.route('/test3') def test3(): ... 이렇게 만들어주면 라우팅이 완벽하게 만들어졌습니다. /test1에 접근하면 def test1()의 기능이 동작할 것 입니다. API를 만들수도 있고 그냥 웹 페이지를 열 수 있습니다. API 생성과 웹 템플릿 읽어들이기 가장 먼저 라이브러리 두 개를 연결해줘야합니다! from flask import render_template from flask import jsonify render_template는 템플릿 폴더를 접근하여 HTML 파일을 열어주는 작업을 담당합니다. jsonify는 데이터를 json화 시켜서 API 작업을 담당합니다. render_...
Flask 설치하기 © artturijalli, 출처 Unsplash 안녕하세요. 오랜만에 파이썬 글을 올리네요!! 오늘은 간단하게 프레임워크를 활용하여 웹 서비스를 만들기 위한 시작편 입니다! Flask를 활용하여 웹 어플리케이션을 만드는 방법에 대해서 알아보려고합니다 오전에는 간단하게 설치하는 방법과 프로젝트 구조에 대해서 알아보고 오후에는 오픈 웹 탬플릿을 올려서 웹 어플리케이션을 만들어보겠습니다. 파이썬 Flask 설치하기 패키지 설치 pip install flask Python 파이프라인을 이용하여 flask를 가볍게 설치해주세요! 프로젝트 만들기 설치가 완료되었으면 간단하게 하나의 껍데기를 만들어보는 시간을 가지겠습니다. from flask import Flask app = Flask(__name__) @app.route('/') def hello(): return 'Hello, Flask' 간단하게 코드를 작성하고 아래의 명령어를 통해서 실행을 시켜보겠습니다! 실행하기 export FLASK_APP=내프로젝트파일.py flask run 실제로 위의 방법도 있지만 프로젝트 자체에 __main__ 에서 app.run()을 활용할 수도 있습니다. app = Flakse(__name__) ... ... ... if __name__ == "__main__": app.run() 저는 첫 번째 방법이 편하여 사용하고 있습니다. 또한 ...
파이썬 남녀노소 누구나 쉽고 빠르게 배우기 안녕하세요 꾹이 입니다. 도서 서평을 받게 되어 처음으로 도서를 읽어보고 포스팅을 올려봅니다. 요새 많은 분야에서 활발하게 활용되는 언어인 Python 관련된 책인데요. 입문서로 내용이 정말 좋은 것 같았습니다. 책은 구독자 30만을 보유하고 있는 코딩 유투버 나도코딩님의 책인데요. 실습 내용으로는 텍스트형을 보여주는 게임 그리고 간단한 계산식을 이용한 계좌 실습을 다루고 있는데요. 기본 입문서에서 나름 탄탄한 내용을 다루고 있는 거 같습니다. 책을 보면서 간단하게 좋았던 부분에 대해서 같이 공유하면서 하나하나 알아가 보겠습니다 나도코딩의 파이썬 입문 책에는 독서를 하는 사람에게 의지를 더해줄 학습 플랜이 잘 다루어지고 있었습니다. 간단한 설치방법부터 그리고 클래스와 예외 처리와 같은 아주아주 중요한 부분까지 아주 잘 나눠져서 구성이 이루어졌습니다. 개인적으로 클래스 부분을 4일에 걸쳐서 괜찮게 나눠서 구성했다는 게 정말 매력적이었습니다. 저 또한 개발을 하다 보면 클래스가 많이 중요하다고 생각이 드는데 이 부분에 대해서 잘 구성한 것 같습니다. 각 장의 시작은 간단한 시작 멘트로 학습에 내용을 간단하게 알아볼 수 있습니다. 시작 전에 가벼운 이해를 통해서 해당 절을 완벽하지는 않겠지만 편하게 숙지할 수 있다고 생각이 드네요. 절의 마지막에는 항상 실습 문제를 구성하여 지루한 부분을 없애는 ...
파이썬 파인콘 하나로 React, Next Pynecone 오늘은 오랜만에 새로운 프레임워크를 소개하려고 합니다. 오늘 소개하는 프레임웍은 Python을 활용하여 만들 수 있는 Framework이며 혁신 그 자체입니다! 저도 공부는 아직 안했지만 자료를 서칭하다가 발견한 엄청난 .. 혁신이네요 (근데 솔직히 아직은 계속된 개발을 진행하고 있는 오픈소스입니다!!) Pynecone 설치해보기 GitHub - pynecone-io/pynecone: Web apps in pure Python. Web apps in pure Python. Contribute to pynecone-io/pynecone development by creating an account on GitHub. github.com 공식 깃의 내용을 발췌하면 파이썬 3.7+ 노드 12.22.0+ 라면 해당 프로젝트를 구성할 수 있다고 합니다. 설치 방법은 pip를 활용하여 설치를 해주시면됩니다. pip install pynecone-io pc init pc run 이제 간단하게 예저 소스를 들춰보겠습니다. 공식 홈페이지의 문서에서 내용을 발췌합니다! https://pynecone.io https://pynecone.io/docs/getting-started/introduction import pynecone as pc class State(pc.State): count: i...
협업툴을 사용하는 이유는 무엇일까? 처음 접하게되면 어렵지만 사용하다보면 일의 능률도 올라가고 팀원들과의 소통을 극대화 할 수 있는 도구입니다. 많은 업종에서 활용중이며 저와 같은 개발자들도 슬랙 노션 그리고 플로우와 같은 도구를 활용하여 소통을 하고 정보를 공유합니다. Slack 이란? 가볍게 생각하면 네이버라인/카카오의 카카오톡과 같은 메신저 협업 도구입니다. 개인, 회사 누구나 손 쉽게 활용이 가능하며 슬렉 API를 활용하여 컨플-지라와 연동하여 많이 활용합니다. 간단하게 워크스페이스를 생성하고 처음 시작 과정에서 채널생성까지 간단하게 알려줍니다. 무료와 유료로 나뉘며 개인이 가볍게 쓰고자하는 경우 굳이 유료버전을 사용하실 필요는 없습니다. DM(다이렉트 메시지)를 통해서 특정 팀원과 메시지 기능과 댓글 기능은 기본이기에 패스하고 채널을 간단하게 생성하고 설정한느 방법에 대해서 살펴보겠습니다! Slack 에서는 채널을 필요에 따라 생성이 가능하고 채널 생성 시 공개/비공개 형태로 구성이 가능합니다. 즐겨찾기는 채널에만해당하는게 아니고 DM에도 역시 동일하게 적용이 가능하여 주 업무를 같이하는 동료의 DM은 상위로 올려둘 수 있습니다. 회사마다 다르겠지만 제가 다녔던 회사들은 슬렉은 단순 메시지 협업툴로 활용하고 컨플루언스의 지라를 연동하여 업무의 스케줄을 올리고 작업을 했습니다. 하지만 캔버스를 활용하면 특정 채널을 통하여 간단...
화이트 싱글모니터암 에이스럭스 AL-ARM3 사용기 좋은 기회가 생겨 모니터암을 체험하고 사용할 수 있었습니다. 오늘 직접 사용하면서 느낀 에이스럭스 AL-ARM3 살펴보도록 하겠습니다. 먼저 에이스럭스라는 회사는 뭐하는 회사일까? 여러가지 관절 제품을 만들어서 판매하는 업체입니다. 우리가 대부분 아는 타사 모니터 암도 존재하지만 직접 사용함녀서 느낀 점은 모니터암이 조금더 자유롭다고 생각이 들었습니다. 싱글모니터암 뚝딱 뚝딱 간단한 설치 제품을 열어보면 간단하게 설치하는 방법이 있습니다. 자신의 책상 타입에 맞춰 두 가지 방식을 제공하고 있는데요. 하나는 홀을 만들어서 체결하는 방식 또 하나는 홀 없이 체결하는 방식을 제공합니다. 저와 같은 경우 싱글모니터암 에이스럭스의 AL-ARM3을 홀 없이 체결하는 방식을 사용하였습니다. 구성품은 이와 같습니다. 화이트색상의 싱글모니터암이라 제가 사용하고 있는 모니터와 완전 잘 어울릴 거 같네요! 구성품이 그렇게 복잡하지는 않아서 여성분도 쉽게 설치가 가능할 거라 생가됩니다. 모니터 후면 부분에 맞춰서 체결하는 부분과 그리고 책상과 연결하는 부분은 간단하게 뚝딱 조립이 가능합니다. AL-ARM3 싱글모니터암 같은 경우는 32인치 모니터까지가 권장 옵션이였습니다. 실제 무게가 적혀있는데 꼭 참고하여 체결해주셔야합니다! 모니터 가변조절을 통해서 모니터를 잘 고정시킬 수 있습니다. 저는 이 가변조절...
사무용 키보드추천 소음이 적은 지클릭커 블루투스키보드 오피스프로 WK50 오랜만에 좋은 기회가 생겨서 키보드 리뷰를 하게되었습니다. 체험하게된 키보드는 맴브레인 방식의 무소음 키보드입니다. 다양한 키보드 색상 지클릭커 블루투스키보드 오피스프로 WK50같은 경우는 총 6가지 색상 버전의 키보드가 있습니다. 초록색 파스텔톤 색상의 키보드와 연보라색과 파란색의 조화를 이루는 버전 그리고 강한 블루와 빨간색이 조화를 이루는 버전으로 구성되어 있습니다. 저와 같은 경우는 따뜻한 느낌을 받는 파스텔톤 초록색의 구성인 제품을 체험하게 되었습니다. 다양한 LED 설정 총 2가지의 LED 모드와 7가지의 색상을 지원하고있습니다. fn + 5(상단 숫자)를 이용하여 모드를 전환할 수 있습니다. (ON / OFF / BREATH MODE) fn + 6을 이용하여 총 7가지의 색상을 활용할 수있습니다. Window 와 Mac별 키보드 설정 / 12가지 멀티미디어 키 OS 환경에 따라서 키보드의 역할을 수행할 수 있습니다. Window OS 와 Mac OS에서 사무용 블루투스키보드 오피스프로 WK50은 자유롭게 호환됩니다. 저와 같은경우는 집에서 개발작업시에는 Mac을 사용하고 회사에서는 Window를 활용하는데 상황에 따라 호환이 잘되어 사용하기 좋았습니다. 3단계 높이 조절기능 책상과 의자의 상황에 맞춰 오피스프로 WK50을 자유롭게 조정이 가능합니다....
사무용 키보드추천 소음이 적은 지클릭커 블루투스키보드 오피스프로 WK50 오랜만에 좋은 기회가 생겨서 키보드 리뷰를 하게되었습니다. 체험하게된 키보드는 맴브레인 방식의 무소음 키보드입니다. 다양한 키보드 색상 지클릭커 블루투스키보드 오피스프로 WK50같은 경우는 총 6가지 색상 버전의 키보드가 있습니다. 초록색 파스텔톤 색상의 키보드와 연보라색과 파란색의 조화를 이루는 버전 그리고 강한 블루와 빨간색이 조화를 이루는 버전으로 구성되어 있습니다. 저와 같은 경우는 따뜻한 느낌을 받는 파스텔톤 초록색의 구성인 제품을 체험하게 되었습니다. 다양한 LED 설정 총 2가지의 LED 모드와 7가지의 색상을 지원하고있습니다. fn + 5(상단 숫자)를 이용하여 모드를 전환할 수 있습니다. (ON / OFF / BREATH MODE) fn + 6을 이용하여 총 7가지의 색상을 활용할 수있습니다. Window 와 Mac별 키보드 설정 / 12가지 멀티미디어 키 OS 환경에 따라서 키보드의 역할을 수행할 수 있습니다. Window OS 와 Mac OS에서 사무용 블루투스키보드 오피스프로 WK50은 자유롭게 호환됩니다. 저와 같은경우는 집에서 개발작업시에는 Mac을 사용하고 회사에서는 Window를 활용하는데 상황에 따라 호환이 잘되어 사용하기 좋았습니다. 3단계 높이 조절기능 책상과 의자의 상황에 맞춰 오피스프로 WK50을 자유롭게 조정이 가능합니다....
태블릿 처음 사용해보는 아이패드 에어로 시작해보자! 살면서 태블릿 랩톱 제품을 한 번도 사용해보지 않았는데 아내와 처음으로 구매했습니다. 제품을 선택하는 과정에 고민이 많았지만 애플사의 제품에서 고민이라 선택의 폭이 그렇게 많지는 않았습니다! 두 가지 라인에서 고민을 하고 있습니다. 아이패드 에어5, 프로 11인치 에서 고민을 하다가 에어 5세대를 구매했습니다. 색상은 밝은 색상으로 선택하였습니다. 애플 제품을 저는 그렇게 많이 좋아한다 싫어한다 그렇지 않았는데 회사에서 맥북을 사용하면서 애플 제품에 빠지게 된 거 같아요 처음 사용하는 과정에서 불편한 점도 많았지만 사용하다보면 점점 활용성이 높은 거 같습니다. 맥북 프로와 에에와 아이폰과 함께 찰칵 찍어보았습니다. 액정이 다치지 않게 기스가지 않도록 가볍게 종이로 말려있느 느낌? 조심스레 열어보니 정말 .. 이제 실감이 나는 거 같아요. 이게 태블릿이구나. 직접 사용해보는게 처음이라 더 감격스러웠습니다 ㅎㅎ 구성품으로는 충전단자와 충전기가 포함되어 있으며 특유의 아이패드 애플 스티커가 같이 포함되어 있습니다! 그리고 애플 생태계를 이끌어가기 위해서 필요한 악세사리의 가격들은 정말 어마어마하지만 꼭 필요해서 구매했습니다. 2세대 팬슬 정품으로 구매를 했어요. 구매는 쿠팡으로 했는데 정말 배송도 하루만에 해주고 정말 좋은 거 같습니다! 팬슬의 충전방식은 엄청 신기하게 아이패드 에어5세대...
제닉스 버티컬마우스 STORMX VM4 BT 직장인 마우스 추천 안녕하세요 희망파파 꾹 입니다. 오늘은 직장인분들이 편하게 손목을 보호할 수 있는 버티컬마우스 사용기에 대해서 작성하려고 합니다. 제닉스 제품으로 이번년도 10월28일에 출시한 신제품인데 기회가 생겨 7일간 사용한 후기입니다. 기대되는 마음으로 박스를 살포시 열어서 마우스를 확인해보도록 하겠습니다. 저는 위에서 말했듯이 일반마우스를 사용하던터라 벌써 두근두근하네요. 그립감이 처음이라 익숙하지는 않지만 신기한 거 같았습니다. 직장인들에게 많이 발생하는 손목터널증후군과 VDT 증후군에 효과적이라고 하니 한번 열심히 써보려고합니다. 직장인이 사용하기 처음 적응이 어려울 수 있지만 추천합니다! 제닉스 STORMX VM4 BT 버티컬마우스와 같은 경우 인체공학 디자인으로 55도 각도 디자인으로 손목 부담을 완화하고 피로도를 완화하는데 도움이 될 수 있도록 디자인되었다고 합니다. 추가적인 특징으로 상단부에 DPI 및 배터리 잔량 그리고 현재 연결된 모드에 대해서 표기가 이루어진다는 점 또한 소프트웨어를 사용하면 DPI 설정을 최대 8,000 까지 올려서 사용이 가능하다고 합니다. 저와 같은 경우 저감도 유저는 800~1600 정도면 충분하지만 고 감도 유저라면 더 높은 DPI를 추가하여 스톰엑스 버티컬마우스를 운용하실 수 있습니다. https://www.xenics.co.kr/bo...
화이트 싱글모니터암 에이스럭스 AL-ARM3 사용기 좋은 기회가 생겨 모니터암을 체험하고 사용할 수 있었습니다. 오늘 직접 사용하면서 느낀 에이스럭스 AL-ARM3 살펴보도록 하겠습니다. 먼저 에이스럭스라는 회사는 뭐하는 회사일까? 여러가지 관절 제품을 만들어서 판매하는 업체입니다. 우리가 대부분 아는 타사 모니터 암도 존재하지만 직접 사용함녀서 느낀 점은 모니터암이 조금더 자유롭다고 생각이 들었습니다. 싱글모니터암 뚝딱 뚝딱 간단한 설치 제품을 열어보면 간단하게 설치하는 방법이 있습니다. 자신의 책상 타입에 맞춰 두 가지 방식을 제공하고 있는데요. 하나는 홀을 만들어서 체결하는 방식 또 하나는 홀 없이 체결하는 방식을 제공합니다. 저와 같은 경우 싱글모니터암 에이스럭스의 AL-ARM3을 홀 없이 체결하는 방식을 사용하였습니다. 구성품은 이와 같습니다. 화이트색상의 싱글모니터암이라 제가 사용하고 있는 모니터와 완전 잘 어울릴 거 같네요! 구성품이 그렇게 복잡하지는 않아서 여성분도 쉽게 설치가 가능할 거라 생가됩니다. 모니터 후면 부분에 맞춰서 체결하는 부분과 그리고 책상과 연결하는 부분은 간단하게 뚝딱 조립이 가능합니다. AL-ARM3 싱글모니터암 같은 경우는 32인치 모니터까지가 권장 옵션이였습니다. 실제 무게가 적혀있는데 꼭 참고하여 체결해주셔야합니다! 모니터 가변조절을 통해서 모니터를 잘 고정시킬 수 있습니다. 저는 이 가변조절...
사무용 키보드추천 소음이 적은 지클릭커 블루투스키보드 오피스프로 WK50 오랜만에 좋은 기회가 생겨서 키보드 리뷰를 하게되었습니다. 체험하게된 키보드는 맴브레인 방식의 무소음 키보드입니다. 다양한 키보드 색상 지클릭커 블루투스키보드 오피스프로 WK50같은 경우는 총 6가지 색상 버전의 키보드가 있습니다. 초록색 파스텔톤 색상의 키보드와 연보라색과 파란색의 조화를 이루는 버전 그리고 강한 블루와 빨간색이 조화를 이루는 버전으로 구성되어 있습니다. 저와 같은 경우는 따뜻한 느낌을 받는 파스텔톤 초록색의 구성인 제품을 체험하게 되었습니다. 다양한 LED 설정 총 2가지의 LED 모드와 7가지의 색상을 지원하고있습니다. fn + 5(상단 숫자)를 이용하여 모드를 전환할 수 있습니다. (ON / OFF / BREATH MODE) fn + 6을 이용하여 총 7가지의 색상을 활용할 수있습니다. Window 와 Mac별 키보드 설정 / 12가지 멀티미디어 키 OS 환경에 따라서 키보드의 역할을 수행할 수 있습니다. Window OS 와 Mac OS에서 사무용 블루투스키보드 오피스프로 WK50은 자유롭게 호환됩니다. 저와 같은경우는 집에서 개발작업시에는 Mac을 사용하고 회사에서는 Window를 활용하는데 상황에 따라 호환이 잘되어 사용하기 좋았습니다. 3단계 높이 조절기능 책상과 의자의 상황에 맞춰 오피스프로 WK50을 자유롭게 조정이 가능합니다....
오늘 사용해본 제품은 바로 만원대에 저렴하게 구매가 가능한 무소음 블루투스마우스 지클릭커 휘낭시에 오피스프로 OP04 3WAY 입니다. 해당 제품은 소음이 적고 작고 가볍고 손이 작은 사람에게는 딱 맞아서 사용하기가 편한 무선 제품입니다. 이외에도 2.4Ghz를 사용하여 USB를 활용한 블루투스 연결이 힘든 경우 2.4Ghz 리시버를 활용하여 선 없이도 연결이 가능한 블루투스마우스 입니다. 건전지를 넣어서 활용하는 제품으로 충전이 따로 필요없습니다. AA건전지를 넣어서 해당 제품을 활성화하여 여러가지 기기와 연결할 수 있습니다. 건전지 사용량을 줄이기 위해서 자동 절전 모드를 제공하고 있습니다. 마우스의 입력이 일정 시간 동안 없을때 스스로 절전에 빠지됩니다. 다시 활성화를 하는 방법은 간단하게 마우스를 클릭해주시면 됩니다. 왜 지클릭커 휘낭시에 마우스라고 불릴까? 우리가 맛있게 카페에서 먹는 휘낭시에를 닮았다 하여 지클릭커의 무소음마우스는 휘낭시에라는 별명을 가지고 있습니다. 멀리 이동하거나 가볍게 카페에서 작업하는 경우라면 주머니에 쏙 넣어서 다니면 될 거 같습니다. 1600DPI이며 준수한 반응속도를 자랑하는 거 같습니다. 총 4가지 컬러로 구성되어 있는데요. 저는 하얀색 지클릭커 검은색 블루투스마우스 2개를 활용해보았습니다. 무게도 가볍게 구성되고 인체공학 설계로 제작되어 오랜시간 사용해도 피로하지 않다고합니다. 회사에서 가볍...