다시 시작 Tap to restart 386

윈도우10 창 크기 자동 조절 끄기

윈도우에서는 Ctrl을 누른채 방향키를 누르면 창 크기가 자동으로 조절된다. Ctrl + ← 누르면 창이 왼쪽으로 맞춰지는 식이다. 이게 편할 수도 있지만 불편할 수도 있다. 특히 맥을 쓰는 사람이라면 아주 불편하다. 맥에서는 커맨드키 + 방향키 ← 를 누르면 Home키 기능처럼 문장의 맨 앞으로 이동하기 때문이다. 자기도 모르게 누르게 되고 그때마다 창이 움직여서 아주 불편하다. 자동 창 크기 조절 끄기. 설정에서 멀티태스킹이라고 검색한다 멀티태스킹 설정 화면에서 여러 창으로 작업 창 맞춤 기능을 끈다. 끄고 나면 더이상 작동하지 않는다.

Q. Colab에서는 왜 상대경로 지정이 잘 안 될까?

A. 현재 작업 디렉터리가 '/content'이기 때문이다. 주피터 노트북 파일을 Colab에서 열었고, 노트북 파일과 같은 위치에 데이터 파일이 있다. 그래서 아래처럼 코드를 작성했다. df_train = pd.read_csv('./train.txt', encoding='utf-8') df_train 파일을 찾을 수 없다는 에러가 난다. df_train = pd.read_csv('train.txt', encoding='utf-8') df_train 위처럼 해봐도 에러가 난다. 그 이유는 현재 작업 디렉터리가 주피터 노트북 파일이 있는 디렉터리가 아니기 때문이다. 현재 작업 디렉터리를 확인할 수 있는 getcwd()로 확인해보자. os.getcwd() /content 가 현재 작업 디렉터리라는 것을 알 ..

판다스pandas에서 데이터를 한 줄row씩 읽어와서 기존 값을 바탕으로 새 값을 새 칼럼에 넣기

이름 국어 수학 이서연 70 80 김민준 70 80 박지우 70 80 위와 같은 데이터가 있다. 여기서 과목별 합계 점수를 구해 '합계'란 칼럼을 추가해서 값을 넣고 싶다. 할 수 있는 방식이 여러가지 있지만, 한 줄씩 읽어오는 방식을 사용한다면 다음과 같다. import pandas as pd data_list = [] data = {} data['name'] = '이서연' data['korean'] = 70 data['math'] = 80 data_list.append(data) data = {} data['name'] = '김민준' data['korean'] = 70 data['math'] = 80 data_list.append(data) data = {} data['name'] = '박지우' da..

파이썬python에서 인기 있는 mysql 팩키지, PyMySQL

사용법이 아주 간단하다. 출처: github PyMySQL import pymysql.cursors # Connect to the database connection = pymysql.connect(host='localhost', user='user', password='passwd', database='db', cursorclass=pymysql.cursors.DictCursor) with connection: with connection.cursor() as cursor: # Create a new record sql = "INSERT INTO users (email, password) VALUES (%s, %s)" cursor.execute(sql, ('webmaster@python.org', 'v..

Q. 장고에서 POST방식 x-www-form-urlencoded된 데이터를 딕셔너리로 바꾸는 법은?

A. parse_qsl을 사용하면 된다. 한줄로 끝난다. 주의할 점은 반드시 .decode('utf-8')을 추가해줘야 한다. 추가해 줘야 하는 이유는 request.body의 type이 bytes이기 때문이다. decode로 str으로 바꿔줘야 한다. from urllib.parse import parse_qsl body_data = dict(parse_qsl(request.body.decode('utf-8'))) 개발 환경 python 3.9 django 3.1.6

Q. 파이썬에서 urlencoded된 'key1=value1&key2=value2' 형태를 딕셔너리로 바꾸는 법은?

A. parse_qsl을 이용한다. 직접 구현할 수도 있지만 사람들이 많이 쓰는 라이브러리가 있다면 그냥 쓰는 게 좋다. 많이 쓰는 라이버리르는 예외처리가 잘 되어 있으니까. POST 방식으로 request.body 값을 가져오면 urlencoded된 'key1=value1&key2=value2' 형태다. 키로 값을 가져올 수 있게 딕셔너리로 바꾸면 사용하기 편해진다. parse_qsl을 활용하는 법 from urllib.parse import parse_qsl data = "name=ted&age=40" data_dict = dict(parse_qsl(data)) data_dict 결과 {'name': 'ted', 'age': '40'} parse_qs 활용하는 법 from urllib.parse im..

Q. HTTP POST방식으로 데이터 전송할 때 x-www-form-urlencoded란?

A. url encoding 방식과 같은 형태로 데이터를 전송하는 방식이다. 출처: 개발자를 위한 웹 기술 > HTTP > HTTP 요청 메서드 > POST POST 요청은 보통 HTML 양식을 통해 서버에 전송하며, 서버에 변경사항을 만듭니다. 이 경우의 콘텐츠 유형(Content-Type)은 요소의 enctype 특성이나 , 요소의 formenctype 특성 안에 적당한 문자열을 넣어 결정합니다. application/x-www-form-urlencoded: &으로 분리되고, "=" 기호로 값과 키를 연결하는 key-value tuple로 인코딩되는 값입니다. 영어 알파벳이 아닌 문자들은 percent encoded 으로 인코딩됩니다. 따라서, 이 content type은 바이너리 데이터에 사용하기에..

백엔드 Back-end 2021.02.19

빅데이터센터, 한글형태소 사전 NIADic

