221220(화)

김민석·2022년 12월 20일
0

Today I Learned

목록 보기
18/30

오전

react-express-mariadb-master

intro

  • 시퀄 라이즈는 DB 작업을 쉽게 할 수 있도록 도와주는 ORM 라이브러리
  • sequelize-cli는 시퀄라이즈 명령어를 실행하기 위한 패키지 라이브러리
  • mysql2는 MySQL과 연결해주는 드라이버
  • sequelize init 명령처리하면 config/config.json 생성됨

https://github.com/bezkoder

파일분석

app/config/server.js

module.exports = {
  HOST: "localhost",
  USER: "macms",
  PASSWORD: "mariadb",
  DB: "kosa",
  dialect: "mariadb",
  pool: {
    max: 5,
    min: 0,
    acquire: 30000,
    idle: 10000
  }
};

kosa라는 db자체는 미리 있어야 한다.

app/models/index.js

시작이 되는 위치

const dbConfig = require("../config/db.config.js");

const Sequelize = require("sequelize");
//모두 연결 되어 있다.
const sequelize = new Sequelize(dbConfig.DB, dbConfig.USER, dbConfig.PASSWORD, {
  host: dbConfig.HOST,
  dialect: dbConfig.dialect,
  operatorsAliases: false,

  pool: {
    max: dbConfig.pool.max,
    min: dbConfig.pool.min,
    acquire: dbConfig.pool.acquire,
    idle: dbConfig.pool.idle
  }
});

const db = {}; //생성된 db를 가지고 비어있는 객체를 만들어서 다 대입.

db.Sequelize = Sequelize;
db.sequelize = sequelize;

db.tutorials = require("./tutorial.model.js")(sequelize, Sequelize);

module.exports = db;

app/models/tutorial.model.js

module.exports = (sequelize, Sequelize) => {
  const Douzone = sequelize.define("douzone", { 
    //객체타입으로 선언, 테이블 생성과정임. 사이즈도 ,추가해서 늘릴 수 있다.
    title: {
      type: Sequelize.STRING
    },
    description: {
      type: Sequelize.STRING
    },
    published: {
      type: Sequelize.BOOLEAN
    }
  });

  return Douzone;
};

app/routes/turorial.routes.js

module.exports = app => {
  const tutorials = require("../controllers/tutorial.controller.js");

  var router = require("express").Router();

  // Create a new Tutorial
  router.post("/", tutorials.create);

  // Retrieve all Tutorials
  router.get("/", tutorials.findAll);

  // Retrieve all published Tutorials
  router.get("/published", tutorials.findAllPublished);

  // Retrieve a single Tutorial with id
  router.get("/:id", tutorials.findOne);

  // Update a Tutorial with id
  router.put("/:id", tutorials.update);

  // Delete a Tutorial with id
  router.delete("/:id", tutorials.delete);

  // Delete all Tutorials
  router.delete("/", tutorials.deleteAll);

  app.use('/api/tutorials', router);
};

server.js

미들웨어 등 입력

최종 팀프로젝트 관련 언급

  • 배포하기
    가) Google Cloud
    나) Oracle Cloud
    다) AWS
    Netlify

웹팩

https://webpack.kr/
https://codermun-log.tistory.com/m/436

설치

mkdir webpack-template-basic
cd webpack-template-basic
npm init -y
npm i -D webpack-cli webpack-dev-server@next
//D : 개발자모드로 웹팩 cli동작하도록 설치

파일 세팅

package.json

{
  "name": "webpack-template-basic",
  "version": "1.0.0",
  "description": "",
  "main": "index.js",
  "scripts": {
    "dev" : "webpack-dev-server --mode development",
    "build" : "webpack --mode production"
  },
  "keywords": [],
  "author": "",
  "license": "ISC",
  "devDependencies": {
    "webpack-cli": "^5.0.1",
    "webpack-dev-server": "^4.0.0-rc.1"
  }
}

index.html

<!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>Hello Webpack!!!</title>

    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/reset-css@5.0.0/reset.min.css">
    <script src="./js/main.js"></script>
</head>
<body>
    <h1>Hello Webpack!!!</h1>
    <img src="./static/images/kim.jpg" alt="yuna" />
</body>
</html>

webpack.config.js

오후

최종프로젝트 화상안내

1조 아마란스 10

사업소개
스탠다드 ERP, 그룹웨어 a 개발
두개의 솔루션의 사상등을 융합, 아마란스 10으로
사상 : 모든 솔루션을 하나로 문서를 관리하는 시스템

개발언어
프론트) 리엑트
백엔드) 자바 (벡엔드 msa 모듈별로 쪼개서 개발), 스프링부트
db ) 마리아db
엘라스틱 서치 엔큐티티(통신모듈),
카푸카 등의 오픈소스

프로젝트 설명
조직도 관련 기능을 구현하게 될 것.(입사, 퇴사 등등을 과제로)
완벽한 것보다는 얼마나 고민을 많이 해서 개발을 했는가를 중점으로
조직도 핵심 : 트리구조, recursive와 같은 db구성이 되면 메모리 많이먹어서 안됨 대충 이런거 고려해서 제작할 것


