2024/08 22

Node.js 용어 정리 - 2주차

1. API와 REST API의 개념API(Application Porgramming Interface)는 서로 다른 소프트웨어나 어플리케이션 간을 연결해주는 매개체이자 약속이라고 볼 수 있습니다.API는 서로 다른 시스템 간의 통신을 할 수 있게 해주는 중개자의 역할을 담당하게 됩니다.우리가 API를 작성하는 이유는?웹 어플리케이션(프론트엔드)에서 원하는 기능을 수행하는 URL과 인터페이스를 제공하기 위해서우리가 작성할 API에서 원하는 데이터를 받아 데이터베이스에 데이터를 저장하고, 저장되어 있는 데이터를 읽어서 웹 어플리케이션(프론트엔드)에 데이터를 제공하는 행위를 통해 사용자가 원하는 목적을 이룰 수 있게 해야 합니다.REST API란?REST API, RESTful API ?REST란 "Repr..

Node.js 2024.08.30

Node.js 용어 정리 - 1주차

1. Node.jsNode.js는 Chrome V8 JavaScript 엔진으로 빌드된 JavaScript 런타임입니다.Node.js는 Javascript를 브라우저가 아닌 컴퓨터에서 브라우저 없이 실행하게 도와주는 환경입니다.Node.js는 논 블록킹(Non-blocking) I/O, 싱글 스레드(Single Thread), 이벤트 루프(Event Loop)의 특성이 있습니다.논 블록킹 I/O (Non-Blocking Input/Output)블로킹 I/O와 논 블로킹 I/O는 프로그램의 실행 흐름을 제어하는 방식입니다.블로킹 방식은 프로그램이 특정 작업을 수행하는 동안 다른 작업을 중단시키는 방식논 블로킹 방식은 프로그램이 여러 작업을 동시에 처리할 수 있는 장점스레드 란 프로그램이 동작할 때, CPU..

Node.js 2024.08.29

OSI 7계층이란?

1. OSI 7계층이란?OSI 7계층의 간단한 개념과, 각 계층별 주요 개념에 대한 간단히 조사해주세요.OSI 7계층이란? 국제표준화기구(ISO)에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 것이다.즉, 네트워크에서 통신이 일어나는 과정을 7단계로 나눈 것을 말한다.OSI 7 계층은 물리 계층, 데이터 링크 계층, 네트워크 계층, 전송 계층, 세션 계층, 표현 계층, 응용 계층으로 구성되어 있다.1계층 - 물리 계층(Physical Layer)이 계층에는 케이블, 스위치 등 데이터 전송과 관련된 물리적 장비가 포함됩니다.이 계층은 또한 1과 0의 문자열인 비트 스트림으로 변환되는 계층입니다.뿐만 아니라 두 장치의 물리적 계층은 신호 규칙에 동의해서 두 장치의 1이 ..

TIL 2024.08.29

웹 과 HTTP의 이해 후 웹 서버의 이해까지!

1. 웹 브라우저란? 인터넷 브라우저라고도 불리며, 웹 서버로부터 정보를 요청하고 받아 사용자에게 보여주는 소프트웨어입니다.우리가 일반적으로 사이트에 접속하였을때, HTML, CSS, JavaScript 파일을 전달받아 이를 해석하고 우리의 눈으로 볼 수 있게 됩니다.이 과정에서 웹 브라우저는 정적인(static)파일과 동적인(Dynamic)정보를 처리하게됩니다.브라우저의 통신 방식사용자가 웹 브라우저의 주소창에 URL을 입력웹 브라우저는 입력받은 URL을 DNS 서버로 전달하여 해당 IP 주소를 찾아줍니다.DNS 서버는 도메인 이름을 IP 주소로 변환합니다.웹 브라우저는 해당 IP 주소로 HTTP 요청IP 주소에 연결된 웹 서버는 요청(Request)를 받아 처리웹 서버는 처리 결과를 HTTP Resp..

TIL 2024.08.27

서버와 클라이언트 란? 웹 어플리케이션 서버와 게임 서버의 공통점과 차이점은 무엇인가?

1. 컴퓨터 세계에서 서버와 클라이언트는 무엇인가?서버 란?서버는 네트워크 상에서 데이터와 자원을 제공하는 컴퓨터 또는 시스템을 말합니다.서버는 데이터베이스 관리, 웹 페이지 호스팅, 이메일 서비스 제공 등 다양한 역할을 가집니다.서버는 여러 클라이언트의 요청을 동시에 처리할 수 있도록 설계되어 있습니다.서버란 서비스를 제공하는 컴퓨터이며, 매우 큰 용량과 성능을 가지고 있습니다.클라이언트 란?서버로부터 데이터나 서비스를 요청하는 기기 또는 소프트웨어를 말합니다.웹 브라우저, 이메일 클라이언트, 온라인 게임 등이 클라이언트의 예입니다.클라이언트는 사용자와 서버 사이의 인터페이스(통로) 역할을 합니다.클라이언트는 사용자의 요청을 서버에 전달하고 서버로부터 받은 응답을 사용자에게 보여줍니다.서버와 클라이언트..

