본문 바로가기

공부

(56)
[Node.js] express로 웹 서버 만들기(use() 미들웨어) 일단 express로 웹서버를 만들고 미들웨어와 라우터의 개념을 확실하게 다지고 갈 생각이다. 간단한 서버를 구축 var express = require('express') , http = require('http'); var app = express(); app.set('port', process.env.PORT || 3000); // set을 이용해서 속성을 저장해두고 http.createServer(app).listen(app.get('port'), function(){ console.log('익스프레스 서버를 시작했습니다 : ' + app.get('port')); }); //createServer에 app(express모듈)을 사용하여 서버를 구동하겠다는 명시를 해줌 //port속성을 get을 이..
[C/C++] 실패율 (프로그래머스 : 2019 카카오 블라인드) 문제 슈퍼 게임 개발자 오렐리는 큰 고민에 빠졌다. 그녀가 만든 프랜즈 오천성이 대성공을 거뒀지만, 요즘 신규 사용자의 수가 급감한 것이다. 원인은 신규 사용자와 기존 사용자 사이에 스테이지 차이가 너무 큰 것이 문제였다. 이 문제를 어떻게 할까 고민 한 그녀는 동적으로 게임 시간을 늘려서 난이도를 조절하기로 했다. 역시 슈퍼 개발자라 대부분의 로직은 쉽게 구현했지만, 실패율을 구하는 부분에서 위기에 빠지고 말았다. 오렐리를 위해 실패율을 구하는 코드를 완성하라. 실패율은 다음과 같이 정의한다. 스테이지에 도달했으나 아직 클리어하지 못한 플레이어의 수 / 스테이지에 도달한 플레이어 수 전체 스테이지의 개수 N, 게임을 이용하는 사용자가 현재 멈춰있는 스테이지의 번호가 담긴 배열 stages가 매개변수로 ..
[C/C++] 스킬 체크 레벨 2 (프로그래머스) 문제 스킬 체크에서는 총 2가지 문제가 주어집니다. 1. 하나의 문자열이 주어집니다. 그 문자열 내에서 같은 문자가 있다면 문자를 삭제하는 행위를 반복 했을 때 모두 없어지는지 아닌지를 판단하는 문제입니다. 예를 들자면 "aabaab"라면 처음에 'a'가 붙어 있으므로 "aa"와 "aa"를 없애면 "bb"만 남습니다. 이때 "bb"도 위의 조건을 만족하기 때문에 삭제가 됩니다. "cbaabc"도 마찬가지로 "aa"가 삭제되고 "bb"가 삭제되고 "cc"가 삭제되고를 반복하면 삭제가 됩니다. 반대로 "abab"는 문자열 내에 반복되는 문자가 없으므로 삭제가 불가능합니다. 이 때 삭제가 가능하면 1을 아니면 0을 return하는 문제입니다. 2. 하나의 숫자로 된 배열이 주어집니다. 이 배열의 모든 숫자의 ..
[C/C++] 키패드 누르기 (프로그래머스 : 2020 카카오 인턴십) 문제 설명 스마트폰 전화 키패드의 각 칸에 다음과 같이 숫자들이 적혀 있습니다. 이 전화 키패드에서 왼손과 오른손의 엄지손가락만을 이용해서 숫자만을 입력하려고 합니다. 맨 처음 왼손 엄지손가락은 * 키패드에 오른손 엄지손가락은 # 키패드 위치에서 시작하며, 엄지손가락을 사용하는 규칙은 다음과 같습니다. 엄지손가락은 상하좌우 4가지 방향으로만 이동할 수 있으며 키패드 이동 한 칸은 거리로 1에 해당합니다. 왼쪽 열의 3개의 숫자 1, 4, 7을 입력할 때는 왼손 엄지손가락을 사용합니다. 오른쪽 열의 3개의 숫자 3, 6, 9를 입력할 때는 오른손 엄지손가락을 사용합니다. 가운데 열의 4개의 숫자 2, 5, 8, 0을 입력할 때는 두 엄지손가락의 현재 키패드의 위치에서 더 가까운 엄지손가락을 사용합니다. 4..
[Node.js] 몽구스(Mongoose) NoSQL인 몽고DB 사용을 훨씬 편하게 해주는 라이브러리이다. 이게 몽구스의 기본 작동 원리 이다. NoSQL이기에 기본적으로 스키마가 존재하지 않는 MongoDB에 문서의 정보를 가져와서 스키마를 부여해주고 코드 내부에서는 스키마를 기준으로 조작할 수 있는 것이 몽구스이다. function connectDB(){ var databaseUrl = 'mongodb://localhost:27017/local'; console.log('데이터베이스 연결을 시도합니다.'); mongoose.Promise = global.Promise; mongoose.connect(databaseUrl); database = mongoose.connection; database.on('error', console.error...
[Node.js] MongoDB를 사용한 사용자 추가 원래 하던 내용이 있어서 간단하게 기록하려고 한다. 일단 기본적인 구성 부터 살펴 보자면 일단 HTML이다. 그냥 간단하게 DB를 사용할 목적으로 코드를 짠거라서 그렇게 특별할 건 없고 아이디와 비밀번호 그리고 별명을 받는다.(저기는 아이디라 써져있지만 일단 name을 다르게 해주었으니 그냥 넘어갔다.) 다음은 실질적인 동작역할을 해줄 코드이다. 이 코드는 '/process/adduser' 라는 path를 통해서 위의 HTML코드와 연결 되어있다. HTML에서 전송을 눌러서 request를 하게 되면 받은 Id, Passowrd, Name을 각각의 변수에 따로 저장을 하고 database가 연결되어있을 경우 addUser를 실행한다. addUser의 파라미터로 들어갈 callback fucntion자리의..
[코테 공부] 시작 최근에 코딩테스트 사이트에서 하나씩 문제를 풀고 있다. 시간을 넉넉히 잡고 풀어나 보자는 마인드로 문제를 풀고 있는데 아무리 해도 뭔가 느는 것 같지가 않다. 그래서 과거에 샀던 책을 기반으로 공부를 해보려고 한다. '알고리즘 문제 해결 전략'으로 아마 작년에 샀던걸로 기억한다. 그 때는 캡스톤이니 뭐니 한다고 바빠서 제대로 읽어보지도 못했지만 이제야 비로소 제대로 읽어본다. 일단 초반 부분만 읽었다. 문제해결 전략이라 해서 처음 문제를 마주 했을 때 어떻게 행동하며 그리고 에러의 원인과 같은 기본적인 것을 배우고 가지만... '결국 이런 것들은 몸으로 겪어야지 가장 와닿지 않을까?'라는 생각이 들었다. 하지만 지표가 존재하고 그것을 토대로 문제를 해결하는 것과 그렇지 않은 것의 차이는 크기 때문에 일단..
[Node.js] MongoDB에 대한 issue 너무나도 초보자인 입장에서 너무나도 쉬운 오류지만 너무나도 모르겠는 오류였다. Node.js로 MongoDB를 이용해서 로그인 서비스를 만드는 것이 이번 목표였기 때문에 일단 코드를 쭈욱 따라쓰고 이것저것 오타를 고치고 하다보니 최종단계에 도착해서 구동이 잘 되었다. 그런데 이상하게 로그인이 안되더라... 혹시나 해서 console.log()를 통해서 검색한 DB를 확인해보려고 했다. 가장 밑 줄이 로그인이 실패할 때의 DB 데이터의 상태인데 텅 비어있다. 처음에는 이제 연결이 안되거나 해서 그런줄 알고 DBconnection 부분을 확인하고 27017저게 무슨 포트 번호인가 싶어서 계속 찾아보고(알고보니 몽고 DB의 Default 포트 번호 같더라) 별 짓을 다하다가 DB를 다시 보게되었다. 보시다시피..