본문 바로가기

전체 글

(77)
[프로그래머스] 위클리 챌린지 2주차 - 상호 평가 문제 문제는 여기서 확인 풀이 대학교 때 흔히 접한 조별과제 조별 인원 평가 점수를 가지고, 교수님의 입장에서 점수 계산을 한다. 조건 1. 내가 평가한 나의 점수가 최고점 또는 최저점이면 나의 점수는 제외하고 평균 점수를 계산한다. 조건 2. 하지만 나의 점수가 유일하지 않다면(동일한 점수가 또 있다면) 평균 점수 계산에서 제외하지 않는다. 중요한 요구조건은 이 두 가지다. 평균점수를 계산해야 하기 때문에 scores 2차원 배열을 모두 1번씩은 순회해야 하는 것은 필수다. 딱 1번씩만 순회하도록 하는 게 가장 빠른 시간일 것이다. 최고/최소 점수 여부, 유일성 여부는 평가받은 점수를 가지고 검사해야 한다. 한 사이클에 1인의 평균 점수(제외 여부 포함)를 구하고 치우는 것이 temp memory를 적..
[카카오톡 챗봇으로 맞춤법 교정기 만들기] 4 - Heroku로 서버 띄우기 서버 개발을 완료하고 로컬 테스트를 마쳤다면 이제 서버를 온라인 환경에 배포해야 한다. 서버 배포를 위해서는 배포 환경을 선택해야 한다. 토이 프로젝트는 클라우드 환경을 추천한다. Heroku를 선택했다. Heroku는 aws ec2 보다 앱 배포 환경이 친절하다. 앱 운영/배포에 필요한 기능을 제공한다. ec2처럼 ssh 로그인은 안된다. 내용 0. Sign up Heroku 여기서 가입하면 된다. 1. Create New App 이렇게 하면 앱에 접속이 가능하고 개발한 앱을 배포할 준비가 됐다. 2. 배포 준비 flask 앱 배포를 위해서 heroku 앱 실행 명령 지정(Profile), 실행환경 정의(requriments.txt, runtime.txt)가 필요하다. Procfile에는 heroku에..
[minikube] minikube에서 로컬 이미지를 띄울 때, Failed to pull image 해결 방법 보통 로컬에서 개발한 docker image를 테스트하기 위해 로컬에서 minikube를 사용해서 테스트한다. minikube에서 local docker image를 띄우려 할 때 image를 가져오지 못하는 경우가 있다. 문제 상황 로컬에 있는 이미지를 쿠버네티스에 띄우려 하면 아래와 같은 오류를 만날 수 있다. kubectl create deployment my-node --image=[local image]:[tag] 클러스터 이벤트를 확인하면 이미지를 받아올 수 없다고 한다. $ kubectl get events 29s Warning Failed pod/my-image-bd4d78684-96khf Failed to pull image "my-image": rpc error: code = Unkno..
도메인 특화 knowledge graph search 구축 knowledge graph search 는 아래 과정대로 진행된다. - 표준 용어 사전, 통합 지식 사전 구축 - 지식 그래프 구축 -두가지를 합쳐서 검색 구현 1. 표준 용어 사전, 통합 지식 사전 도메인 용어의 표준 사전을 구축 표준 사전을 구축함으로써 통일된 단어를 찾을 수 있도록 함 공통 표준용어는 용도는 다르지만 의미는 유사 공공데이터 공통표준용어 동의어, 유사어 등 사전 구축 필요 ex) 적금 == 적립식 예금 2. 지식그래프 구축 how to build knowledge graph로 검색하면 자료 많음 (내용 미확인) How to build a knowledge graph from scratch even if you are not really a full-blown developer - ..
[카카오톡 챗봇으로 맞춤법 교정기 만들기] 3 - 스킬서버 만들기(python, flask) 카카오 챗봇에 우리가 원하는 기능을 제공하려면 '스킬 서버'를 이용해야 한다. - 스킬 서버란? 봇 시스템으로부터 데이터를 받아서 적절한 응답을 만들어 주는 별도의 기능을 제공하는 서버다. 유저가 챗봇에 입력한 맞춤법을 검사할 문장을 request body에 담아서 스킬 서버로 보내고 스킬 서버에서는 맞춤법 교정을 진행한 결과를 reseponse body에 담아서 전달해주면 된다. json format만 맞춰주면 누구나 카카오톡 챗봇을 이용할 수 있다. - request request format은 하나의 format에 카카오톡 대화 관련 정보를 전달한다. 👉request json format 보기 해당 시스템에서는 맞춤법을 교정할 대화를 파라미터로 전달한다. 파라미터로 전달한 값은 action 필드의 ..
[카카오톡 챗봇으로 맞춤법 교정기 만들기] 2 - 봇 설계하기 가장 처음에는 챗봇에서 어떤 식으로 기능을 제공할지 챗봇 스토리를 설계해야 한다. 카카오 챗봇 무식자라서 아래의 과정으로 진행했다. 카카오 챗봇들이 어떤 기능을 제공하는지 시장 조사를 진행했다. 그냥 여기저기 채널 추가해서 챗봇을 사용해봤다. 내가 원하는 기능을 손으로 그렸다.(복잡하지 않아서 손으로 그렸다) 카카오 도움말에 가서 원하는 기능을 어떻게 제공하는지 찾아보았다. 이 과정이 좋은 과정인지는 모르겠다. 그렇게 결정된 것을 글로 표현하자면 아래와 같다. 유저가 맞춤법을 교정하겠다는 명시적인 행위를 수행한 다음에 요청을 맞춤법 교정을 하도록(스킬 서버에 보내도록) 한다. 맞춤법을 교정하겠다는 명시적인 행위를 대화방에 있을 때는 언제든 할 수 있어야 한다. 기능을 결정하고 챗봇에서 작업해야 할 것은 ..
[카카오톡 챗봇으로 맞춤법 교정기 만들기] 1 - 채널 만들기 카카오톡 챗봇을 만들기 위해서는 아래 행동이 필요하다. 1. 카카오 계정이 있어야한다. 2. 카카오비즈니스에 가입해야한다. 3. 카카오톡 채널을 개설해야한다. 4. 카카오 i 오픈빌더 사용 신청을 해야한다(1일 이상 소요됨) 카카오톡 채널과 카카오톡 챗봇(카카오 i 오픈빌더)는 별도의 시스템이라서 신청하면 즉시 챗봇을 이용할 수 없다. 여기까지는 매뉴얼이 잘 되어있어서 쉽게 따라할 수 있다. 이 모든 내용은 카카오 i 오픈빌더 도움말을 따라 진행하면 된다.
[카카오톡 챗봇으로 맞춤법 교정기 만들기] 0 - 서론(Intro) 배경 한국어 전처리 웹사이트 프로젝트를 진행하고 있다. 웹사이트를 frontend를 요즘에 대세라는 react로 해보려고 했다. 백엔드 개발만 주구장창 했기 때문에 react를 처음부터 배워야 했다. 그렇게 조금 빠르게 진행할 수 있는 하위 프로젝트가 없을까 고민했다. 맞춤법 검사를 잘 제공해보면 전처리 웹사이트보다 실용성도 있을 것 같았다. 문제는 frontend 개발이었다. 앱이든 웹이든 안한지 3년이 넘어서 가물가물했다 처음에는 gatsby로 개발해보려 했다. 내가 원하는 기능이 정적 사이트면 충분하고 gatsby cloud까지 지원해서 빨리 개발하고 배포할 수 있을 줄 알았다. 거기에 react 기반이라 조금씩 개발하면서 배울 수 있을 줄 알았다. 하지만 gatsby로 blog 만드는 법만 쉽지 ..
[pip] [certificate_verify_failed] certificate verify failed unable to get local issuer certificate 오류 해결 방법 python 기반의 서브 프로젝트에서 py-hanspell 패키지를 이용해야 일이 생겨서 pypi로 설치했다. pip install py-hanspell 설치 중에 아래와 같은 오류가 발생하고 정상적으로 설치가 되지 않았다. (python) ➜ PycharmProjects pip install py-hanspell Collecting py-hanspell Using cached py-hanspell-1.1.tar.gz (3.0 kB) ERROR: Command errored out with exit status 1: command: /Users/a60080341/PycharmProjects/korean-nlp-preprocess-api-server/python/bin/python -c 'import io..
[AWS RDS] Maria DB 문자 인코딩 utf8mb4 변경 방법 MariaDB 에 character set 을 utf8 에서 utf8mb4 로 변경하는 것이 좋다. utf8로 설정하면 emoji는 깨져서 저장이 되며 utf8mb4는 emoji를 정상적으로 저장한다. AWS 에서는 이런 database 파라미터 정보를 '파라미터 그룹'을 생성하고 DB 인스턴스에 주입할 수 있게 되어있다. (한번만 설정을 만들면 database를 생성할때마다 노가다를 안해도된다는 말) 1. RDS 메뉴 중에 파라미터 그룹에 간다 2. 파라미터 그룹을 하나 생성하고 파라미터를 다음과 같이 변경한다. character_set_client = utf8mb4 character_set_connection = utf8mb4 character_set_database = utf8mb4 characte..