전체 글

전체 글

    넘블 딥다이브 회고

    몇 달 전 부터 질질 끌고오던 개인 프로젝트가 있었는데 해결이 되지 않아 새로운 프로젝트를 찾는 중에 넘블에서 FastAPI를 사용하여 서버를 구축하는 프로젝트가 있었다. FastAPI는 사용해 본 적이 없었지만 궁금했던 차에 평소 Flask에 익숙했던 나는 비슷한 FastAPI를 선택했다. 1. 시작 안내 페이지에서 어떤 것을 구현해야 하는지 자세히 설명을 해 주었지만 막상 프로젝트를 시작한 뒤에는 이 페이지를 즐겨찾기 해놓고 모든 내용을 검색해야했다. '모델 서빙'이 무엇인지 부터 알아야했다. 인공지능 부트캠프에서 머신러닝과 딥러닝 모델에 대해서 학습은 했지만 '서빙'에 대해 학습한 적이 없었다. 검색해서 훑어보니 말그대로 serving. 식당에서 종업원이 손님에게 음식을 서빙해주는 것과 비슷한 느낌..

    botocore.exceptions.nocredentialserror: unable to locate credentials 오류

    botocore.exceptions.nocredentialserror: unable to locate credentials 오류

    AWS s3 버킷에 이미지를 업로드 하는 과정에서 버킷에 이미지가 올라가지 않아 s3와 flask서버가 연결되었는지 확인하려고 버킷 리스트를 출력할 때 이런 에러가 나왔다. 해당 오류는 AWS SDK(boto3)에서 자격 증명 정보를 찾지 못할 때 발생한다. 아마 Flask에서 사용하는 SDK(boto3)가 해당 정보를 못찾은 듯 하다. 1. AWS 자격 증명 정보 확인. AWS 자격 증명 정보는 AWS ACCESS KEY ID , AWS SECRET ACCESS KEY ID가 있다. (나의 경우는 S3 버킷을 생성 할 때 접근을 위해서 액세스 키를 발급받았다. 본인이 사용하고자 하는 서비스에서 발급받으면 될 것이다.) 1) AWS 계정 유무 확인 2) AWS ACCESS KEY ID , AWS SECR..

    DB 데이터 가져오기

    👍🏻 오늘 한 것들 1. 메인 화면 검색어 받아서 result 화면에 표시. -> jinja2 엔진을 사용하여 html에 입력 변수 생성 2. 검색어를 DB에서 찾기 1) DB 연결 정보 생성 2) sql로 입력값을 변수로 설정하여 DB에서 조회하고 가져온 값 result로 저장 3) result 중에서 이름, 성분 변수 설정 -> 변수 html에 넘겨주기 💡오늘 알게된것 1. 요청된 데이터를 어떤 형식으로 보여줄 것인가? json 형식 데이터는 함수 안에서 설정. @app.route('/main') def main() : input = request.json return jsonify(input) 2. 포맷팅 쿼리문 작성시 operationalerror: 1054, "unknown column '검색어..

    Unhandled exception: 'ascii' codec can't decode byte 0xeb in position 8: ordinal not in range(128) 에러

    MySQL DB에 데이터를 입력하는 중 제목과 같은 에러가 계속 발생했다. 구글신을 서치서치 해 본 결과 데이터 내 한글이 들어가있으면 안되는거 같다.. (왜죠?) 1. csv파일의 컬럼명이 DB 컬럼명과 일치해야된다. 2. csv 파일을 json으로 바꿔줘야 된다. convert 귀찮아서 파일을 엑셀로 바꿨다가 csv로 바꿨다가 텍스트 편집기에 넣어 csv로 저장했다가 다 시도했는데 안되서 결국엔 convert 해줬는데 제일 간단했다.;; 파일 convert > https://www.convertcsv.com/csv-to-json.htm CSV To JSON Converter www.convertcsv.com 이곳에 들어가서 csv 파일을 json으로 바꿔주기만 하믄 된다. json으로 변경되었을 때 ..

    코로나 걸려부렀어... 자가격리 1일차

    일요일 오후? 저녁쯤 부터 오한 든 것처럼 몸이 으실으실 해서 타이레놀 하나 먹고 새벽에는 점점 몸이 더 안좋아지는거 같아서 또 한알 먹었다. 타이레놀이 똑 떨어져서 다른약을 먹었는데 어제 저녁부터 오늘로 넘어오는 새벽에는 약발이 1도 들지 않았다. 몸이 아프니 계속 잠만자다가 아침 5시쯤에 멱국을 먹었는데 짠맛이 안느껴졌고 물맛도 약간 신맛이 난다. 미각이 맛탱이가 간다는게 이런건가? 어제 분명 키트검사 했을때는 음성이였어서 쿠팡의 여파인줄 알았다. 오늘 새벽에는 열과 특히 기침 때문에 잠을 못자고 몸이 진짜 두드려맞은 것처럼 아파서 아 이게 코로나가 아니면 뭘까 라는 생각을 했다. 오늘 펄펄 끓는 몸을 이끌고 병원에 갔는데 역시나 코로나였다. 병원에 다녀와서 약을 먹었는데 열이 39도까지 올라갔다. ..

    [EC2] 인스턴스 터미널로 접속

    [EC2] 인스턴스 터미널로 접속

    미니터 배포하려고 인스턴스 생성 후 접속시 문제가 있었다. 책에서는 Public IP를 넣으라고 했는데 검색해보니 퍼블릭 DNS를 넣어주는 것이였다.! 콘솔에 들어가서 DNS를 다시 확인했다. 1. AWS 콘솔에 접속 2. EC2 클릭 3. 왼쪽 메뉴바에서 인스턴트로 들어가기 4. 인스턴트 ID 선택 5. 박스 체크 후 연결 or 인스턴스 ID 클릭 6. 예시의 명령어를 pem키 파일이 있는 디렉토리에서 실행하면 됨! * 연결이 안되는 경우 3번의 명령어를 터미널에 입력 후 예시 명령어 실행 (바로 EC2 인스턴스 연결 탭에서 연결해줘도 됨!) 7. 연결이 잘 되면 다음과 같은 화면이 나옴 참고 더보기 https://5equal0.tistory.com/entry/AWS-EC2-%EC%9D%B8%EC%8A..

    [미니터] unit-test 시 ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES) 오류

    1. 간단한 unit-test 구현 후 사용자 생성과 로그인 트윗올리기 등 다른 test의 코드를 작성하고 실행중 오류 발생. 2. 비밀번호도 틀리지 않았는데 이전에도 실행이 됐는데 구글을 쥐잡듯이 뒤졌지만 해결하지 못했음. 부팅도 2번이나 함. 3. root로 들어갈 수 조차 없었음. Mysql user가 2개 있었는데 그 어떤 것도 계속 제목과 같은 에러가 났음. 4. 그 결과 터미널에서도 workbench에서도 sql명령어를 실행할 방법이 없었음. 5. 어떤분이 docker를 사용해서 mysql을 실행한 후 명령창에 접근한 방법을 보았음. -> 참고 : https://velog.io/@uoayop/ERROR-1045-28000-Access-denied-for-user-rootlocalhost-usi..

    [미니터] test - 미니터 unit test

    [미니터] test - 미니터 unit test

    Flask의 엔드포인트는 함수로 구현되어 있어 unit test를 직접 할 수 있는 장점이 있다. 1. test_endpoint.py 파일 생성 2. test용 DB 만들기 3. test 코드 작성 import pytest import config from app import create_app # test할 플라스크 앱 호출 (미니터 API가 있는 코드파일) @pytest.fixture # fixture 데코레이터가 적용된 함수와 같은 인자가 test 함수에 있으면 pytest 알아서 실행 def api() : # fixture의 함수명 app = create_app(config.test_config) app.config['TEST'] = True api = app.test_client() return..