본문 바로가기

app

(154)
Git Push ERROR: Repository not found - mac을 기준으로 작성하였습니다. * 정답이 아닐 수 있습니다. 저의 해결 방안을 적었습니다. github에서 오랫동안 비밀번호를 사용했으니 보안을 위해 바꿔달라는 메일에 선뜻 비밀번호를 바꾸면서 시작되었습니다. 당연히 연동되어 있던 sourcetree, 터미널의 git계정은 당연히 연동이 안되지요. sourcetree의 계정 정보도 삭제 후 다시 등록하고, git의 'git config --global' 명령어를 통해 ".gitconfig"의 내용을 모두 바꿨음에도 레포지토리의 모든 권한이 막혔었습니다. 저의 경우 키체인 삭제를 통해 기존의 내용을 삭제함으로써 해결되었습니다. (키체인 삭제 전에 위의 git config를 다시 설정해 보세요.) 1. 키체인 접근을 선택합니다. 2. 검색에 git을 ..
[python] 서버를 만들어보자(1) echo-server 소켓 프로그램이 네트워크에서 데이터를 송수신할 수 있도록, “네트워크 환경에 연결할 수 있게 만들어진 연결부”가 소켓이며, 소켓은 일반적으로 클라이언트 및 서버 상호작용에 사용됩니다. 보통 OSI 7 Layer(Open System Interconnection 7 Layer)의 네 번째 계층인 TCP(Transport Control Protocol) 상에서 동작하는 소켓을 주로 사용하는데, 이를 "TCP 소켓" 또는 "TCP/IP 소켓"이라고 부릅니다. (UDP에서 동작하는 소켓은 "UDP 소켓"이라고 합니다.) - 해당 포스트에서는 TCP 소켓을 다룹니다. 소켓의 실행 흐름 서버 1. socket() API가 통신을 위한 종료점을 작성하고 소켓 객체를 리턴한다. 2. Bind() 네트워크 엑세스를 위해..
[python] 서버의 기본 동작 방식 2 - 내용이 길어서 두개로 나눴습니다. 전편을 읽고 오는게 도움이 됩니다. - 해당 글은 python 3.6을 기준으로 작성하였습니다. 앞써 서버의 시작과 유저의 요청을 받기 위해 어떠한 동작들이 일어나는지 살펴 보았습니다. 그러면 유저가 요청을 보냈을 때 서버에서는 어떠한 동작들이 일어나는걸까요? 4. 포트에서 request까지 다시 공식 문서를 보시면 https://docs.python.org/3.6/library/http.server.html """ class http.server.BaseHTTPRequestHandler(request, client_address, server) This class is used to handle the HTTP requests that arrive at the se..
[python] 서버의 기본 동작 방식 - 해당 글은 python 3.6을 기준으로 작성하였습니다. - mac 환경에서 작성하였으며, 다른 운영체제에서는 다르게 동작할 수 있습니다. 1. 유저 요청에서 서버까지 브라우저를 통해 사이트를 접속하면 위의 그림과 같이 (1) 유저는 서버에 요청을 보내고 (2) 서버에선 요청을 받아 처리한 후 (3) 응답 메시지를 유저에게 전달하고 (4) 브라우저는 우리에게 화면을 보여준다 유저들의 간단한 url 입력만으로 위의 동작이 발생하며, 세부적으론 http의 통신 규약 , DNS탐색, 라우터 통신, 응답받은 데이터를 통한 브라우저의 디스패치, 랜더링의 많은 일들이 일어나게 됩니다. 이러한 많은 일들을 뒤로하고 우리의 백엔드 개발자들은 다양한 프레임워크를 통해 서버를 쉽게 구동하고, 웹서버를 실행하여 유저에게..
python heap 구현 소스 # -*- coding: utf-8 -*- class Heap: def __init__(self): self.arr = [] def reheap_down(self, idx): if (idx*2) + 1 right: large = idx * 2 + 1 else: large = idx * 2 + 2 if self.arr[idx] < self.arr[large]: self.arr[idx], self.arr[large] = self.arr[large], self.arr[idx] self..
python zen (계속 갱신중) 1. get list element in a list of tuples a = [(1, u'abc'), (2, u'def')] # 기존 방법 def _seperate(l_wstnid_and_weight): l_wstnid, l_weight = [], [] for k, w in l_wstnid_and_weight: l_wstnid.append(k) l_weight.append(w) return l_wstnid, l_weight print(_seperate(a)) # 간략하고 쉽게 unzip = list(zip(*a)) print((unzip[0], unzip[1])) 2. zip a = dict(one=1, two=2, three=3) b = {'one': 1, 'two': 2, 'three': 3} c ..
python datetime / date from datetime import datetime, timedelta import pytz # 현재 시간 now = datetime.now() print(now) # 시간 지정 생성 set_datetime = datetime.strptime('2019-12-31 00:00:00', '%Y-%m-%d %H:%M:%S') print(set_datetime) # datetime to date set_date = datetime.strptime('2019-12-31 00:00:00', '%Y-%m-%d %H:%M:%S').date() print(set_date) # 정각으로 설정하기 datetime.combine(now, datetime.min.time()) # 시간 더하기 뺴기 before = now - ..
pycharm 프로젝트 시작시 venv 셋팅 python 프로젝트를 할때마다 환경 설정이 다르기 때문에 (python 버전이나 설치 패키지들.) virtualenv 모듈을 통해 가상환경을 만들어 줘야 합니다. 해당 포스팅은 pycharm에서의 virtualenv 셋팅에 대한 글입니다. (mac 환경에서 진행하였으며, python3.7 / pip3 를 기본으로 하였습니다.) 0. pycharm에서 가상환경 생성하기(생성 및 적용까지 빠르게 하기) pycharm-> preferences -> project -> python interpreter -> 인터프린터 선택에서 show all 클릭!! add (+) 버튼 클릭 new environment 에서 원하는 경로로 설정하고 OK! 끝! 0. pip 패스 설정 (pip가 동작 안할때) 더보기 먼저 하단..