본문 바로가기

전체 글49

[코딩자율학습단 13기] 2일차, 리눅스 설치 커리큘럼2장 리눅스 실습 환경 구축하기2.1 리눅스 실습 환경 구축 방법PC에 직접 리눅스 설치하드웨어 위에 바로 리눅스를 설치하며 성능 면에서 가장 좋다. 실제 온프레미스 서버는 리눅스를 바로 설치해서 사용하기도 한다. 그러나 학습용으로 PC 한 대를 직접 사와서 리눅스를 설치하기에는 배보다 배꼽이 클 수 있다. (안 쓰는 노트북이 있거나 윈도우에 질렸다면 한 번 설치해보는 것도 나쁘지 않긴 하다.)가상 머신에 리눅스 설치다른 OS가 있는 상태에서 가상 머신으로 리눅스를 설치하는 방법이 있다. 다만 호스트 머신 안에 새로운 PC 하나가 있는 것과 다름이 없어서 하드웨어 성능을 많이 잡아 먹을 수 있다. 컴퓨터가 좋지 않다면 생각을 해봐야 할 것이다.클라우드 인스턴스로 리눅스 사용AWS, Azure, N.. 2025. 3. 15.
[코딩자율학습단 13기] 1일차, 리눅스 소개 커리큘럼1장 리눅스 소개1.1 운영체제란?운영체제는 컴퓨터나 스마트폰 등의 하드웨어와 소프트웨어 자원을 관리하는 시스템 소프트웨어이다. 운영체제는 한 컴퓨터에서 여러 애플리케이션이 동작할 수 있도록 도와주는 소프트웨어라고 할 수도 있다.커널하드웨어를 초기화해서 사용할 수 있도록 하는 운영체제의 핵심이다. 메모리와 프로세스를 관리하고, 네트워크 연결 등의 주요 기능을 제공한다.장치 드라이버하드웨어 장치를 초기화하고 운영체제와의 통신을 담당하는 소프트웨어다. 여기서 장치는 크래픽 카드, LAN 카드, 마우스 키보드 등 컴퓨터와 연결되어 사용하는 모든 기기를 의미한다.장치 드라이버가 중요한 이유개인적인 경험인데, 노트북에 우분투를 설치해서 사용하려고 한 적이 있다. 어느 정도 사용은 되는데, 노트북 하드웨어가.. 2025. 3. 15.
OAuth 2.0에 대해 알아보기 주제에 대해 학습한 이유로그인 기능을 Denamu 프로젝트에 도입하면서 OAuth를 사용한 기능을 추가하기로 했다.(깃헙, 구글, 네이버, 카카오)그래서 OAuth 기술이 무엇인지, 학습할 필요가 생겼다.이 학습을 하기 위해, 생활코딩 OAuth 영상을 참고했다.OAuth소개내 서비스가 있고, 사용자가 있으며 나의 서비스가 연동하려는 그들의 서비스가 있을 것이다.(각각 Denamu, Denamu의 유저, Google이나 facebook이나 twitter 등이 대상에 대입될 수 있다.)나의 서비스가 사용자를 대신해서 구글의 캘린더에 대신 이벤트를 작성해준다던지, 이런 일을 하고 싶을 수 있다.우리의 서비스가 그들의 서비스에 접근할 수 있도록 할 수 있어야한다.가장 쉬운 방법은 사용자의 Google ID와 .. 2025. 3. 15.
[Denamu 스테이징 서버] DB 조회를 어떻게 최적화할 수 있을까? DB 페이지네이션 성능 개선 과정우리 프로젝트의 서버는 처음에 커서 기반 페이지네이션으로 동작하도록 설계되었다.무한스크롤을 처음 구현해보기도 했고, 커서 기반 페이지네이션이 가장 이해하기 쉽고 구현하기에도 편해보였다.auto_increment가 설정되어 있는 PK를 기준으로 동작하도록 구현했다.그래서 최신 글부터 보여주기 위해 데이터가 순차적으로 삽입되어야 했다.초기 구현과 비동기 삽입의 한계처음 데이터 삽입을 구현하면서 promise.all을 활용한 비동기로 데이터 삽입 요청을 했다.하지만 비동기로 동작하면 DB 요청은 반복문을 통해 순차적으로 진행되어도 실제 DB 접근에서 순차적인 삽입이 보장되지 않는 것을 알게 되었다.개발 기간이 얼마 남지 않아 은행처럼 하나씩 순차적으로 삽입하는 방식으로 변경했다.. 2025. 2. 2.
[WebSocket과 Socket.io] 1편 - WebSocket 🏃‍♂️시리즈로 글 정리를 할 것 같은데, 총 3~4편 정도 생각하고 있습니다.WebSocket으로 시작해서 Socket.io, Socket.io와 WebSocket의 차이, 마지막으로 Nest에서는 어떻게 WebSocket을 사용하고 있는지 이런 것들을 살펴볼 계획입니다.주제에 대해 학습한 이유WebSocket과 Socket.io는 다르다. 이 사실에 대해서는 어렴풋이 주워 들은 것들이 있어서 알고 있었다.(주워 듣게 된 계기는 Postman에서 제공하는 WebSocket 테스트 기능으로 우리 서버 채팅 테스트가 안 되었던 것이다.)이런 것들을 찾게 된 두 번째 계기는 WebSocket을 어떻게 테스트할 지 찾아본 것이었다.부하 테스트 연습을 K6로 진행했는데, 통신 프로토콜이 HTTP와 다르니 어떻.. 2025. 1. 16.
[LeetCode] 2657. Find the Prefix Common Array of Two Arrays 2657. Find the Prefix Common Array of Two Arrays문제 링크문제 이해하기 및 풀이prefix common array라는 단어의 정의 자체가 이해하기 어려웠다.A와 B의 prefix common array가 배열 C일 때, C[i]는 A와 B 모두에서 인덱스 i이하에 존재하는 숫자들의 개수이다. 예시를 들어보자.A = [1,3,2,4]이고B = [3,1,2,4]라고 가정하자.i = 0A의 0번 인덱스까지: 1B의 0번 인덱스까지: 3공통된 숫자가 없음따라서 C의 0번 인덱스: 0i = 1A의 1번 인덱스까지: 1, 3B의 1번 인덱스까지: 3, 1공통된 숫자: 1,3따라서 C의 1번 인덱스: 2i = 2A의 2번 인덱스: 1, 3, 2B의 2번 인덱스: 3, 1, 2공.. 2025. 1. 15.