혼자서 MES의 기본 골격을 만들 수 있을까?
저는 프론트단의 간단한 웹 개발만 경험해본 초보 개발자입니다. 최근 입사한 회사에서 MES프로그램을 맡게 되면서 vue, flask, HeidlSQL등을 급하게 공부하게 됐는데요. 모든 걸 마스터하는 건 불가능이라는 결론에 다다랐습니다. 그래서 저는 ChatGPT에게 도움을 요구했습니다.
뭐 많은 대화들을 나눴지만..아래처럼 질문하곤 했습니다.

그리고 그 대답들을 간추린 결과는 이렇습니다.
[스압주의]
.
.
.
.
.
변수 선언 (x = 10, name = "John")
기본 자료형 (int, float, str, list, dict)
type() 함수 활용
🎯 과제:
정수형 변수 num을 선언하고 10을 할당한 뒤, 자료형을 출력하시오.
소수(float) 3.14를 변수 pi에 저장하고, type(pi)를 출력하시오.
리스트 fruits = ["apple", "banana", "cherry"]에서 두 번째 과일을 출력하시오.
딕셔너리 person = {"name": "Alice", "age": 25}에서 나이를 출력하시오.
사용자 입력을 받아 문자열을 저장하고, 이를 대문자로 변환하여 출력하시오.
📌 학습 내용:
if-else 문
for 반복문
while 반복문
🎯 과제:
나이를 입력받아, 18세 이상이면 "성인입니다"를 출력하고, 아니면 "미성년자입니다" 출력
1부터 10까지 숫자를 출력하는 for 루프 작성
while 문을 사용해 1부터 5까지 숫자를 출력하는 코드 작성
리스트에서 짝수만 출력하는 for 문 작성 (numbers = [1, 2, 3, 4, 5, 6])
사용자로부터 숫자를 입력받아, 0이 입력될 때까지 반복하는 while 루프 작성
📌 학습 내용:
함수 정의 (def my_function())
매개변수와 반환값 (return)
리스트, 딕셔너리 활용
🎯 과제:
두 수를 더하는 함수 add(a, b)를 작성하고 실행
리스트를 입력받아, 리스트의 평균을 반환하는 함수 작성
딕셔너리를 입력받아, "이름: 나이" 형식으로 출력하는 함수 작성
리스트에서 최대값을 찾는 함수 작성 (max(numbers) 사용 금지)
lambda를 사용하여 두 수의 곱을 계산하는 익명 함수 작성
📌 학습 내용:
파일 읽기 (open("file.txt", "r"))
파일 쓰기 (open("file.txt", "w"))
예외 처리 (try-except)
🎯 과제:
"data.txt" 파일을 생성하고, "Hello, Python!"을 저장하는 코드 작성
"data.txt" 파일을 읽고 출력하는 코드 작성
사용자 입력을 받아 파일에 저장하는 코드 작성
존재하지 않는 파일을 열 때 오류를 방지하는 예외 처리 코드 작성
숫자 입력 시 오류가 발생하지 않도록 try-except 적용하여 변환 (int(input()))
📌 학습 내용:
클래스와 객체 (class, __init__)
속성과 메서드 (self.name, def greet(self))
🎯 과제:
Person 클래스를 만들고, name과 age 속성을 추가Person 클래스에 introduce() 메서드를 추가하여 "안녕하세요, 저는 [이름]입니다." 출력Car 클래스를 만들고, brand와 speed 속성을 추가Car 클래스에 accelerate(amount) 메서드를 추가하여 속도를 증가시키는 기능 구현BankAccount 클래스를 만들어 입금/출금 기능을 추가목표: JavaScript 문법과 Vue.js의 기본 개념을 익히고 간단한 컴포넌트 제작
const, let, var 차이점
기본 연산 (+, , , /, %)
if-else 문과 비교 연산자 (===, !==, >, <)
🎯 과제:
const와 let을 사용하여 두 개의 변수를 선언하고 출력하시오.
if-else 문을 사용하여 입력받은 나이가 18세 이상이면 "성인", 아니면 "미성년자" 출력
두 숫자를 입력받아 더한 결과를 출력하는 함수 작성
나이를 입력받아 홀수인지 짝수인지 판단하는 코드 작성
switch-case 문을 사용하여 요일에 따라 다른 메시지 출력
📌 학습 내용:
함수 (function vs ()=>{})
배열 (push(), pop(), map(), filter())
객체 ({ key: value } 구조)
🎯 과제:
두 수를 받아 곱하는 화살표 함수(=>) 작성
배열 [1, 2, 3, 4, 5]를 map()을 이용해 제곱한 배열 생성
filter()를 사용하여 짝수만 남긴 배열 생성
객체 {name: "Alice", age: 25}에서 나이를 출력
forEach()를 사용해 배열 [10, 20, 30]의 모든 요소를 콘솔에 출력
📌 학습 내용:
Vue 프로젝트 생성 (npm create vue@latest)
v-bind와 v-model을 활용한 데이터 바인딩
Vue에서 버튼 클릭 이벤트 처리
🎯 과제:
v-model을 사용하여 입력창과 연결된 message 변수를 만들고 출력
버튼을 클릭하면 "안녕하세요!"를 화면에 표시하는 Vue 코드 작성
Vue에서 v-bind를 사용하여 이미지 경로를 동적으로 변경
v-if와 v-else를 사용하여 로그인 여부에 따라 다른 메시지 출력
v-for를 사용하여 리스트 [Apple, Banana, Cherry]를 화면에 표시
📌 학습 내용:
Vue 컴포넌트 개념
props와 emit을 이용한 부모-자식 통신
🎯 과제:
ChildComponent.vue를 생성하고, "안녕하세요!" 출력
props를 이용해 부모에서 name을 전달하고 출력
버튼 클릭 시 emit()을 사용하여 부모 컴포넌트에 이벤트 전달
computed 속성을 사용하여 message를 대문자로 변환하여 출력
watch를 사용하여 input 값이 변경될 때 콘솔에 출력
📌 학습 내용:
Flask 기본 구조 (app.py)
@app.route를 이용한 API 만들기
jsonify()를 사용한 JSON 응답
🎯 과제:
hello world 출력/api/hello 엔드포인트에서 {"message": "Hello, Flask!"} 응답 반환/api/sum에서 두 개의 숫자를 받아 더한 값을 JSON으로 반환/api/uppercase에서 문자열을 받아 대문자로 변환하여 반환/api/hello를 호출하여 화면에 출력목표: MySQL을 설치하고 HeidiSQL을 사용하여 DB를 연동하며 Flask API와 연결
핵심 기술: MySQL, HeidiSQL, Flask-SQLAlchemy, 데이터 모델링
MySQL 설치 및 기본 명령어 (CREATE DATABASE, SHOW DATABASES)
HeidiSQL 설치 및 MySQL 서버 연결 방법
CREATE TABLE을 사용하여 테이블 만들기
🎯 과제:
MySQL에서 mes_db 데이터베이스를 생성 (CREATE DATABASE mes_db;)
orders 테이블을 생성 (id, item_name, quantity, status)
orders 테이블에 샘플 데이터 3개 삽입 (INSERT INTO orders VALUES (...))
SELECT 문을 이용하여 전체 주문 조회 (SELECT * FROM orders;)
Flask에서 MySQL 연동을 위한 mysql-connector-python 설치 및 연결 테스트
📌 학습 내용:
Flask-SQLAlchemy를 사용하여 MySQL 연결
Flask에서 Order 모델을 정의하고 데이터 조회하기
Flask 서버에서 MySQL 데이터를 JSON으로 변환하여 반환
🎯 과제:
Flask에서 SQLAlchemy를 사용하여 MySQL 연결
Order 모델을 정의 (id, item_name, quantity, status)
/api/orders 엔드포인트를 만들어 모든 주문 데이터를 JSON으로 반환
Flask 서버 실행 후 /api/orders에서 데이터 확인
Vue에서 Axios로 /api/orders를 호출하여 데이터 콘솔에 출력
📌 학습 내용:
GET /api/orders로 주문 목록 불러오기
POST /api/orders로 주문 추가하기
request.json을 활용하여 데이터 받기
🎯 과제:
GET /api/orders API 구현GET /api/orders를 호출하여 데이터 화면에 표시POST /api/orders API를 구현하여 새 주문 추가 기능 만들기POST /api/orders 요청 테스트POST 요청을 보내는 UI 구성목표:
- Vue에서 주문 목록을 테이블 형태로 보기 좋게 구성
Vue Router를 활용하여 페이지 이동 구현- JWT 인증을 적용하여 로그인 기능 추가
- Flask에서 인증된 사용자만 주문 관리 가능하도록 설정
Vue에서 주문 목록을 테이블 형태로 표시
OrderList.vue, OrderForm.vue 등 컴포넌트 분리
Tailwind CSS 또는 Bootstrap을 활용하여 UI 개선
🎯 과제:
OrderList.vue에서 테이블을 사용해 주문 목록 표시
OrderForm.vue에서 주문 추가 입력 폼 구현
버튼을 추가하여 주문 수정/삭제 기능 추가
주문 상태를 select 태그로 변경 가능하도록 수정
App.vue에서 OrderList.vue와 OrderForm.vue를 불러와 배치
📌 학습 내용:
Vue Router를 이용하여 페이지 이동 구현
Home, Orders, Login 페이지 구성
네비게이션 바 추가
🎯 과제:
vue-router 설치 후 routes.js 설정
Home.vue, Orders.vue, Login.vue 페이지 생성
네비게이션 바(NavBar.vue)를 만들고 페이지 이동 버튼 추가
/orders 경로에서 주문 목록을 불러오도록 설정
기본 페이지를 /home으로 설정
📌 학습 내용:
Flask에서 로그인 API (POST /api/login) 구현
JWT (JSON Web Token)을 사용하여 인증 시스템 구축
로그인 성공 시 토큰을 발급하여 클라이언트에 저장
🎯 과제:
Flask에서 POST /api/login 구현 (사용자 인증 후 JWT 발급)
Flask-JWT-Extended를 사용하여 토큰 발급 코드 추가
Postman으로 /api/login 테스트하여 토큰 확인
Vue에서 로그인 폼 구현 (Login.vue)
로그인 시 Axios를 사용하여 /api/login 요청 후 토큰 저장
📌 학습 내용:
Vue에서 로그인 후 토큰을 저장하여 인증 유지
Vuex 또는 Pinia를 사용하여 로그인 상태 관리
Flask API에 JWT 인증 적용 (@jwt_required)
🎯 과제:
Vue에서 로그인 후 localStorage에 토큰 저장
Axios 요청 시 헤더에 Authorization: Bearer <token> 추가
Flask의 모든 API에 @jwt_required를 적용하여 인증 필요하게 설정
로그인하지 않으면 /orders 페이지에 접근 불가하도록 설정
로그아웃 기능 구현 (localStorage에서 토큰 삭제)
📌 학습 내용:
인증된 사용자만 주문을 추가, 수정, 삭제 가능하도록 설정
로그인한 사용자에게만 관리자 UI를 보여주도록 Vue에서 처리
🎯 과제:
Flask에서 @jwt_required를 적용하여 주문 관리 API 보호
Vue에서 로그인 여부에 따라 관리자 UI (버튼 표시/숨김) 적용
Vue에서 로그인하지 않으면 /orders 페이지로 이동 불가
관리자 계정으로 로그인하여 CRUD 기능이 정상 동작하는지 테스트
전체 프로젝트 코드 정리 및 리팩토링
✅ 완전한 로그인 & 주문 관리 시스템이 동작하는 MES 프로토타입이 완성!
✅ Vue에서 UI까지 완벽하게 구성되었고, Flask API도 인증 적용!
✅ 이제 5주 차에는 MES 기능을 최적화하고 추가적인 상세 기능을 다듬는 단계로 넘어가면 돼! 🚀
좋아! 4주 차도 하루하루 할 내용을 상세하게 정리해볼게.
이번 주는 Vue에서 UI 개선 + API 최적화 + 인증 기능 추가가 핵심이야!
이제 진짜 MES 시스템처럼 보이도록 프론트엔드를 완성하는 단계야. 🚀
목표:
- Vue에서 주문 목록을 테이블 형태로 보기 좋게 구성
Vue Router를 활용하여 페이지 이동 구현- JWT 인증을 적용하여 로그인 기능 추가
- Flask에서 인증된 사용자만 주문 관리 가능하도록 설정
📌 학습 내용:
Vue에서 주문 목록을 테이블 형태로 표시
OrderList.vue, OrderForm.vue 등 컴포넌트 분리
Tailwind CSS 또는 Bootstrap을 활용하여 UI 개선
🎯 과제:
OrderList.vue에서 테이블을 사용해 주문 목록 표시
OrderForm.vue에서 주문 추가 입력 폼 구현
버튼을 추가하여 주문 수정/삭제 기능 추가
주문 상태를 select 태그로 변경 가능하도록 수정
App.vue에서 OrderList.vue와 OrderForm.vue를 불러와 배치
📌 학습 내용:
Vue Router를 이용하여 페이지 이동 구현
Home, Orders, Login 페이지 구성
네비게이션 바 추가
🎯 과제:
vue-router 설치 후 routes.js 설정
Home.vue, Orders.vue, Login.vue 페이지 생성
네비게이션 바(NavBar.vue)를 만들고 페이지 이동 버튼 추가
/orders 경로에서 주문 목록을 불러오도록 설정
기본 페이지를 /home으로 설정
📌 학습 내용:
Flask에서 로그인 API (POST /api/login) 구현
JWT (JSON Web Token)을 사용하여 인증 시스템 구축
로그인 성공 시 토큰을 발급하여 클라이언트에 저장
🎯 과제:
Flask에서 POST /api/login 구현 (사용자 인증 후 JWT 발급)
Flask-JWT-Extended를 사용하여 토큰 발급 코드 추가
Postman으로 /api/login 테스트하여 토큰 확인
Vue에서 로그인 폼 구현 (Login.vue)
로그인 시 Axios를 사용하여 /api/login 요청 후 토큰 저장
📌 학습 내용:
Vue에서 로그인 후 토큰을 저장하여 인증 유지
Vuex 또는 Pinia를 사용하여 로그인 상태 관리
Flask API에 JWT 인증 적용 (@jwt_required)
🎯 과제:
Vue에서 로그인 후 localStorage에 토큰 저장
Axios 요청 시 헤더에 Authorization: Bearer <token> 추가
Flask의 모든 API에 @jwt_required를 적용하여 인증 필요하게 설정
로그인하지 않으면 /orders 페이지에 접근 불가하도록 설정
로그아웃 기능 구현 (localStorage에서 토큰 삭제)
📌 학습 내용:
인증된 사용자만 주문을 추가, 수정, 삭제 가능하도록 설정
로그인한 사용자에게만 관리자 UI를 보여주도록 Vue에서 처리
🎯 과제:
Flask에서 @jwt_required를 적용하여 주문 관리 API 보호
Vue에서 로그인 여부에 따라 관리자 UI (버튼 표시/숨김) 적용
Vue에서 로그인하지 않으면 /orders 페이지로 이동 불가
관리자 계정으로 로그인하여 CRUD 기능이 정상 동작하는지 테스트
전체 프로젝트 코드 정리 및 리팩토링
✅ 완전한 로그인 & 주문 관리 시스템이 동작하는 MES 프로토타입이 완성!
✅ Vue에서 UI까지 완벽하게 구성되었고, Flask API도 인증 적용!
✅ 이제 5주 차에는 MES 기능을 최적화하고 추가적인 상세 기능을 다듬는 단계로 넘어가면 돼! 🚀
목표:
- 사용자 경험(UX) 개선
- 추가적인 기능 구현 (예: 주문 필터링, 검색, 정렬)
- 에러 핸들링, 로딩 상태 처리 등 안정성 확보
- 전체 프로젝트 리팩토링 및 최적화
주문 목록에서 검색과 필터링 기능을 추가
Vue에서 동적 필터링을 위한 v-for 및 computed 사용
주문의 상태, 이름, 수량 등으로 필터링
🎯 과제:
OrderList.vue에서 검색 입력 필드 추가 (주문 이름으로 검색)
Vue에서 computed를 사용하여 실시간 필터링 구현
OrderList.vue에 상태 필터링 추가 (주문 상태별로 필터링)
OrderForm.vue에서 주문 상태를 변경하면 자동으로 목록이 필터링되도록 구현
검색/필터링 후, 결과를 화면에 잘 표시되는지 확인
📌 학습 내용:
주문 목록을 정렬할 수 있도록 구현 (예: 날짜, 수량, 이름 순으로 정렬)
v-for와 sort 메서드를 활용한 정렬 기능 추가
🎯 과제:
OrderList.vue에 정렬 버튼을 추가 (예: "날짜순", "수량순", "이름순")
정렬 함수를 구현하여 버튼 클릭 시 주문 목록이 정렬되도록 처리
OrderList.vue에 정렬 옵션을 저장하여 사용자가 설정한 정렬 상태를 유지하도록 구현
검색, 필터링, 정렬이 함께 잘 작동하도록 전체 로직 연결
UI를 개선하여 정렬 버튼의 상태(활성화/비활성화)를 시각적으로 표시
📌 학습 내용:
로딩 상태 처리 (axios 요청 시 로딩 중 표시)
에러 핸들링 추가 (서버 에러, 네트워크 에러 등 처리)
Vue에서 스피너 또는 로딩 메시지 표시
🎯 과제:
주문 목록을 불러올 때 로딩 중임을 사용자에게 알리기 위해 로딩 스피너 추가
axios 요청에서 try-catch로 에러를 처리하고, 에러 메시지를 화면에 표시
OrderList.vue에서 로딩 상태와 에러 메시지를 처리하는 변수 추가
서버 에러 발생 시 사용자가 이해할 수 있는 에러 메시지 표시
로딩 상태와 에러 상태가 잘 작동하는지 실제로 테스트
📌 학습 내용:
UI/UX 최적화 (사용자 경험 개선)
Tailwind CSS 또는 Bootstrap을 활용한 디자인 개선
각 컴포넌트의 레이아웃과 스타일을 조정
🎯 과제:
주문 목록 테이블의 디자인을 반응형으로 만들기 (모바일/PC 호환)
OrderForm.vue에서 폼 요소들(입력 필드, 버튼 등)을 깔끔하게 정리
주문 상태에 따른 색상 변경 (예: 완료된 주문은 초록색, 대기 중은 파란색)
메시지 팝업 (성공/실패 메시지)을 추가하여 사용자에게 피드백을 제공
전체 UI가 더 직관적이고 사용하기 편리하도록 개선 (예: 주문 목록의 페이지네이션, 버튼 스타일 등)
📌 학습 내용:
코드 리팩토링 (불필요한 코드 제거 및 최적화)
성능 최적화 (Vue 컴포넌트 최적화, 서버 성능 개선)
배포 준비 (프로젝트 구조 정리, 코드 정리)
🎯 과제:
컴포넌트 리팩토링 (중복 코드 제거 및 효율적인 컴포넌트 설계)
Vue 상태 관리 최적화 (상태가 불필요하게 반복되거나 비효율적인 부분을 수정)
API 최적화 (불필요한 요청 최소화, 빠른 응답을 위한 서버 최적화)
프로젝트 구조 정리 (파일 및 폴더 구조를 정리하고 불필요한 파일 삭제)
배포 준비 (프로덕션 빌드, 배포 준비 작업)
✅ MES 시스템의 안정성 및 기능성 확보!
✅ 검색, 필터링, 정렬, 로딩 상태 처리, 에러 핸들링, UI 최적화까지 완료!
✅ 이제 최적화된 시스템을 배포할 준비가 다 되어가고, 전체 프로젝트를 리팩토링하여 완성도를 높이게 되는 단계! 🚀🎉
5주 차까지 완료하면, 기능적인 완성도와 UI/UX가 개선된 MES 시스템을 갖추게 돼! 이제 6주 차에서는 배포와 테스트를 준비하면서 최종 마무리할 거야!
좋아! 5주 차는 MES 시스템 최적화 및 추가 기능 구현이 핵심이야.
이 주에는 기능적인 부분을 다듬고, UX/UI 개선과 상세 기능 추가를 해볼 거야.
이제 프로젝트의 완성도를 높이는 단계라고 볼 수 있어. 😎
목표:
- 사용자 경험(UX) 개선
- 추가적인 기능 구현 (예: 주문 필터링, 검색, 정렬)
- 에러 핸들링, 로딩 상태 처리 등 안정성 확보
- 전체 프로젝트 리팩토링 및 최적화
📌 학습 내용:
주문 목록에서 검색과 필터링 기능을 추가
Vue에서 동적 필터링을 위한 v-for 및 computed 사용
주문의 상태, 이름, 수량 등으로 필터링
🎯 과제:
OrderList.vue에서 검색 입력 필드 추가 (주문 이름으로 검색)
Vue에서 computed를 사용하여 실시간 필터링 구현
OrderList.vue에 상태 필터링 추가 (주문 상태별로 필터링)
OrderForm.vue에서 주문 상태를 변경하면 자동으로 목록이 필터링되도록 구현
검색/필터링 후, 결과를 화면에 잘 표시되는지 확인
📌 학습 내용:
주문 목록을 정렬할 수 있도록 구현 (예: 날짜, 수량, 이름 순으로 정렬)
v-for와 sort 메서드를 활용한 정렬 기능 추가
🎯 과제:
OrderList.vue에 정렬 버튼을 추가 (예: "날짜순", "수량순", "이름순")
정렬 함수를 구현하여 버튼 클릭 시 주문 목록이 정렬되도록 처리
OrderList.vue에 정렬 옵션을 저장하여 사용자가 설정한 정렬 상태를 유지하도록 구현
검색, 필터링, 정렬이 함께 잘 작동하도록 전체 로직 연결
UI를 개선하여 정렬 버튼의 상태(활성화/비활성화)를 시각적으로 표시
📌 학습 내용:
로딩 상태 처리 (axios 요청 시 로딩 중 표시)
에러 핸들링 추가 (서버 에러, 네트워크 에러 등 처리)
Vue에서 스피너 또는 로딩 메시지 표시
🎯 과제:
주문 목록을 불러올 때 로딩 중임을 사용자에게 알리기 위해 로딩 스피너 추가
axios 요청에서 try-catch로 에러를 처리하고, 에러 메시지를 화면에 표시
OrderList.vue에서 로딩 상태와 에러 메시지를 처리하는 변수 추가
서버 에러 발생 시 사용자가 이해할 수 있는 에러 메시지 표시
로딩 상태와 에러 상태가 잘 작동하는지 실제로 테스트
📌 학습 내용:
UI/UX 최적화 (사용자 경험 개선)
Tailwind CSS 또는 Bootstrap을 활용한 디자인 개선
각 컴포넌트의 레이아웃과 스타일을 조정
🎯 과제:
주문 목록 테이블의 디자인을 반응형으로 만들기 (모바일/PC 호환)
OrderForm.vue에서 폼 요소들(입력 필드, 버튼 등)을 깔끔하게 정리
주문 상태에 따른 색상 변경 (예: 완료된 주문은 초록색, 대기 중은 파란색)
메시지 팝업 (성공/실패 메시지)을 추가하여 사용자에게 피드백을 제공
전체 UI가 더 직관적이고 사용하기 편리하도록 개선 (예: 주문 목록의 페이지네이션, 버튼 스타일 등)
📌 학습 내용:
코드 리팩토링 (불필요한 코드 제거 및 최적화)
성능 최적화 (Vue 컴포넌트 최적화, 서버 성능 개선)
배포 준비 (프로젝트 구조 정리, 코드 정리)
🎯 과제:
컴포넌트 리팩토링 (중복 코드 제거 및 효율적인 컴포넌트 설계)
Vue 상태 관리 최적화 (상태가 불필요하게 반복되거나 비효율적인 부분을 수정)
API 최적화 (불필요한 요청 최소화, 빠른 응답을 위한 서버 최적화)
프로젝트 구조 정리 (파일 및 폴더 구조를 정리하고 불필요한 파일 삭제)
배포 준비 (프로덕션 빌드, 배포 준비 작업)
✅ MES 시스템의 안정성 및 기능성 확보!
✅ 검색, 필터링, 정렬, 로딩 상태 처리, 에러 핸들링, UI 최적화까지 완료!
✅ 이제 최적화된 시스템을 배포할 준비가 다 되어가고, 전체 프로젝트를 리팩토링하여 완성도를 높이게 되는 단계! 🚀🎉
5주 차까지 완료하면, 기능적인 완성도와 UI/UX가 개선된 MES 시스템을 갖추게 돼! 이제 6주 차에서는 배포와 테스트를 준비하면서 최종 마무리할 거야!
목표:
- MES 시스템을 배포 준비가 완료된 상태로 만들기
- 기능 테스트 및 디버깅 진행
- 최종 리팩토링 및 프로젝트 문서화
- 프로젝트를 실제 서버에 배포
프로덕션 빌드를 위해 Vue 프로젝트 최적화
Flask 백엔드를 배포용 환경으로 설정 (예: gunicorn, nginx 사용)
환경 변수를 설정하여 보안을 강화하고 최적화
🎯 과제:
Vue 프로젝트에서 프로덕션 빌드 (npm run build) 실행 후, 최적화된 빌드를 생성
Flask 서버에 gunicorn*과 nginx** 설정하여 배포 환경 준비
Flask 애플리케이션의 config.py 파일을 사용하여 환경 변수 설정 (예: 데이터베이스 연결 정보)
Vue와 Flask를 연동하여, 배포된 프론트엔드와 백엔드가 잘 통합되도록 설정
빌드된 결과물이 배포 서버에서 잘 동작하는지 확인
📌 학습 내용:
기능 테스트 및 버그 수정
E2E (End-to-End) 테스트를 작성하여 시스템이 정상적으로 동작하는지 확인
디버깅을 통해 남아있는 오류 해결
🎯 과제:
Postman을 사용하여 Flask API의 각 엔드포인트가 예상대로 동작하는지 테스트
Vue에서 E2E 테스트 작성 (예: 주문 추가, 수정, 삭제가 정상적으로 이루어지는지)
디버깅을 통해 발생하는 오류를 확인하고 수정
로컬 테스트 환경에서 API와 UI 기능들이 정상적으로 동작하는지 다시 점검
단위 테스트 및 통합 테스트 진행하여 모든 기능이 정상적으로 작동하는지 최종 확인
📌 학습 내용:
코드 리팩토링 및 불필요한 코드 제거
프로젝트 구조 최적화
주석 및 문서화 추가
🎯 과제:
코드에서 불필요한 부분(중복 코드 등)을 제거하고 가독성을 높이기 위한 리팩토링 진행
Vue 컴포넌트와 Flask API 코드에 주석을 추가하여 유지보수 용이하게 만들기
프로젝트 폴더 구조를 최적화 (예: components, services, assets 등)
코드에서 반복되는 로직을 함수나 메서드로 묶어 관리
최종 코드가 간결하고, 효율적이며, 확장 가능한지 점검
📌 학습 내용:
프로젝트의 사용법과 설치 방법 문서화
API 문서화 (Swagger 또는 Postman을 사용하여 API 문서 작성)
🎯 과제:
README.md 파일에 프로젝트 소개, 기능 설명, 설치 방법 등 기초적인 정보를 추가
API 문서화: Swagger나 Postman을 사용하여 API 사용법 문서 작성
UI 사용법 문서화: 각 화면의 기능과 흐름을 설명하는 문서 작성
배포 과정과 관련된 사항도 문서화 (예: 서버 설정, 배포 방법)
프로젝트의 최종 문서화가 잘 되어 있는지 점검
📌 학습 내용:
프로덕션 환경 배포
배포 후 최종 점검 (서버 상태, 데이터베이스 연결 등)
사용자 피드백을 받을 준비
🎯 과제:
AWS, Heroku, DigitalOcean 또는 GCP와 같은 클라우드 서비스에 프로젝트 배포
배포된 시스템의 서버 상태와 에러 로그 확인
배포 후 점검: API가 잘 동작하는지, UI에서 데이터가 정상적으로 표시되는지 최종 확인
배포 후 사용자 피드백 받기: 실제 사용자에게 프로젝트를 사용해보게 하고 피드백 받기
최종 점검을 통해 시스템이 실시간 환경에서 안정적으로 운영될 수 있도록 점검
✅ 프로젝트 배포 준비 완료!
✅ 배포 환경에서의 정상 동작 확인 및 사용자 피드백 준비 완료!
✅ MES 시스템의 최종 리팩토링과 문서화가 완료되어, 배포 후 유지보수를 쉽게 할 수 있는 구조가 마련됨! 🚀🎉
6주 차까지 완료하면, 실제 서버에 배포된 MES 시스템을 갖추게 돼! 이제 시스템이 실제 사용자를 위한 서비스로 변환되는 단계! 🖥️🎯
좋아! 6주 차는 최종 마무리와 배포가 핵심이야. 이제까지 만든 시스템을 실제 환경에서 동작하게 만들기 위한 작업을 할 거야. 이 주에는 배포 준비, 테스트, 문서화 등 최종적으로 시스템을 안정화하고 배포하는 과정에 집중할 거야. 🚀
목표:
- MES 시스템을 배포 준비가 완료된 상태로 만들기
- 기능 테스트 및 디버깅 진행
- 최종 리팩토링 및 프로젝트 문서화
- 프로젝트를 실제 서버에 배포
📌 학습 내용:
프로덕션 빌드를 위해 Vue 프로젝트 최적화
Flask 백엔드를 배포용 환경으로 설정 (예: gunicorn, nginx 사용)
환경 변수를 설정하여 보안을 강화하고 최적화
🎯 과제:
Vue 프로젝트에서 프로덕션 빌드 (npm run build) 실행 후, 최적화된 빌드를 생성
Flask 서버에 gunicorn*과 nginx** 설정하여 배포 환경 준비
Flask 애플리케이션의 config.py 파일을 사용하여 환경 변수 설정 (예: 데이터베이스 연결 정보)
Vue와 Flask를 연동하여, 배포된 프론트엔드와 백엔드가 잘 통합되도록 설정
빌드된 결과물이 배포 서버에서 잘 동작하는지 확인
📌 학습 내용:
기능 테스트 및 버그 수정
E2E (End-to-End) 테스트를 작성하여 시스템이 정상적으로 동작하는지 확인
디버깅을 통해 남아있는 오류 해결
🎯 과제:
Postman을 사용하여 Flask API의 각 엔드포인트가 예상대로 동작하는지 테스트
Vue에서 E2E 테스트 작성 (예: 주문 추가, 수정, 삭제가 정상적으로 이루어지는지)
디버깅을 통해 발생하는 오류를 확인하고 수정
로컬 테스트 환경에서 API와 UI 기능들이 정상적으로 동작하는지 다시 점검
단위 테스트 및 통합 테스트 진행하여 모든 기능이 정상적으로 작동하는지 최종 확인
📌 학습 내용:
코드 리팩토링 및 불필요한 코드 제거
프로젝트 구조 최적화
주석 및 문서화 추가
🎯 과제:
코드에서 불필요한 부분(중복 코드 등)을 제거하고 가독성을 높이기 위한 리팩토링 진행
Vue 컴포넌트와 Flask API 코드에 주석을 추가하여 유지보수 용이하게 만들기
프로젝트 폴더 구조를 최적화 (예: components, services, assets 등)
코드에서 반복되는 로직을 함수나 메서드로 묶어 관리
최종 코드가 간결하고, 효율적이며, 확장 가능한지 점검
📌 학습 내용:
프로젝트의 사용법과 설치 방법 문서화
API 문서화 (Swagger 또는 Postman을 사용하여 API 문서 작성)
🎯 과제:
README.md 파일에 프로젝트 소개, 기능 설명, 설치 방법 등 기초적인 정보를 추가
API 문서화: Swagger나 Postman을 사용하여 API 사용법 문서 작성
UI 사용법 문서화: 각 화면의 기능과 흐름을 설명하는 문서 작성
배포 과정과 관련된 사항도 문서화 (예: 서버 설정, 배포 방법)
프로젝트의 최종 문서화가 잘 되어 있는지 점검
📌 학습 내용:
프로덕션 환경 배포
배포 후 최종 점검 (서버 상태, 데이터베이스 연결 등)
사용자 피드백을 받을 준비
🎯 과제:
AWS, Heroku, DigitalOcean 또는 GCP와 같은 클라우드 서비스에 프로젝트 배포
배포된 시스템의 서버 상태와 에러 로그 확인
배포 후 점검: API가 잘 동작하는지, UI에서 데이터가 정상적으로 표시되는지 최종 확인
배포 후 사용자 피드백 받기: 실제 사용자에게 프로젝트를 사용해보게 하고 피드백 받기
최종 점검을 통해 시스템이 실시간 환경에서 안정적으로 운영될 수 있도록 점검
✅ 프로젝트 배포 준비 완료!
✅ 배포 환경에서의 정상 동작 확인 및 사용자 피드백 준비 완료!
✅ MES 시스템의 최종 리팩토링과 문서화가 완료되어, 배포 후 유지보수를 쉽게 할 수 있는 구조가 마련됨! 🚀🎉
6주 차까지 완료하면, 실제 서버에 배포된 MES 시스템을 갖추게 돼! 이제 시스템이 실제 사용자를 위한 서비스로 변환되는 단계! 🖥️🎯
뭐...해봐야 더 알게 되겠지만..일단 해보겠습니다. 네..하러갑니다. 과연 효과가 있을까요?