express 설치

npm install --save express

를 통해서 express를 설치한다.

package.json을 보게되면, 의존성이 추가된 것을 볼 수 있다.

{
  "name": "nodejs",
  "version": "1.0.0",
  "main": "index.js",
  "scripts": {
    "test": "echo \"Error: no test specified\" && exit 1"
  },
  "author": "",
  "license": "ISC",
  "description": "",
  "dependencies": {
    "express": "^4.18.2"
  }
}

Express 설정

app.js를 생성한 뒤 다음 코드를 작성한다.
3000번 포트에 연결이 된다는 의미를 갖고 있다.

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
  res.send('Hello World!')
})

app.listen(port, () => {
  console.log(`app listening on port ${port}`)
})

Express 실행

실행하기 위해서는 다음의 코드를 터미널에 적는다.

node app.js

실행한 뒤에, 주소창에 http://localhost:3000/ 을 작성하면 되면 'Hello World!'가 출력된다.
만약 다른 path를 사용하고 싶을 때는 get 메서드에 인자값을 변경하면 된다.
예를 들어 http://localhost:3000/test 로 만들고 싶다면 아래와 같이 코드를 추가하면 된다.

const express = require('express')
const app = express()
const port = 3000

app.get('/', (req, res) => {
  res.send('Hello World!')
})

app.get('/test', (req, res) => {
  res.send('Test Page!')
})

app.listen(port, () => {
  console.log(`app listening on port ${port}`)
})

서버 실행을 종료하기 위해서는 Ctrl + C 혹은 CMD + C를 눌리면 된다.

'JavaScript > Node.js' 카테고리의 다른 글

TypeScript 설치  (0) 2023.08.13
ESLint 설치  (0) 2023.08.12
prettier 설치  (0) 2023.08.12
package.json  (0) 2023.08.12
server.js  (0) 2023.08.12

TypeScript 설치 이유

TypeScript를 적용하지 않았을 경우에, 아래와 같은 코드를 실행할 수 있다.

const something = 'Hello'
const result = Math.long(something)
console.log(result)
NaN

NaN 이라는 숫자가 아니라는 결과가 출력되는데, TypeScript를 적용하게 되면, 잘못된 것들을 수정할 수 있다.

TypeScript 설치

npm install --save-dev typescript

package.json에 들어가면 아래와 같이 의존성이 적용된 걸 볼 수 있다.

{
  "scripts": {
    "test": "echo \"Hello, world!\" && exit 1"
  },
  "devDependencies": {
    "eslint": "^8.47.0",
    "eslint-config-airbnb-base": "^15.0.0",
    "eslint-config-prettier": "^9.0.0",
    "eslint-plugin-import": "^2.28.0",
    "eslint-plugin-node": "^11.1.0",
    "prettier": "^3.0.1",
    "typescript": "^5.1.6"
  }
}

TypeSciprt 적용

// @ts-check
const something = 'Hello'
const result = Math.long(something)
console.log(result)

와 같이 // @ts-check를 적게 되면, something 부분에 에러가 나는 것을 확인할 수 있다.

Node.js에서 TypeScript 적용

npm install --save-dev @types/node

package.json에 가면 의존성이 적용되어 있는 걸 확인할 수 있다.

{
  "scripts": {
    "test": "echo \"Hello, world!\" && exit 1"
  },
  "devDependencies": {
    "@types/node": "^20.4.10",
    "eslint": "^8.47.0",
    "eslint-config-airbnb-base": "^15.0.0",
    "eslint-config-prettier": "^9.0.0",
    "eslint-plugin-import": "^2.28.0",
    "eslint-plugin-node": "^11.1.0",
    "prettier": "^3.0.1",
    "typescript": "^5.1.6"
  }
}

@types/nodeNode.js에서 필요한 파일의 타입들을 정해주는 역할을 한다.
main.js를 다음과 같이 작성한다.

// @ts-check
// Formatting: Prettier, Type Checking
// Linting: ESLint

const http = require('http')

const server = http.createServer((req, res) => {
  res.statusCode = -200
  res.end('Hello World!')
})

const PORT = 3000
server.listen(PORT, () => {
  console.log(`The Server is listening at PORT: ${PORT}.`)
})

실행시킨다.

node main.js

다음과 같은 결과가 나오게 된다.

The Server is listening at PORT: 3000.

main.js를 작성하면서 오타 혹은 잘못된 타입을 넣었을 경우, 바로 알 수 있게 해준다.

TypeScript 설정

jsconfig.json 이라는 파일을 생성 후, 다음과 같은 코드를 작성한다.

{
  "compilerOptions": {
    "strict": true
  },
  "include": ["src/**/*"]
}

