본문 바로가기

내일 배움 캠프/정예반 일지

정예반 일지 20230619 서버, 함수와 조건문과 반복문

728x90

서버 : 요청을 받아서 데이터를 가공해서 다시 응답하는 것 

서버가 계속 켜져 있어야 하는 이유 : 누군가의 요청을 받아서 응답하기 위해

 

app.listen = 계속 듣고 있는다. = 꺼지지 않고 계속 돌아간다. 

** res 응답을 적지 않으면 응답을 계속 기다리다 timeout된다.

 

서버의 의미는 무조건 컴퓨터만 지칭하지 않음

(서버 컴퓨터도 서버지만 서버 프로그램도 서버이다)

웹서버 : 서버 프로그램

 

- javascript 에서 alert가 작동하지 않는 이유

alert 에는 window가 생략 되어져 있기 때문이다. window는 브라우저에 내장된 기능이다. 

 

javascript 해석 : 브라우저

node.js 해석 : 서버

 

 

웹 서버를 만들 때 공통적으로 요청과 응답을 받고

기본적인 기능을 구현하기 위해 프레임워크를 사용한다.

express = 프레임 워크

 

 

 

// mkdir myapp
// cd myapp
// npm init
// npm install express

//app.js

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
    res.send('Hello World!')
})

app.get('/hello', (req, res) => {
    res.send("body - world") //응답으로 보내 줘라
})

app.listen(port, () => {
    console.log(`Example app listening on port ${port}`)
})

 

 

변경되지 않는 변수는 const로 선언하자

let 보다는 const

 

 

함수의 사용 이유 : 같은 기능을 반복해서 사용하기 위해

익명 함수 

const add = function(a, b) {
    return a+b
}
add(1, 4)

 

 

x += y

x = x + y

 

undefined + 12 = NaN

NaN + 45 = NaN

 

function 함수이름(인자){

return 반환값

}

 

function 함수이름_no반환값(인자){

}

 

반환값이 없으면 결과가 undefined 가 된다. 

undefined : 정의 되지 않았다. 

 

함수에서 인자는 필수가 아니다.

return 도 필요에 따라 있어도 되고 없어도 된다. console.log 로 찍으면 된다.

 

function 함수이름(인자: 있어도 되고 없어도 된다){

// 처리

return “결과” // 필요에 따라 있어도 되고 없어도 된다.

}

 

 

화살표 함수

const 함수이름 = (인자) =>{return 결과}

 

// 함수 및 화살표 함수 예시

// 1. 일반 함수
function add (a,b) {
	return a + b
}

// 2. 화살표 함수
const add = (a,b) =>{
	return a+b
}

// 3. 화살표 함수 축약형
const add = (a,b) => a + b

// 4. 화살표 함수 축약형 2
const add = a => a + 10 (인자가 하나이면 인자의 괄호 생략 가능)

 

// 조건문 예시

if(){
}

if(){
	}else{
}

if(){
	}else if{
}

 

// 반복문 예시

// 1씩 점프

for(let i = 0; i < 100; i++){
	console.log(i)
}


// 2씩 점프

for(let i = 0; i < 100; i+2){
	console.log(i)
}



// 무한 반복 오류

for(let i =0; i<100; j++) {
	console.log(i)
}


// 배열과 for문

const names = [“창범”, “민준”, “다영”]
for(let i =1; i<names.length; i++){
	console.log(names[i])
}

 

Header : 메타데이터, {key:value}로 이루어져있음

Body : 실제로 이용하는 데이터, 브라우저가 해석하는 부분

 

요청과 응답의 Header와 Body는  HTML : Head Body Footer와는 전혀 관련이 없다!!!

 

 

오늘의 튜터 님 조언!

하루에 VScode 에서 코딩 6시간 이상 해야 함
명령어 꼭 외우기 (개발자는 UI가 없다)
외우는 게 가장 편할 때가 많음
이해해서 쓴다는 습관은 버리자