총 93만 단어에 이르는 한글형태소 사전 출처: 빅데이터 센터 한글형태소 사전 NIADic o 국립국어원 우리말샘 사전과 및 SNS 분석기업 인사이터에서 자체 보유한 사전을 기반으로 최신 단어로 구성된 형태소 사전(NIADic) 제작(총 93만 단어) 저작권: 저작자표시-동일조건변경허락 2.0 (CC BY-SA)(저작자를 밝히면 자유로운 이용이 가능하고 저작물의 변경도 가능하지만, 2차적 저작물에는 원 저작물에 적용된 것과 동일한 라이선스를 적용해야 합니다.)

Q. 장고django에서 post, put, delete 방식 사용 위해서 csrf 끄는 방법은?

A. @csrf_exempt 를 사용하면 된다. 참고: csrf란? 사이트 간 요청 위조 API를 만들 경우 CSRF 보안이 필요하지 않다. API 서버는 API Key 등 다른 인증 방식을 사용한다. 그래서 csrf를 끌 필요가 있다. 출처: Cross Site Request Forgery protection from django.http import HttpResponse from django.views.decorators.csrf import csrf_exempt @csrf_exempt def my_view(request): return HttpResponse('Hello world') 코드 예는 다음과 같다. from django.http import JsonResponse from django...

파이썬 장고Django request에서 파라미터parameter 값 갖고 오기

GET 방식으로 key란 파라미터의 값을 가져온다면? ?key=1234 key = request.GET.get('key', None) 로 가져오고 만약에 key란 파라미터가 없다면 None이 된다. 참고: django.http.request Documentation self.GET = QueryDict(mutable=True) self.POST = QueryDict(mutable=True) QueryDict에 대한 설명을 찾아보면 다음과 같다. (출처: django.http.QueryDict) QueryDict implements all the standard dictionary methods because it’s a subclass of dictionary. Exceptions are outlined..

Q. 판다스pandas 데이터프레임 내에서 특정 칼럼 기준 중복 데이터를 제거하는 방법은?

A. drop_duplicates(subset=['컬럼명']) 을 쓰면 된다. 먼저 나온 것을 남기고 나중에 나오는 것을 제거한다. (참고: pandas.DataFrame.drop_duplicates) import pandas as pd data_list = [] data = {} data['name'] = '이서연' data['age'] = 31 data_list.append(data) data = {} data['name'] = '김민준' data['age'] = 38 data_list.append(data) data = {} data['name'] = '박지우' data['age'] = 45 data_list.append(data) data = {} data['name'] = '윤지민' data['..

파이썬python numpy array flatten(), reshape(-1) 단일 리스트로 만들 때, 다중 리스트에서 리스트 모양이 다를 경우 제대로 작동하지 않는다

이중 리스트를 단일 배열 또는 단일 리스트로 만들고 싶다. flatten() 이중 리스트 안의 개수가 같은 경우 import numpy as np data = [[1, 2], [3, 4]] data = np.array(data).flatten() print(data) 출력 결과 [1 2 3 4] flatten() 이중 리스트 안의 개수가 다른 경우 import numpy as np data = [[1, 2], [3]] data = np.array(data).flatten() print(data) 출력 결과 [list([1, 2]) list([3])] 위와 다른 결과인 것을 확인할 수 있다. flatten() 삼중 리스트 안의 개수가 같은 경우 import numpy as np data = [[[1, 2]..

Q. 남는 안드로이드Android 태블릿을 맥Mac 보조 모니터로 쓸 수 있을까?

A. 사이드카Sidecar 기능이 되는 맥이라면 안드로이드 태블릿과 쉽게 연결해서 보조 모니터로 쓸 수 있다. 안드로이드 플레이스토어에서 airplay라고 검색하면 아래처럼 여러 앱이 나온다. 이중 하나를 설치받으면 된다. 예로 AirScreen을 받은 뒤 실행하자. 맥 상단 메뉴 중 두줄로 되어 있는 스크린 설정 메뉴를 누른다. 시리 옆에 있다. 스크린 미러링을 누른다. 기기가 나타난다. 기기를 누르면 연결된다. 내 태블릿처럼 너무 오래된 태블릿은 와이파이 속도가 너무 늦어서, 뚝뚝 끊긴다. 스마트폰도 연결 가능하니 갖고 있는 폰, 태블릿 중 가장 최신 제품에 여러 앱을 설치해서 속도를 비교해보기를 권한다. 공유기 와이파이 속도나 폰의 와이파이 칩, 폰의 성능 등에 따라 속도가 다를 수 있기 때문이다.

기타 Etcs 2021.02.16

Q. AIHub 데이터 라이센스는 어떻게 될까?

A. 재배포 불가, 승인 얻은 연구자는 자유롭게 이용 변경 가능하다. AIHub에서 데이터를 신청할 때 다음과 같은 화면이 나타난다. 서약서 본 AI데이터를 이용함에 있어 다음과 같은 사항을 준수해야 함을 고지하오니 동의하여 주시기 바랍니다. 1. AI데이터 등은 권리자로 한국지능정보사회진흥원을 명시할 경우 자유로운 이용 및 변경이 가능하며 2차적 저작물에도 동일하게 출처를 명시하여야 한다. 2. 제공받은 AI데이터 등에 대하여 승인을 얻은 연구자가 아닌 제 3자에게 열람하게 하거나 제공, 양도, 대여, 판매하지 아니한다. 3. AI데이터 등에 기반한 제품·서비스 개발 또는 기술연구에 활용할 때에는 논문 등 결과물에 출처가 한국지능정보사회진흥원임을 반드시 명시 하여야 한다. 4. AI데이터 등의 이용 및..

인공지능 AI 2021.02.14