[개발] Linu ver 2.1 업데이트

빈앤아웃·2026년 3월 27일

업무일지

목록 보기
3/3

기존 주문 건 등록일 기준으로 주문날짜가 입력되게 해두었는데,
담당자가 다음날 등록할 경우도 있다고 하여 주문날짜 수정 기능을 추가하는 김에 최적화 등을 진행했다.

  1. 모달페이지를 열고 닫을 때 크롬 일시멈춤 증상이 발생하여 여러 조치를 했고, 결국엔 1페이지에 30개로 제한한 것이 유효했다.

  2. 그때마다 추가하고 수정해서 프랑켄슈타인과 같은 코드와 설명문을 한번 싹 정리했다. 그렇다고 내가 코드를 읽을 수 있는 것은 아니지만.. 그래도 짧고 간결해졌다.

  3. NAS에 배치파일을 넣어두고 담당자 PC가 켜질 때 자동으로 서버 실행을 해두었는데, DB가 열리지 않는 증상이 발생하여 관련해서도 수정했다.

  4. 계속 메모장을 통해서 작업했었는데 VSCODE를 사용하여 이제사 코딩답게(?) 작업을 해보았다.

IJ-Linu V2.1 업데이트

1. 인프라 환경: NAS DB 연결 오류 해결

  • 이슈: NAS 네트워크 경로(\) 실행 시 SQLite DB 인식 오류 및 신규 DB 생성 현상 발생.
  • 조치: 윈도우 배치 파일(.bat)에 pushd %~dp0 명령어를 추가하여 실행 경로를 임시 드라이브(Z:)로 매핑함.
  • 결과: 실행 환경과 무관하게 기존 피복/린넨 DB를 정상적으로 연결하도록 개선함.

2. 백엔드 로직 최적화 (app.py)

  • 연산 속도 개선: 날짜 변환 함수를 strptime에서 파이썬 내장 함수인 date.fromisoformat으로 교체하여 처리 시간을 단축함.

  • 코드 경량화: 그룹핑 로직을 dict.setdefault()로 압축하고, 불필요한 try-except 구문을 제거하여 서버 연산량을 줄임.

  • DB 쿼리 수정: 데이터 삭제 방식을 반복문을 통한 개별 삭제에서 일괄 삭제(id.in_()) 방식으로 변경하여 쿼리 실행 횟수를 줄임.

3. 프론트엔드 및 UI/UX 개선

  • 브라우저 멈춤 해결: 모달창 생성 방식을 객체 재사용(getOrCreateInstance)으로 변경하고, 창 종료 시 포커스 자동 복귀를 차단하여 크롬 프리징 현상을 해결함.

  • 데이터 캐싱 적용: 조회한 업체 및 이력 데이터를 브라우저 메모리에 임시 저장(Cache)하여, 재조회 시 서버 통신 없이 화면에 표출되도록 로딩 시간을 단축함.

  • 페이지네이션 도입: 렌더링 과부하를 방지하기 위해 전체 데이터를 한 화면에 30건씩 분할 출력하도록 피복 및 린넨 페이지에 적용함.

  • 레이아웃 고정: 화면 크기 조절 시 표의 '업데이트 날짜' 열이 잘리는 현상을 방지하기 위해 테이블 헤더 너비를 고정 픽셀(px)로 지정함.

profile
Input과 Output의 황금비율을 찾아서...

0개의 댓글