목록Backend (28)
개발일지
Redis는 Memcached와 비슷한 캐시 시스템으로서 동일한 기능을 제공하면서 영속성, 다양한 데이터 구조와 같은 부가적인 기능을 지원하고 있습니다. 여기서 캐시 시스템이란게 어떤 건지 잘 몰라서 찾아봤다 Cache란 나중에 요청할 결과를 미리 저장해둔 후 빠르게 서비스해 주는 것을 의미한다. 즉, 미리 결과를 저장하고 나중에 요청이 오면 그 요청에 대해서 DB 또는 API를 참조하지 않고 Cache를 접근하여 요청을 처리하는 기법이다. 이러한 cache가 나온 배경에는 파레토 법칙이 있다. 파레토 법칙이란 80%의 결과는 20%의 원인으로 인해 발생한다는 뜻이다. 즉, 캐시는 모든 결과를 캐싱할 필요가 없으며 서비스를 할 때 많이 사용되는 20%만 캐싱함으로써 전체적으로 효율을 끌어올릴 수 있다. ..
이미지 업로드 프로세서의 이해 이미지 기본적인 프로세서 브라우저에서 사용자가 업로드할 이미지 파일을 선택합니다. 브라우저에서 선택된 파일을 변수에 저장합니다. 변수에 담긴 내용을 파일 객체라고 하며 파일 사이즈 등 파일에 대한 정보를 담고 있습니다. 이제 브라우저에서는 파일 객체를 백엔드 서버에 업로드 요청을 합니다. 이를 위해 백엔드 서버에서는 파일 업로드를 하는 API를 제작해 놓아야 합니다. 백엔드 서버에서는 API를 통해 받은 파일을 DB에 저장 시 BLOB타입으로 저장하게 됩니다. 하지만 파일은 큰 용량을 차지하기 때문에 모든 파일을 DB에 저장하는 것은 비효율적입니다. 그럼 이미지 파일을 어디에 저장할까? Srorage service 를 이용해서 저장 하게 된다 이런 서비스를 제공하는 회사가 ..
Payment 결제 결제 프로세스 과정 1. 구매자가 상품에 대한 정보와 금액을 판매자에게 전달 2. 판매자는 전달받은 금액을 PG사에게 결제해줄 것을 요청 3. PG사는 요청 받은 정보를 은행사에게 다시 결제 요청 4. 은행사는 요청받은 금액을 구매자의 계좌에서 출금 후 PG사로 전달 5. PG사는 판매자에게 금액을 전달 (일정량의 수수료 제외) 6. 판매자는 금액확인 후, 구매자에게 상품을 배송 PG Payment Gateway 의 줄임말로, 구매자와 판매자 사이에서의 이뤄지는 결제를 안전하게 할 수 있도록 대행해주는 역할을 담당합니다. 대표적인 PG사로는 KG 이니시스, NHN, KCP, LGU+ 등이 있으며, 모바일 환경으로는 KG 모빌리언스, 다날, 카카오Pay 등이 있습니다. Iamport 원..
async / await 자바스크립트는 싱글 스레드 프로그래밍언어기 때문에 비동기처리가 필수이다 비동기 처리는 그 결과가 언제 반환될지 알수 없기 때문에 동기식으로 처리하는 기법들이 사용되어야 하는데 대표적인 비동기를 동기적으로 작성하는데 좋은 코드가 setTimeout, callback,Promis 가 있는데 약간의 문제점이 있다 이때 async / await 를 사용해주면 문제들을 해결하면서 쓸수 있다 function (함수)키워드 앞에 async만 붙여주면 되고 함수 안에 비동기로 처리되는 부분 앞에 await만 붙여주면 된다. 정리해보면 비동기적인 작업을 수행하기 위해 콜백함수를 익명함수로 전달하는 과정에서 생기는 콜백 지옥을 Promise, async/await등을 사용해서 방지할 수 있습니다...
REST-API api 이름이 홈페이지 주소처럼 생김 응답에 따른 결과로 백엔드 개발자가 만든 함수(api)에서 모든 데이터가 담겨서 받아짐 =>용량이 많은데이터를 보내거나 할때 느려짐 api에 전송을 담당하는 요청자 axios 를 이용해서 요청을 받음 GraphQL-API api 이름이 일반적인 함수 처럼 생김 응답에 따른 결과로 백엔드 개발자가 만든 함수(api)에서 필요한 데이터만 골라서 받을수 있다 => 데이터를 골라서 받을수 있어서 빠르게 응답 가능 api에 전송을 담당하는 요청자 apollo-client 를 이용해서 요청을 받음
인증(Authentication) 인증은 유저의 identification(신원확인)을 확인하는 절차이다 쉽게 유저의 아이디돠 비번을 확인하는 절차이다 인증에는 서버기반 인증 & 토큰 기반 인증이 있다 서버기반 인증은 기존의 서버 기반 인증 시스템은 서버측에서 유저들의 정보를 기억하고 있어야 했습니다. 따라서 여러가지 문제점이 발생했습니다. 서버가 유저의 인증 기록을 세션에 저장하는데, 로그인 유저가 많아지면 서버가 과부하됩니다. 세션을 사용하면 분산된 시스템을 설계하고 서버를 확장하는 것이 어렵습니다. 세션을 관리할 때 사용되는 쿠키는 여러 도메인에서 관리하는 것이 번거롭습니다. 이런 문제점들을 해결하기 위해 토큰 기반 인증 시스템을 사용하기 시작했습니다. 토큰 기반 인증 무상태(Stateless) &..