전체 글

뭐 그렇게 됐다
데브코스

[5주차 - DAY3] Express.js 응용

DB DB(Database) 데이터의 집합을 데이터베이스라고 한다. 데이터를 구조화하여 관리하기 때문에 데이터 중복을 막을 수 있고, 효율적이고 빠른 데이터 연산을 가능하게 한다. DBMS(Database Management System) 데이터베이스를 생성, 저장, 관리할 수 있는 기능들을 제공하는 시스템(프로그램)이다. RDBMS(Reletional DBMS) 데이터 간에 관계를 가지고 있는 DBMS이다. 데이터 간에 관계를 맺고 있기 때문에 찾고 싶은 데이터가 내가 지금 보고 있는 곳에 없더라도 거기에 있는 힌트를 사용해서 원하는 것을 찾아낼 수 있다. 데이터 중복·불일치를 최소화할 수 있고, 데이터의 보안, 데이터의 일관성·무결성 유지의 장점이 있다. DBMS vs RDBMS DBMS RDBMS ..

데브코스

[5주차 - DAY2] REST API 개발 실습(2)

Router 별도로 작성되어 있는 회원 기능과 채널 기능이 한 번에 모두 작동되게 만들어보자. 참고로 user-demo.js와 channel-demo.js 파일명을 각각 users.js, channels.js로 변경해 주었다. 두 모듈을 불러올 파일 app.js를 생성한다. 이 파일에서 서버를 가동할 것이다. app.js에서 모듈을 불러오려면 users.js와 channels.js에서 모듈을 내보내야 한다. 따라서 두 파일 모두 아래의 절차를 따른다. users.js와 channels.js에서 서버를 가동시키는 listen 부분을 없애준다. (app.js에서 서버를 가동하기 때문) router이라는 변수에 express의 Router 함수를 담는다. epress의 Router 함수는 라우터를 분리할 수 ..

데브코스

[5주차 - DAY1] REST API 개발 실습(1)

Object.keys() 객체의 key들만 모아서 배열로 만들어주는 메서드이다. 아래와 같이 사용하면 된다. Object.keys(객체명) const obj = { id: "devcourse", password: "1234", name: "ncherryu" }; console.log(Object.keys(obj2)); // output: [ 'id', 'password', 'name' ] 자바스크립트는 다른 언어에서와 마찬가지로 문자열을 객체로 취급한다. const str1 = "one"; const str2 = ""; console.log(Object.keys(str1).length === 0); // output: false console.log(Object.keys(str2).length === 0..

데브코스

[4주차 - DAY5] Node.js 및 Express.js를 사용한 서버 개발 실습(3)

핸들러(Handler) 요청에 의해서 실행되는 메서드를 말한다. 예시로, 아래 코드에서 get 메서드의 두 번째 파라미터인 콜백 함수가 핸들러이다. HTTP Request가 날아오면 자동으로 호출된다. app.get('/', function (req, res) { res.send('Hello World'); }) ==과 === ==은 값이 일치하는지만 확인하지만, ===은 자료형과 값 모두 일치하는지 확인한다. // 자료형은 상관 없이 값만 비교 if (1 == '1') { console.log('같다'); } else { console.log('다르다'); } // 값과 자료형 모두 비교 if (1 === '1') { console.log('같다'); } else { console.log('다르다');..

데브코스

[4주차 복습 발표] API 설계 실습

DB 아직 데이터베이스를 연동하지 않았기 때문에 Map으로 대신한다. key는 정수인 id, value는 채널명, 구독자 수, 영상 수 정보를 가지는 객체이다. 3개의 쌍을 넣어놓은 상태이다. const db = new Map(); let id = 1; const youtubers = [ { channelTitle: "십오야", sub: "593만명", videoNum: "993개" }, { channelTitle: "침착맨", sub: "227만명", videoNum: "6.6천개" }, { channelTitle: "테오", sub: "54.8만명", videoNum: "726개" } ]; youtubers.forEach(youtuber => { db.set(id++, youtuber); }) 전체 ..

