본문 바로가기

전체 글

(82)
소셜로그인 - kakao API Kakao API를 활용하는 소셜 로그인 기능에서 프론트가 하는 부분에 대해서 다 이해하진 못하지만, 백엔드 개발자도 전체적인 통신이 어떤 단계를 거쳐서 이루어지는지를 공식 문서를 통해 파악하고 코드 외적인 설정에는 어떤 게 있는지를 알고 있어야 된다고 생각한다. 구현 코드는 링크를 참고했고 이 글에서는 데이터의 형태가 어떤지, 자잘하게 놓친 점은 어떤 게 있었는지 기록했다. 프론트엔드 개발자가 하는 부분이지만, kakao login 기능을 사용하기 전 필요한 절차이다. 1. kakao developers에 로그인 한 뒤 앱을 생성한다. 2. 이 앱 메뉴에서 kakao login에 들어간 뒤 state를 ON으로 설정한다. Platform 부분에 redirect URI를 준다. 3. consent ite..
Django 속이기 - migration 파일 직접 수정 models.py를 수정한 뒤 makemigration을 했을 때 이런 메세지가 뜰 수도 있다. You are trying to add a non-nullable field to without a default; we can't do that 어쩌구 이미 있는 model class에 non-nullable인 필드를 추가하면 이런 일이 생긴다. datetime 필드를 추가한 뒤 나왔던 메세지와는 조금 다르다. 그 때는 기존에 존재하는 데이터에게 어떤 시간을 채워넣을까 하는 메세지였는데, 이건 데이터베이스를 이미 삭제한 뒤여도 나온다. 동기들에게서 들은, default를 안 주고 해결하는 방법은 두가지였다. 1. null=True를 주고 만들고, not nullable한 필드를 만들고 싶다면 기존 데이터의 ..
JS는 왜 이래요? JS는 세달 전 한 일주일 정도 맛만 본 게 다인데 Node를 쓰려고 급하게 다시 공부중이다. 예전에는 강의를 보고 코드를 따라 치기 급급했는데, 기초 개념면에서 파이썬과 다른 점을 좀 짚고 들어가려 한다. 머릿속에 물음표가 뜨는 일이 좀 많다. 제목을 왜 이래요?라고 쓰긴 했지만 이유를 뜯어보는 건 아니고 그냥 받아들이는 수 밖에 없다. 외우기. 정현님께서 추천해주신 강의 링크. 영상이 짤막하게 많고(한글 cc 없음) 중간중간에 퀴즈 있다. 신규가입자는 할인 받아서 15000원. 브라우저 콘솔 쓸 때 변수 선언 직후 바로 아랫줄에 undefined가 뜨는게 뭔가 이상한 게 아니고 변수명 찍어보면 그제서야 넣어준 값이 보인다. 정상임. primitive types number, boolean, strin..
Git 속이기 - rebase $ git log로 이제껏 남겨둔 commit을 볼 수 있다. branch들이 각기 origin/main에서 언제 분화되어 나오고 거기서 얼마나 멀리, 몇 commit이나 떨어졌는지도 알 수 있다. 이렇게 쌓아둔 commit 중에는 무언가 중요한 변화가 담겨있는 것도 있고, branch를 옮겨다니느라 대충 남긴 것도 있다. 이걸 그대로 merge하면 이 기록이 전부 남는다. 여러 branch를 받아들이는 main의 이력이 특히 엄청 지저분해진다. rebase를 쓰면 이 이력을 원하는 대로 조작할 수 있다. 여러번의 commit을 마치 한 번의 commit에 해낸 것처럼 합쳐 넣을 수 있고, 한참 전에 파생된 branch지만 최신 main의 상태를 따와 만든 것처럼 히스토리를 바꿀 수 있다. 기능이 센 만..
RESTful API 처음에는 RESTful API를 백엔드 입장에서의 사용자(프론트엔드 개발자)가 API를 사용할 때 엔드포인드 url과 용도를 명확하게 인지할 수 있도록 깔끔하게 만든 API라고만 생각했다. REST가 무엇인지에 대해 더 찾아보니 이게 많은 목적 중 일부라는 걸 알았다. 프립 사이트의 URI를 예시로 이해한 바를 정리했다. REST Representational State Transfer의 약자로, 아키텍쳐 디자인 가이드이다. REST의 6가지 조건(constraints) 옆에 붙인 설명은 내가 이해한 대로 쓴 표현이라 추후 더 공부하다보면 틀린 점이 나올 수도 있겠다. 1. client-server: 서버, 클라이언트가 각자의 자세한 사항에 대해 신경쓸 필요가 없다. 2. steteless: 서버측에서 ..