Web
-
보이닥 어플리케이션 프로젝트Web/프로젝트 2022. 7. 22. 22:08
프로젝트 개요 위코드에서 2개월간의 교육과정을 마친 후 퍼즐AI의 기업협업에 참여하여 진행한 프로젝트이다. 비대면 화상진료, 음성인식 AI를 활용한 처방전 작성등의 기능이 있는 앱인 '보이닥'의 예약 생성 기능을 구현하는데 중점을 두었다. git repository : https://github.com/NamkyuAhn/puzzleai-voicedoc-backend 시연 영상 : https://www.youtube.com/watch?v=pjLCQCTyI4o 원본앱 링크 : https://apps.apple.com/kr/app/%EB%B3%B4%EC%9D%B4%EB%8B%A5-%EC%A0%84%EB%AC%B8%EC%9D%98-%EC%9B%90%EA%B2%A9%EC%A7%84%EB%A3%8C/id152611..
-
WeClass200 - 위코드 2차 프로젝트Web/프로젝트 2022. 7. 4. 09:39
짧았던 2주간의 1차 프로젝트를 뒤로하고, 새로운 팀원들과 함께 2차 프로젝트를 진행하였다. 1차 프로젝트에서 구현하지 못한 기능 구현에 집중하여 프로젝트를 진행할려고 하였으나, 수강해야되는 세션의 양이 1차 프로젝트때보다 많고, 기업 협업 준비로 인해 실제로 사용할 수 있는 시간이 줄어들었기 때문에 내실 다지기에 집중하기로 팀원들과 협의하였다. 2차 프로젝트 개요 클론 한 원본 사이트 : 클래스101(https://class101.net/) 저작권을 우려하여, 실제 32기 팀원들의 사진을 촬용하고 편집하여 상품 이미지로 사용하였다. 이러한 일련의 과정을 맡아주신 유림님께 감사를 표한다. git repository : https://github.com/NamkyuAhn/32-2nd-weClass200-b..
-
django가 제공해주는 회원가입/로그인 기능Web/Django 2022. 5. 26. 13:38
django에서는 개발자의 편의를 위해 기본적으로 회원가입/로그인 기능을 제공해주고 있다. 회원가입에는 create_user 함수를 이용하고, 로그인에는 authenticate 함수를 이용하면 따로 회원가입/로그인 로직을 작성할 필요 없이 간단하게 회원가입, 로그인 기능을 구현할 수 있다. 회원가입 회원가입을 위해서는 먼저 django가 제공하는 기본 User 클래스를 이용해 유저 테이블을 만들고, UserManager 클래스 또한 정의해 주어야한다. 기본 User 클래스 이외에도 AbstractBaseUser와 같은 커스텀 User 클래스를 이용하여 유저 테이블을 생성하여도 된다. 다음은 필자가 프로젝트를 진행하면서 생성한 모델 클래스이다. #users/models.py class UserManager..
-
유닛 테스트중 You can't execute queries until the end of the 'atomic' block 해결 방법Web/Django 2022. 5. 25. 19:11
회원가입 api의 유닛 테스트를 하던 중, email 중복을 거르기 위해 발생하는 에러인 integrity 에러가 발생하는 상황을 테스트하려고 할 때 django.db.transaction.TransactionManagementError: An error occurred in the current transaction. You can't execute queries until the end of the 'atomic' block. 라는 에러가 발생하여 테스트를 통과하지 못하였다. #views.py class SignupView(View): def post(self, request): try: ... except IntegrityError: return JsonResponse({'message' : 'em..
-
Django migration 순환참조 오류 해결방법Web/Django 2022. 5. 15. 22:57
django를 사용한 프로젝트에서 모델링을 할 때 다대다 테이블을 정의하거나, 여러 앱간에 관계를 가진 테이블을 만들고 makemigration이나 migrate를 할 때 의존성 문제가 생기는 경우가 있다. 다음과 같은 models 파일이 있다고 치자. #products/models.py class Product(models.Model): name = models.CharField(max_length=45) price = models.DecimalField(max_digits=10, decimal_places=2) created_at = models.DateTimeField(auto_now_add=True) updated_at = models.DateTimeField(auto_now=True) #user..
-
위코드에서의 1차 프로젝트 - 배민 문방구 클론 코딩Web/프로젝트 2022. 5. 9. 18:42
4주간의 기초 학습 시간이 지나고, 처음으로 맞는 협업 프로젝트에 참여하였다. 아무래도 프로젝트 경험이 없다 보니 어떻게 진행해야 할지 막막하고, 기능 구현에 대한 방향성도 고민이 많았다. 그러나 좋은 팀원들을 만나고 여러 번의 회의를 통해 협의를 하고 각자의 할일들을 정하니 수월하게 진행되었다. 1차 프로젝트 개요 클론 한 원본 사이트 : 배민문방구(https://brandstore.baemin.com/) 결과물 주소 : http://3.137.123.220:8000 저작권을 우려하여, 상품의 사진은 저작권 프리 사이트의 사진들을 이용하였다. git repository : https://github.com/NamkyuAhn/32-1st-88stationery-backend 프로젝트 기간 : 2022-0..
-
ManyToManyField 사용의 장점Web/Django 2022. 4. 13. 15:48
Django의 관계형 테이블에서 다대다 테이블끼리의 관계를 models에서 설정할 때, ManyToManyField를 사용하는 방법과 직접 중간 테이블을 만든 후, 중간테이블에서 ForeignKey를 선언하는 방법이 있다. 그중 전자의 방법은 후자에 비해 많은 이점을 가져다 주는데, 그 이점에 대해 포스팅 해볼려고 한다. 사용할 데이터베이스의 구조는 다음과 같다 actors와 movies는 다대다 관계를 가지는 테이블이다 models는 다음과 같이 설계하였다 만약에 Movie 클래스에서 actor에 대해 m2m(manytomany) 관계를 선언하지 않았다면 다음과 같은 중간테이블도 직접 만들어야 한다. 그러나 m2m을 선언하였기 때문에 중간테이블을 직접 만들지 않아도 django에서 알아서 중간 테이블..
-
position과 inline/blockWeb/html css 2022. 3. 30. 13:57
position - relative, absolute, fixed position에는 여러 가지 프로퍼티가 있는데 그중 많이 사용되는 프로퍼티는 relative, absolute, fixed이다. 먼저 relative는 기본 위치(position이 static = {디폴트 상태, 아무런 효과 X}인 상태에서의 위치)를 기준으로 하여 top, right, bottom, left에 지정된 거리만큼 이동하여 위치하게 된다 예를 들어 어떤 요소에 top : 30px, left : 50px라는 값을 준다면 그 요소는 원래 있던 위치에서 위에서 30픽셀, 왼쪽에서 50픽셀만큼 떨어진 위치에 자리하게 된다. absolute는 부모나 조상중에 position을 가지고 있는 요소를 기준으로 하여 배치된다. 다만 stat..