계정 삭제 기능 개선 탈퇴 기능을 구현할 때, 탈퇴시 즉시 삭제되게 구현해둔 상태 그런데 사실 탈퇴라는 게, 일정 기간동안은 정보가 저장되어 있어야 여러모로 편하다. (탈퇴를 철회하고 싶을 수도 있는데!) 그래서 탈퇴한 계정에 인가해둔 권한만 막아두고(로그인도 불가), 일정 시간이 지나면 삭제되게 하기로 했다. 계정 재활성화 다시 활성화할 수 있도록 비활성화를 만들었으므로, 재활성화를 만들어야겠지? 재활성화는 이메일 인증으로 구현하기로 했다. # 계정 재활성화 class ActivateAccountView(APIView): def post(self, request): email = request.data.get("email") try: user = User.objects.get(email=email, i..
페어프로그래밍 - 알고리즘 문제풀기 https://chaeyami.tistory.com/82 [프로그래머스 스쿨] 코딩테스트 연습 - 2022 KAKAO BLIND RECRUITMENT - 주차 요금 계산 문제 문제 설명 주차장의 요금표와 차량이 들어오고(입차) 나간(출차) 기록이 주어졌을 때, 차량별로 주차 요금을 계산하려고 합니다. 아래는 하나의 예시를 나타냅니다. 요금표 입/출차 기록 자 chaeyami.tistory.com
주말을 불태웠다 (쌩으로) KPT 회고 Keep 저희 팀은 프로젝트를 진행하면서 매일 정해진 시간에 스크럼 회의를 통해 일정 및 진행사항을 공유하고 문제점을 해결해 나갔습니다. 이를 통해 팀원들 간의 소통이 원할하게 이루어졌고, 프로젝트를 성공적으로 마무리할 수 있었습니다. 1. 아침, 저녘으로 규칙적인 회의와 소통을 진행한 점 2. 프로젝트 전 Git 사용법의 숙지 3. 구체적인 프로젝트 계획 4. 프로젝트 전 친목 형성 (정재준) 5. 소통이 잘 되고 서로 양보하고 배려하는 분위기 6. 모여있는 시간에 대한 규칙을 정하고 잘 지켜진 점 (서채연) 7. ERD 및 API 명세서를 전보다 구체적으로 기획하고, 그대로 백엔드 기능들을 구현하는데에 집중한 점 8. 팀원들이 시간 약속을 매우 잘 지킴 9. 팀..
다중이미지 업로드..... 가 해 보고 싶었다. Article 테이블에서 이미지필드를 빼고 이미지 테이블을 따로 만들어서 article 이랑 1:N으로 연결하는 시도 #articles/models.py ''' 이미지 다중 업로드 받기 - 게시글과 이미지를 1:N으로 설정해 테이블 생성 ''' # 이미지 업로드 경로 def image_upload_path(instance, filename): return f'{instance.article.id}/{filename}' class ArticleImage(models.Model): article = models.ForeignKey(Articles, on_delete=models.CASCADE, related_name='image') image = models...
페어프로그래밍 - 알고리즘 문제풀이 https://school.programmers.co.kr/learn/courses/30/lessons/155652 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr def solution1(s, skip, index): answer = '' # 모든 알파벳 alphabet = 'abcdefghijklmnopqrstuvwxyz' # z를 넘어가면 다시 a부터 시작: 알파벳 바꿔주는 과정에서 처리 # s가 문자열이고, alphabet 문자열도 정의해줬으니까 인덱스를 사용해볼까? # 문자열 s의 각 알파벳을 index 만큼 뒤..
페어프로그래밍 - 알고리즘 문제풀이 1. 로그인 성공? # 로그인 성공? ''' 입력한 아이디와 패스워드가 담긴 배열 id_pw 회원들의 정보가 담긴 2차원 배열 db 로그인 성공, 실패에 따른 메시지를 return 아이디와 비밀번호가 모두 일치하는 회원정보가 있으면 "login"을 return 로그인이 실패했을 때 아이디가 일치하는 회원이 없다면 “fail” 아이디는 일치하지만 비밀번호가 일치하는 회원이 없다면 “wrong pw”를 return 제한사항 아이디는 문자열, 알파벳 소문자와 숫자로만 패스워드는 숫자로 구성된 문자열 회원들의 비밀번호는 같을 수 있지만 아이디는 같을 수 없습니다. id_pw의 길이는 2 id_pw와 db의 원소는 [아이디, 패스워드] 형태 1 ≤ 아이디의 길이 ≤ 15 1 ≤..
페어프로그래밍 - 알고리즘 문제풀이 👇 문제 👇 더보기 점 네 개의 좌표를 담은 이차원 배열 dots가 다음과 같이 매개변수로 주어집니다. [[x1, y1], [x2, y2], [x3, y3], [x4, y4]] 주어진 네 개의 점을 두 개씩 이었을 때, 두 직선이 평행이 되는 경우가 있으면 1을 없으면 0을 return 하도록 solution 함수를 완성해보세요. 제한사항 dots의 길이 = 4 dots의 원소는 [x, y] 형태이며 x, y는 정수입니다. 0 ≤ x, y ≤ 100 서로 다른 두개 이상의 점이 겹치는 경우는 없습니다. 두 직선이 겹치는 경우(일치하는 경우)에도 1을 return 해주세요. 임의의 두 점을 이은 직선이 x축 또는 y축과 평행한 경우는 주어지지 않습니다. 기울기 = y 값..
datetime.now() vs timezone.now() datetime.now() : 로컬 시스템 시간대 정보를 사용하여 현재 날짜와 시간을 반환 👉 시스템의 시간대 설정에 따라 결과가 다를 수 있다. timezone.now() : Django의 timezone 모듈을 사용, UTC) 기준으로 현재 날짜와 시간을 반환 👉 서버에서 실행되는 애플리케이션에서 일관된 시간대 정보를 사용할 수 있다. raise_exception raise_exception=True는 Django 폼(form)에서 유효성 검사를 실패했을 때 발생하는 예외(exception)를 즉시 발생시키도록 하는 인자(argument)입니다. Django 폼에서 is_valid() 메서드를 호출하여 유효성 검사를 수행할 때, 폼의 필드 값..
페어프로그래밍 - 알고리즘 문제풀이 def solution(num, total): answer = [] first = (total - num*(num-1)//2)//num final = first + num -1 answer = [i for i in range(first, final+1)] return answer # average = total/num # first = # final = first + num -1 # average = (first + final)/2 # average * num = total # (first + first + num -1)/2 * num = total = num*first+num*(num-1)/2 ''' 3개 더해서 12! 12/3 = 4 3 + 4 + 5 1,2,3,4..
def solution(num, total): answer = [] first = (total - num*(num-1)//2)//num final = first + num -1 answer = [i for i in range(first, final+1)] return answer # average = total/num # first = # final = first + num -1 # average = (first + final)/2 # average * num = total # (first + first + num -1)/2 * num = total = num*first+num*(num-1)/2 ''' 3개 더해서 12! 12/3 = 4 3 + 4 + 5 1,2,3,4,5,6 2,3,4,5,6 5개 더해..