
1. query에 대해서 쿼리란 "질문", 이라는 뜻으로 데이터베이스에 특정한 데이터를 보여달라는 클라이언트의 요청 정해진 엔드포인트 부터 ? 로 시작 쿼리스트링은 키=밸류 형태 & 연산자를 통해 여러조건을 보낼수 있다. > 예시: https://lolchess.g
순차적인 처리가 중요시되며 프로그램 전체가 유기적으로 연결되도록 만드는 프로그래밍장점컴퓨터의 작업 처리 방식과 유사함ㄴ객체지향 언어보다 코드의속도는 빠르다 단점전체적인 코드가 유기적으로 연결 되어있기 때문에 코드수정이 필요할 경우, 관련된 모든 코드를 수정해야하는 번거
프로미스 promise 객체는 비동기 작업이 맞이할 미래의 완료, 실패의 결과값 Promise 의 3가지 상태 대기 (pending): 프로미스객체가 생성되었지만 비동기 작업이 완료되지않아 대기중인 상태 특징 대기상태에서는 결과값을 얻을 수 없다. 객체가 생성되고
자바스크립트에서 모듈은 독립적 기능을 가진 코드 단위를 뜻함특정 기능을 구현하는 코드를 다른 파일이나 코드에서 재사용 하도록 만든것독립성: scope 구조의존성: import, export를 통해 의존성 관리이런식으로 function 키워드 앞에 export를 사용한다
Fetch API 와 Axios를 비교했을 때 axios 가 더 유리한 점fetch: 응답 형식이 JSON 이면 .josn() 메소드 호출 필요axios: 응답 자동변환이 있기 때문에 호출 필요 없음fetch APIAxios위 코드는 JSON 파싱에 대한 비교Axios
1\. HTTP (Hyper Text Transfer Protocol)네트워크 장치간의 정보를 전송하도록 설계된 애플리케이션 계층 프로토콜 이다.HTTP 요청인터넷통신 플랫폼에서 웹 사이트를 로드하는데 필요한 정보를 요청 하는 방법 요소2\. HTTPS ((Hyper

C L I Command Line Interface 명령줄 인터페이스이며GUI와 다르게 텍스트터미널을 통해 사용자와 컴퓨터가 상호 작용하는 방식이다.말 그대로 해석만 해도 그래픽이 없다면 파일을 만들거나 삭제하는 동작도 마우스로 딸깍이면 가능한데 왜 백엔드 프로그래

토스의 오픈소스인 es-toolkit으로 협업이 어떻게 이루어 지는지 알아보자es-toolkit 은토스에서 개발한 ES모듈 기반 유틸리티 함수 제공하는 라이브러리 이다.깃헙에 접속해서 es-toolkit의 브랜치를 보면이런식으로 많은 브랜치들이 있다.main: 새로운
프로세스는 현재 실행 중인 프로그램을 뜻한다.프로세스의 구조는 크게 4가지로 나뉜다.| 코드(Code) | ---| 데이터(Data) | ---| 힙(Heap) | -----------
웹 서비스에서는 많은 DB중에서 관계형데이터베이스(Relational Database)를 사용하고 있는데 왜 사용하는지 알아보자 관계형 데이터베이스란? 데이터가 하나 이상의 테이블에 행과 열 형태로 저장되며, 사전에 정의된 관계를 통해 구성된 정보의 모음이다 각
정의테이블에서 각 행을 유일하게 식별가능한 고유한 값을 가지고있는 속성이다.(기본 키 설정을 하게되면 해당 컬럼은 중복될 수 없다.(null값도 포함)특징말 그대로 식별이 가능해야 하기 때문에 값이 두 개 이상 존재할 수 없음한 테이블에 하나만 존재네임은 겹치더라도 i
미들웨어는 웹프레임워크(Express.js)에서 클라이언트의 요청(request)과 응답(response)사이에 실행 되는 함수이다. 응답을 수정하거나 에러처리, 인증 인가 처리도 가능하다.기본구조함수에 요청, 응답, 다음미들웨어함수 총 3가지 매개변수를 받는 구조이다
백엔드 서버에서 이미지 업로드는 클라이언트가 이미지를 서버로 전송, 저장하고 클라이언트에게 적절한 응답을 보내는 방식으로 이루어집니다. 업로드 방법에는 여러 가지가 있다.DB에 저장하는 방식데이터베이스에 저장하는 방식이며, 이미지파일을 바이너리 오브젝트 형태로 저장하거

세션기반인증에 대해서 알아보기전에 인증과 인가를 알고 넘어가면 좋을 것 같다.현실세계에서는 인증과 인가를 혼용해서 사용하기도 하지만 컴퓨팅환경 에서는 엄격하게 구분해야함. 두 개념은 보안시스템에서 중요한 역할을 하지만 목적과 동작 방식이 차이가 있다.인증 (Authen
토큰 방식은 JWT (Json Web Token)이고 JWT의 구조는 3개의 부분으로 나뉘어 있고, XXX.YYY.ZZZZ와 같이 두 개의 점을 기준으로 세 파트로 나눠져있다. 각.ader, 2.Payload, 3.(verify) Signature로 구분.

REST(Representational State Transfer)는자원을 URI 로 표현하고, HTTP 메서드로 해당 자원에 대한 행위를 정의웹 아키텍처 이다.• /users → 사용자 자원• GET /users → 사용자 조회• POST /users → 사용자 생성
설명CORS(Cross-Origin Resource Sharing)는 브라우저의 보안 정책 때문에 등장한 기술이다.브라우저는 보안을 위해 다른 출처(origin)의 리소스를 마음대로 요청할 수 없도록 제한하게 됨.이걸 Same-Origin Policy (SOP) 라고
데이터의 무결성 : 관계형 데이터베이스에서 데이터의 정확성, 일관성, 유효성을 유지하는 것이다 이것을 지키는게 중요하고 쉽게 풀면 엉망진창 꼬이지 않고 믿을수 있는 데이터를 유지한다고 생각하면 될 것같다. 1. 개체 무결성 (Entity Integrity) 기본 키(
데이터베이스의 구조가 변경 되었을 때 수행한 작업을 코드로 관리함.\-> 컬럼을 추가,변경 하거나 외래키 설정 DB구조 변경을 기록하여 버전 관리 하는것마이그레이션을 하면 변경 이력을 추적할 수 있으며, 여러 환경에서도 동일한 DB 구조를 적용 가능함여러 개발자가 협업
WebSocket을 설명하기전에 HTTP Http는 클라이언트가 요청을 보내야 응답을 반환해주는 단방향 모델이다. 연결은 요청마다 초기화됨. 폴링, 롱폴링으로 실시간 기능을 구현할 순 있지만 비효율적 WebSocket 초기 핸드셰이크(HTTP 기반) 후 지속적인
실시간 서비스를 구축할 때 중요한건 유저 간 지연이 적은 빠른 통신이 필요하다.실시간 서비스를 구축할 때 사용되는 기술은 WebRTC와 gRPC가 있는데 사용목적과 동작은 다르지만 목표 실시간성이라는 목표에 사용되는 기술이다.WebRTC (web real-time co
WebRTC에 대해 공부하던 중, STUN과 TURN 서버가 직접 연결이 어려운 경우에 중계 역할을 한다는 내용을 접했고 그렇다면 직접 연결이 어려운 상황은 어떤 경우인지, 그때 TURN 서버가 어떻게 중계 역할을 수행하는지“에 대해 정리해보려 함이유는 NAT (Net

테스트 주도 개발(Test-Driven Development, TDD)은 소프트웨어 개발 방법론 실제 코드를 작성하기 전에 테스트 코드를 먼저 작성하는 방식으로 테스트가 개발 과정을 주도하는 핵심적인 역할을 하게된다.TDD를 이용하여 개발을 하게된다면 실패하는 테스트
만약 서비스의 평균 동시이용자가 50명이라고 가정했을 경우에 50명의 인원이 서비스를 이용하는동안 서비스가 얼마나 안정적이고 효율적인지 파악하는것목적일상적인 상황에서 시스템의 성능을 평가하는 것이 주 목적응답 시간, 처리량, 서버 리소스 사용량을 측정, 서비스가 얼마나
https는 http에 SSL/TLS 암호화를 적용한 보안 프로토콜이다.일반http요청에 보안계층(SSL)이 붙었다고 생각하면 된다.HTTP → 평문으로 통신 (누군가 가로채면 내용이 그대로 보임)HTTPS → 암호화된 통신 (가로채도 해독 불가)데이터보안 측면사용자
서버에 몰리는 트래픽을 여러 서버로 분산해주는 장치트래픽이 몰릴 때 서버가 다운되는 걸 방지여러 서버를 효율적으로 활용장애 대응 가능라운드로빈 방식요청이 들어오면 서버들에 순서대로 번갈아가며 분산하게 됨예시: 서버 A → B → C → A → B → …모든 서버의 용량
(Continuous Intergration) 지속적 통합 과(Continuous Delivery/Deployment) 지속적 배포과정을 자동화해주는 도구CI : 코드 병합 시 자동 테스트 및 빌드를 수행해 문제를 빠르게 확인CD : 변경된 코드를 자동으로 배포해 빠르
Infrastructure as Code(코드형 인프라)는서버, 네트워크, 데이터베이스 등 인프라 리소스를 수동으로 설정하지 않고, 코드로 정의하여버전 관리와 자동화가 가능하도록 하는 개념이다.이전에는 서버를 만들려면 콘솔에서 클릭하고 설정해왔지만IaC를 사용하게되면
여러 개의 컨테이너를 자동으로 배포하고, 관리하고, 확장하고, 복구하는 기술 또는 시스템컨테이너(Docker)를 사용하면 앱을 작은 단위로 나눠서 실행할 수 있게 되는데그 컨테이너의 개수가 많아진다면 관리하기 어려울 것임어느 서버에서 실행?죽은 컨테이너는 자동으로 다시
컨테이너 오케스트레이션을 찾아보던중에 다운타임 롤링업데이트라고해서 서비스를 업데이트 해야할 때 대타를 세워서 서비스 이용자들에게는 차질없이 업데이트가 진행될 수 있다는걸 알았다. 다운타임(Downtime) 은 말 그대로 서버나 서비스가 잠시 멈추는 시간예)웹사이트에 접
AWS에서 배포할 때 보통 조합으로 구성해서 배포를 해봤었다.EC2: 백엔드 서버 (NestJS, Express 등 실행)RDS: 데이터베이스 (MySQL, PostgreSQL)S3: 이미지, 파일 저장용그리고 로컬에서 Docker는 한 번 연습해본 정도였는데,AWS