회사에서 django를 사용하여 챗봇을 만들었다. 오늘은 왜 django를 사용해서 챗봇을 만들었는지부터 django를 AWS EC2에 배포하는 방법, EC2에서 OS(AMI) 선택하는 방법에 대해 알아보고자 한다. 왜 Django를 사용하여 챗봇을 개발하였는가? 챗봇을 개발할 수 있는 프레임워크는 django, flask, fast api 등이 있다. 현재 개발할 수 있는 인력이 2명이다. 개발할 수 있는 인력이 모두 경험해 본 프레임워크가 django이다. 따라서, 러닝커브가 가장 짧을 것이라 생각했다. 해당 챗봇을 회사 내부분들이 사용해 볼 수 있도록 AWS EC2에 배포 하기로 결정이 됐다. 챗봇 코드는 github에 업로드 되어 있어 git repository를 이용해 EC2에 옮기기로 하였다...
M1 mac으로 Okt 형태소 분석기를 사용해 토큰화를 해보기 위해 Konlpy를 돌려보려다가 에러를 발견했다. 처음에 다른 사람들과 동일한 방법으로 시도를 해보았지만 해결이 되지 않았다. M1 Mac에서의 JVM/JDK 문제 · Issue #353 · konlpy/konlpy M1 칩이 탑재된 맥에서 java 환경변수가 설정되어 있지 않거나, JDK가 설치되어 있고 환경변수가 설정되어 있더라도 JDK에 따라 konlpy를 사용할 때 다음과 같은 오류가 발생합니다. # Test code from konlpy github.com 다행히 나와 같은 문제를 가지고 있는 블로그를 찾게 되었다. [Python] M1 mac Konlpy 오류 : No JVM shared library file (libjli.dyl..
문자열 포맷팅이란 문자열 속 특정한 위치에 특정한 값을 삽입해 주는 것을 말한다. Django 미니 토이 프로젝트를 진행하면서, 문자열 포맷팅을 하게 되었다. python 문자열 포맷팅 방법에는 1. % 기호 사용하기, 2. format() 사용하기 3. f 문자열을 사용하기. 이 3가지 방법 중에서 나는 문자열의 어떤 위치에 어떤 변수의 값이 들어가는지 명확하게 표현하여 가독성이 좋은 3번을 사용하여 프로젝트를 진행했다. f-string 파이썬 3.6 이후 버전부터 지원하는 새로운 문자열 포맷팅 방법이다. f-string을 사용하면 기존의 문자열 포맷팅 방법보다 간편하고 가독성이 좋아졌다. f-string을 사용하려면 문자열 앞에 f를 붙이고, 중괄호 안에 변수나 표현식을 넣으면 된다. 중괄호 안에서 ..
파이썬에서 프로젝트를 진행할 때는 각각의 프로젝트 별로 가상환경을 만들어서 진행해 주는 것이 좋다고들 말한다. python 책을 보며 따라할 때는 왜 굳이 가상환경을 생성해줘야하지?라는 의문점이 있었다. 하지만 Django를 이용한 미니 토이 프로젝트를 진행하다 보니 가상환경의 필요성을 알게 되었다. 1. 버전 관리 문제를 해결하는 데 도움을 준다. python 패키지들은 시간이 지남에 따라 업데이트된다. 특정한 프로젝트 하나를 위해 예전 버전의 패키지를 로컬에 계속 유지하거나 패키지가 업데이트 될 때마다 프로젝트의 코드를 일일이 수정해야 하는 문제가 발생한다. 2. 다양한 프로젝트의 라이브러리끼리의 충돌 방지 프로젝트를 진행하다보면 다양한 라이브러리와 패키지들을 받아서 사용하게 된다. 그러다보면 각 라..
파이썬 프로젝트를 개발하면서 중요한 부분 중 하나는 환경 변수의 관리이다. 환경 변수를 효율적으로 관리하면 프로젝트의 보안성과 이식성을 향상시킬 수 있다. 이 글에서는 파이썬 프로젝트에서 .env 파일을 생성하고 사용하는 방법에 대해 알아보자. 1. .env 파일이란? .env 파일은 환경 변수를 저장하는 파일로, 주로 프로젝트 설정과 민감한 정보를 저장한다. 2. .env 파일을 생성하면 좋은 점 민감한 정보를 코드에서 분리하여 보안을 강화할 수 있다. 다양한 환경에서 프로젝트를 실행할 때 설정을 쉽게 변경할 수 있다. 3. 필요한 라이브러리 설치하기 Python에서 .env 파일을 다루기 위해 python-dotenv 라이브러리를 사용할 수 있다. 터미널에서 다음 명령을 실행하여 라이브러리를 설치한다..
회사에서 prowler라는 오픈소스를 돌리다가 에러가 발생했다. 구글링해봤지만 해당 오류와 똑같은 오류는 있었지만 prowler 오픈소스 에러를 해결하기 위해 적합한 방법들은 아니였다. 따라서 누군가 prowler를 돌리다가 해당 에러를 발견하면 쉽게 해결하는 방법을 공유하고자 이 글을 작성하게 되었다. prowler란 무엇일까? Prowler 는 AWS, Azure 및 Google Cloud 보안 모범 사례 평가, 감사, 사고 대응, 지속적인 모니터링, 강화 및 포렌식 준비를 수행하는 오픈 소스 보안 도구 필자의 경우 위의 이미지처럼 'cp949' codec can't encode character '\u2014' in position 847: illegal multibyte sequence 에러가 난..