본문 바로가기

분류 전체보기13

[RFC6749] OAuth2.0 요약 Oauth2.0 인증 방식은 third-party 어플리케이션에게 리소스 소유자(서비스)를 대신하여 해당 서비스의 접근 권한을 위임하는 방식이다. 회원가입과 로그인 같은 기능을 위임하여 사용자에 대한 인증을 대신 처리함으로 별도의 인증 프로세스 없이 사용자의 신원 확인이 가능하다. Apple, Google, Facebook, 네이버, 카카오 등 여러 기업에서 OAuth 인증 서비스를 제공하며, API 키를 발급받아 사용할 수 있다. 역할 resource owner 보호된 리소스에 대해 액세스 권한을 가진 자로 일반 사용자(유저)를 뜻한다. client 보호된 리소스를 접근하여 사용하고자 요청하는 어플리케이션 (개발자가 만든 서비스) resource server 보호된 리소스를 호스팅 하는 서버로 위에서 .. 2022. 6. 25.
DB Transaction & Isolation level & Locking Database transaction & ACID 데이터베이스는 서비스 개발에 있어 데이터를 저장/수정 하는데 필수적으로 쓰인다. 여기서 여러 작업들이 발생하는데, 여러 작업을 하나의 단위로 묶어 처리할 때 transaction을 사용한다. 이를 통해 작업이 모두 실행되거나 실행되지 않는 all or nothing 성격을 가지며, 데이터의 정합성을 보장한다. 예를 들어, 2명의 사용자가 하나의 계좌에서 입출금을 한다고 보자. 입금자와 출금자가 순서대로 만원씩 넣고 빼는 과정에서 입금이 출금보다 먼저 이루어지도록 보장하지 않으면 출금은 이루어질 수 없다. transaction을 통해 계좌 뿐 아니라 정보의 순서 그리고 실행의 보장이 이루어지고, 데이터의 정합성과 유효성을 보장할 수 있다. transacti.. 2022. 4. 24.
[Django] select_related & prefetch_related Django ORM은 DB와 Python 객체를 mapping 해주는 강력한 기능을 지원한다. 이번 글은 Django ORM queryset 중, 여러 개의 model 을 처리할 때 유용하게 쓸 수 있는 select_related() 와 prefetch_related()에 대해 예제를 통해 알아본다. 간단 소개 query와 모든 내용을 확인하기에 앞서, Django에서 ORM 최적화로 쓰이는 select_related 와 prefetch_related 에 대해 간단히 알아보고 실습을 진행한다. Django Docs — select_related Django Docs — prefetch_related Django ORM으로 데이터를 조회시 relation의 여부에 따라 추가로 DB 조회가 발생하는데, se.. 2022. 4. 24.
How HTTP request works What happens when you enter www.google.com in brower? 브라우저에 www.google.com 을 치게되면 무슨 일이 일어나는가? 이 글에서는 HTTP의 구조를 가볍게 살펴본 후, 웹개발 실무 면접에서 가장 많이 물어보는 핵심질문 중 하나인 HTTP 요청이 어떻게 처리되는지 정리해보자. HTTP Request & Response 클라이언트(browser)에서 HTTP 프로토콜을 통해 서버에 요청(request)을 하면 그에 맞는 리소스를 응답(response)하는 구조는 검색을 통해 많이 알고 있을것이다. 실제로는 위 그림처럼 단순한 연결이 아닌, 수많은 인터넷 망을 거쳐 요청/응답이 이루어진다. 인터넷은 망구조로 되어 있으며, 클라이언트와 서버 사이에는 수 많은 .. 2022. 4. 24.
Database Index Database 에서 Index는 성능과 직결된만큼 중요한 지식이다. DB 공부에서 필수요소인 만큼, 이 글에서 Index에 대해 조금더 자세히 내용을 정리해봤다. DB를 보기 이전에, 컴퓨터 장치 요소 중 하나인 보조기억장치에 대해 얘기해보자. 보통 Database의 저장장치는 비싼 SSD 대신 HDD를 사용한다. 저장해야할 데이터양을 비교하면 당연 HDD보다 SSD가 훨씬 비싸다. (클라우드 서비스에서 SSD instance도 지원하지만.. 가격이 비싸다🤑) HDD는 디스크 구조로 되어있으며, 물리적인 회전을 통해 데이터를 읽고 쓴다. Disk-based 저장소에서 데이터를 불러올 때, 디스크에서 데이터를 읽어와 메모리에 넣고, 메모리에서 데이터를 처리한 후 다시 디스크에 쓰게 되는데, 이를 디스크 .. 2022. 4. 24.