백엔드 도전기 6일차

홍성준·2022년 11월 7일
0

오늘 배운 내용

오늘 오전부터는 본격적인 알고리즘 문제풀이가 들어갔다. 문제는 프로그래머스에 있는 문제를 푸는데, 생각보다 어려운 문제들이 있어 애를 먹었다. 문제를 푸는데 유용한 내장함수들이 많이 있다는 것을 알지만, 꼭 문제를 풀다보면 내 습관대로 풀어 코드가 지저분해지는 느낌이 있어 이 부분은 꼭 고치고 넘어가야 앞으로 도움이 될 것같다.
그리고 오후에는 동기와 비동기에 대해 배우고 실습을 가져보는 시간을 가졌다.
자바스크립트는 일단 비동기 방식으로 동작을 하는데, 어떠한 경우에는 이 동작 방식때문에 문제가 생길 수 있다. 그래서 비동기를 동기 방식으로 바꿔줘야 하는데, 이때 추가해주는 코드가 async와 await이다. 이 코드를 추가해서 함수의 동작을 동기방식으로 바꿔주는 것이 가능하다. 그리고 저번에 했던, 인증번호 만들기와, 템플릿 전송하기를 각각 핸드폰과 이메일로 직접 전송을 해봤는데, coolsms와 nodemailer라는 것을 이용해 실습을 진행하였다. 생각보다 너무 간단한 방식으로 동작을 하고, 또 전송이 되어서 학과 과정에서 배운 데이터 통신은 이해하기 난해한 내용이 많아 어려웠는데, 이번 실습에서 배운 내용은 재미도 있고, 쉬워서 재미있게 진행을 했다.

Docker

도커는 컨테이너 기술을 활용하는 앱의 개발, 제공 및 실행을 위해 설계된 소프트 웨어 컨테이너 플랫폼입니다. 여기서 컨테이너의 의미는 가상화를 제공하는 가상머신과 달리 컨테이너는 사용자 공간을 추상화함으로써 경량의 운영체제 수준의 가상화를 제공한다. 컨테이너는 호스트의 시스템 커널을 다른 컨테이너와 공유를 하게 된다.

이것과 더불어 Docker에는 컨테이너를 구축 및 실행하는 소프트웨어인 엔진이 있고, CentOS, Debian, Fedora, RHEL, SUSE, Ubuntu등에 다양한 서버 및 운영체제에서 컨테이너를 지원한다. 또 Docker 이미지는 컨테이너로 실행될 소프트웨어의 모음이다. 여기에는 컨테이너의 생성지침이 포함되어 있으며, 변경할 수 없고, 변경을 할려면 새로운 이미지를 생성해야 된다. 마지막은 Docker 레지스트리로 이미지를 저장 및 다운로드 할 수 있는 공간이다.

package.json

기본적으로 package.json은 개발자가 배포한 패키지에 대해, 다른 사람들이 관리하고 설치하기 쉽게 하기 위한 문서이다. npm docs에는 이렇게 명시가 되어 있다. 자신의 프로젝트가 의존하는 패키지의 리스트, 자신의 프로젝트의 버전을 명시, 다른 환경에서도 빌드를 재생 가능하게 만들어, 다른 개발자가 쉽게 사용할 수 있도록 하기 위한 문서라고 되어있다. 즉 npm이라는 오픈소스 패키지를 사용하기 위한 명세이자, 의존성 관리를 위한 명세, 배포를 위한 명세이다.

package.json 안에는 속성과 값의 쌍으로 이루어져 있는데, npm에서는 이를 field라고 표현하고 있다.
{
"name": "PROJECT_DIRECTORY",
"version": "1.0.0",
"description": "",
"main": "index.js",
"scripts": {
"test": "echo \"Error: no test specified\" && exit 1"
},
"keywords": [],
"author": "",
"license": "ISC"
}
npm init -y를 터미널로 입력해주면 기본적인 package.json가 생성된다.
여기서 name과 version은 필수로 있어야 하는 필드이고, 누락되면 패키지를 설치할 수 없다. description은 패키지에 대한 설명을 main은 진입점이 되는 모듈의 id를 나타낸다. 키워드는 키워드를 문자열 배열로 설명, author는 배포자를 위한 필드이다. 마지막으로 license는 배포한 패키지 사용자가 패키지를 사용하는데, 어떤 권한과 제한 사항이 있는지 알기 위해 license를 명시해야 한다.

[출처:https://hoya-kim.github.io/2021/09/14/package-json/]

profile
안녕하세요

0개의 댓글