분류 전체보기252 ch6-2(leetcode 344). 문자열 뒤집기 * 해당 포스트는 공부 후 정리 목적으로 작성되었습니다. * leetcode 344번 ( https://leetcode.com/problems/reverse-string/ ) 풀이방법 1. 투 포인터를 사용한다. left 포인터는 문자열의 맨 처음에, right 포인터는 문자열의 맨 끝에 두고 다중 할당 방식을 이용해서 바꾼다. 파이썬에서 두 변수의 값을 바꿀 경우, 다른 언어들과는 달리 다중 할당을 이용해야 한다. 그렇지 않으면 예상하던 결과가 나오지 않을 수 있다. 파이썬에서는 다른 언어들과 달리 한 변수가 다른 변수에 할당될 때 값을 복사(call by value)하지 않고 값을 참조(call by reference)하기 때문이다. 값을 복사하는 다른 언어의 경우, 임시로 값을 저장할 다른 변수를 .. 2023. 1. 9. ch6-1(leetcode 125). 유효한 팰린드롬 * 해당 포스트는 공부 후 정리 목적으로 작성되었습니다. * - leetcode 125번 ( https://leetcode.com/problems/valid-palindrome/ ) 풀이방법 1. 문제에서는 팰린드롬은 영문자와 숫자만을 대상으로 한다고 했으므로, 조건에 맞는 문자들만 리스트에 넣는다. 이후 리스트의 맨 앞과 맨 뒤의 원소를 각각 제거한 다음, 두 원소의 값이 같은지를 비교한다. 값이 하나라도 다르면 앞뒤가 똑같지 않은 것이므로 False를, 전부 같으면 True를 리턴한다. 파이썬에서 기본으로 제공되는 isalnum() 메소드를 사용하면 특정 문자가 alphanumeric(영문자와 숫자)인지 아닌지를 간단하게 구분할 수 있다. 파이썬에서 제공하는 기본 메소드들은 내부적으로 속도가 훨씬 빠.. 2023. 1. 9. OAuth 2.0 기본원리 해당 게시물은 유튜브 생활코딩 채널의 WEB2-OAuth 강의를 듣고 작성한 포스트입니다. WEB2 - OAuth 2.0 : 1.수업소개 - YouTube 강의 목표 OAuth 개념 이해하기 1. OAuth의 개념 OAuth를 사용하는 대표적인 예시로는 소셜로그인이 있다. 하지만 소셜로그인만이 전부가 아니다. OAuth는 다른 서비스(보통은 신뢰할 수 있는 서비스. ex) google, facebook)와 원래 서비스를 연동한다. 그러려면 사용자가 사용하는 해당 서비스 계정에 접근할 수 있도록 허가를 받아야 한다. 가장 쉬운 방법은 사용자의 개인정보(아이디, 비밀번호) 등을 전달받아서 이를 SNS 계정에 접근할 때 이용하는 것이다. 그러나 사용자 입장에서는 자신의 개인정보를 처음 보는 서비스에게.. 2022. 9. 26. 0822 이메일 폼 만들기 1. 이메일로 인증하기 보통 회원가입을 위해 이메일을 입력하면 이메일 인증 절차를 거친다. 해당 이메일이 실제 사용자가 사용하는 이메일인지를 인증하기 위해서, 이메일로 링크를 보내고 사용자가 그 링크를 열면 인증이 완료되는 방식이다. 이메일로 보내지는 링크에는 여러 정보가 포함되어 있다. 회원가입으로 생성된 유저의 pk(primary key)를 인코딩한 값이나 고유한 토큰을 쿼리 스트링(query string)으로 받기도 한다. 이번에 구현하는 기능에서는 사용자(유저)의 필드에 계정의 활성화 여부를 나타내는 필드를 사용했다. 즉 이메일 인증이 없다면 입력한 정보 그대로 사용자 계정이 만들어지고 로그인이 된다. 반면 인증이 있다면 사용자 계정은 만들어지지만, 사용자의 활성화 필드가 False로 되어 있어서.. 2022. 8. 23. 인증(Authentication) 💎목차 ✔️인증의 정의 ✔️세션과 토큰의 차이점 ✔️API를 인증하는 여러 방법들 ✅인증(Authentication) 인증 - 사용자의 개인정보를 사용하여 사용자가 누구인지를 판단 인가 - 사용자가 어떤 일을 할 수 있는지,어떤 권한을 갖고 있는지를 판단 사용자의 개인정보(아이디나 비밀번호)를 직접 인증에 사용하거나 인증을 위해 주고받는 방법은 정보 노출의 위험이 있어서 잘 사용하지 않는다. 대신 사용자의 개인정보를 인코딩 하거나, 해쉬 알고리즘을 통해 암호화한 뒤 이 정보를 주고받을 수는 있다. 암호화에는 여러 가지 방법이 있다. Base64 인코딩을 거친 정보를 암호화하는 방법도 있고, 클라이언트와 서버만 아는 난수를 생성한 뒤 이를 해쉬 알고리즘에 넣어서 암호화하는 방법도 있다. 그럼 암호화한 정보.. 2022. 7. 14. Model.select_related() vs Model.prefetch_related() 데이터베이스 성능을 효율적으로 관리하는 방법 중 하나로 '서브쿼리는 조인(join)으로 작성해라'는 말을 들은 적이 있다. 서브쿼리(sub-query)란 기존에 날린 쿼리의 캐시 데이터를 사용하는 또 다른 쿼리인데, 이런 서브 쿼리를 작성할 때는 join을 사용하라는 의미이다. join을 사용하지 않으면 작성자는 기존에 만든 쿼리의 데이터(캐시 메모리)를 이용해서 쿼리를 만드려고 했지만, 실제로는 데이터베이스에 또 다른 쿼리를 날리게 된다. 즉 한 번 날릴 수 있는 쿼리를 두 번 날리게 되므로 자원을 낭비하는 셈이다. select_related()와 prefetch_related() 모두 장고 ORM에서 데이터베이스에 접근할 때 사용하는 메소드이다. 또한 join을 사용해서 데이터를 합하고, 쿼리셋(Qu.. 2022. 7. 11. 이전 1 ··· 31 32 33 34 35 36 37 ··· 42 다음