compilerOptions에서 strict는 엄격하게 검사를 하는 것을 의미하고, include는 범위를 의미한다.
tsconfig 공식 도큐먼트에서 조금 더 명확하게 알 수 있다.

'JavaScript > Node.js' 카테고리의 다른 글

Express 설치  (0) 2023.08.13
ESLint 설치  (0) 2023.08.12
prettier 설치  (0) 2023.08.12
package.json  (0) 2023.08.12
server.js  (0) 2023.08.12

ESLint 설치

npm install --save-dev eslint

ESLint를 설치하게 되면, package.json에 다음과 같이 추가된 것을 알 수 있다.

{
  "scripts": {
    "test": "echo \"Hello, world!\" && exit 1"
  },
  "devDependencies": {
    "eslint": "^8.47.0",
    "prettier": "^3.0.1"
  }
}

package-lock.json의 경우 매우 많은 것들이 추가되기에 생략했다.

ESLint 설정

prettier와 동일하게 .eslintrc.js라는 설정파일을 생성한 뒤, 아래 코드를 입력한다.

module.exports = {}

ESLint 규칙 설정

이후, ESLint의 규칙을 설정하기 위해서 다음의 코드를 실행한다.

npm install --save-dev eslint-config-airbnb-base eslint-plugin-import eslint-plugin-node eslint-config-prettier

이후에, package.json에 가게 되면, 의존성이 추가된 것을 볼 수 있다.

{
  "scripts": {
    "test": "echo \"Hello, world!\" && exit 1"
  },
  "devDependencies": {
    "eslint": "^8.47.0",
    "eslint-config-airbnb-base": "^15.0.0",
    "eslint-config-prettier": "^9.0.0",
    "eslint-plugin-import": "^2.28.0",
    "prettier": "^3.0.1"
  }
}

ESLint 규칙 적용

이후 ESLint를 설정하기 위해서 .eslintrc.js에 아래 코드를 입력하면 된다.

module.exports = {
  extends: ['airbnb-base', 'plugin:node/recommended', 'prettier'],
}

main.js에서 ESLint의 동작을 보면, console을 사용할 수 없게 되어있다.
하지만, console을 사용하기 위해서는 다음과 같이 예외를 적용시켜두면 쓸 수 있다.

/* eslint-disable-next-line */
console.log('Hello world!');

'JavaScript > Node.js' 카테고리의 다른 글

Express 설치  (0) 2023.08.13
TypeScript 설치  (0) 2023.08.13
prettier 설치  (0) 2023.08.12
package.json  (0) 2023.08.12
server.js  (0) 2023.08.12

prettier 설치

npm install --save-dev prettier

을 입력하면, package.jsondevDependencies가 추가된다.

{
  "scripts": {
    "test": "echo \"Hello, world!\" && exit 1"
  },
  "devDependencies": {
    "prettier": "^3.0.1"
  }
}

devDependencies는 의존성을 나열하는 것과 비슷하기에, 중요하다.
node_modules 폴더와 package-lock.json 파일도 작성되는데 현재 프로젝트에서 의존하는 것이라 생각하면 된다.
먼저 package-lock.json 파일은 다음과 같다.

{ 
  "name": "nodejs",
  "lockfileVersion": 3,
  "requires": true,
  "packages": {
    "": {
      "devDependencies": {
        "prettier": "^3.0.1"
      }
    },
    "node_modules/prettier": {
      "version": "3.0.1",
      "resolved": "https://registry.npmjs.org/prettier/-/prettier-3.0.1.tgz",
      "integrity": "sha512-fcOWSnnpCrovBsmFZIGIy9UqK2FaI7Hqax+DIO0A9UxeVoY4iweyaFjS5TavZN97Hfehph0nhsZnjlVKzEQSrQ==",
      "dev": true,
      "bin": {
        "prettier": "bin/prettier.cjs"
      },
      "engines": {
        "node": ">=14"
      },
      "funding": {
        "url": "https://github.com/prettier/prettier?sponsor=1"
      }
    }
  }
}

prettier 설정

prettier을 사용하기 위해서는 .prettierrc라는 파일이 필요하다.

{
  "semi" : false, // 세미콜론 여부
  "singleQuote": true // 문자열을 사용할 때, ''를 쓸것인지 여부
}

vscode에서 prettier를 사용하기 위해서는 . vscode라는 폴더를 만든 뒤, settings.json을 만든 뒤, 아래의 코드를 입력한다.

{
  "[javascript]": {
    "editor.formatOnSave": true,
    "editor.defaultFormatter": "esbenp.prettier-vscode"
  }
}

이렇게 하면, 저장될 때 자동으로 prettier가 작동되는 걸 알 수 있다.

'JavaScript > Node.js' 카테고리의 다른 글

