Etc 49

[쿠버네티스] 쿠버네티스(Kubernetes, k8s)란?

쿠버네티스란? 쿠버네티스란 컨테이너를 관리하는 툴이다. 즉, 컨테이너화된 애플리케이션의 자동 배포, 스케일링, 재시작 등을 제공하는 관리시스템이다. 개발, 배포에 항상 쿠버네티스가 필요한가? nodejs로 만든 웹사이트를 도커 컨테이너에 넣어서 AWS로 배포하는 프로세스(한 개의 인스턴스만 사용) : 쿠버네티스 쓸 필요 X 도커가 여러 개의 컨테이너를 가지고 있고, micro-service architecture를 가지고 있다. 그래서 어떤 컨테이너는 업로드만, 또 어떤 컨테이너는 인증만, 또 다른 어떤 컨테이너는 결제만 다룬다면 이 컨테이너들은 동시에 업로드 돼야 한다. 배포엔 문제가 없으나 운영을 하며 문제가 생기기 시작한다. 쿠버네티스를 쓰는 이유 1. 컨테이너 상태 관리 컨테이너 중 하나가 죽으면..

[Docker] 도커란? 도커 간단 정리

도커란? 내 컴퓨터는 윈도우고, 서버는 리눅스다. 그런데 코드를 서버에 올렸더니 환경이 달라서 제대로 작동하지 않는다. 이러한 문제를 environment disparity라고 한다. 이를 도커로 해결할 수 있다! 도커를 이용하면 다른 머신에 동일한 환경을 구현할 수 있다. 도커 설정 방법 1. docker를 내 컴퓨터와 서버에 모두 설치한다. 2. 구현 환경(우분투, 파이썬, 깃 등)을 담은 docker 파일을 생성한다. 3. 생성한 docker 파일을 컴퓨터와 서버에 모두 준다. 4. docker는 파일을 읽어 설정한 환경과 같은 virtual container를 만든다. 5. 이제 컴퓨터에서 서버로 docker 파일과 함께 코드를 업로드하면 잘 작동한다! 도커의 장점 docker 컨테이너들은 독립적..

[Git Bash] 원격저장소에 push하기(+원격저장소 branch 가져오기)

git init - 현재 디렉터리 기준으로 git 저장소 생성 및 초기화 git remote add origin - 로컬 git 저장소에 원격 저장소를 추가한다. + git remote -v : 원격저장소의 주소를 확인할 수 있다. git pull origin - 원격 저장소에 있는 프로젝트 내용을 가져온다. - 내가 로컬에서 작업하고 있는 프로젝트와 병합하므로 기존 작업 내용을 유지할 수 있다. - git clone도 원격 저장소에 있는 프로젝트 내용을 가져오는 명령이지만 해당 프로젝트의 폴더를 새롭게 생성한다는 차이점이 있다. git add . git commit -m "commit message" - 업데이트된 내용을 추가 / 커밋한다. - git commit --amend : 직전 커밋 수정 gi..

Etc/Github 2023.04.04

[Git Bash] 경로에 공백(띄어쓰기)이 있을 때 cd, git add 방법

Problem 📁 Toy Project라는 폴더가 있을 때 폴더명 그대로 명령어를 실행하려하면 경로를 찾지 못한다 $ cd Toy Project bash: cd: too many arguments $ git add Toy Project fatal: pathspec 'Toy' did not match any files Solution 1. 큰 따옴표로 경로를 감싸기 $ cd "Toy Project" 2. 특수문자인 공백을 백슬래시(\)로 이스케이프 처리하기 $ cd Toy\ Project

Etc/Github 2023.03.28

[Node.js] 미들웨어란?

미들웨어란? - 요청과 응답의 중간에 위치하며 클라이언트에게 요청이 오면 그 요청에 대한 응답을 보내기 위해 중간에서 목적에 맞게 처리를 해주는 함수들이다. - req, res, next를 매개변수로 가지며, app.use나 app.get, app.post 등으로 장착한다. - 에러 처리 미들웨어만 예외적으로 err, req, res, next를 가진다 미들웨어 사용법 - 특정한 주소의 요청에만 미들웨어가 실행되게 하려면 첫 번째 인수로 주소를 넣으면 된다. - 다음 미들웨어로 넘어가려면 next 함수를 호출해야 한다. - next를 호출하지 않는 미들웨어는 res.send나 res.sendFile 등의 메서드로 응답을 보내야 한다. - next도 호출하지 않고, 응답도 보내지 않으면 클라이언트는 하염없..

