본문 바로가기

Software Engineering3

Redis와 I/O Multiplexing 레디스는 기본적으로 유저 레벨에서는 싱글 스레드로 요청을 처리한다. 하지만 실제 명령에 대한 작업은 이벤트 루프를 이용해 요청을 수행하며 커널 I/O 레벨에서는 스레드 풀을 이용하여 논블로킹 방식으로 요청을 비동기 처리하고 있다.(I/O Multiplexing) 그럼 싱글 스레드로 동작하는 레디스에서 I/O Multiplexing은 어떤 요청을 처리 방식을 말하는걸까? 먼저 실행중인 레디스 프로세스를 조회해보면 아래와 같이 3개의 스레드가 동작하고 있다. 메인 스레드 외 뭔가 부가적인 작업들이 다른 스레드들에서 수행되고 있다는 것인데 레디스의 스레드를 처리하는 파일인 bio.h 를 보면 다음과 같은 코드를 볼 수 있다. /* Background job opcodes */ enum { BIO_CLOSE_.. 2023. 5. 15.
사용자 인증 - Session vs Token(JWT) HTTP 통신 특성 인증 방식에 대해 설명하기 앞서 HTTP 통신 특성에 대해 얘기해보자면.. 기본적으로 HTTP는 stateless한 특성을 가지기 때문에 각 통신의 상태가 저장되지 않는다. 그렇기 때문에 사용자가 웹 서비스에 로그인하여 서비스 이용 시 새 페이지를 요청할 때마다 로그인을 해줘야 되는 문제가 발생할 수 있다. 이 때 세션과 토큰을 사용하면 위 문제를 해결할 수 있다. 사용자가 로그인을 시도할 때 서버에서 일치하는 유저 정보를 찾아 인증(Authentication) 확인의 표시로 session이나 token을 발급,전달 웹 브라우저에서 session/token 정보를 받아 가지고 있다가 새로운 request 발생 시 인가(Authorization)를 위해 해당 세션/토큰을 함께 전송 Se.. 2022. 9. 19.
REST API https://dev-coco.tistory.com/97 REST란? REST API 와 RESTful API의 차이점 참고 REST(REpresentational State Transfer)란? REST의 정의 "REpresentational State Transfer" 의 약자로, 자원을 이름(자원의 표현)으로 구분해 해당 자원의 상태(정보)를 주고 받는 모든 것을 의미합니다. 즉.. dev-coco.tistory.com https://meetup.toast.com/posts/92 REST API 제대로 알고 사용하기 : NHN Cloud Meetup REST API 제대로 알고 사용하기 meetup.toast.com 2022. 8. 7.