Express 설치  (0) 2023.08.13
TypeScript 설치  (0) 2023.08.13
ESLint 설치  (0) 2023.08.12
package.json  (0) 2023.08.12
server.js  (0) 2023.08.12
npm init -y

를 통해서, package.json을 생성할 수 있다.
생성되는 내용들은 많지만, 중요 내용은 아래 코드이다.

{
  "scripts": {
    "test": "echo \"Hello, world!\" && exit 1"
  }
}

test가 추후에 npm을 통해서 실행할 때 입력할 이름이다.

npm run test

를 입력하면 아래와 같은 코드가 나오게 된다.

> test
> echo "Hello, world!" && exit 1

"Hello, world!"

'JavaScript > Node.js' 카테고리의 다른 글

Express 설치  (0) 2023.08.13
TypeScript 설치  (0) 2023.08.13
ESLint 설치  (0) 2023.08.12
prettier 설치  (0) 2023.08.12
server.js  (0) 2023.08.12
const http = require('http')

const server = http.createServer((req, res) => {
  res.statusCode = 200
  res.end('Hello!')
})

const PORT = 3000

server.listen(PORT, () => {
  console.log('The server is lisening at port', PORT)
})

http로 연결하고, 3000번 포트를 사용한다.
콜백함수를 사용하여, 200번 코드가 나오면, Hello!라는 문구가 뜬다.

'JavaScript > Node.js' 카테고리의 다른 글

Express 설치  (0) 2023.08.13
TypeScript 설치  (0) 2023.08.13
ESLint 설치  (0) 2023.08.12
prettier 설치  (0) 2023.08.12
package.json  (0) 2023.08.12
문제
  • 꼬마 정민이는 이제 A + B 정도는 쉽게 계산할 수 있다. 이제 A + B + C를 계산할 차례이다!
입력
  • 첫 번째 줄에 A, B, C (1 ≤ A, B, C ≤ 1012)이 공백을 사이에 두고 주어진다.
출력
  • A+B+C의 값을 출력한다.
A. Number_11382.java
import java.util.Scanner;

public class Number_11382 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        long x = sc.nextLong();
        long y = sc.nextLong();
        long z = sc.nextLong();

        System.out.println(x + y + z);

        sc.close();
    }
}
  • 처음에 1012를 신경쓰지않고, int 타입을 활용하였더니, RuntimeError(InputMismatch)가 발생하였다.
  • 제일 큰 타입을 활용하는 걸 요구하는 것 같아서 long 타입을 사용하였더니 바로 실행되었다.
    추후에 알아보니 1012은 1조로, long 타입을 활용하는 것이 맞았다.
알고리즘 분류
  • 수학
  • 구현
  • 사칙연산

'Java, Spring > 코딩테스트' 카테고리의 다른 글

Number_2588 곱셈  (0) 2023.06.11
Number_10430 나머지  (0) 2023.06.11
Number_18108 1998년생인 내가 태국에서는 2541년생?!  (0) 2023.06.11
Number_10926 ??!  (0) 2023.06.11
Number_10869 사칙연산  (0) 2023.06.11
문제
  • (세 자리 수) × (세 자리 수)는 다음과 같은 과정을 통하여 이루어진다.

  • (1)과 (2)위치에 들어갈 세 자리 자연수가 주어질 때 (3), (4), (5), (6)위치에 들어갈 값을 구하는 프로그램을 작성하시오.
입력
  • 첫째 줄에 (1)의 위치에 들어갈 세 자리 자연수가, 둘째 줄에 (2)의 위치에 들어갈 세자리 자연수가 주어진다.
출력
  • 첫째 줄부터 넷째 줄까지 차례대로 (3), (4), (5), (6)에 들어갈 값을 출력한다.
A. Number_2588.java
import java.util.Scanner;

public class Number_2588 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int x = sc.nextInt();
        int y = sc.nextInt();

        System.out.println(x * (y%10));
        System.out.println(x * ((y/10)%10));
        System.out.println(x * (y/100));
        System.out.println(x * y);

        sc.close();
    }
}
  • 385에서 8을 나오게 하려면, 먼저 38이란 몫을 내기 위해 /를 통해서 10으로 나눈 뒤, 나머지인 8을 가져오기 위해서, %를 사용한다.
알고리즘 분류
  • 수학
  • 사칙연산

'Java, Spring > 코딩테스트' 카테고리의 다른 글

Number_11382 꼬마 정민  (0) 2023.06.11
Number_10430 나머지  (0) 2023.06.11
Number_18108 1998년생인 내가 태국에서는 2541년생?!  (0) 2023.06.11
Number_10926 ??!  (0) 2023.06.11
Number_10869 사칙연산  (0) 2023.06.11

+ Recent posts