Etc/Node.js 2023.03.27

[JavaScript] async & await란?

Callback & Promise 1초마다 로그를 출력하는 동일한 내용의 코드를 콜백함수와 프로미스로 구현했다. 프로미스를 사용함으로서 콜백함수가 중첩되는 현상인 '콜백 지옥'로부터 벗어났다. // callback hell timer(1000, function() { console.log("작업"); timer(1000, function() { console.log("작업"); timer(1000, function() { console.log("작업"); }); }); }); // use promise's then timer(1000) .then(function() { console.log("작업"); return timer(1000); // 타이머 실행 후 Promise 객체를 return함 }) .t..

Etc/Frontend 2023.03.23

[JavaScript] 프로미스(Promise)란?

📢 프로미스(Promise)란 실행은 바로 하되, 결괏값은 나중에 받는 객체로 비동기 처리에 사용된다. 프로미스를 배우기 전에 먼저 동기, 비동기에 대해 알아보자 Synchronous와 Asynchronous console.log(1) console.log(2) console.log(3) console.log(4)// 1-> 2 -> 3 -> 4 - 앞 명령이 끝나야 그 다음 명령이 실행되는 걸 "synchronous하다"고 한다. - 어떤 순서로 실행되는지 파악하기 쉽다는 장점이 있으나, 명령 실행에 시간이 더 걸린다는 단점이 있다. console.log(1) console.log(2) setTimeout(function() { console.log(3) }, 5000); console.log(4) /..

Etc/Frontend 2023.03.23

[JavaScript] 콜백 함수(callback function)란?

콜백 함수란? - val는 함수지만 지금 바로 실행되지 않고, fn 함수의 입력값으로 전달돼서 fn 함수에 의해 나중에 호출된다. - 이렇게 다른 함수에 의해 나중에 호출되는 함수를 콜백 함수라고 한다. val = function(🐑) { return 🐈 } function fn(arg) { arg(); } fn(val) 콜백함수 이해하기 콜백함수를 갖는 메소드인 javascript.array.filter()를 통해 콜백함수를 이해해보자 // 함수 구조 arr.filter(callback(element[, index[, array]])[, thisArg]) [ 매개변수 ] - callback : 각 요소를 시험할 함수. true를 반환하면 요소를 유지하고, false를 반환하면 버린다. - element..

Etc/Frontend 2023.03.21

[Node.js] 노드 프로젝트 시작하기

1. $ npm init - 프로젝트를 시작할 폴더로 이동한 후 명령어를 입력한다. - 명령어 입력으로 생성된 package.json 파일에 패키지 설정 정보를 입력한다. - main : 자바스크립트 실행 파일 진입점인 index.js - scripts : start 속성 (nodemon app은 app.js를 nodemon으로 실행한다는 의미다.) * nodemon : 서버 코드에 수정사항이 생길때마다 서버를 자동으로 재시작하는 모듈 { "name": "npmtest", "version": "0.0.1", "description": "hello package.json", "main": "index.js", "scripts": { "start": "nodemon app" }, "author": "jiae..

Etc/Node.js 2023.03.08

[Node.js] 2.2 알아둬야 할 자바스크립트 - 프런트엔드 자바스크립트

예제의 프런트엔드에 사용되는 기능을 설명한다. 1. AJAX - 페이지 전환 없이 서버에 요청을 보내고 응답을 받는 기술이다. - JQuery나 axios 같은 라이브러리를 이용하여 AJAX 요청을 보낼 수 있다. 2. FormData - HTML form 태그의 데이터를 동적으로 제어할 수 있는 기능으로 주로 AJAX와 함께 사용된다. (axios로 폼 데이터를 서버로 보낸다.) - FormData 메서드 - apend : 키-값 형식의 데이터를 저장한다. (키 하나에 여러 개의 값 추가 가능) - has : 주어진 키에 해당하는 값이 있는지 여부를 알린다. - get : 주어진 키에 해당하는 값 하나를 가져온다. - getAll : 주어진 키에 해당하는 모든 값을 가져온다. - delete : 현재 ..

Etc/Node.js 2023.03.08