728x90

전체 글 176

[Docker] 도커파일 작성법

Docker Image 빌드를 위해 Dockerfile을 작성해야 한다. 기본적인 원칙은 빈번히 변경되어야 하는 부분일 수록 더 아래 작성해주어야 한다는 것. 다른 부분이 동일하다면, 변경이 없는 부분은 캐시에서 재사용되고 아래 작성한 변경 부분만 다시 빌드되어 효율적이다. FROM node:16-alpine WORKDIR /app COPY package.json package-lock.json ./ RUN npm ci COPY index.js . ENTRYPOINT ["node", "index.js"] WORKDIR은 이미지를 빌드할 경로를 의미한다. COPY로 환경 설정 파일들을 복사해주고, RUN으로 npm install을 실행한다. 여기서 npm install 대신 npm ci를 사용하면, pac..

환경 2023.06.29

[개념 정리] 클라우드 - 컨테이너, 도커

IaaS와 PaaS의 장점만 모은 컨테이너와 도커에 대해 알아보자. 컨테이너 컨테이너는 애플리케이션이 한 컴퓨팅 환경에서 다른 컴퓨팅 환경으로 빠르고 안정적으로 옮겨 실행될 수 있도록 모든 종속성을 패키징하는 소프트웨어의 표준 단위이다. 컨테이너는 OS를 공유하기 때문에 빠르고, 경량화되어 있으며, 격리성도 훌륭하다. 그러나 하나의 OS를 공유하기 때문에 OS에 문제가 생기면 여러 앱에 영향을 미칠 수 있다. 도커 IaaS PaaS Docker 유연성 높음 낮음 높음 이식성 높음 낮음 높음 운영비 효율 낮음 높음 높음 도커는 컨테이너에 필요한 기능을 거의 모두 제공하는 플랫폼이다. 애플리케이션 구동에 필요한 환경 설정 관련 절차를 도커 파일에 작성하고, 그 후 빌드하면 도커 이미지가 생성된다. 도커 이미..

[개념 정리] 클라우드 - IaaS, PaaS, SaaS

클라우드 서비스는 크게 IaaS, PaaS, Saas 3 종류로 분류할 수 있다. IaaS (Infrastructure-as-a-Service) IaaS는 인프라형 클라우드 서비스이다. 단순 인프라 (구축 환경)을 제공하는 서비스로, node.js, MySQL 등 필요한 프로그램을 개발자가 직접 설치해야 한다. 일종의 빈 방을 제공하는 서비스라고 이해할 수 있다. 특정 서비스에 종속되지 않는다는 특징이 있다. 대표적인 서비스로는 AWS의 EC2, NCP 등이 있다. PaaS (Platform-as-a-Service) PaaS는 플랫폼형 클라우드 서비스이다. 플랫폼이란, 인프라에 node.js와 MySQL이 이미 설치되어있거나, 사용자가 단순 클릭 등을 통해 해당 서비스를 이용할 수 있는 방식이다. 주로 ..

[개념 정리] 클라우드 - 가상 머신, 오프프레미스/온프레미스

클라우드 컴퓨팅의 기반이 되는 개념인 가상 머신에 대해 알아보자. 전통적인 배포 방식 가상 머신이 등장하기 이전에는 물리적인 컴퓨터 한 대에 하나의 OS를 설치하고 여러 프로그램을 설치하는 방식이었다. 하나의 OS 상에 여러 계정을 만들어 여러명이 이용할 수 있도록 했다. 이러한 방식은 설치된 프로그램끼리 서로 영향을 받는다는 단점이 있었다. 즉, 서로 독립적이지 못하다. 예컨대 한 명이 보안 프로그램을 설치하면 다른 한 명이 설치한 프로그램이 동작하지 않는 등의 문제가 발생하곤 했다. 가상화 배포 방식 전통적인 방식과 달리 가상 머신을 기반으로 배포하는 방식이다. 가상 머신이란 컴퓨터의 하드웨어를 소프트웨어적으로 구현한 것이다. 여러 계정을 나누어 사용하지 않고, 한 대의 컴퓨터에 여러 개의 OS를 구..

[개념 정리] API

API (Application Programming Interface)란 둘 이상의 컴퓨터 프로그램이 서로 통신하는 방법이자, 컴퓨터 간에 존재하는 중계 계층이다. 즉, 두 컴퓨터 간의 통신 과정에서 프로토콜, 메서드, 데이터 타입이 정의된 중계 계층이다. 인터페이스 API는 프로그램 간의 인터페이스이다. 여기서 인터페이스란 서로 다른 두 개의 시스템, 장치 사이에서 정보나 신호를 주고 받는 접점/경계면을 말한다. 해당 컴퓨터나 프로그램의 내부 설계가 어떻게 구현되어 있는지와 관계 없이 인터페이스를 통해 통신이 가능하다. 예를 들어 UI(User Interface)는 사람과 컴퓨터 간의 접점/경계면을 말한다. 사람들은 UI를 통해 컴퓨터와 상호작용 하며, 컴퓨터 내부가 어떻게 구현되었는지는 신경 쓰지 않..

