Tiny Star

❌Exception&Error/🔵Python 12

[❌삽질과 해결 그 사이] UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 9735: illegal multibyte sequence

새 프로젝트를 하면서 이제 첫 뷰를 작성해보려고 했다.URL 연결하고 어쩌구 ~ "python manage.py runserver" 서버실행이 더딜때 쯤.....그 때 불안감을 엄습해오는 불길한 예감. UnicodeDecodeError: 'cp949' codec can't decode byte 0xe2 in position 9735: illegal multibyte sequence ??? 진짜 듣도보도 못한 에러 + 내 코드에서 터진게 아님(써놓은 코드가 없거든)웹 브라우저에서는 저거만 내뱉고 ...터미널에서는 저 빨간 오류만 주르륵 내뱉고....진짜 이거 해결하다가 팀장님한테 저 집갈래요 시전하고 도망가기 직전에 해답을 찾았다. 우선 잘못된 인코딩 설정으로 인해 발생하는 오류고,특히, Django가 H..

[❌삽질과 해결 그 사이] OSError: [WinError 123] 파일 이름, 디렉터리 이름 또는 볼륨 레이블 구문이 잘못되었습니다: '<frozen importlib._bootstrap>'

연습용(?)으로 만들던 페이지를 실제 프로젝트에 적용하기 위해 기존 프로젝트를 버리고 새 프로젝트를 만들어 코드 이관을 하고 있다. 어차피 다 잘돌아가던 기능이라 복붙하고 디자인만 다시 잡아주면 되는 일이라 즐겁게 코드 복붙하던 도중 만난 ... 반갑지 않은 손님 OSError: [WinError 123] 파일 이름, 디렉터리 이름 또는 볼륨 레이블 구문이 잘못되었습니다: ''  너 뭐냐. 구글에 검색해보니 config 에서 setting에 주로 오류가 있을 때 발생한다고 한다. setting안에 app을 추가 안했다던가.. 콤마(,)를 빼먹었다던가..주로 이런 사유로 발생하는 것 같다. 그래서 나도 config 파일에 setting을 열어봤다. 아무문제가 없었다. 사용하는 앱은 잘 등록이 되어있고 그 ..

[❌삽질과 해결 그 사이]An invalid form control with name='content' is not focusable.

ckeditor5를 적용하고 생긴문제.게시글 작성하고 글 작성하기 버튼을 누르면 콘솔창에 해당 에러와 함께 아무 반응을 하지 않는다.  게시글 입력받는 곳의 html코드는 이 상태  결론적으로 이 에러가 나는 원인은  요소가 required 속성을 가지고 있는데,  CKEditor가 적용되면 해당 요소가 숨겨지기 때문에 발생하는 에러라고한다.CKEditor가 적용된 후에는 실제 가 숨겨져 있으므로 브라우저는 이를 유효한 입력 요소로 인식하지 못하기때문에 의 required 속성을 제거하거나 CKEditor가 빈 값을 허용하지 않도록 설정이 필요하다. 1. 쿨하게 required 삭제하기 2. 굳이 js로 false처리해줘서 똑똑한 척 코드 몇줄 더쓰기 3. 서버 측에서 빈 값 검사하는 로직을 만들기폼 제..

[❌삽질과 해결 그 사이] TypeError: exceptions must derive from BaseException

View에서 예외처리(?)를 하는 도중에 생긴 오류TypeError : exception must derive from BaseException. 이 에러 메세지를 그대로 해석하면 예외는 BaseException에서 파생되어야 한다는 이야기인데,이게 뭔 이야기인고 하니 파이썬3에서는 BaseException 내장 클래스에서 파생된.즉, 상속받는 클래스만 예외클래스로 인식되어 이 익셉션 조상클래스를 상속받지 않은 건 예외처리로 인식하지 않는다.구글에 쳐봐도 예외메세지만 던진 경우에 뜨는 오류라는데, 나는 그렇게 무책임하게 던지지 않았다.한참 씨름하다 뭐가문제냐!?싶어 선임님께 질문한 결과는? return이 아닌 raise로 던져줬기 때문! return은 Response를 던지는거지만 raise는 예외를 발..

[❌삽질과 해결 그 사이] alembic upgrade head 이후 테이블 생성이 안될 때

이번에 새로 신규 기능을 진행하면서 테이블 설계를 마쳤다. 이제 이 models.py 마이그레이션을 통해 DB에 등록을 할 차례. 프레임워크로는 Django를 사용하지만 ORM은 Django의 내장ORM이 아닌SQLAlchemy ORM을 사용하고 있어서 모델을 Python 클래스로 정의하고,이를 Alembic을 사용하여 마이그레이션을 관리하고 있었다. migration 폴더 내 env.py안에 새로 등록 할 models를 import하고터미널에  alembic upgrade head 명령어 입력하면 마이그레이션이 진행이 되어야하는데..??? 마이그레이션 진행이 안되고 그러니 당연히 DB에 테이블이 생기지 않는다. 그 이유가 바로 Django 내장 ORM이 SQLAlchemy 마이그레이션을 방해하고 있기 ..

