이미지( image ) 와 컨테이너 ( container ) 도커 이미지 컨테이너를 생성하는 데 사용되는 재사용 및 공유가 가능한 파일이다도커 컨테이너 이미지 파일을 ' 실행 ' 한 소프트웨어 . 런타임 인스턴스 Layer Docker 파일을 build 할 때 Dockerfile 에 적힌 코드 중 파일 시스템에 변화가 생기는 ( ADD , COPY , RUN , FROM ) 경우에 이미지 레이어를 생성한다Cache빌드 시 매번 모든 레이어를 빌드하면 속도가 느리다. Cache 는 각 레이어의 변경사항을 확인하고 변경이 없는 레이어는 재사용하여 빌드 속도를 높인다.주의사항 빌드 시 Layor에 변경사항이 생기면 그 이후의 모든 레이어는 재사용되지 않는다. 따라서 변경되지 않았는데 다시 다운로드를 하는 경..
도커 실행시 작업 파일을 설정해주기 WORKDIR /myfolder/분명 서버는 켜져있는데 API 통신이 안돼요도커에서 포트 포워딩을 지정하지 않으면 , 컨테이너는 외부와 연결되지 않기 때문에 서버에 적혀진 포트를 통해서 접근할 수 없다. 포트 포워딩으로 서버 시작하기 외부의 2500번 포트와 컨테이너의 3000번 포트를 연결했다.docker run -p 2500:3000
정의부팅 등 운영체제의 핵심 기능 ( 커널 ) 은 공유하는 가상머신이다.기존의 vmware보다 가벼운게 핵심이다! 사용목적 npm , gtihub 과 비슷한 docker 이미지 ( 가상 컴퓨터와 설치된 프로그램들 ) 을 만들어서 원격 저장소에 올리고, 다운받아서 사용할 수 있다 ! Docker 만들기 실습 파일 생성Dockerfile은 확장자명 없이 " Dockerfile " 그 자체로 이름을 짓는것이 표준이다.그 아래 index.js 는 도커 이미지에서 실행할 파일이다. Dockerfile# 1. 운영체제 및 프로그램 설치하기 ( 하나 하나 입력하는 방식 )# FROM ubuntu:22.04# RUN sudo apt install nodejs# RUN sudo npm install -g yarn #..
nodemailer 주요 코드 import nodemailer from 'nodemailer'export async function sendTemplate(email,template){ const transporter = nodemailer.createTransport({ service : "gmail", auth : { user : "alsdn8055@gmail.com", pass : process.env.GOOGLE_PASSWORD } }) const res = await transporter.sendMail({ from : "코드캠프 ", to : email, subje..
Coolsms 주요 코드import coolsms from 'coolsms-node-sdk'const mysms = coolsms.defaultconst messageService = new mysms(process.env.API_KEY,process.env.API_PRIVATE_KEY)export function sendTokenToSMS(num,result){ messageService.sendOne({ to : num, from : "01012345678", text : `[ 테스트 ] 요청하신 인증번호는 ${result} 입니다` })} 전화번호 입력의 ' - ' ( 하이픈 ) 없애는 유틸 함수 방법 1 function removeHyphens(p..
async / await 사용 예제const data = async()=>{ const result = await axios.get("https://koreanjson.com/posts/1") console.log(result);}console.log(data())console.log("다음작업")Console 결과 Promise {}다음작업(6) {data: {...}, status: 200, statusTex...} axios 사용 예제 const data = ()=>{ const result = axios.get("https://koreanjson.com/posts/1") console.log(result); return "리턴값"}console.log(data())console.log(..
cors 설정 restAPI 처럼 따로 미들웨어를 설정해 줄 필요 없다const server = new ApolloServer({ typeDefs, resolvers, cors : true // 모든 사이트 허용 // cors : { origin : [ // "http://naver.com","http://daum.net" // 특정 사이트만 지정 허용 // ]}}) parent, args, context, info restAPI 는 req.body.qqq 로 요청의 body 에 접근한다. GRAPHQL 에서는 args.qqq 로 요청의 body에 접근한다 Mutation : { createBoards : (_, args)=>{ ..
express 와 비교해서 알아보는 Apollo ServerApolloServer : express 와 비슷한 역할startStandaloneServer : app.listen 과 비슷한 역할typeDefs : swagger 와 비슷resolvers : 라우트 핸들러 함수 서버 코드 import { ApolloServer } from '@apollo/server'import { startStandaloneServer} from '@apollo/server/standalone'const typeDefs = `#graphql type Query { qqq : String }`const resolvers = { Query : { qqq : () => { ..