본문 바로가기

교육생

(58)
웹 풀사이클 데브코스 TIL 18일차 전체 조회 app.get('/youtubers', function(req,res){ let youtubers = {} db.forEach(function(value, key){ youtubers[key] = value }) res.json(youtubers) }) youtuber라는 객체를 만든 후 그곳에 forEach 문으로 값을 넣고 반환한다. forEach 향상된 for문이다. 먼저 배열에서의 활용은 다음과 같다. const arr = [1,2,3,4,5] arr.forEach(function(a, b, c) { console.log(`a: ${a}, b: ${b}, c: ${c}`) }) /* 출력값 a: 1, b: 0, c: 1,2,3,4,5 a: 2, b: 1, c: 1,2,3,..
웹 풀사이클 데브코스 TIL 17일차 POST 브라우저에서는 POST 테스트가 불가능하다. 따라서 POST를 테스트 하기 위해서는 Postman 이라는 프로그램을 사용한다. https://www.postman.com/ POST는 body 영역을 통해 데이터를 전달해야한다. Postman으로 body에 데이터를 싣는 방법은 다음과 같다. Body의 raw를 클릭하고 형식을 json으로 설정한다. 그리고 원하는 데이터를 json 형식으로 입력해준다. 백엔드 post의 예시코드이다. app.use(express.json) app.post('/test', function(req, res){ // body에 숨겨져서 들어온 데이터를 화면에 뿌려주기 console.log(req.body); console.log(req.body.messa..
웹 풀사이클 데브코스 TIL 16일차 객체 Map 저장 let laptop = { productName: "Laptop", price: 2000000 } db.set(1, laptop)문자열과 같은 방식으로 map에 저장할 수 있다. 객체를 api 로 전달 app.get('/:id', function(req,res){ let {id} = req.params id = parseInt(id) if(db.get(id) == undefined){ res.json({ message : "없는 상품입니다." }) } else{ res.json({ id : id, productName : db.get(id).productName, price : db.get(id).price }) } })w객체의 필드들을 꺼내서 id와 함께 전달하는 방식이..
웹 풀사이클 데브코스 TIL 15일차 req.params app.get('/products/:n', function(req, res){ // : -> URL로 매개변수를 전달해줄 건가 보다 // req.params // products/____ 빈칸에 오는 값을 n이라는 변수에 담아줘 res.json({ num : req.params.n }) }) 이 코드는 한가지 문제가 있다. 바로 자료형이 문자열이라는 점이다. params에서는 무조건 문자열을 반환한다. if(req.params.n > 10) { console.log("url로 전달받은 숫자가 10보다 크다."); } 민약 위와같은 코드를 넣고 url로 13을 입력했다고 치자. 분명 params의 자료형은 문자라고 했고 조건문이 맞지 않아야 한다고 생각할 수 있지만 콘솔에..
웹 풀사이클 데브코스 TIL 14일차 Express.js const express = require('express') const app = express() app.get('/', function (req, res) { res.send('Hello World') }) app.listen(3000)Express의 예시코드이다. app에 서버가 들어가게 되고, '/' url에 해당하는 요청이 들어오면 'Hello World'라는 문자열을 응답해준다. 포트번호는 3000번을 사용하도록 설정했다. 기존의 HTTP를 사용한 코드보다 간결해진 것을 알 수 있다. 또, app.listen(3000)은 순서 상관이 없다. 여기 있는 코드들은 어차피 서버에 설정하는 것이기 때문 객체 ..
웹 풀사이클 데브코스 TIL 13일차 HTTP method POST: 생성, 등록 GET: 조회 PUT: 덮어쓰기, 값이 있든 없든 새걸로 덮어쓰기 PATCH: 일부 수정, 바뀐거만. 사용하기 까다로워서 잘 안씀 DELETE: 삭제 HEAD, OPTIONS, CONNECT, TRACE: 데이터 외의 것들에 대해 설정, 잘 몰라도됨 Node.js 노드는 백엔드에서만 사용되지 않음. 리액트, 뷰 등 프론트엔드 프레임워크도 노드 기반임. 노드는 자바스크립트를 스크립트 언어 이상으로 프로그래밍 언어 역할을 할 수 있도록 지원하는 플랫폼. 즉 웹 브라우저 밖에서도 자바스크립트를 사용할 수 있게 해준다. Node.js의 특징 싱글스레드: 한개의 스레드로 동작한다 이벤트 기반: 요청이 들어와야만 일을 한다 논블로킹 I/O: I/O 작업이 진행되는 동안 ..
웹 풀사이클 데브코스 TIL 12일차 백엔드 클라이언트란? 사용자 프론트엔드 서버입장에서의 클라이언트는 이 두가지이다. 정적 페이지: 화면의 내용/데이터 등의 변동이 없음 동적 페이지: 데이터 처리/연산을 통해 화면과 데이터가 변함 API Application Programming Interface 만약 지하철 시간표 어플을 사용한다고 쳐보자. 그렇다면 그 지하철 정보를 어떻게 얻을 수 있을까? 어플 개발자가 직접 지하철 데이터베이스에 접근할 수 있게 하는 것은 여러모로 문제가 많을 것이다. 직접 데이터에 접근하는 대신 API라는 인터페이스에 원하는 것을 요청하게 된다. 그렇다면 인터페이스는 또 무엇일까? Interface Inter + Face: 양쪽 + 마주한다 중간에서 양쪽의 매개체가 되어주는 역할 REST API 과거 API: 데이터..
웹 풀사이클 데브코스 TIL 11일차 오늘은 어제있었던 과제의 피드백 시간이었다. 첫번째 과제 피드백 포트폴리오 과제에 대해서 피드백하면서 다른분들의 과제를 볼 일이 있었는데 솔직히 좀 놀랐다. 간단하게만 꾸며서 오실줄 알았는데 많은 분들이 정말 화려하게 디자인 해오셨던것 같다. 나도 좀 더 시간을 썼어야 좋았을까 싶지만 역시 디자인쪽은 문외한이라서.. 포트폴리오 작성이나 블로그를 어떤 방향으로 하면 좋을지에 대한 어드바이스도 많이 해주셨다. 가장 와닿고 실천하기도 괜찮아 보였던 것은 트러블 슈팅에 관한 글들을 쓰는 것이라 생각한다. 코딩하다가 안되던 문제가 해결되면 그냥 넘어가는 경우가 많은데 그것 보다는 어떤 오류가 어떻게 해결되었는지에 대해 적어두는 것이 중요하다고 느꼈다. 두번째 과제 피드백 데이터베이스 과제는 사실 따로 정답이라는 ..