나의 개발일지(김지헌)
항해 99 12일차 09/30 본문
오늘은 새로운 조원과 함께 주특기 주차에 들어갔다.3주동안 진행이 되고 입문부터 시작을 한다.
발제를 받고 나서 공부를 해야하는데 솔직히 좀 막막하다. 아는게 별로 없어서 따라 갈 수 있을까 걱정이 된다.
일단 과제를 한번보고 입문 강의 자료를 봤다. 이론과 영상이 같이 있었는데 양이 많지만 최대한 빨리 보고 과제를 시작해야 할꺼 같다. 일단 개념부터 적었고 필요한거 위주로 공부한 내용을 적었다.
서버는 요청받을것을 수행하는거 .
. 동기방식 -설계가 매우 간단하고 직관적이지만
결과가 주어질 때까지 아무것도 못하고 대기해야 하는 단점이 있고
. 비동기방식
-동기보다 복잡하지만 결과가 주어지는데 시간이 걸리더라도 그 시간 동안 다른
작업을 할 수 있으므로 자원을 효율적으로 사용할 수 있는 장점이 있습니다.
1. 서버
요청을 받으면 요청한 내용을 보여주는 프로그램
2.HTTP -읽기(GET) : 페이지
읽고싶다 하면서 요청을 보냄
-쓰기(POST) : 댓글 작성이나 글쓰기 정보를 저장,전달
하거나 할때 사용
-수정(PUT) : 수정하고 싶을때 요청
-삭제(DELETE) : 삭제하고
싶을때 요청
-PARCH : 부분적으로 리소스를 업데이트 (한개만 바꾸고싶을때)
3.node.js -javaScript 언어를 사용 HTML를 조작과 변경할 수 있는 언어 웹페이지를
다이나믹하게 바꿔준다.
javaScript 해석은 브라우저가 한다.
node.js는 크롬에 javaScript엔진으로 이루어져있음 브라우저 내에서 말고도 다른환경에서도 실행 할수
있게 도와주는것 요청을 다받고 빠른거 부터 시작해서 출력 해준다.
-Non-blocking
한번에 여러개의 함수를 처리할수있다. 요청을 다받고 빠른거 부터 시작해서 출력
해준다.
장점 :
-요청이 많거나 오래걸리는 요청이 있어도 멈추거나 요청 대기시간이없다.
-코드가 짧고 간단해서 빠른 개발이 가능하다
라이브러리 : 코드를 쉽게짜기위해서 빌려쓰는 코드 모음집
express 라이브러리 : (서버를 쉽게 만들수 있게함)
--터미널에 입력 --
npm (npm은 라이브러리를 설치를 도와주는 도구)
npm init(어떤 라이브러리를 설치했는지 기록하는거 npm init이라고 치면 자동으로 만들어줌)
(앤터를 쳐서 entry point에 원하는 파일명으로 적기 엔터를 쳐서 나오면 entry에
적었던 파일이 생성된다)
npm install express (패키지 설치시)
npm install mongodb
npm install -g nodemon (서버 재실행 자동화 스크립트 -g 넣는 이유는 컴퓨터 모든 폴더에서 사용할수있게 만듬)
(nodemon apple1.js으로 실행 보안 오류뜰시 찾기에서
powershell 검색후 관리자권한으로 실행 executionpolicy 입력 set-executionpolicy
unrestricted입력 y)
npm install pm2 -g (이거도 껏다 키지않고 실행 시킬수 있음)
pm2 start 파일이름 --watch 시작 함
pm2 log - 수정하고 하면 볼 수 있음
npm install body-parser 라이브러리 요청데이터 해석을 쉽게 도와줌
---- 사용할려먼 서버에 ----
const bodyParser= require('body-parser')
app.use(bodyParser.urlencoded({extended: true}))
--서버 기본 세팅--
1. express 라이브러리를 사용하기 위한기본 코드
const express = require(`express`)
const app = express();
app.listen();
app.listen(8000, function(){ // listen(8000,띄운후 실행할 코드)
--/pet 으로 방문하면 pet 관련된 안내문을 띄워주자
});
app.get('/경로',function(요청,응답){ 요청( 어떤 정보로 요청할지) 응답(응답을 어떻게 할지)
응답.send('반갑습니다 펫사이트 입니다.') })
app.get('/경로', (요청,응답) => { 요청( 어떤 정보로 요청할지) 응답(응답을 어떻게 할지)
응답.send('반갑습니다 펫사이트 입니다.') })
app.get("/beauty",function(req,res){ //우리는 요청받은걸 응답 해줘야하기 때문에
res.send("안녕하세요 뷰티사이트 입니다.") })
app.get('/',function(req,res){// '/' 포트번호로만 들어왔을때 보여주는 파일
res.sendFile(__dirname + '/index.html') //res.sendFile(__dirname + '/html파일 이름') (파일을 보내준다) })
--라우터 라고 한다--
app.get("/cats/som", (req, res) => {
console.log(req.rawHeaders[1]);
res.send({ som: Cat[1] });
});
-------콜백함수------------
함수안에 함수 (function(){}) - 콜백 함수 (순차적으로 실행하고플 떄 쓴다.
<HTML에 꼭 있어야함>
action="/add" method="POST" name="title" <=id랑 똑같음 Ajax랑 비슷한 느낌
버튼 누를시 GET으로 요청할꺼냐, POST로 요청할꺼냐 req 요청 res 응답
----------서버쪽-------------
const bodyParser= require('body-parser')
app.use(bodyParser.urlencoded({extended: true}))
app.post('/add', (req,res) =>{
res.send('전송완료!!')
console.log(req.body) //리스트 값이 나옴 필요한거 있을시 뒤에 .찾을값 하면된다
CRUD
Create(생성)
Read (읽기)
Update(갱신)
DELETE(삭제)
--좋은 REST API--
1.URL을 명사로 작성
2.하위 문서를 나타낼 땐 /
3.파일 확장자 (.html)쓰지말기
4.띄어기니는 (-) 사용
5.자료하나당 하나의 URL
6.내서버랑 통신할 수 있는 방법 = API .get("/add")
--API 설계 하기 ---
1.하나의 자료는 하나의 URL
2.하나를 알면 둘을 알 수 있어야한다
3.요청과 응답은 정보가 충분히 들어있어야 한다
4.클라이언트랑 서버랑 역할구분이 확실 해야함
DB종류
1.관계형 : 엑셀처럼 칸이 나누어져 있다.
(MySQL, MariaDB, Oracle, MS SQL Sever) SQL 언어를 사용함
2.NoSQL : Object 자료형으로 입출력 가능
(MongoDB)
-- 미들웨어 --
JSON형식 데이터 그 자체이다 프론트에서 reqeust하는데 json형식으로
보낸다.
app.get("/cats/som", (req, res, next) => { //next를 만나서 바로 som으로 넘어감
//미들 웨어 요청, 받고 ,다음 함수로 보낸다.
console.log("this is logging middle");
console.log(req.rawHeaders[1]);
next();
});
'항해 99' 카테고리의 다른 글
항해 99 14일차 10/02 (0) | 2022.10.03 |
---|---|
항해 99 13일차 10/01 (0) | 2022.10.02 |
항해 99 11일차 09/29 (0) | 2022.09.29 |
항해 99 10일차 09/28 (0) | 2022.09.29 |
항해 99 9일차 09/27 (0) | 2022.09.28 |