본문 바로가기

Til60

[TIL] 코드 리팩토링 Code Refactoring 코드 리팩토링 '결과의 변경 없이 코드의 구조를 재조정함'을 뜻함 잠재적인 목표는 소프트웨어의 설계, 구조 및 구현을 개선하는 동시에 소프트웨어의 기능을 보존하는 것 = 사용하지 않는 코드 또는 중복된 코드를 지우고, 코드의 로직을 깨끗하고 이해하기 쉽게 디자인하는 것! Martin Fowler와 Kent Beck에 의해 정의 되었다고 한다 최적화나 디버깅, 테스트하기 좋은 코드로 만드는 것과는 좀 차이가 있다 '리팩토링'을 한다 = 개발자의 실수를 만드는 것을 방지한다 리팩토링, 어떻게할까? 1) 코드 디자인에 작은 구조적 변화를 추가하는 것으로 리팩토링을 시작할 수 있고, 2) 리팩토링의 결과물은 항상 같은 동작 / 기능을 수행해야한다 = 코드를 고치거나 바꿀 수도 있다 = 쉽게 이해할 수 있고 유지.. 2023. 7. 7.
[AI] Chatgpt-3.5 와 DRF로 챗봇 만들기 - 1 - 장고에서 openai를 활용하여 기초적인 ai챗봇을 만들었다 이전에 강의에서 따라 만들었던 openai를 기반으로 작성하되, 배포에 조금이나마 영향이 덜 가도록 streamlit을 빼고 django api로 만들고자 했다 streamlit을 사용하면 서버가 1개 더 있는 것이어서 배포 시 추가적인 작업이 필요했기 때문. 일단 Chatgpt를 활용하기 위해서는 openai api key가 필요하다! [openai api 페이지] : https://openai.com/blog/openai-api 1) 사이트에 가입 혹은 로그인한다 2) 오른쪽 상단의 personal을 누르면 뜨는 메뉴 바에서 View API keys를 클릭 3) 이동한 곳에서 +Create new secret key를 클릭 4) 모달창이 뜨.. 2023. 7. 3.
[Django] raise serializers.ValidationError 사용 시 assertEqual로 에러 메세지 비교하기 시간 유효성 체크 함수 개선 및 테스트코드를 맞추어 수정하며 알게된 것. - 1 - 시간유효성 체크를 위해, 함수를 작성하며 사용했던 ValidationError raise serializers.ValidationError 를 사용할 경우 status는 400_Bad_Request 에러를 뱉는다 - 2 - 테스트 코드를 수정하면서 가져온 오류 메세지를 assertEqual로 비교하고 싶었다. 가져오는 응답 메세지는 아래와 같이 출력된다. print("⭐️", response.data) ⭐️ {'error': ErrorDetail(string='모집 시작시간 오류. 현재 이후의 시점을 선택해주세요, code='invalid')} response.data["error"] 로 출력하면 value값에 있는 내용.. 2023. 7. 1.
[Django + Vue] Profile에 새로운 내용 가져와 추가하기 오늘 한 것 : profile에 유저가 참여중인 공구 게시글 목록 넣기 vue + django 활용 참조의 참조를 하려니 헷갈리고 어려웠다. 그럴땐 sql쿼리문을 활용하며 하나씩차근차근 불러와보자! https://diane073.tistory.com/148 django에서 작업 profile에만 사용할 시리얼라이저를 정의 해당 글로 이동하는 url을 걸어주기위해 community url을 함께 받아왔다 #feed / seriliazers.py class ProfileGrouppurchaseSerializer(serializers.ModelSerializer): community_url = serializers.SerializerMethodField() class Meta: model = GroupPurc.. 2023. 6. 30.