자바스크립트는 브라우저에서 동작하는 언어.AJAX 덕분에 UX(User Experience) 의 폭발적 향상이 이루어짐.구글 크롬의 V8 엔진 그리고 Node.JS 의 등장으로 인해 자바스크립트는 브라우저란 벽을 깨고 어디든 사용될 수 있게 되었다.자바스크립트 특징자바
프로그래머스 코테 문제를 풀고나서 다른 사람의 풀이를 봤다.내게 더욱 사고를 할 수 있도록 도와준 풀이법이라 생각해 포스팅 하려한다.링크 : https://school.programmers.co.kr/learn/courses/30/lessons/81301내 코
프로그래머스 신규 아이디 추천 문제를 풀어봤다.정규 표현식을 이용해 해결하라는 의도가 보였다.그래서 공식 문서를 보면서 정규 표현식을 연습한 후 문제에 적용했다.문제 링크 : https://school.programmers.co.kr/learn/courses/
프로그래머스의 소수 찾기 문제를 풀어봤다.이전에 소수 찾는 문제를 풀땐 시간을 고려하지 않고 풀었었다.하지만 이번 문제는 정확성 뿐만 아니라 실행시간도 고려를 해야 했다.내 첫 번째 코드 :이렇게 푸니 효율성 테스트에서 실패 했다. 어떤 정수의 제곱근을 기준으로 나열된
백엔드 API를 개발 도중 어떤 기준에 의해 상태코드가 정해지는지 궁금했다.내가 주로 사용한건 200,201,400,404다.여기서 내가 사용한것이 어떤 식으로 사용 되어야 하는지 좀 더 알아보기로 했다.200 : 클라이언트가 서버로 GET요청을 보내고 서버가 정상적으
게시글을 삭제하는 기능을 만드는데 요청을 처리하고 상태코드를 204로 보냈더니 res.status(204).json({message:"게시글 삭제 실패"}) 라는 문구가 클라이언트에게 전달이 안되더라. 근데 상태코드를 200,201로 바꿨더니 문구가 전달되더라. 이유가
깃허브로 팀 과제를 진행하면서 주먹구구식으로 진행을 한것이 아쉬웠다. 깃허브 협업을 좀 더 잘하고 싶어 전략을 찾아 본 결과 Git flow라는 브랜치 전략이 있더라. 근데 Git flow 실습 과정에서 Fast forward merge를 시도 할 때 git merge
mongoDB를 사용해 게시글 삭제 기능을 구현하는 도중 유저의 어떤 정보를 이용해서 토큰 인증을 할지 고민이 되었다. 스키마 생성시 기본적으로 제공하는 \_id 로 인증을 할지 아니면 유저의 닉네임(중복x)으로 인증을 할지 고민이 되었다. DB 값을 조회할 때 어떤
기존에 만들었던 백엔드 API는 '라우터로 응답 반환' 부터 시작해서 '데이터 저장 및 불러오기', 비즈니스 로직처리 까지 전부 하나의 API 주소에서 담당했었다. 그러다 보니 가독성도 떨어지고 나중되서 유지보수하기 힘들어 질 것 같았다. 그래서 디자인 패턴을 적용 해
몇 일 뒤에 있을 프론트엔드/백엔드 협업을 위해 깃허브 브랜치 전략을 알아봤다. Git Flow는 배포 및 개발 전반의 버전을 안정적으로 관리할 수 있다.마침 팀원도 Git Flow를 연습하고 싶다고 해서 같이 해봤다.깃 플로우의 흐름을 그림으로 나타낸 사진이다.이걸
웹 사이트의 상품 상세 정보를 크롤링 하려 했는데 무한 스크롤이 적용 되어 있더라. 처음에 크롤링을 위해 찾았던 라이브러리는 axios, cheerio 였는데 알고보니 얘네들은 정적 크롤링을 위한 툴이었다. 그래서 동적 크롤링을 위한 툴인 puppeteer을 사용했다.
성능: 대용량 데이터베이스를 다룰 때 가장 중요한 측면 중 하나는 성능입니다. 데이터베이스 시스템이 대용량 데이터를 효율적으로 처리하고 검색하는 능력은 매우 중요합니다.확장성: 대용량 데이터베이스는 시간이 지남에 따라 계속해서 데이터가 증가할 수 있습니다. 따라서 확장
다수의 서버에 다수의 인스턴스로 동작하더라도 기능에 문제가 없도록 설계되어야 합니다 → 애플리케이션을 확장할 때, 애플리케이션의 기능에 문제가 발생하지 않도록 주의해야 합니다. 예를 들어, 사용자의 요청을 처리하는 데 필요한 데이터가 한 대의 서버에만 존재한다면,
현재 프로젝트는 인프라 구축 및 자료 조사와 코드 작성이 진행 중이다.그런데 문득 "시스템을 구축하고 나면 그 다음은 뭘 해야 하지? 우리가 풀고자 하는 문제가 뭐지?" 라는 생각이 들었다. 첫 단추가 중요하다. 우리는 문제를 해결하는 사람인데 문제 정의가 안되어 있다
시스템 개요 항목스크린샷 2023-08-18 오후 1.09.03.pngCPU, Network 트래픽, 디스크 I/O 등 성능 지표를 한 눈에 볼 수 있다.여기서 말하는 Node란 “모니터링되는 개별 컴퓨터 또는 서버” 를 뜻한다.해석을 하면 서버 1대당
분산락이란 경쟁 상황(Race Condition) 이 발생할때, 하나의 공유자원에 접근할때 데이터에 결함이 발생하지 않도록 원자성(atomic) 을 보장하는 기법.분산락이 필요한 이유:서버가 한대가 아니라 여러 대인 경우 여러 서버로 API가 분산 호출 됨서버들간에 동
https://western-chip-fba.notion.site/NestJS-Websocket-388b340588d147119eb1d6ec4922c312?pvs=4
DFS는 깊이 우선 탐색으로 그래프에서 깊은 부분을 우선으로 탐색하는 알고리즘이다.먼저 그래프의 구조를 설명하면 그래프는 노드(정점)와 간선으로 표현되는데 위의 그림에서 원형 = '노드' , 간선 = '노드와 노드가 연결된 선'으로 보면 된다.위의 그림을 보면 1번 부
BFS 알고리즘은 너비 우선 탐색으로 가까운 노드부터 탐색하는 알고리즘.BFS 구현은 큐(Queue) 자료구조를 이용하는 것이 정석임.인접한 노드를 반복적으로 큐에 넣게 되면 먼저 들어온 것이 먼저 나가게 되므로 가까운 노드부터 탐색을 진행하게 된다.이전에 포스팅한 D