TIL 240408

hyeo71·2024년 4월 8일
0

2024 내배캠 AI 트랙

목록 보기
70/108

프로그래머스

삼총사

문제 링크

3개의 원소의 합이 0이 되는 조합의 개수를 구하면 되는 문제
from itertools import combination으로 풀어도 되고 3개의 원소를 찾는 것이기 때문에 반복문을 3개 사용하여 풀 수도 있다.

평소 재귀를 사용하는데 어려움을 느끼지만 해당 문제는 재귀로 풀 수 있을 것 같아서 재귀로 풀기로 했다.

슈도 코드를 바탕으로 코드를 구현

def recur(stk, number, n):
    global answer
    if len(stk) == 3:
        if sum(stk) == 0:
            answer += 1
    else:
        for i in range(n, len(number)):
            stk.append(number[i])
            recur(stk, number, i + 1)
            stk.pop()
answer = 0
def solution(number):
    stk = []
    recur(stk, number, 0)

    return answer

Nost

allauth, kakao 로그인

Django-allauth를 사용하여 로그인, 회원가입, kakao 로그인을 구현하려 한다.

공식 문서와 구글링을 통해 allauth 설정하기

1. Django-allauth 설치

poetry add django-allauth


2. settings.py에 allauth 관련 설정 추가하기

INSTALLED_APPS = [
    ...

    # allauth
    'allauth',
    'allauth.account',
    'allauth.socialaccount',

    # ... include the providers you want to enable:
    'allauth.socialaccount.providers.kakao',
]

MIDDLEWARE = [
    ...

    # Add the account middleware:
    'allauth.account.middleware.AccountMiddleware',
]

SOCIALACCOUNT_PROVIDERS={
    'kakao':{
        # For each OAuth based provider, either add a ``SocialApp``
        # (``socialaccount`` app) containing the required client
        # credentials, or list them here:
        'APP':{
            'client_id': '123',
            'secret': '456',
            'key': ''
        }
    }
}

TEMPLATES = [
    {
        ...
        "OPTIONS": {
            "context_processors": [
                ...
                # allauth
                'django.template.context_processors.request',
            ],
        ...
]

AUTHENTICATION_BACKENDS=[
    # Needed to login by username in Django admin. regardless of 'allauth'
    'django.contrib.auth.backends.ModelBackend',

    # 'allauth' specific authentication methods, such as login by e-mail
    'allauth.account.auth_backends.AuthenticationBackend',
]

kakao는 secret key가 없고 client_id에 Rest api key를 넣으면 된다고 한다.


3. urls.py에 allauth path 추가하기

urlpatterns = [
    ...
    path('accounts/', include('allauth.urls')),
    ...
]

4. migrate 하기

python manage.py migrate


5. 실행

  • accounts/login

  • kakao login

  • login 성공

    login을 성공하여 accounts/profile로 넘어왔지만 해당 페이지 미구현으로 404에러 출력

-> allauth에 맞는 url template을 구현해야 한다.
-> 추후 구글, 네이버 로그인을 추가할 때 어렵지 않게 구현이 가능할 것 같다.

0개의 댓글