박주니 개발 정리

재무/회계 일을 할 경우 개발을 배울 때 유용하게 사용할 수 있는 방법 본문

개발 문의 답변/일상

재무/회계 일을 할 경우 개발을 배울 때 유용하게 사용할 수 있는 방법

박주니 2022. 11. 17. 14:33
728x90
반응형

프로젝트 경험을 통한 제시 방안

변리사협회 프로젝트 진행을 했을 때 경험으로 비추어봤을 때 사실 재무/회계 뿐만 아니라 사무직일경우 많이 사용하는 것이 엑셀을 사용하는 것을 볼 수 있습니다. 엑셀로 서류 작업할 때도 유용하지만 해당 데이터를 찾고 필터된 내용으로 정리만 되면 일이 더 간소화될 수 있어서 프로젝트 진행할 때에도 클라이언트가 원하는 db 테이블을 만들고 crud가 진행된 이후 원하는 정보가 있으면 xlsx 셋팅해서 버튼 한번만으로 맞는 엑셀로 만드니 일일이 찾아서 만들 필요가 없어지는 것을 볼 수 있었습니다.

 

html, css, javascript, java, mysql 기본기를 숙지하고 클론 코딩하면서 개발 영역을 넓혀나가 본인이 원하는 사이트를 개발하면 베스트이겠지만 개발자로 취업이 아닌 취미일 경우 클론 코딩이라고 해도 따라서 만들기만 하면 막상 본인이 원하는 것을 응용해서 만들려고 할 때 어려움을 느끼고 시작도 하기 전에 흥미를 잃는 경우를 많이 봤습니다.  

그래서 전체를 공부하기 보다는 필요한 부분에 대한 기능만 숙지해서 코어를 만들고 시간이 되실 때 살을 붙이는 것을 추천합니다. 

추천 기능
1. 분류된 데이터 중 일부 또는 전체를 꺼내서 엑셀로 출력 
2. 해당 아이디를 클릭 시 상세 정보를 메일로 원하는 대상에게 버튼 클릭만으로 폼을 갖춘 상태로 보내는 것 
 
