You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
4.6 KiB
4.6 KiB
TERACLONE 진행 현황
- 작성일: 2026-06-29
- 기준 프로젝트:
C:\Users\COMPUTER1\Desktop\projects\테라클론\code
개요
최근 작업은 크게 4개 축으로 진행됐다.
- 사용자 관리 목업을 실제 API + SQLite 기반으로 전환
- 로그인 페이지와 세션 기반 접근 제어 추가
- 포트 설정 UI 구조 조정
- 개발/QA 과정에서 드러난 UI 동작 이슈 수정
현재 구조 요약
- 서버 진입점:
cmd/server/main.go - 라우팅:
internal/routes/routes.go - 새 UI 핸들러:
internal/handlers/device_handler.go - 서비스 계층:
internal/service/app_service.go - SQLite 저장소:
internal/store/sqlite_store.go - 목업 페이지 데이터:
internal/mock/mock_data.go - 템플릿:
web/templates/* - 프런트 스크립트:
web/static/js/app.js - 스타일:
web/static/css/style.css
구현된 내용
1. 사용자 관리 실기능화
기존 /admin/users는 목업 데이터만 보여주던 화면이었는데, 현재는 SQLite를 사용하는 실제 CRUD 흐름으로 변경됐다.
- 사용자 테이블 추가
- 기본 사용자 시드 추가
- 사용자 목록 조회
- 사용자 생성
- 사용자 수정
- 사용자 삭제
관련 API:
GET /api/usersPOST /api/usersGET /api/users/{id}PUT /api/users/{id}DELETE /api/users/{id}
관련 파일:
internal/store/sqlite_store.gointernal/service/app_service.gointernal/handlers/device_handler.goweb/templates/partials/block_table.htmlweb/templates/partials/block_modal.htmlweb/static/js/app.js
2. 로그인 페이지 추가
로그인 화면과 세션 기반 보호가 추가됐다.
- 로그인 페이지:
/login - 로그아웃:
/logout - 비로그인 시 새 UI 진입은 로그인 페이지로 리다이렉트
- 인증 후에만 주요 페이지/API 접근 가능
기본 계정:
- 아이디:
admin - 비밀번호:
admin
주의:
- 화면에는 더 이상 기본 계정을 프리필하거나 노출하지 않음
- 브라우저 비밀번호 저장 제안은 자동완성 속성으로 최대한 억제
관련 파일:
web/templates/auth/login.htmlinternal/handlers/device_handler.gointernal/store/sqlite_store.goweb/templates/layout.htmlweb/static/css/style.css
3. 포트 설정 UI 조정
포트 설정은 여러 번 방향이 바뀌었고, 현재 상태는 아래와 같다.
- 대시보드 포트 맵 UI는 유지
- 포트 설정 화면 상단에는 포트 선택 UI가 존재
- 좌측 메뉴의
포트 설정 > Port 1~48펼침 UI는 제거 - 포트 설정 화면 하단의
적용 대상 포트카드 UI는 제거
현재 상단 포트 선택 UI 동작:
개별 보기: 해당 포트 상세 설정 화면으로 이동적용 대상 추가: 상단 카드 내부 상태만 토글- 선택 상태는
localStorage에 저장
관련 파일:
web/templates/partials/block_port-links.htmlweb/templates/partials/block_port-selector.htmlweb/templates/partials/block_form.htmlweb/templates/layout.htmlweb/static/js/app.jsweb/static/css/style.cssinternal/mock/mock_data.go
SQLite 정보
기본 DB 경로:
data/teraclone.db
환경변수로 변경 가능:
TERACLONE_DB_PATH
예시:
$env:TERACLONE_DB_PATH="runtime\\qa.db"
.\scripts\dev.ps1 start
현재 확인된 동작 상태
정상 확인
go build -buildvcs=false ./...- 사용자 CRUD API 동작
- 로그인 페이지 렌더링
- 로그인 후 세션 쿠키 발급
- 로그아웃 후 접근 차단
- 포트 선택 UI 렌더링
현재 설계상 남아있는 점
- 그룹 관리는 아직 목업 기반
- 포트 설정은 실제 저장 로직이 아니라 UI/목업 동작 중심
- 일부 문자열/템플릿은 한글 인코딩 흔적이 남아 있음
- 테스트 코드는 아직 없음
변경 이력 요약
사용자/인증
- 목업 사용자 화면을 실DB 기반으로 전환
admin/admin계정 추가- 로그인/로그아웃/세션 추가
UI/UX
- 로그인 화면에서 기본 계정 노출 제거
- 비밀번호 저장 팝업 억제용 속성 추가
- 포트 설정 탭 동작 단순화
- 포트 설정 좌측 포트 목록 제거
개발 편의
- SQLite 경로를 환경변수로 오버라이드 가능
다음 작업 추천
- 그룹 관리도 사용자 관리처럼 실제 API/DB로 전환
- 포트 설정을 실제 저장 구조와 연결
- 포트 설정 상단 선택 UI의 저장 의미를 명확히 확정
- 로그인/사용자 관리 테스트 코드 추가
- 문자열 인코딩/하드코딩 정리
Obsidian 메모용 태그
- #teraclone
- #progress
- #ui
- #sqlite
- #auth
- #user-management