[DevOps]

    클라우드 네이티브

    클라우드의 변화가 너무 자주 일어나서 인프라도 자주 바뀌게 되게 됨그에 따라 앱을 변화를 줄때마다 수정해야되는 문제점이 발생클라우드 특성에 맞게 계속 수시로 바뀌더라도 앱은 수정안해도 계속 호환되고 잘 구동되도록 아키텍처링 해주는 것을`클라우드 네이티브`라고 한다. 클라우드 네이티브기존 앱을 추가적인 개발이나 수정없이 클라우드 아키텍처에서 잘 구동될수있도록 개선하는 활동앱의 아키텍처, 코드, 데이터, 보안, 개발 및 운영 방식을 개선하는 것을 포함주로 PaaS영역에 해당PaaS인프라의 종속성 없이 앱을 개발 및 배포할 수 있는 클라우드 네이티브 아키텍처를 구현할 수 있는 플랫폼클라우드 네이티브을 실현하게 하는 구현체즉 클라이드 네이티브 아키텍처 와 PaaS를 동일시함 클라이드 네이티브의 혁신개방성(비종속..

    Docker 실습 (2) [프리온보딩 챌린지]

    Docoker compose 실습 local-infra.yml 파일 version: '3.0' services: mariadb10: #서비스 이름 image: mariadb:10 #사용할 이미지 ports: - "3310:3306/tcp" environment: # 해당 컨테이너에 지정해야할 환경설정 redis: #서비스 이름 image: redis command: restart: always ports: - 6379:6379 rabbitmq: #서비스 이름 image: rabbitmq:3-management-alpine #이미지 -alpine 태깅은 기본적으로 제일 가벼운 이미지 container_name: 'rabbitmq' ports: - 5672:5672 - 15672:15672 volumes: ..

    Docker 실습 (1) [프리온보딩 챌린지]

    1. Docker Hub에서 httpd image 받기 다운로드 한 Images 확인 2. 컨테이너 실행 및 확인 이름 지정 후 실행 확인 3. 컨테이너 중지 4. 컨테이너 삭제 및 이미지 삭제 컨테이너 삭제 시 rm 이미지 삭제 시 rmi 5. 실습 docker run -p 8888:80 -v 프로젝트 경로:/usr/local/apache2/htdocs httpd 띄울 index.html 파일이 있는 곳의 프로젝트 경로를 넣어주어 실행해준다. docker run 은 이미지로 컨테이너를 생성하기 때문에 최초 1회만 사용한다. 만약 다시 실행 시에는 'docker start 컨테이너ID 또는 이름' 를 사용한다. 5-1). Dockerfile로 도커 이미지 빌드하기 Dockerfile FROM httpd:..

    Docker 이론 (2) [프리온보딩 챌린지]

    들어가기 앞서 여러개의 컨테이너를 제어해야 한다면? docker network create wordpress_net #네트워크 생성 docker \ run \ --name "db" \ -v "$(pwd)/db_data:/var/lib/mysql" \ -e "MYSQL_ROOT_PASSWORD=root_pass" \ -e "MYSQL_DATABASE=wordpress" \ -e "MYSQL_USER=docker_pro" \ -e "MYSQL_PASSWORD=docker_pro_pass" \ --network wordpress_net \ mysql:latest docker \ run \ --name app \ -v "$(pwd)/app_data:/var/www/html" \ -e "WORDPRESS_DB_H..

    Docker 이론 (1) [프리온보딩 챌린지]

    Docker란 무엇일까? 컨테이너 기반 가상화 도구로 애플리케이션을 컨테이너라는 단위로 격리하여 실행하고 배포하는 기술 Container란? 컨테이너는 가상화 기술 중 하나 Host 운영체제 위에 여러 개의 격리된 황경 생성 각각의 컨테이너 안에서 애플리케이션 실행 가상화 기술이란? 하나의 물리적 컴퓨터 자원을 가상적으로 분할하여 여러 개의 가상 컴퓨터 환경을 만드는 기술 이를 바탕으로 더욱 효율적으로 자원 활용이 가능하고 운영에 있어서 유연성과 안정성을 제공함 VM 게스트 os가 필요하며 각각의 vm마다 게스트 os가 생성됨 느리고 무거움 물리적 시스템을 모방하여 실행하는 완전한 소프트웨어 환경 제공 Container 게스트 os 필요 X 가볍고 효율적 동일한 호스트 운영체제를 공유하는 격리된 사용자 ..

    여름 프로젝트/ passport 로그인 jwt 방식

    앞서서 로그인을 성공했다면 jwt를 사용할떄 확인할 key를 파일에 .env 파일을 만들어 .env에 설정해준다. 예를들어 SECRET_KEY = "" 로 저장한다. 그리고 프로젝트에 npm install dotenv를 설치해줍니다. require('dotenv').config(); 를 사용할 js 파일에 넣어주면 굳이 SECRET_KEY를 안쓰고도 사용할 수 있습니다. "process.env.SECRET_KEY" 형식으로 사용 passport.use(new LocalStrategy( { usernameField: "user_id", passwordField: "user_password" }, async function(username, password, done) { //사용자가 코드를 작성 //우리는..

    여름 프로젝트 / passport 로그인 구현

    passport가 기능하는 방식부터 보겠습니다. 전 아직 파일을 나누지 않았기 때문에 그냥 app.js에 구현을 다 했습니다. passport.authenticate(인증)이 라우터보다 위에 오게하여 들어온 요청이 라우터로 들어가기전에 먼저 가져와서 인증부터 하게 합니다. 인증을 하면서 api 요청에서 받은 body 값을 가져와서 인증을 해야한다. 그 body값을 파싱해서 가져오는 기능인 bodyparser을 이용해주어야 한다. app.use(bodyParser.json()); //로그인 시키는 // 패스포트 실행 -> 로그인(로컬) app.post('/Account/signin', async function(req, res, next){ passport.authenticate('local',(err ,..

    여름 프로젝트 / Passport으로 회원가입 구현

    Passport란? ㄴ> Strategy(전략)이란 방법으로 다양한 웹 브라우저에 인증해 손 쉽게 구현할 수 있도록 해준 방법 먼저 회원가입을 구현하려면 서버의 DB에 데이터가 들어가게 해야합니다. 그래야 나중에 로그인을 할 때 들어온 값하고 DB에 있는 값을 비교하여 로그인을 시킬 수 있습니다. 먼저 라우터 안에 mysql과 express를 연결 시켜줍니다. 그리고 데이터를 DB에 넣을 때 아이디는 몰라도 비밀번호가 그대로 들어가면 보안상 문제가 있기 때문에 암호화를 시켜 넣어줍니다. 이제 데이터를 넣어줄 준비가 거의 다 됐습니다. 데이터를 넣기전에 동기와 비동기에 대해서 알아보겠습니다 동기 동기란 어떤 작업을 함에 있어서 작업을 순서대로 진행합니다. 순서대로 진행할때 먼저 작업하는 것이 끝나야 비로서..