추천 스킬
주제: 모든 것은 단계가 필요합니다.
프론트 : html, javascript
백엔드 : node, mongodb
이유: 프론트엔드에서 css를 사용해서 좀 더 정돈되게 만들 수는 있으나 기능을 만들 때에는 css 사용하지 않고도 html에서 input을 사용하고 javascript 에서 jquery를 사용해 ajax만 이용해서 백엔드에 요청하고 script로 controller을 만들면 웬만한 기능들은 만들 수 있습니다. reactjs로 만드는 것을 추천하지 않은 이유는 reactjs를 사용할 때 javascript를 제대로 이해하지 않고 사용하면 따라서 만들 수는 있으나 응용하거나 다시 만들려고 할 때 이해가 안되기 때문에 시간을 낭비할 수 있기 때문입니다. 먼저 시작을 html, javascript로 진행하고 익숙해지실 때 reactjs 또는 nextjs로 추천합니다. 
백엔드에 node랑 mongodb를 추천하는 이유는 업무를 좀 더 효율적이게 하기 위해서는 db에 정리를 해서 꺼내서 crud 즉 추가하고나 읽거나 업데이트, 또는 삭제를 신행할 때 server랑 db를 이용해야하는데 그건 백엔드에 해당됩니다. 그런데 유튜브나 구글에 백엔드를 검색해보면 자바를 추천하는데 그건 현재 대기업에서 많이 사용하고 있어서이지 그것이 결코 쉬어서 사용하는 것은 아닙니다. 그런데 쉽게 사용할 수 있는 백엔드 중에 javascript 기반인 백엔드 nodejs는 다른 백엔드 보다 쉽게 다룰 수 있기 때문에 추천하고 db는 mysql이 아닌 mongodb를 추천하는 이유는 mysql를 사용하기 위해서는 리눅스 환경에서 localhost 환경을 맞춰야하고 migrate 진행해서 model 설정하고 table을 변경할 때 전체 에러가 발생될 수 있기 때문에 주로 테스트로 진행하거나 개인프로젝트를 진행할 때 nosql 즉 mongodb를 진행합니다. 
제가 취업준비생때 node, mongodb core 부분 crud 설명한 영상입니다. 추천한 이유는 이정도 기능만 이해하면 node mongodb로 간단한 건 다 만들 수 있기 때문입니다. 물론 join을 해야하거나 응용을 해야할 때에는 구글에 검색하시면 됩니다. 지금 보내드린 영상만 이해 하시고 설명이 이해가 안되면 해당 부분 검색해서 이해하시고 적용해보시면 crud는 잘 활용하실거라 생각됩니다.
mongodb를 활용하기 위해서는 robo3T를 설정해야하는데 https://www.youtube.com/watch?v=vsegu5ebAyo 이 영상 참고해서 진행하시는 것을 추천해요 
공부 방법
먼저 첫번재 추천했던 xlsx 활용 방법을 간단하게 보여 드리면 
저는 reactjs로 import xlsx를 사용했습니다. javascript로 진행할 때에는 script로 사용하시면 되는데 셋팅 방법은 
https://eblo.tistory.com/84 확인하시면 됩니다. 
  const data = totalData;
  const excelFileType =
    "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8";
  const excelFileExtension = ".xlsx";
  const excelFileName = "작성자";
  // 엑셀 다운로드 클릭시 
  const excelDownload = (excelData) => {
    if (excelData === "해당 데이터가 존재하지 않습니다.") {
      alert("해당되는 데이터가 존재하지 않습니다.");
    } else {
      const ws = XLSX.utils.aoa_to_sheet([
        [`회원권 정산`],
        [],
        ["번호", "구매자", "Wallet", "TITLE", "Price(MATIC)", "구매일"],
      ]);
      if (excelData.length === 1) {
        XLSX.utils.sheet_add_aoa(
          ws,
          [
            [
              excelData[0].id,
              excelData[0].buyer_name,
              excelData[0].buyer,
              excelData[0].title,
              excelData[0].market_price,
              moment(excelData[0].buy_date).format("YYYY-MM-DD"),
            ],
          ],
          { origin: -1 }
        );
        ws["!cols"] = [
          { wpx: 70 },
          { wpx: 100 },
          { wpx: 400 },
          { wpx: 200 },
          { wpx: 100 },
          { wpx: 100 },
        ];
      } else {
        excelData.map((data) => {
          XLSX.utils.sheet_add_aoa(
            ws,
            [
              [
                data.id,
                data.buyer_name,
                data.buyer,
                data.title,
                data.market_price,
                moment(data.buy_date).format("YYYY-MM-DD"),
              ],
            ],
            { origin: -1 }
          );
          ws["!cols"] = [
            { wpx: 70 },
            { wpx: 100 },
            { wpx: 400 },
            { wpx: 200 },
            { wpx: 100 },
            { wpx: 100 },
          ];
          return false;
        });
      }

      const wb = { Sheets: { data: ws }, SheetNames: ["data"] };
      const excelButter = XLSX.write(wb, { bookType: "xlsx", type: "array" });
      const excelFile = new Blob([excelButter], { type: excelFileType });
      FileSaver.saveAs(excelFile, excelFileName + excelFileExtension);
    }
  };
이 코드는 해당 데이터를 필터 적용 및 폼 수정해서 만든 excel 출력할 때 사용했던 코드입니다. 먼저 코드를 보여드린 이유는 공부 순서를 말씀드리고 싶어서입니다. 
1. html, javascript: input과 button 활용정도로만 숙지 
input을 적고 button을 클릭했을 때 input에 적은 내용이 버튼 클릭시 console에 나오거나 또는 button을 클릭했을 때 script 안에 해당 함수 실행 이해 정도 
2. jquery, ajax 활용: javascirpt api 즉 server로 보낼 때는 jquery, ajax를 활용하기 때문에 get, post를 정확히 숙지 
3. node, mongodb curd 이해 : crud만 할 줄 알면 백엔드 웬만한 기능은 할 수 있음 
이 세가지를 이해를 다 하셨으면 그때 구글에 javascript xlsx를 검색해서 기능을 이해하시면 됩니다.
그리고 엑셀 출력이 끝나시시면 2번째 기능 메일 전송이 있는데 그건 nodemailer 기능입니다. 구글에 nodemailer을 검색하면 기본 폼이 자세히 설명되어있습니다. 그런데 회사 메일이 gmail이 아닐 경우에는 제한될 수 있음으로 먼저 1번째 엑셀 출력 응용을 초점으로 맞추시길 바라겠습니다.
 
 
728x90
반응형
Comments