서버 : 요청을 받으면 요청한 내용 보내주는 프로그램 / 요청을 처리할 수 있는 기계
→ 사용자는 GET / POST / PUT / DELETE 요청 가능
Node.js를 이용해서 JavaScript 문법으로 서버를 짠다
크롬 브라우저 등의 브라우저가 담당
JavaScript에는 해석 엔진들이 있음
크롬 : V8(겁나좋음)
고질라 : SpiderMonkey
인터넷 익스플로럴 : Chakra
브라우저 내에서 말고도 다른 환경에서도 JavaScript 실행할 수 있게 도와줌
쉽게 말하면 그냥 자바스크립트 실행창, 실행환경임 (= 런타임)
→ 브라우저 안켜도 Node.js 만 있으면 자바스크립트 문법 실행이 됨
→ Node.js 덕분에 JavaScript를 프로그래밍 언어처럼 사용하기 시작함
→ 서버도 만들 수 있음 (쉽게)
빨리빨리 되는것부터 처리함
Node.js 의 강점
서버 스케일링 혹은 멀티쓰레딩을 이용해 일반 코드로도 Node.js 처럼 쓸 수 있음
node -v 를 통해 설치 확인
var name = ‘김'; 이렇게 변수 만들기
console.log(안녕’)
VScode에서 express라는 라이브러리를 사용해서 서버를 만듦
VScode 터미널에서 npm init 입력해서 세팅 (npm은 라이브러리 설치를 도와주는 도구)
npm install express : express 라이브러리 설치하기
server.js 에서 서버 관리
app.listen(8080, function(){
console.log('listening on 8080'); //listening on 8080를 출력
}); //내 컴퓨터에 서버를 열 수 있음 listen(서버를 띄울 포트 번호, 띄운 후 실행할 코드) 포트로 들어가려면 localhost:8080
})
누군가가 /pet 으로 방문을 하면 pet 관련된 안내문을 띄워주자 /
app.get('/pet', function(req, res){ //app.get('/경로', function(요청, 응답) {응답.send('반갑습니다')
res.send('펫용품 쇼핑할 수 있는 페이지입니다.')
});
client : 주소창에 URL을 입력해서 서버에 GET 요청을 할 수 있음
server : 누군가 /pet으로 들어오면 ~~를 보내주세요 라고 코드 짬
app.get('/', function(req, res){ //app.get('/경로', function(요청, 응답) {응답.send('반갑습니다')
res.sendFile(__dirname + '/index.html') // .sendFile(보낼 파일 경로) -> html 파일을 보냄
});
서버를 자동으로 껐다켜는 거 : npm install -g nodemon 나는 sudo 써야됨 에러 존나나서 개빡쳤네 진짜 ㅡㅡ
Navbar
→ add 경로로 POST 요청함
API
app.get('/write', function(req, res){
res.sendFile(__dirname + '/write.html')REST 원칙 6개
REST API
이름짓기 원칙
웹사이트 기능 만들기 기본
DB 종류
관계형 - 2차형 데이터 (대부분 SQL 언어 사용) 빠르고 효율적
MySQL, MariaDB, Oracle, MS SQL Server
NoSQL - Object 자료형으로 입출력 가능
Dynamo, Oracle NoSQL, MongoDB, Redis, Cassandra
MongoDB 호스팅을 해서 쓰자 - mongodb atlas
collection 생성
todoapp → database(폴더)
post → collection (파일)


자료저장 시 _id 꼭 작성해야함
안적으면 하나 강제로 부여해줌
어떤 사람이 /add 라는 경로로 post 요청을 하면, 데이터 2개(날짜, 제목)을 보내주는데, 이때 ‘post’라는 이름을 가진 collection에 두개 데이터를 저장하기
{제목 : ‘어쩌구', 날짜 : ‘어쩌구’}
db.collection('post').insertOne({_id : 100, title : req.body.title, date : req.body.date}, function(error, res){ // Object 자료형
console.log('save complete')
})
위의 코드처럼 사용하면 실행이 되지 않았는데 _id를 빼니 실행됨
id 당 하나의 정보들만 저장할 수 있어서 그런거였음