오몰내알 데엔

개발/개발 지식

asyncio 완전 정복 - 1

비동기란? asyncio를 알기 전에 먼저 비동기에 대해서 먼저 알아야 한다. 사실 우리는 대부분 비동기적으로 행동하고 있다. 만약 요리와 세탁과 TV 시청을 한다고 해보자. 아마 대부분 세탁이 다 될 때까지 기다렸다가 세탁이 끝나면 요리를 하고, 요리가 끝나면 TV를 보는 비효율적인 인생을 살지 않을 것이다. 모든 사람들이 세탁기를 돌려놓고 요리를 하면서 TV를 볼 것이다. 바로 이것이 비동기의 핵심이다. 컴퓨터에서 비동기는 여러 작업을 동시에 하는 것과 같은 행동을 하는 것이다. asyncio란? asyncio는 이러한 비동기 방식을 파이썬에서 사용할 수 있도록 하는 라이브러리이다. asyncio는 기본적으로 이벤트 루프와 코루틴이라는 개념 위에서 동작하는데 이에 대해서 정확하게 알아야 asyncio..

개발/개발 지식

Anaconda와 JupyterLab 알아보기

"Conda로 가상환경 만들어서 주피터 커널에 띄워서 JupyterLab 환경에서 프로젝트 진행하시면 돼요" 새로 인턴을 시작한 회사에서 프로젝트를 위해 환경을 세팅하였다. 특히 데이터 탐색에 가장 필수적인 주피터 노트북을 로컬에 깔고 업무를 진행하였는데, 그렇게 진행하면 나중에 고생한다는 충고와 함께 위와 같이 설명해주셨다. 주피터 노트북으로 프로젝트를 꽤 해보았는데 저 정도 설명도 못알아듣는다는게 뭔가 굉장히 현.타가 왔다. 내가 정말 이 둘을 잘 모르고 썼구나라는 생각이 들었다. 그래서 이번 포스팅에서는 아나콘다와 주피터 노트북에 대해서 제대로 정리하는 글을 써보려고 한다. Anaconda란? 만약 서로 다른 프로젝트인데 각자에게 필요한 라이브러리가 한 공간에 모두 설치되어 있다면 어떨까? 이에 대..

개발/개발 지식

파이썬 DB 커넥터(psycopg2) 간단한 사용법/executor과 commit 차이

mysql이나 postgresql을 사용할 때 데이터베이스에 연결을 하기 위해서는 커넥터를 사용해야 한다. mysql에서는 pymysql, postgresql에서는 psycopg2가 대표적인 커넥터이다. 오늘은 이러한 파이썬 DB 커넥터의 간단한 사용방법과 그 과정에서 헷갈릴 수 있는 부분을 정리해보려 한다. 간단한 사용법 이 포스팅에서는 psycopg2를 이용하여 postgresql에 접근하는 방법에 대해 설명하려 한다. 그 동안 pymysql을 사용해보기는 했지만 postgresql을 사용해본 적이 없기도 하고, 글을 작성하면서 나 또한 postgresql과 psycopg2를 사용하는 방법을 숙지하려고 한다. 우선 psycopg2가 설치되어있다는 가정하에(설치는 간단하게 pip install psyc..

개발/개발 지식

NFS란? 정의/장단점

NFS Network File System. 네트워크 파일 시스템 NFS란 네트워크 상에서 다른 컴퓨터의 파일 시스템을 마운트해서 공유하는 것이다. 즉, 다른 컴퓨터의 파일 시스템을 마치 자기 것처럼 사용할 수 있는 것이다. 위 그림을 보면 더욱 이해가 쉬울 것이다. 그림 그대로 자신의 서버에 저장하는 것이 아니라 큰 용량을 가지고 있는 다른 서버에 데이터를 저장하는 것이다. NFS의 장단점 장점 여러 사용자들이 파일을 공유하는데 유용하게 사용된다. 예를 들어, 여러 명의 사용자가 한 프로젝트에 참여하고 있는 경우, (흔히 NFS 공유라고 알려진) NFS 파일 시스템의 공유 디렉토리를 사용하여 마운트된 /myproject 디렉토리 안에 프로젝트에 사용되는 파일을 저장하여 함께 사용 가능하다. 단점 아무래..

개발/개발 지식

REST vs Websocket - 차이/작동방식/적절한 비유

글 작성 배경 이번에 비트코인 관련 프로젝트를 하면서 API를 사용할 일이 생겼다. 이 과정에서 시세 데이터를 수신하는 API를 사용하려고 하였는데, REST와 Websocket 두 방식을 지원하고 있었다. 둘의 차이를 어렴풋이 알고는 있지만 개념을 확실히 하기 위해 둘의 차이를 비교해보려 한다. 가장 큰 차이 결론부터 말하자면 둘의 가장 큰 차이는 접속을 유지하는지이다. REST 작동방식 가장 많이 사용하는 API 방식이다. 브라우저로 웹사이트를 접속하는 것을 생각하면 쉽다. 주소를 입력하고 엔터를 치면(요청) 해당 주소의 서버가 응답하여 웹사이트 띄워준다. REST 방식의 특징은 한 번 요청하고 내용이 뜨면 그 내용이 변하지 않는다. 최신 정보를 받기 위해서는 계속해서 새로고침을 해야하는 것이다. 주..

개발/개발 지식

Vagrant 어떤 용도일까? 정의/사용이유/Docker와 비교

어떻게 알게되었나 쿠버네티스를 배우면서 Vagrant(이하 베이그런트)를 통해 쿠버네티스 환경을 설정하였다. 베이그런트가 가상머신에 쿠버네티스 환경을 자동으로 한 번에 설치해주는 것까지는 알겠는데, 정확히 어떤 용도로 쓰이는 툴이며 무슨 역할을 담당하는지 호기심이 생겼다. 이번 포스팅에서는 베이그런트란 무엇인지, 구체적으로 어떤 용도로 쓰이는 지를 알아보려고 한다. Vagrant란 Vagrant는 단일 워크플로우에서 가상 시스템 환경을 구축하고 관리하기 위한 도구입니다. 사용하기 쉬운 워크플로우와 자동화에 중점을 둔 Vagrant는 개발 환경 셋업 시간을 단축하고 프로덕션 패리티를 높이며 "내 시스템에서 작업"을 과거의 것으로 간주합니다. 베이그런트 공식 홈페이지에서 베이그런트에 대한 설명은 위와 같다...

오몰내알
'개발/개발 지식' 카테고리의 글 목록