토이 프로젝트 들어가기

이율곡·2023년 1월 8일
0

Project

목록 보기
1/15
post-thumbnail

주제

내가 만들어 볼 토이 프로젝트는 'E-Book'시스템이다. 대여와 반납을 주기능으로 만들어보고자 한다.(여유가 되면 기능 추가) 약 15주간(1월 중순부터 4월 말까지)에 걸쳐 만들어 볼 생각이며 일과 공부를 병행하면서 해야 하기 때문에 시작도 안했지만 걱정이 태산이다.

개발환경

백엔드 : Node js (Express)

프론트엔드: Typescript (React)

DB : MySQL

IDE : Visual Studio

로 생각하고 있다. Node js와 Typescript는 한 번도 사용해 본 적도 없다.(순수 Java만 해봤다) 그렇기 때문에 더 어렵겠지만 그만큼 노력할 자신은 있다.

MVC 해보기

웹을 개발하면서 그나마 이해하기게 쉬웠던 부분이 MVC모델이다. 그래서 본격적으로 프로젝트를 진행하기 전에 Node js로 MVC 모델을 만들어보는 연습을 해보았다.

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=psj9102&logNo=221282415870

위의 블로그를 그대로 따라 작성하였다.

Model

class Calculate {
    constructor(a, b) {
        this.a = a;
        this.b = b;
    }

    sum() {
        return this.a + this.b;
    }
}

module.exports = Calculate;

View

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>index</title>
</head>
<body>
    <h1>Hello World!!</h1>
</body>
</html>

Controller

var fs = require('fs');
var Calculate = require('../models/calc');

exports.mainView = function(req, res) {

    var calc = new Calculate(10, 16);
    var sub = calc.sum();

    console.log(sub);

    fs.readFile('./views/index.html', function(err, buf) {
        res.end(buf);
    });
};

Routes(경로설정)

const router = require('express').Router();
const controller = require('./controller');

router.get('/main', controller.mainView);

module.exports = router;

App(Home)

const express = require('express');

const app = express();

const routes = require('./routes/');

app.use(express.static(__dirname + './views'));

app.use(routes);

app.listen(3000);

이번에 전반적으로 훑어보면서 이전에 MVC모델을 했던 기억들을 되살려보았고, Node js는 어떤 방식으로 진행되는지 Java와는 어떤 점이 다른지를 알 수 있었다. 이제 시작이고 한 숟가락에 배부를 수 없기 때문에 열심히 노력하고자 한다.

profile
음악을 좋아하는 사람이 음악을 만들 듯, 개발을 좋아하게 될 사람이 쓰는 개발이야기

0개의 댓글