전체 글 52

로켓챗 설치 및 자잘한 오류들 해결 일지

회사내에서 최대 500명 정도 사용할 수 있는 채팅서버가 필요했다. 눈에 띈게 로켓챗. 최신 로켓챗을 설치하기 위한 검증된 최신 Ubuntu 버전인 20.04.5 를 설치. 처음엔 도커를 이용하려고 했으나 유료화 소식이 있어서, snap 을 이용. 설치 자체는 무척 간단. 아래 명령어 한번만 실행하면 알아서 진행. sudo snap install rocketchat-server 이제부터 자잘한 설정 수정들이 필요했다. 1. 한글이름 허용 (채팅방, 대화명에 한글 이름이 허용하기) 관리자 - 설정 - 일반 - UTF8 : [ㄱ-ㅣ가-힣0-9a-zA-Z-_.\s]+ 2. Timezone 설정 : timedatectl set-timezone 'Asia/Seoul' 3. 서비스 리스타트 : sudo snap r..

기타 2023.02.08

파이썬 가상환경 만들 때 마다 pip 버전이 오래되었다고 한다 (venv)

먼저 글로벌 환경의 pip 버전을 알아본다. > pip -V pip 22.2.2 from C:\Users\sonbosun\AppData\Local\Programs\Python\Python39\lib\site-packages\pip (python 3.9) 글로벌 환경은 22.2.2, 기억하자. 테스트로 가상환경을 만들어서 pip 버전을 확인한다. > py -m venv testenv 방금 만든 가상환경으로 진입 > testenv\Scripts\activate 바로 pip 버전 확인 (testenv) > pip -V pip 21.2.4 from C:\testenv\lib\site-packages\pip (python 3.9) 가상환경은 왜 21.2.4 ???????????????????????????????..

Python 2022.08.23

.Net 에는 VM 이 있다? 없다?

Java 는 VM(Virtual Machine) 이 존재하는데 .Net 도 비슷한 원리로 돌아가지 않나 싶어서 궁금해서 알아낸 사실은, .Net 에는 VM 이 없다. Java : 소스코드 컴파일 -> 바이트코드 실행 -> VM위에서 인터프리터로 동작 .Net : 소스코드 컴파일 -> IL (Intermediate Language, 바이트코드와 비슷한 중간코드) 실행 -> CLR(Common Language Runtime) 이 JIT(Just-in-time) 컴파일하여 네이티브한 기계코드가 메모리에 상주하여 동작 (사실상 전통적인 방식의 코드가 실행되는 것과 차이가 없다) 그렇다면 .Net 은 최종적으로 네이티브 코드가 실행되는 것과 차이가 없긴 하지만, 실행될 때마다 실시간으로 JIT 컴파일해서 메모리에..

.Net 2022.08.05

파이썬 부동소수점 문제 회피하기

파이썬에도 지긋지긋한 부동소수점 문제가 당연히 존재한다. 예를 들면, def func(x): return x - 0.1 func(1.2) 이것의 결과값은 1.1 이 나와야 하지만 실제로는 1.0999999999999999 가 출력된다. Decimal 모듈을 사용하여 해결한다. from decimal import Decimal def func(x): return float(Decimal(str(x)) - Decimal(str(0.1))) func(1.2) 주의할 것은, Decimal() 인자에 float 를 직접 넣으면 같은 오류가 발생하니까 의미가 없고 string 타입으로 변환해야 한다는 것.

ML 2022.05.18

KLinearRegressor 첫 걸음

KNeighborsRegressor 의 문제점: 기존 학습 데이터 근처에서 문제가 나오면 답을 잘 찾아 주지만, 그 범위를 벗어나면 답이 없다. 가령, 생선의 길이를 10~50cm 범위만 학습시킨 후 200cm 짜리 생선의 정답을 달라고 하면 완전 엉뚱한 예측값이 나와 버린다. 해결 방법은 두 가지다. 200cm 범위까지 늘려 학습을 시키거나, KLinearRegressor 를 사용하거나... Linear Regressor 선형회귀는 y=ax+b 형식의 함수를 만족하는 a 와 b 를 찾는 모델이다. import numpy as np # 농어의 길이 perch_length = np.array([8.4, 13.7, 15.0, 16.2, 17.4, 18.0, 18.7, 19.0, 19.6, 20.0, 21.0..

ML 2022.05.04

KNeighborsRegressor 첫 걸음

요약: X(단일 데이터 혹은 배열) 와 y(정답)로 1:1 매칭된 데이터들을 학습(fit) 시켜준 후, 테스트 데이터인 X' 를 주었을 때 기존 학습 데이터를 기반으로 가까운 정답을 내 뱉는다. KNeighborsClassifier 와의 차이점 : KNeighborsClassifier 의 경우는 기존의 학습 데이터들과 가까운 것들의 다수결로 하나를 정해 결과를 뱉는, 다시 말해 1 or 0 의 데이터를 돌려준다면(분류), KNeighborsRegressor 의 경우는 가까운 점들끼리의 평균값을 돌려준다.(회귀) 가령 0 이나 1 이 아니라 0.99521 같은 실수값을 돌려준다. 예를 들면, KNeighborsClassifier 는 빙어인지 도미인지 구분하기 위해 쓰인다면, KNeighborsRegress..

ML 2022.04.28