전체 글 48

[코딩자율학습단 13기] 1일차, 리눅스 소개

커리큘럼1장 리눅스 소개1.1 운영체제란?운영체제는 컴퓨터나 스마트폰 등의 하드웨어와 소프트웨어 자원을 관리하는 시스템 소프트웨어이다. 운영체제는 한 컴퓨터에서 여러 애플리케이션이 동작할 수 있도록 도와주는 소프트웨어라고 할 수도 있다.커널하드웨어를 초기화해서 사용할 수 있도록 하는 운영체제의 핵심이다. 메모리와 프로세스를 관리하고, 네트워크 연결 등의 주요 기능을 제공한다.장치 드라이버하드웨어 장치를 초기화하고 운영체제와의 통신을 담당하는 소프트웨어다. 여기서 장치는 크래픽 카드, LAN 카드, 마우스 키보드 등 컴퓨터와 연결되어 사용하는 모든 기기를 의미한다.장치 드라이버가 중요한 이유개인적인 경험인데, 노트북에 우분투를 설치해서 사용하려고 한 적이 있다. 어느 정도 사용은 되는데, 노트북 하드웨어가..

OAuth 2.0에 대해 알아보기

주제에 대해 학습한 이유로그인 기능을 Denamu 프로젝트에 도입하면서 OAuth를 사용한 기능을 추가하기로 했다.(깃헙, 구글, 네이버, 카카오)그래서 OAuth 기술이 무엇인지, 학습할 필요가 생겼다.이 학습을 하기 위해, 생활코딩 OAuth 영상을 참고했다.OAuth소개내 서비스가 있고, 사용자가 있으며 나의 서비스가 연동하려는 그들의 서비스가 있을 것이다.(각각 Denamu, Denamu의 유저, Google이나 facebook이나 twitter 등이 대상에 대입될 수 있다.)나의 서비스가 사용자를 대신해서 구글의 캘린더에 대신 이벤트를 작성해준다던지, 이런 일을 하고 싶을 수 있다.우리의 서비스가 그들의 서비스에 접근할 수 있도록 할 수 있어야한다.가장 쉬운 방법은 사용자의 Google ID와 ..

[Denamu 스테이징 서버] DB 조회를 어떻게 최적화할 수 있을까?

DB 페이지네이션 성능 개선 과정우리 프로젝트의 서버는 처음에 커서 기반 페이지네이션으로 동작하도록 설계되었다.무한스크롤을 처음 구현해보기도 했고, 커서 기반 페이지네이션이 가장 이해하기 쉽고 구현하기에도 편해보였다.auto_increment가 설정되어 있는 PK를 기준으로 동작하도록 구현했다.그래서 최신 글부터 보여주기 위해 데이터가 순차적으로 삽입되어야 했다.초기 구현과 비동기 삽입의 한계처음 데이터 삽입을 구현하면서 promise.all을 활용한 비동기로 데이터 삽입 요청을 했다.하지만 비동기로 동작하면 DB 요청은 반복문을 통해 순차적으로 진행되어도 실제 DB 접근에서 순차적인 삽입이 보장되지 않는 것을 알게 되었다.개발 기간이 얼마 남지 않아 은행처럼 하나씩 순차적으로 삽입하는 방식으로 변경했다..