문제 정의 -> 환경구성 -> 알고리즘 설계 -> 구현 -> 테스트 -> 배포
계산기 프로그램을 작성하는 예시로 app 작성과정을 알아보자.
(1) 문제 정의
(2) 개발 환경 구성
(3) 알고리즘 설계
1. 프로그램 종료시 까지 반복
(4) 구현
<!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>
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에 요청항목 | 내용 |
---|---|
Web Server Program | Apache web Server 프로그램 |
Web Server 동작 컴퓨터 | chleo 1000명까지 동시 접속 가능하게 설정 |
Web server 동작 네트워크 구성 | 단독으로 인터넷에 연결 |
일반 Client 와 개발자 접속 방식 | 일반 client 접속 domain, 개발자 접속 domain 등록 |
❗
Development
( 개발 ) 와Operation
( 운영 ) 합성어
Dev( 개발 )과 Ops( 운영 )을 합쳐 비지니스( User )의 요구사항을 단기간에 반영할 수 있는 품질 높은 소프트웨어를 만들고자 하는 목적을 갖는 방법론
DevOps는 애플리케이션과 서비스를 빠른 속도로 제공할 수 있도록 조직의 역량을 향상시키는 문화 철학, 방식 및 도구의 조합입니다.
-> Continuous Integrated, 소프트웨어 모듈을 바로바로 통합하는 방법
-> Continuous Deployment, 소프트웨어 모듈을 바로 바로 고객에게 전달하는 방법
-> 코드를 이용하여 인프라를 일괄적으로 관리
ex) Ansible (파이썬 기반)
-> 객체간의 연결관계 의미
-> 컴퓨터 네트워크 - 컴퓨터간의 연결 관계
->컴퓨터간 통신을 수행하기 위해 연결 구성
->컴퓨터간 통신은 대부분 데이터( data
)를 주고 받는 경우를 의미
컴퓨터 식별 방법 - IP Address
컴퓨터내에서 동작하는 프로그램 식별 방법 - Port 번호
컴퓨터간 통신을 위한 약속 - 프로토콜( Protocol
)
컴퓨터간 연결 방법 - MAC address
❗1byte - 영어 한 글자, 2byte - 한글 한 글자