분류 전체보기 218

[공룡 점프 게임] 7. 마무리

마지막으로 수정하고 웹 게임을 배포하고 마무리한다. 기간 프로젝트 개발 기간 : 2019년 12월 16일 ~ 2019년 12월 30일 (2주) 블로그 정리 기간 : 2020년 02월 01일 ~2020년 02월 02일 (2일) 리액트 웹 게임 배포 링크 https://jb-game-jump.herokuapp.com/ Jump Game jb-game-jump.herokuapp.com 리액트 웹 게임 깃 주소 https://github.com/Jongbeom2/game-jump Jongbeom2/game-jump Contribute to Jongbeom2/game-jump development by creating an account on GitHub. github.com [전체 글] [공룡 점프 게임] 7...

[공룡 점프 게임] 6. React 웹 게임 Heroku에 배포

실행 다음의 명령어를 입력하여 개발 및 테스트한다. npm run dev 빌드 개발이 완료되면 웹 게임을 Heroku에 배포한다. 우선 배포 전 다음의 명령어를 입력하여 빌드한다. npm run build 빌드가 완료되면 build 폴더에 이미지 파일과 javscript 파일이 생성된다. 이때 index.html 파일은 자동으로 생성되지 않으므로 복하여 build 폴더에 같은 파일을 생성한다. server.js const path = require('path'); const express = require('express'); // create server const app = express(); // set production env app.use(express.static(path.join(__dir..

[JavaScript] 함수형 프로그래밍(3)

