mysql에는 auto increment가 있었습니다. postgresql에는 없을까요? 문서의 8.1.4를 보시면, serial 시리즈가 비슷한 역할을 한다고 되어 있습니다. 저는 도서관 api를 구현하는 토이 프로젝트를 하고 있어요. 이 중에, book 관련한 api는 얼추 만들었으니, 책을 빌리고 반납하는 api를 만들겠습니다. 그러려면, user 테이블하고, borrow 테이블이 필요한데요. 아직, login 기능은 만들 생각이 없으니, 그냥 borrow 테이블만 만들도록 하겠습니다. 책을 빌리는데, 누가 빌리나요? 유저가 빌릴 겁니다. 즉, 책 아이디와, 유저 아이디가 필요합니다. 그리고 언제 빌렸는지 알기 위해서, 빌린 시각, borrow_time도 저장하겠습니다. 그런데, 빌린다. 요청에 가..
코딩 검색 결과
안녕하세요. 조가희입니다. 이번 시간에는 제가 가희 코테를 열면서 풀이를 검증했을 때 사용해서 편리했던 defaultdict에 대해 알아보도록 하겠습니다. 먼저, 아래 프로그램을 봅시다. 처음에 1번 키가 있고, value 값이 빈 리스트입니다. 그리고 1번 key의 value 값에 append(2)를 합니다. 그러면 1번 키는 2만 들어가 있는 리스트에 대응될 겁니다. 1번째 줄에서 dic은 위와 같이 되어 있습니다. 2번째 줄이 수행되고 나서, key 1에 대응되는 것은 2가 들어 있는 list일 테니, {1: [2]}가 출력될 겁니다. 문제는 그 다음에 키 2에 있는 값에 접근한다는 것입니다. 그런데, 이것은 dic에 없는 키입니다. 따라서, KeyError가 뜹니다. 실행 결과는 위와 같습니다. ..
저번 시간에 유저를 생성하고, 비밀번호를 바꾸고, encryption 알고리즘을 md5에서 scram-sha-256으로 바꾸는 것까지 하였습니다. 이번 시간에는 유저 인증 정보를 보는 방법을 알아 봅시다. 먼저 인증 정보는 pg_authid에 있습니다. 이 문서에 대략적인 설명이 나와 있는데요. rolname은 gh와 같은 유저 이름이 됩니다. 그리고, rolpassword는 암호화된 비밀번호를 의미합니다. SCRAM-SHA-256은 너무 기니까, 대충 앞에서 40자만 뽑아서 가져왔습니다. 그러기 위해서, left 함수를 썼습니다. 이제 인증 방식과 암호화 방식을 md5로 바꿔 봅시다. pg_hba.conf 파일입니다. 이것은 postgresql.conf 파일입니다. 이렇게 설정하고, postgresql..
이번 시간에는 파이썬의 setrecursionlimit에 대해 알아봅시다. 설명을 보시면, 딱히 어렵지는 않습니다. 인터프리터의 maximum stack depth를 늘려줍니다. 스택 트레이스 할 때 그 뎁스를 의미합니다. 이 뎁스는 재귀 호출과 관련이 깊습니다. 예를 들어, 20000번째 피보나치 수를 M으로 나눈 결과를 재귀함수로 구한다고 생각해 봅시다. 메모이 제이션까지 적용한다면 위와 같이 구할 수 있습니다. dp[x]가 -1이 아닐 때에는 그냥 dp[x]를 리턴해 주고, 아니라면 x-1번째 피보나치와 x-2번째 피보나치를 더한 다음에 M으로 나눈 나머지를 리턴합니다. 그런데, RecursionError가 뜹니다. 이는, depth가 너무 많이 깊어져서 smash가 나지 않게 하기 위해서입니다. ..
이번 시간에는 postgresql에서 어떻게 인증 방식을 md5에서 scram-sha-256으로 바꾸는지 보도록 하겠습니다. 12버전에서 테스트 하였습니다. 먼저, 유저 gh를 생성하고, LOGIN이 가능하게 하겠습니다. 그럴려면, gh라는 role을 생성하고 LOGIN 권한을 주면 됩니다. 다음에, password를 설정하려면, alter role ~ with password ~ 요렇게 입력하시면 됩니다. 다음에 du를 입력해 보시면, Role name이 쭉 뜨는 것을 알 수 있습니다. 여기서, postgres는 Superuser이면서 role도 create 할 수 있고, DB도 만들 수 있고 그런 걸로 보아서는 전지 전능한 존재인 듯 합니다. 털리면 안 될 듯 합니다? cho로 로그인을 한 상태에서 ..
최근댓글