Git Product home page Git Product logo

egovframe-template-simple-react's Introduction

표준프레임워크 심플홈페이지 FrontEnd

react javascript nodejs npm cra
workflow

※ 본 프로젝트는 기존 JSP 뷰 방식에서 벗어나 BackEnd와 FrontEnd를 분리하기 위한 예시 파일로 참고만 하시길 바랍니다.

프로젝트 소개

프로젝트 개요

단순 홈페이지 기능 구현 시 필수적인 부분만 사용 가능하도록 경량화 된 실행환경 제공
메인 페이지, 사용자 관리, 공지사항 관리, 게시판 관리, 안내 관리 기능을 제공

메뉴 구성

menu_sht_v4_2

참고 화면 및 메뉴 설명

메인 화면

sh1

  1. 홈페이지 템플릿은 관리자만 로그인 가능하다는 전제로 구성되었으며 최초 관리자 계정 설정은 [ 로그인계정 : admin , 로그인암호 : 1 ] 로 설정되어 있다.
  2. 관리자 추가 및 변경 기능은 추가 구성되어 있지 않으므로 필요 시 DB를 통해 직접 변경한다. (암호 셋팅 값은 공통컴포넌트의 암호화 로직에 따라 생성해야 함)
  3. 기본 기능이나 예시 메뉴를 실무적으로 추가 커스터마이징하여 활용할 수 있다.

사이트 소개 화면

sh2

  • 해당 화면 및 세부 메뉴 화면은 구성을 위한 샘플페이지가 제공되며 기능은 구현되지 않은 상태입니다.
  1. 세부메뉴 : 사이트소개, 연혁, 조직소개, 찾아오시는 길
  2. 기능설명 : 예시 메뉴에 해당하는 항목으로 샘플 페이지 형태로 링크와 JSP파일이 존재한다.
  3. 활용방법 : 각 샘플 페이지에 대한 콘텐츠를 새로 구성하여 활용할 수 있다.

정보마당 화면

sh3

  • 해당 화면 및 세부 메뉴 화면은 구성을 위한 샘플페이지가 제공되며 기능은 구현되지 않은 상태입니다.
  1. 세부메뉴 : 주요사업 소개, 대표서비스 소개
  2. 기능설명 : 예시 메뉴에 해당하는 항목으로 샘플 페이지 형태로 존재한다.
  3. 활용방법 : 각 샘플 페이지에 대한 콘텐츠를 새로 구성하여 활용할 수 있다.

고객지원 화면

sh4

  • 해당 화면 및 세부 메뉴 화면은 구성을 위한 샘플페이지가 제공되며 기능은 구현되지 않은 상태입니다.
  1. 세부메뉴 : 자료실, 묻고답하기, 서비스신청
  2. 기능설명 : 예시 메뉴에 해당하는 항목으로 샘플 페이지 형태로 존재한다.
  3. 활용방법 : 각 샘플 페이지에 기능을 추가 개발 후 구성하여 활용할 수 있다.

알림마당 화면

sh5

  1. 세부메뉴 : 오늘의행사, 금주의행사, 공지사항, 사이트갤러리
  2. 기능설명 : 공통컴포넌트 일정관리(부서일정)와 게시판 기능을 커스터마이징하여 사용한다.
  3. 활용방법 : 관리자가 등록한 일정정보를 조회하거나 게시물을 조회할 수 있다.

사이트관리 화면

sh6_4_2

  1. 세부메뉴 : 일정관리, 게시판생성관리, 게시판사용관리, 공지사항관리, 사이트갤러리관리, 사이트관리자 암호변경
  2. 기능설명 : 공통컴포넌트 일정관리(부서일정)과 게시판 기능을 커스터마이징하여 사용한다.
  3. 활용방법 : 관리자로 로그인 한 후 일정정보를 등록하거나 게시물을 등록할 수 있다. (게시판 설정 가능)

환경 설정

프로젝트에서 사용된 환경 프로그램 정보는 다음과 같다.

프로그램 명 버전 명
Node.js v18.12.0
NPM v8.19.2

BackEnd 구동

심플 홈페이지 Backend 소스를 받아 구동한다.

FrontEnd 구동

아래 1 ~ 3의 과정을 따라서 진행한다.

1. 프로젝트의 생성

Git에서 복제하여 설치 시 1-1. 을 참고한다.

1-1. Git에서 프로젝트 복제 및 모듈 설치