[❌삽질과 해결 그 사이] alembic : 'alembic' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오.

신나게 새로운 기능에 대해 테이블 설계를 마친 뒤 .... SQLAlchemy migrate 차례..... migrateion 폴더 내 env.py 내에 model import도 마쳤으니터미널에 alembic upgrade head 명령어 복붙!  ?복붙이 잘못됬나 차근차근 직접 하나하나 써보자 ? 아~~~~~ 또 왜그래! 이유는 터미널이 PowerShell로 되어있어서 발생한 문제라고 한다 터미널 제일 상단으로 가보면...당당하게 PowerShell이 터미널을 실행시키고 있는 것을 볼 수 있다^^.. 대부분 VS에서 발생하는 문제같은데 인텔리제이를 쓰고 있는 나는 실행 터미널을 cmd로 바꿔줘봤으나? 안 ㅋ 댄 ㅋ 다 ㅋ아예 명령어가 안먹는뎁쇼.... 이유는요 네...from alembic import..

[❌삽질과 해결 그 사이] ImportError : cannot import name 'b64encode' from 'jwt.utils'

나같은 무지랭이가 코드를 짜다보면 아무거나 import하고그러다보면 이상한게 설치가 되기마련....^^ 잘되던게 갑자기 import오류가 나면서 순환참조(?)가 걸려버림..ㅋ 정확히 이 오류는 jwt.utils 모듈에서 b64encode를 import할 수 없다는 것으로보통 jwt 모듈의 버전 문제나 설치가 올바르게 되지 않았을 때 발생한다고 한다. 가장 먼저 확인할 점은 jwt 모듈의 버전과 해당 모듈의 문서를 참조하여 해당 메소드나 기능이 지원되는 버전인지 확인하는 것어쩌고 저쩌고 다 필요없고 잘되던게 안되면서 저런문제 생기면 삭제-재설치가 답임 삽질하지말고 쿨하게 재설치하세요. pip uninstall jwt //삭제pip install jwt //설치

[❌삽질과 해결 그 사이] 게시판-댓글 페이지네이션 조회가 안될 때

이 때 발생한 예외는 그냥 코드 하나가 비틀려서 나는 예외라 딱히 해결에 도움은 안되고, 역시 선임님 찬스 짱! Board Repository에서 상세게시글 로드 시 첫 10개의 댓글은 조회가 되도록 쿼리를 날려놨다. 그럼 이제 10개 이후의 댓글은 어떻게 가지고 올 것인가를 해결하기 위해서 Comment 페이지네이션 로직을 구현했고 Swagger에서 테스트하는데 안ㅋ됨ㅋ 500아님 내가 던진 400뿐... 댓글리스트 따위 나오진않는다. 내가 디버깅한 결과는 board ID값이 Null. def find_all_by_id(self, search_request: Dict[int, T]) -> (Comment, int): if search_request is None: search_request = {} b..

[❌삽질과 해결 그 사이] 게시판 페이지네이션 : Null

요새 파이썬으로 하고있는 게시물 CRUD + JS 개발하다보니 게시판하면 빠질 수 없는 페이지네이션 기능을 구현해야했다. 페이지네이션은 자바에서도 안해보고 프로젝트 당시 팀원 버스에 무임승차해서 만든 경험뿐이라 지식이 하나도 있지 않은 상태에서 던져진 선임님의 예시코드. 하나씩 이해해가며 파이썬과 장고에서는 어떻게 페이지네이션 백 로직을 구성할 수 있는지 이해하고 예시코드를 기반으로 게시판 페이지네이션 서버 로직을 완성했으나.... 무자비하게 만난 에러코드. 물론 저 예외는 내가 Exception에서 정의하고 View.py 로직에서 raise로 예외처리를 한 것.... 예외처리를 하지 않으니까 500코드와 함께 Expected a `Response`, `HttpResponse` or `StreamingH..

[❌삽질과 해결 그 사이] 'set' object is not reversible

파이썬으로 로직을 짜기 시작한 게시판 CRUD. 파이썬 문법은 잘 모르겠지만 선임님이 주신 예제(?)코드가 있어서 코드를 하나하나 뜯어보며, 자바에서의 CRUD를 파이썬에 입혀가며 작성한 게시판 Create 코드. Swagger 에서 api명세를 등록해야 코드 디버깅을 해보든가 말든가 할텐데. 제일 최상단 urls에도 잘 등록을 했다. urlpatterns = [ path('admin/', admin.site.urls), path("api/v1/user/", include("user.api-urls")), path("api/v1/board/", include("board.api-urls")), path( r"swagger", schema_view.with_ui("swagger", cache_timeout..