개인프로젝트 마무리

Ungs·2021년 5월 9일
0

Tree Generator

Tree_Generator 배포 링크

사용기술

  • CSS
  • Javscript
  • Node js (Express, ejs)

개발하게된 과정

최근 올라온 글중에 Folder Tree 구조 생성기를 만드신 분이 있었다. 내가 가진 기술 로는 어떻게 만들 수 있을 지 궁금하였기에 한주 안으로 완성을 해보았다.

구현하지 못한 부분

Image Issue

지금 존재하는 Image download 기능은 h2mlcanvas라는 함수를 이용하고 있다. 그런데 파일이 너무 많을 시에는 밑에가 잘리는 불상사가 발생한다. 이것을 어떻게 해결해야 할지가 더 좋은 기능이 될 것 같다.

불완전한 알고리즘

현재 만든 generator는 초기버전이기 때문에 오류가 너무 많고, 특정한 Tree구조의 경우 내가 생각했던 방식과 다르게 출력이 된다. 그래서 제일 빨리 해결해야할 사안 인 것 같다.

UI

아무래도 UI적 감성이 부족한 나로서는 기존에 어느정도 나와있는 Folder tree 생성기의 모습과 매우 유사하다. 나중에는 file의 확장자를 통해서 해당하는 image도 같이 출력 되게 만들 예정이다.

수동 생성

수동생성 기능은 너무 시간이 오래걸리고 오류가 많아 배포단계까지는 오지 못했다. 빠르게 알고리즘을 수정을 먼저한후 수동생성 기능도 구현을 해봐야 할 것 같다.

Function 공부

Fetch : http 통신 get, post를 할 수 있는 함수

const fetch = require("node-fetch");

function fetchData(url, branch){
return fetch(`https://api.github.com/repos/${url}/git/trees/${branch}?recursive=1`)
      .then(res => res.json())
}

multer : 파일 업로드,저장기능

var Product = require('../models/Product');
var multer = require('multer');

// 저장소 설정 (다운로드 장소, 파일 이름)
var storage  = multer.diskStorage({ 
    destination(req, file, cb) {
      cb(null, './public/upload');
    },
    filename(req, file, cb) {
      cb(null, `${file.originalname}`);
    },
  });
  var uploadWithOriginalFilename = multer({ storage: storage }); 

// 
router.post('/', uploadWithOriginalFilename.single('attachment'), function(req, res){
      res.redirect('/upload);
  });

느낀 점

개인 프로젝트를 마무리 한 것은 이번이 처음인 것 같다. 항상 중간 단계에서 포기했었고, 배포단계는 꿈도 꾸지 못했던 것 같다. 바쁜 학업, 아르바이트 일정에도 불구하고 새벽까지 열심히한 나에게 박수를 쳐주고 싶다.

node js의 web 개발 기본기를 기르기 위해 많이 노력한 것 같다. (외부 라이브러리 사용법, 기본적인 routing 설정, DB연결 등) 간단한 코드를 3시간씩 잡을 때도 있었지만 내가 생각한 방법대로 구현을 했을 때는 그만큼의 재미가 있다고 생각이 든다.

지금까지는 각각의 함수를 사용함에 있어서 코드를 수정하는데 있어서 어려움이 많았다. 함수 기능에 대해 완전히 파악하지 못해서 그렇다. 다음에 프로젝트를 진행할때는 먼저 이해를 위한 toy 프로젝트를 진행한 후 적용을 해야겠다.

profile
Hi I'm Ungs

0개의 댓글