2조 위하고 / 스마트 a10

사업소개
기업의 경영에 꼭 필요한 ERP 웹 서비스위주로 모바일까지
위하고의 핵심 부문, 몇십가지중 가장 중요한 스마트에잇텐, b2b시장에서 유명한 제품, 기업 경영 세무 인사관리
서비스를 제공, 웹 서비스로 시작하였고 최근은 모바일까지 서비스를 운영중임, 업무는 세무회계 관련 법이 바뀌거나
꼭 필요한 부분을 설계함으로 개발 시작. 설계자와 개발자가 협업을 하여 프론트 백엔드 개발을 진행

개발언어
리엑트 파이썬 자바 자바스크립트 닷넷;

프로젝트설명
사무용품 구매, (볼펜 노트 등)
구매, 회계처리 좀더 편하게
사무용품 구매? -> 회계 처리하는 부분
용품구매 -> 수요조사 -> 구매 -> 전표처리가 되어야한다.
60명의 규모
회계처리에 대한 고민이 필요.
모바일은 확장,하는 단계

궁금한 점 : 모바일 개발이 주가 아니다. 웹 뷰방식으로 사용한다
회계처리는 간소하게 개발


3조 erp사업부문 erp10

사업소개
erp10 모듈 그룹사 위주의 프로세스를 개발 업무프로세스 자동화
제품군 : 여러 모듈, 관리회계 자금관리 생산, 물류
로고 블럭으로 나뉘지만 상호보완으로 연결되어있다.
자체 플랫폼을 이용하여 개발 커스텀마이징 고객사별로 맞춤 서비스 개발
DEWS 플랫폼으로 개발
HRM 관련 개발
인사 급여관리, 조직관리 제품관리 인사관리 인재육성관리 성과경력관리 급여관리
실시간 데이터 연결로 사용 가능
HR부서에서 사용하는 것 및 직원 복지, 연말정산 신고 등의 서비스 개발중
hrm 시스템 구성도
인사기획 인삭운영 성과관리 급여관리 퇴직관리 연말정산 세무신고 사업기타이자배당 등
국세청, 국민연금보험 등 연계되어야함
패키지 형태로 제공한다. 그러나 타 시스템들과 연동도 되어야함
채용관리-> 발령처리 -> 급여관리
각 모듈별로 개발팀 나누어짐 담당업무는 담당자가 맞아서 함
별도의 개발자가 개발하는것이 아닌 협력
커스터마이징 업무는 또 별도로 되어있음
업무 일부 공유
dews 플랫폼으로 개발 차세대 프레임워크 전자정부 프레임워크를 기반으로 만들어짐
ui 등을 별도 개발
프레임 워크를 개발하기위한 툴을 또 별도로 개발

개발언어/도구

위지윅 기반의 UI/UX제공
레포트도 툴 제공해줌
sql -> backend api -> front-end source 작성
이클립스가 근간

크롬, dews front designer, eclipse. dbeaver
git, jenkins, drs, dbs

foex 구축방법론


4조 패키지 개발팀

사업소개

SCM - 회계 인사를 제외한 모든 모듈
공급망 관리 DEWS 교육 후 개발
tems 자사툴과 이클립스를 사용하여 개발
최근에 받아서 실제로 작업을 했던 난이도가 낮은 화면 몇개를 과제로 개발

개발일정

최종프로젝트 진행일정(12/27~2/28)

1주차(공통교육)
1.Front-End, Back-End, git, 젠킨스, DB 등 개발 환경 구축
2. dews FD / BD 교육 - 프로젝트 만드는 방법
3. DB교육 - 기본 CRUD 쿼리

2주차(공통교육)
1. FD/BD교육 리마인드
2. 기본 개발 교육(Front-Back-DB)
3. Git, Jenkins 사용법 교육

3주차(공통교육)
1.샘플 개발 실습 - 마스터 디테일 구조의 crud 기능 구현

4주차
1. 현업에서 설계한 실제 설계서를 분석 및 메뉴 개발(단그리드-조회기능)

5주차
1. 4주차에 완성한 단그리드에 CRUD(추가,수정,삭제) 기능 개발
2. 저장 시 필요한 데이터의 유효성검사, 중복체크 기능 개발

6주차
1. 5주차에 완성한 메뉴에 출력물 기능 추가 개발

7주차
1. 생성한 메뉴의 그리드를 카드 리스트로 변경하여 폼패널 바인딩 및 카드리스트의 setDetail 개발(CRUD)

8주차
1. 커스텀 도움창 개발 + 공통 도움창 개발

9주차
1. 자유롭게 메뉴 커스터마이징 개발


5조 HIS

병원의 전반적인 업무를 자동화 한 시스템
웹 UI react v16+ / api서버는 자바 또는 노드

환자에 대한 상태값을 저장
진료 / 과목 / 원무 / 일반관리

LIS(Laboratory Information System)
피검사

profile
뉴비개발자

0개의 댓글