Git에서 clone 한다.

# 프로젝트 저장소를 로컬로 복제
git clone https://github.com/[계정명]/egovframe-template-simple-react.git

# 복제된 프로젝트 디렉토리로 이동
cd egovframe-template-simple-react

# node modules를 설치해 준다.
npm install

2. 백엔드 프로젝트 설정

구동된 BackEnd 서버의 URL을 본 어플리케이션의 .env.development 파일의 REACT_APP_EGOV_CONTEXT_URL에 설정해 준다. (단, 개발환경에서는 사용하는 환경변수 정보는 .env.development, build 시 사용하는 환경변수는 .env.production 에 기입해 준다.)

# .env.development 예시
REACT_APP_EGOV_CONTEXT_URL=localhost:8080

3. 프로젝트 실행 및 기타 명령어

# 테스트용 리액트 서버를 실행할 때 아래 명령어를 사용한다.
npm start

참조

보다 상세한 설명은 아래의 문서를 확인한다.

  1. Available scripts in CRA
  2. 개발환경 초기 설정

egovframe-template-simple-react's People

Contributors

15615o avatar chung10kr avatar davideugen avatar egovframesupport avatar jiyajiya avatar kenu avatar limlimjo avatar miniplugin avatar movingmt avatar rukegithub avatar yongfire38 avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

egovframe-template-simple-react's Issues

Next.js (SSR), Typescript 지원 부탁드립니다.

요새 개발로 핫한 회사들은 모두 리액트 기반 프레임워크들을 사용합니다.

그 중에서는 여러 이유로 서버 사이드 렌더링을 하고자 Next.js를 사용하곤 하는데요.

전자정부프레임워크에서도 서버 사이드 렌더링과 타입스크립트를 지원하는 예제가 많이 있었으면 합니다.

앞으로 수 많은 프레임워크와 기술들이 도래할텐데, 그 때마다 프론트엔드단은 분리해서 여러 스택으로 붙일 수 있는 예제가 있다면

미래 많은 개발자분들이 여러 방향으로 커밋해주지 않을까요?

향후 전자정부프레임워크의 발전을 위해서 작은 의견 내봅니다.. :)

SASS, SCSS 등 CSS 전처리기 적용

CSS는 중복하여 작성하는 부분이 너무 많아 주로 SASS 등의 전처리기 등을 대신 이용합니다
예를 들어 src/css/page.css에 작성된 내용입니다