[개념 정리] XML

XML(Extensible Markup Language)란 JSON과 같이 데이터를 교환하는 형식이다. 이 중 마크업(markup)이란 태그 등을 이용하여 문서나 데이터의 구조를 나타내는 방법이다. 구성 1. 프롤로그 - 버전, 인코딩 2. 루트 요소 (유일) 3. 하위 요소들 트레저브루노 마스 산타 텔미아리아나 그란데 XML은 기본적인 정보를 명시하고 XML의 시작을 알리는 프롤로그와 가장 바깥으로 감싸는 하나 뿐인 루트 요소 그 안에 다양하게 들어갈 수 있는 하위 요소들로 구성된다. HTML과 XML html과 xml은 형태가 유사하지만 아래와 같은 면에서 다르다. 1. HTML은 데이터를 표시하고 화면에 나타내는 용도, XML은 데이터를 저장하고 전송하는 용도 2. HTML은 미리 정의된 태그를 사..

[개념 정리] JSON

JSON(Javascript Object Notation)은 Javascript 객체 문법으로 구조화된 데이터 교환 형식이다. 역할 다른 언어, 플랫폼 사이에 데이터를 주고받는 특정한 형태이다. 독립적 언어와 플랫폼, 프레임워크 등으로부터 독립적이다. 언어의 버전 등에 영향을 받지 않는다. 독립적이기에 각 언어에 맞게 변환하여 사용해야 한다. 예를 들어 Javascript에서 JSON 타입의 데이터를 사용하기 위해서는 JSON.parse()를 사용하여 JSON 파일을 Javascript object로 변환시켜야 한다. Python에서는 json.loads()를 사용하여 dictionary 타입으로 변환한다. 문법 키(key)와 값(value)로 구성된다. { key: value } 이미 존재하는 키를 ..

[소감] 네이버 부스트캠프 8기 탈락 후기

광탈 후 씁쓸한 마음이 아직 채 회복되지 못했지만, 앞으로 나태해질 때마다 이번 경험을 자극제로 삼기위해 탈락 후기를 적어두려고 한다. 서류 지원 네이버 커넥트재단에서 주최하는 부스트캠프 8기 웹 풀스택 전형에 지원했다. 비전공자이자 주언어가 Node.js인 나에게 CS지식과 자바스크립트 기반의 웹 풀스택 기술을 교육해주는 이 캠프가 최선의 기회라고 생각했다. 6월에 학원을 수료하고 올해 말 ~ 내년 초 입사가 목표였던 나에게, 7월부터 올해 말까지 진행되는 이 캠프가 시기까지 완벽했다. 6월 2일에 위코드 부트캠프 생활이 끝나고 마감일인 6월 12일까지 포트폴리오를 정리하고 자기소개서를 쓰느라 정신이 없었다. 염치 불고하고 취준 제대로 해본 대기업 다니는 친구에게 자소서 첨삭도 여러번 받았다. 첫 직장..

소감 & 회고록 2023.06.22

[js 메서드] 배열.find()

자바스크립트에서 배열에 사용할 수 있는 find() 메서드는 인자로 입력하는 판별 함수를 만족하는 첫번째 요소의 값을 반환한다. 원하는 값이 없는 경우 undefined를 반환한다. 찾는 값의 index를 반환하고 값이 없을 때 -1을 반환하는 indexOf()와는 차이점이 있다. 사용 예시는 아래와 같다. const array1 = [5, 12, 8, 130, 44]; const found = array1.find(element => element > 10); console.log(found); // Expected output: 12 문법은 아래와 같다. arr.find(callback) (두 번째 인자로 객체를 넣을 수 있지만 복잡하니 생략하자.) callback 함수의 인자로는 순서대로 아래의 세..

Node.js/JavaScript 2023.06.18

[js 내장 객체] Map

자바스크립트의 내장 객체인 Map은 일반 객체의 훌륭한 대안으로 사용된다. 평소 객체로는 한계가 있었던 많은 부분을 Map은 해결해주고 있다. Map 객체는 아래와 같이 생성한다. const myMap = new Map(); 주요 메서드 5개는 아래와 같다. 1. set() 객체에 프로퍼티를 추가하기 위해 사용하는 메서드이다. key와 value를 동시에 인자로 넣는다. myMap.set('key4', 'value4'); myMap.set('key5', 'value5'); 다만, 중복된 키값이 동시에 존재할 수 없으며, 후에 동일한 key로 set()메서드를 실행하면 value가 대체된다. 2. get() 키로 value를 불러올 때 사용하는 메서드이다. 일반적인 객체처럼 map.key 형태로는 사용할 ..

Node.js/JavaScript 2023.06.16
728x90