이전 글에서 작성한 코드와 비교했을 때 pipe와 go 함수를 이용하면 가독성이 얼마나 증가하는지 설명하겠다. pipe pipe 함수는 여러 함수를 인자로 받아 함수를 반환하는 함수이다. 이때 반환하는 함수는 객체를 인자로 받아 객체를 첫 번째 함수에 전달하고 결과 값을 반환받아 다음 함수로 전달하며 최종적인 결과값을 반환하는 함수이다. function pipe() { let funcList = arguments; return function (arg) { return reduce(funcList, function (arg, func) { return func(arg) }, arg); } } pipe 함수를 사용하면 이전의 예제를 다음과 같이 작성한다. const userList = [ { age: 10..

[JavaScript] 함수형 프로그래밍(2)

이전 글에서 설명한 내용을 토대로 함수형 프로그래밍으로 작성한 forEach, filter, map, reduce 함수를 설명하겠다. 세 함수 모두 javascript를 사용한다면 익숙한 함수이다. 이 함수들은 공통적으로 배열의 메서드로 존재한다. 함수형 프로그래밍에서는 특정 객체의 메서드가 아니라 함수 자체로 선언하고 사용하므로 다음과 같이 작성한다. forEach forEach 함수는 배열과 유사한 args를 받아 func에 인자로 전달하고 args를 반환하는 함수이다. function forEach(args, func) { let keyList = keys(args); for (let i = 0; i < keyList.length; i++) { func(args[keyList[i]]); } retu..

[JavaScript] 함수형 프로그래밍(1)

함수형 프로그래밍이란 함수형 프로그래밍이란 함수를 조합하여 소프트웨어를 개발하는 방식을 의미한다. 지금까지 주로 사용해왔던 프로그래밍 방식은 객체지향 프로그래밍이었다. 객체 지향 프로그래밍에서는 객체들을 조합하여 소프트웨어를 개발했지만 이번엔 함수를 조합하자는 생각이다. 함수형 프로그래밍의 장점은 순수 함수를 강조하여 오류를 줄이고 순수 함수를 조합하여 모듈화 수준을 높인다는 점이다. 순수 함수와 일급 함수 순수 함수와 일급 함수는 다음의 조건을 만족하는 함수를 의미한다. 함수형 프로그래밍에서는 순수 함수와 일급 함수의 조합을 자주 사용한다. 순수 함수 동일한 input에는 항상 같은 output을 반환한다. 함수의 실행이 프로그램에 영향을 주지 않는다. 일급 함수 변수 안에 함수를 할당할 수 있다. 함..

[HTTP] 커넥션 관리

TCP/IP 모델 데이터를 통신하는 단계와 순서를 명세하는 설계도에는 두 가지 모델이 있는데, OSI 참조 모델과 TCP/IP 모델이다. OSI 참조 모델은 데이터 통신을 7단계로 나누었고 TCP/IP 모델은 4 단계로 나누었다. 현재는 TCP/IP 모델이 표준이 되었고 각 단계에서 사용하는 프로토콜은 다음과 같다. 4계층 애플리케이션계층 HTTP 어플리케이션 사이 신호를 전달하는 방법을 결정 3계층 트랜스포트계층 TCP 전달할 데이터나 전달된 데이터에 필요한 처리를 하는 방법을 결정 2계층 인터넷계층 IP 네트워크(세그먼트) 사이 신호를 전달하는 방법을 결정 1계층 인터페이스계층 Ethernet 한 네트워크(세그먼트) 내에서 신호를 전달하는 방법을 결정 TCP 커넥션 TCP 커넥션은 데이터를 주고받기 ..

[HTTP] HTTP 메세지

HTTP 메세지 HTTP 메세지는 애플리케이션 간에 주고받은 데이터의 블록들이다. 메세지는 시작줄, 헤더 블록, 본문 이렇게 세 부분으로 구성되어 있다. 메세지는 요청 메세지나 응답 메세지가 된다. 요청 메세지는 서버로 요청할 때 보내는 데이터블록이고 응답 메세지는 서버에서 요청에 응답하여 보내는 데이터 블록이다. 시작줄 요청 메세지의 경우 시작줄은 메서드, 요청 URL, 버전으로 구성되어있고 응답 메세지의 경우 버전, 상태코드, 사유구절로 구성되어 있다. 메서드 메서드는 서버가 클라이언트에게 기대하는 동작을 의미한다. 일반적으로는 7가지 메서드가 존재하며 필요에 따라 확장하여 다른 메서드를 정의할 수도 있다. 메서드는 GET, HEAD, POST, PUT, TRACE, OPTIONS, DELETE가 있..

[HTTP] URL과 리소스

URI, URL, URN URI(Uniform Resource Identifier, 통합 자원 식별자)는 서버에 존재하는 리소스의 위치를 가리키는 주소이다. URI에는 두 가지가 있다. URL(Uniform Resource Locator, 통합 자원 지시자)와 URN(Unifrom Resource Name, 통합 자원 이름)이다. 즉 URI는 URL과 URN을 포함한다. URL는 리소스의 정확한 위치를 가리키며 URN는 리소스의 이름을 가리킨다. URN은 URL을 보완하기 위해 나온 개념이다. URL을 사용하면 리소스의 위치가 바뀌었을 때 기존의 URL로 리소스를 찾을 수 없는 문제가 발생한다. 대표적으로 어떤 리소스에 www.tistory.com/123로 접근할 수 있었는데, www.tistory.co..

랜돌프비어 수원인계점 (수원 인계동 술집)

[2020.06.20 방문] 수원시청역에서 5분 거리에 위치한 랜돌프비어 수원인계점을 방문했습니다!! 😁 랜돌프비어는 수제 맥주와 피자를 함께 즐길 수 있는 피맥집입니다 😀😀 2층에 위치해있어요! 운영시간 매일 오후 5시 ~ 새벽 3시 내부 모습입니다!! 큰 테이블도 있고 작은 테이블도 있어서 😁😁 단체 손님이 오기도 괜찮고 둘이서도 괜찮네요!! 메뉴입니다!! 1리터 맥주 세트가 가장 잘 나간다고 하네요 저는 식사를 하러 왔으므로 피자 한판, 맥주, 사이드까지 따로 주문했어요 😀😀 인스타 행사중이라서 샘플 맥주를 마시기 위해 인스타까지!! 맥주는 체코라거를 주문했습니다!! 메인으로 마실 거기 때문에 무난한 걸로~ 페퍼로니 피자입니다! 페퍼로니가 아주 가득가득 차있어요 😁😁 적당히 매콤해서 좋았네요 청양고..

알고리즘 복잡도와 빅 오 표기법

알고리즘의 복잡도 알고리즘 문제를 풀다보면 작성한 코드의 복잡도가 얼마인지 명시해야할 때가 있다. 복잡도에는 시간 복잡도와 공간 복잡도가 있다. 요즘에는 공간 복잡도에 대한 중요성은 떨어지고 있어 일반적으로 알고리즘에서 복잡도라고하면 시간 복잡도를 의미한다. 시간 복잡도 함수인 알고리즘을 특정 크기의 input을 받아 실행할 때 걸리는 시간의 양을 의미한다. 공간 복잡도 함수인 알고리즘을 특정 크기의 input을 받아 살행할 때 필요한 메모리의 양을 의미한다. 빅 오 표기법 (Big O Notation) 알고리즘에서 빅 오 표기법이란 input의 크기 n이 증가할 때 시간 복잡도 또는 공간 복잡도가 어떻게 증가하는지 구분하기 위해 사용하는 표기법이다. 엄밀한 정의는 수학적이라 알 필요는 없을 듯하다. 알..