GithubHelp home page GithubHelp logo

skkuse / 2023fall_41class_team2 Goto Github PK

View Code? Open in Web Editor NEW
4.0 4.0 3.0 12.38 MB

JAVA 코드 탄소 배출량 측정 & 그린화 패턴 제시 플랫폼

Python 26.82% JavaScript 0.70% HTML 1.28% SCSS 17.31% TypeScript 53.89%

2023fall_41class_team2's Introduction

ecode_최종발표_team2_1 ecode_최종발표_team2_2 ecode_최종발표_team2_3 ecode_최종발표_team2_4 ecode_최종발표_team2_5 ecode_최종발표_team2_6 ecode_최종발표_team2_7 ecode_최종발표_team2_8 ecode_최종발표_team2_9 ecode_최종발표_team2_10 ecode_최종발표_team2_11 ecode_최종발표_team2_12 ecode_최종발표_team2_13 ecode_최종발표_team2_14 ecode_최종발표_team2_15 ecode_최종발표_team2_16 ecode_최종발표_team2_17 ecode_최종발표_team2_18 ecode_최종발표_team2_19 ecode_최종발표_team2_20

2023fall_41class_team2's People

Contributors

clapsh avatar fvesta avatar gyunseo avatar joonyeolchoiskku avatar leesangsoos avatar yanghyeondong avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

2023fall_41class_team2's Issues

Git init settings

협업을 위한 git setting을 추가합니다.

  • pr 템플릿 설정
  • #2
  • Reviewer 자동추가
  • slack 알림 연동
  • main, dev review 강제
  • main, dev 직접 push 방지

Frontend boilerplate

  • vite create
  • prettier, linter 설정
  • 네이밍 컨벤션 설정
  • 빌드세팅
    • prod console 제거
    • 난독화, 암호화 => vite default setting
    • 압축 (option)
  • 프록시 설정
  • 경로 alias 설정
  • 디자인 패턴 + folder structure
  • state 관리 툴 설정
  • route 설정
  • dev, prod, local 환경분리
  • css 전처리

pr : #9

Git wiki, readme 작성

project에 대해 설명하는 readme파일 및 wiki를 작성해야합니다.

readme에는 보통

  • 팀원
  • project 간단설명
  • 기술스택
  • testing 방법 (컴파일 등)
  • project 결과물 (나중에 추가)
  • 라이센스

wiki는 좀 더 기술적인 내용 및 사용설명

위와 같은 내용을 추가하면 됩니다. readme 항목 찾아보면 많이 있으니 template 참고해서 작성하면 될 것 같습니다

참고 : readme와 wiki 차이

Docker 컨테이너 user별 볼륨 path 격리 문제

현재 user 마다 임의로 uid를 주고 해당 uid를 바탕으로 개별 도커 컨테이너를 구성하는 작업을 하고있습니다.
하지만 여기에서 한 가지 문제가 발생하는데, 바로 사용자 별 컨테이너 볼륨 격리가 어렵다는 점입니다.
현재 저희 프로젝트의 상황과 해당 문제가 발생하는 원인을 나열하면 다음과 같습니다.

1. 저희 프로젝트는 docker out of docker 구조를 사용합니다.
로컬 머신 Host(이하 H)에서 벡엔드를 돌리고 있는 컨테이너 backend-api_server-1(이하 C1) 이 있는 상황에서,
C1 이 다시 H 속에 자바 실행용 유저 컨테이너 user-{uid}-container(이하 C2) 를 실행합니다. C1 속에 C2를 실행 시키는 것은 보안상 도커에서 권장하지 않습니다. 따라서 docker out of docker 구조가 됩니다.

2. docker out of docker 에서는 마운트 할 당시 H의 프로젝트 경로를 잊어버리게 됩니다.
저희가 처음에 C1을 구동할 때는 H속 저희 프로젝트 폴더에 가서 docker-compose를 시키기 때문에 docker 에서 상대경로인 ./app을 처리할 수 있습니다. 하지만 C2를 구동할 당시에는 H의 경로를 잊어버린 채로 진행되기 때문에, 정상적인 마운트가 어렵습니다.

3. 잊어버린 H의 경로를 환경변수로 등록하려 했으나, 호환성 등의 문제가 있습니다
실행 당시의 H의 절대 경로를 docker-compose의 환경 변수에 pwd 등으로 등록해서 사용하려 했으나, 윈도우인지 맥인지 리눅스인지에 따라 작동이 조금씩 다르고 특히 윈도우의 경우 현재 잘 작동하지 않는 것으로 확인됩니다.

4. 따라서, H의 폴더를 마운트하지 말고 named volume 을 사용하려 했으나, 이럴 경우 subpath를 설정할 수 없습니다.
https://stackoverflow.com/questions/38164939/can-we-mount-sub-directories-of-a-named-volume-in-docker
이 기능을 적용시키고 싶으면 쿠버네티스가 필요합니다. 😓

5. subpath를 사용할 수 없기에, user별 볼륨 path 격리 문제가 생깁니다.

6. user 별 named 볼륨을 만들경우, 격리는 되지만 C1이 구동 중인 상황에서 가변적인 user 추가 볼륨을 다루지 못합니다

추후 변동사항이 생기면 추가 코멘트를 올리겠습니다.

backend boilerplate

요구 개발 환경

상세 내용은 backend readme 확인

개인 환경 (권장)

  • Ubuntu 20.04 & 22.04
  • java jdk 17
  • python 3.10 +

공용 관리 환경 (툴을 통해 자동 관리)

  • Pipenv (Fast API 및 Uvicorn)

Azure 가상 머신 서버

  • Fast API 지원 가능 순간부터 포트 개방 및 상시 구동 예정

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.