22/08/02

RushBsite·2022년 8월 2일
0

구름_쿠버네티스

목록 보기
2/17
post-thumbnail

Cloud - Docker - Kubernetes

  • Cloud 환경을 통한 시스템 구성
  • Docker를 이용한 Application 배포
  • Kubernetes를 통해 Docker 관리

프로그래밍 이해

Application 프로그램 유형

  • 단독 실행 (설치형)-> 네트워크를 사용하지 않는 프로그램
  • 네트워크 연결을 통한 실행
    • 웹 서비스형 (비설치형)-> 사용자가 웹브라우저 이용해서 사용
    • 소켓을 이용한 서비스형 (설치형)
      ✳️소켓(socket) : 네트워크 연결을 위한 기능 제공 요소, 통상적으로 OS에서 제공

Application 작성 과정

문제 정의 -> 환경구성 -> 알고리즘 설계 -> 구현 -> 테스트 -> 배포

Application 작성 실습

계산기 프로그램을 작성하는 예시로 app 작성과정을 알아보자.

계산기 프로그램 작성

(1) 문제 정의

  • 계산기 프로그램
  • 사칙연산 수행
  • 비설치 app

(2) 개발 환경 구성

  • 웹브라우저에 실행하는 프로그램 작성시 사용 하는 언어 선정
    -> (front) HTML, JavaScript, (back) JSP, PHP, Nodejs

(3) 알고리즘 설계
1. 프로그램 종료시 까지 반복

  • 두 수를 입력받는다.
  • 연산자를 입력받는다.
  • 연산 결과 출력한다.
  • 다시 두 수를 입력받을 수 있도록 한다.

(4) 구현

HTML

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>Calculator</title>
        <style>
            body {text-align: center;}
        </style>
    </head>
    <body>
        <h1>Calculator</h1>
        <hr>
        <form>
            <input type="text" name="nubmer" id="number1" width="200" size="5">
            <select name="operator" id="operator">
                <option selected>+</option>
                <option >-</option>
                <option >*</option>
                <option >/</option>
            </select>
            <input type="text" name="nubmer2" id="number2" width="200" size="5">
            <input type="button" onclick="calc()" value="계산">
            <input type="reset" value="reset">
        </form>
        <hr>
        <div id="result"></div>
        <script src="calc.js"></script>
    </body>
</html>

JS

function calc(){
    var number1 = Number( document.getElementById("number1").value);
    var number2 = Number( document.getElementById("number2").value);
    var operator = document.getElementById("operator").value;


    //calc func
    if(operator === '+'){ // === 는 엄격한 비교 (변수타입까지)
        var result = number1 + number2;
    }
    else if(operator === '-'){
        var result = number1 - number2;
    }
    else if(operator === '*'){
        var result = number1 * number2;
    }
    else if(operator === '/'){
        var result = number1 / number2;
    }

    //output
    var div = document.getElementById("result")
    var output = String(number1) + ' '+ operator + ' ' + String(number2) + ' = ' + String(result);
    div.innerHTML = output; //HTML elements 변경

}

(5) 테스트

(6) 배포
웹서버를 통해서 배포 필요 + 사용자가 웹서비스에 접속 가능한 Domain name 필요
-> 웹서비스를 위한 infrastructure 구성


시스템 운영 이해

시스템 구성 형태

  • 단독형 시스템 구성

  • 네트워크형 시스템 구성

    • Server -> 요청 정보에 대한 처리 (응답 response), 항상 대기상태를 유지
    • Client -> server에 요청

서비스 제공을 위한 시스템 구성 요소

  • Server 프로그램이 동작할 컴퓨터
    • 다수의 client 접속가능한 환경으로 구성
  • Server 프로그램
    -> 웹서버, DB, FTP, SMTP, ...
  • 서비스 제공을 위한 기타 Server 프로그램
    -> Transaction 처리, 로그관리, 방화벽
  • 네트워크
    • 공용 네트워크
    • 사설 네트워크

계산기 프로그램 배포 시스템 예시

항목내용
Web Server ProgramApache web Server 프로그램
Web Server 동작 컴퓨터chleo 1000명까지 동시 접속 가능하게 설정
Web server 동작 네트워크 구성단독으로 인터넷에 연결
일반 Client 와 개발자 접속 방식일반 client 접속 domain, 개발자 접속 domain 등록

설계

다이어그램 작성(draw.io)


DevOps 이해

DevOps

Development( 개발 ) 와 Operation( 운영 ) 합성어

Dev( 개발 )과 Ops( 운영 )을 합쳐 비지니스( User )의 요구사항을 단기간에 반영할 수 있는 품질 높은 소프트웨어를 만들고자 하는 목적을 갖는 방법론

AWS의 DevOps 설명

DevOps는 애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상시키는 문화 철학, 방식 및 도구의 조합입니다.

✳️CI (지속적인 통합)

-> Continuous Integrated, 소프트웨어 모듈을 바로바로 통합하는 방법

✳️CD (지속적인 전달)

-> Continuous Deployment, 소프트웨어 모듈을 바로 바로 고객에게 전달하는 방법

코드형 인프라 관리 ✳️(IaC, Infrastructure as a Code)

-> 코드를 이용하여 인프라를 일괄적으로 관리
ex) Ansible (파이썬 기반)


네트워크 이해

네트워크

-> 객체간의 연결관계 의미
-> 컴퓨터 네트워크 - 컴퓨터간의 연결 관계

컴퓨터 네트워크

->컴퓨터간 통신을 수행하기 위해 연결 구성
->컴퓨터간 통신은 대부분 데이터( data )를 주고 받는 경우를 의미

구성 요소

컴퓨터 식별 방법 - IP Address
컴퓨터내에서 동작하는 프로그램 식별 방법 - Port 번호
컴퓨터간 통신을 위한 약속 - 프로토콜( Protocol )
컴퓨터간 연결 방법 - MAC address

용어 정리

  • ✳️IP Address
    -> 네트워크에 연결된 컴퓨터 식별 번호
  • ✳️IPv4 - 4 byte
    • 8bit(2진수 8자리), (256가지 경우의 수)

      1byte - 영어 한 글자, 2byte - 한글 한 글자

  • Port
  • Protocol
  • LAN (Local Area Network)
  • ✳️NIC (Network Interface Card) -> 물리적으로 네트워크에 연결하기 위한 H/W
    • ethernet -> 유선 NIC
    • 무선 네트워크 -> 무선, wifi, 3G/LTE/5G
    • MAC Address -> NIC 에 부여되는 고유 번호
profile
게임 기획/개발 지망생

0개의 댓글