TIL 2024.08.26

TextRPG 만들기 - 마무리

1. 개발 목표이미 주어진 코드에서 TextRPG 구현하기단순 행동 패턴 공격한다연속 공격한다방어한다도망간다클래스 문법 활용, 플레이어, 몬스터 스탯 관리플레이어 경험치가 가득차면 업그레이드 시킬 능력치 고를 수 있게 하기단일 책임의 원칙 최대한 지키기확률 로직 적용공격력 증가량몬스터 스탯 2. 게임 화면 3. 개발 환경 세팅프로젝트 시작npm init -y를 입력하면 프로젝트 폴더 안에는 package.json이 생성됩니다.-y 옵션의 사용으로 폴더명이 프로젝트의 이름이 됩니다.글 깨짐 chcp 65001 입력하면 임시방편으로 글깨짐이 해결된다.글 깨짐은 VSCODE의 UTF-8로 모든설정을 바꿔준다.라이브러리 다운로드npm install chalk figlet readline-syncnpm insta..

JavaScript 2024.08.23

TextRPG 만들기 - 1탄

현재 개인과제로 TextRPG를 만들고 있습니다.만들던 도중에 알게된 사실들에 대해서 기술하겠습니다.아직 개발 도중이지만 어느정도 틀을 잡았습니다. 1. 전체 코드import chalk from 'chalk';import readlineSync from 'readline-sync';import { getRandomNum, playerRank, randomPlay } from './util.js';class Creature { constructor(hp, maxHp, minDamage, maxDamage, armor, level) { this.hp = hp; this.maxHp = maxHp; this.originDamage = minDamage; this.damage = minDa..

Node.js 2024.08.22

개인 과제를 하던 도중 비동기를 구현 할 줄 몰라서 비동기에 대해 다시 공부했다...

현재 가장 필요한 비동기 작업의 동기적 표현 - Promise + Async/await> 부분을 다시 공부했다.1. Promise란 비동기 처리에 대해, 처리가 끝나면 알려달라는 약속입니다.2. new 연산자로 호출한 Promise 인자로 넘어가는 콜백은 바로 실행돼요.3. 그 내부의 resolve(또는 reject) 함수는 호출하는 구문이 있을 경우 resolve(또는 reject) 둘 중 하나가 실행되기 전까지는 다음(then), 오류(catch)로 넘어가지 않습니다.4. 따라서, 비동기작업이 완료될 때 비로소 resolve, reject를 호출합니다.5. 그럼 await에 걸려있던 함수가 풀립니다. 동기처리로 되어 있는 기명함수로 되어 있는 식을 보겠습니다.var coffeeList = '';var..

JavaScript 2024.08.21

가장 많이 받은 선물 -JS

이 문제는 풀다가 중도 포기를 하게 되었다.그 이유는 문제를 풀다보니 for문과 변수 선언을 너무 많이하게 되서 결국 포기를하고 다른 사람의 풀이를 보면서 어떻게 풀었는지 이해를 하기로 하였습니다. 문제 설명https://school.programmers.co.kr/learn/courses/30/lessons/258712 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이 코드function solution(friends, gifts) { let N = friends.length; //친구들 이름에 따른 idx map 에 저장 const na..

JavaScript 2024.08.20

Math.min(Array)를 넣었더니 NaN이 나왔다

갑작스레 찾아온 NaN(Not a Number) 숫자가 아니란다.너무나도 당황스러웠지만 일단 문제가 무엇인지 찾아보도록 하자. 과거의 문제const numbers = [5, 6, 2, 3, 7]; const min = Math.min(numbers); console.log(min); // NaN현재의 상황은 Math.max든 Math.min이든 최소, 최댓값을 구하는 함수를 사용했더니 숫자가 아니라는 값이 나왔다. Math.min에 관한 공식문서를 살펴보자.Math.min() 정적 메서드는 입력 매개변수로 주어진 숫자 중 가장 작은 수를 반환하거나, 매개변수가 없으면 Infinity를 반환합니다. 라고 적혀있습니다.여기서 중요한 것은 공식문서에서는 주어진 글 그자체로 받아드려야 한다.Math.min의 매..

JavaScript 2024.08.19