.Plogin {padding-bottom: 100px;}
.Plogin h1 {color: #222; font-size: 48px; font-weight: 500; letter-spacing: -2px; line-height: 48px; text-align: center;}
.Plogin .txt {margin-top: 43px; color: #666; font-size: 20px; line-height: 30px; text-align: center;}
.Plogin .login_box {position: relative; width: 690px; margin: 54px auto 0; padding: 70px 95px ; border: 1px solid #dde2e5; border-radius: 25px; box-shadow: 3px 4px 5px #ccc;}
.Plogin .login_box .group {display: block; width: 320px;}

해당 내용을 SCSS의 대표적인 기능인 Nesting을 활용하여 작성하면 다음과 같습니다

.Plogin {
  padding-bottom: 100px;
  h1 {
    color: #222; font-size: 48px; font-weight: 500; letter-spacing: -2px; line-height: 48px; text-align: center;
  }

  .txt {
    margin-top: 43px; color: #666; font-size: 20px; line-height: 30px; text-align: center;
  }

  .login_box {
    position: relative; width: 690px; margin: 54px auto 0; padding: 70px 95px ; border: 1px solid #dde2e5; border-radius: 25px; box-shadow: 3px 4px 5px #ccc;

    .group {
      display: block; width: 320px;
    }
  }
}

CSS를 사용했을 때보다 선택자를 덜 적을 수 있고 구조가 잘 드러나게 됩니다.
적용하기 어렵지 않고 기존 CSS를 SASS, SCSS 등으로 변환하는 도구도 많이 나와있으니 활용하면 좋을 것 같습니다.

VUE 템플릿 추가 건의

연락처 Contact

[email protected]

추가 요청 기능명 Feature Name

vue 템플릿 추가 건의

기능 상세 설명 Feature Description

상당히 좋고 우수한 표준프레임워크에서도 드디어 리액트 템플릿을 만들어주셔서 건의드려봅니다.
유지보수를 하기에 공공기관에서는 JSP와 더불어 종종 vue도 채택되곤 하는 것 같습니다.

뷰는 간단하고 직관적인 문법과 구조를 가지고 있어
이로 인해 개발 생산성이 향상되고, 필요한 기능들을 빠르게 구현할 수 있습니다.

단가를 맞추기에는 퍼블리셔 분들이 vue나 react 소스를 읽어야할 때가 있는데,
react보다 vue를 선호하는 경향이 있기도 합니다.

또 뷰는 가볍고 빠른 성능을 자랑합니다.
가상 DOM (Virtual DOM)을 사용하여 효율적인 렌더링을 구현하므로 큰 규모의 프로젝트에서도 높은 성능을 유지할 수 있습니다.

따라서 위와 같은 이유로 vue 템플릿 추가를 하는게 어떤지 건의드려봅니다.

솔루션 상세 Solution Details

No response

솔루션 관련 URL Solution-related URLs

No response

tailwind css 등 css 프레임워크 도입 건의

연락처 Contact

[email protected]

추가 요청 기능명 Feature Name

css 프레임워크 도입 건의

기능 상세 설명 Feature Description

css 프레임워크 도입 건의합니다.

사전 정의된 유틸리티 클래스 세트를 따르면
코드베이스가 일관성을 유지하는 경향이 있으므로 대규모 프로젝트를 진행하는 팀에 특히 유용한 것으로 사료됩니다.
또 다양한 화면 크기에서 잘 작동하는 인터페이스를 쉽게 만들 수 있는 반응형 디자인 유틸리티가 포함되어 있습니다.
그 중 Tailwind는 강력한 커뮤니티와 생태계를 보유하고 있습니다.
수많은 플러그인, 확장 기능, 리소스를 사용할 수 있어 다른 도구 및 기술과 쉽게 통합할 수 있습니다.

따라서 tailwind css 적용 검토 건의합니다.

솔루션 상세 Solution Details

No response

솔루션 관련 URL Solution-related URLs

No response

[Bug]: CI Icon 클릭 시 Github Actions로 이동되지 않고 있습니다.

연락처 Contact

[email protected]

오류 내용 Error Description

README 의 빌드 확인 CI Icon 클릭 시 Actions로 이동이 되지 않고 있습니다.
image

클릭 시 빌드 확인된 Github Actions 페이지로 이동이 되어야 할 것 같습니다.

오류 재현 방법 How to reproduce the error

  1. Node.js CI Icon 클릭
  2. 단순 icon 파일 경로로 이동 됨

환경정보 Environmental Information

  • OS정보 Operating System:
  • 표준프레임워크 버전 eGovFrame Version:
  • JDK(JRE) 정보:
  • WAS 정보:
  • DB 정보:
  • 기타 환경 정보 Other environmental information:

어느 브라우저를 사용했나요? Which browser did you use?

Chrome

에러 로그 Error Logs

No response

프로젝트의 dependencies와 devDependencies의 역할을 분리합니다

안녕하세요.
package.json에서 설정된 dependencies 중에 테스트용으로 사용되는 라이브러리들을 확인했습니다.

  • @testing-library/jest-dom
  • @testing-library/react
  • @testing-library/user-event

해당 테스트 라이브러리는 개발시에만 사용되기에 devDependencies로 이동하는 것이 권장된다고 생각합니다.

[기능요구(Feature)]: CRA > Vite build tool 변경 건의

연락처 Contact

[email protected]

추가 요청 기능명 Feature Name

빌드 툴 변경 건의

기능 상세 설명 Feature Description

현재 react-template는 CRA가 빌드환경으로 되어있습니다.
최근 Vite를 통한 빌드 환경이 화두가 되고 있으며 아래 이미지는 최근 npm trends 입니다.
image
CRA를 통해 설치되는 react-scripts보다 vite가 더 많이 사용되고 있으며,
내부 구현이 Rust로 구현되어 있어 CRA보다 Vite의 빌드 속도가 빨라 개발자가 더 편하게 개발 내용을 확인할 수 있습니다.
React template도 Vite로 빌드 될 수 있도록 건의 드립니다.

솔루션 상세 Solution Details

vite 관련 깃허브 주소는 https://github.com/vitejs/vite 이고 cookbook과 같은 다양한 예제를 https://github.com/vitejs/awesome-vite에서 찾아볼 수 있습니다.

솔루션 관련 URL Solution-related URLs

No response

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.