skkuse / 2023fall_41class_team2 Goto Github PK
View Code? Open in Web Editor NEWJAVA 코드 탄소 배출량 측정 & 그린화 패턴 제시 플랫폼
JAVA 코드 탄소 배출량 측정 & 그린화 패턴 제시 플랫폼
backend/app/__pycache__
가 그대로 local에 남아 있어서, root directory에 .gitignore를 추가해서 resolve해야 할 거 같습니다.
npm에 prettier plugin java가 있더라고요. 이걸로 code를 formatting해서 backend로 넘겨줘도 괜찮을 것 같습니다.
제 local WSL2 기준 400~600s 소요.
apt-get source server에서 package를 갖고 올 때 심한 병목 현상을 보이는 듯합니다.
project에 대해 설명하는 readme파일 및 wiki를 작성해야합니다.
readme에는 보통
wiki는 좀 더 기술적인 내용 및 사용설명
위와 같은 내용을 추가하면 됩니다. readme 항목 찾아보면 많이 있으니 template 참고해서 작성하면 될 것 같습니다
참고 : readme와 wiki 차이
pr : #9
협업을 위한 git setting을 추가합니다.
상세 내용은 backend readme 확인
개인 환경 (권장)
공용 관리 환경 (툴을 통해 자동 관리)
Azure 가상 머신 서버
현재 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 추가 볼륨을 다루지 못합니다
추후 변동사항이 생기면 추가 코멘트를 올리겠습니다.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.