코딩테스트

[JS] 삼각 달팽이

난이도: Lv. 2 정답률: 52% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/68645 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 첫 행부터 마지막 행까지의 원소를 담을 2차원 배열을 생성한다. 최대 반복(라운드) 횟수를 정의한다. 삼각형 위쪽 레벨은 다음 라운드로 갈 때마다 2씩 증가한다. 삼각형 아래쪽 레벨은 다음 라운드로 갈 때마다 1씩 감소한다. 하나의 라운드마다 가장 바깥쪽에 있는 삼각형 한 바퀴를 채운다. 삼각형 위에서 왼쪽 아래로 내려가며 채운다. 이때 마지막 ..

데브코스

[4주차 - DAY4] Node.js 및 Express.js를 사용한 서버 개발 실습(2)

JS forEach 배열과 Map 객체에서 사용할 수 있는 개선된 for문 메서드이다. Array 배열에서 요소를 하나 꺼내서 콜백 함수의 파라미터로 전달해 준다. 파라미터는 요소 값, 요소 인덱스, 배열 전체 순서이다. const testArr = [1, 2, 3, 4, 5]; testArr.forEach(function (value, idx, arr) { console.log(`value: ${value}, idx: ${idx}, arr: ${arr}`); }) Map Map의 key-value 쌍을 하나 꺼내서 콜백 함수의 파라미터로 전달해 준다. 파라미터는 value, key, Map 전체 순서이다. const testMap = new Map(); testMap.set(1, 'One'); test..

데브코스

[4주차 - DAY3] Node.js 및 Express.js를 사용한 서버 개발 실습(1)

POST Method GET 메서드에서는 데이터가 URL에 적혀서 전달된다. 회원가입을 한다고 생각해 보자. 우리의 아이디, 비밀번호, 전화번호 등의 개인정보가 남들도 다 볼 수 있는 URL에 적혀있어도 될까? 그렇게 된다면 큰 문제가 발생할 것이다. 그래서 데이터를 생성하거나 등록할 때, URL에 보여서는 안 되는 데이터를 전달해 줄 때 POST 메서드를 사용한다. POST 메서드를 사용하면 전달할 데이터가 body에 숨겨져서 보내진다. const express = require('express'); const app = express(); app.listen(3000); app.post('/post-test', function (req, res) { // ... }) Postman GET 메서드를 테..

코딩테스트

[JS] 두 큐 합 같게 만들기

난이도: Lv. 2 정답률: 53% 문제: https://school.programmers.co.kr/learn/courses/30/lessons/118667 프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 알고리즘 정해진 루프 카운트 동안 총합이 큰 큐에서 작은 큐 쪽으로 원소를 넘겨주는 과정을 반복한다. 이 문제에서 중요한 것은 최대 루프 카운트를 얼마로 할 것인가이다. 최대 경우의 수는 원소가 원래 자리로 돌아오는 것으로, 그림으로 표현하면 다음과 같다. 큐2를 처음과 같은 상태로 만들지 않았음에도 끝내는 이유는 다음과 같다. 빨간 배경인 상황들을 보..

데브코스

[4주차 - DAY2] REST API 디자인 및 구현(2)

Map Object Map의 value를 객체로 설정해 보자. Map의 key, value를 설정하는 방법은 객체라고 다른 것은 없다. const product1 = { productName: 'coffee', price: 5500 }; const product2 = { productName: 'sandwich', price: 6000 }; const product3 = { productName: 'bottle', price: 12000 }; const db = new Map(); db.set(1, product1); db.set(2, product2); db.set(3, product3); console.log(db); Object에 값 추가 아래 두 코드 중 아무거나 사용하면 된다. 객체명.키 = 값..

미안하다 강림이 좀 늦었다
어제 내 스택이 무너졌어