-
웹 디자인: 완료 (GPT 활용)
-
프로그램 기능
- 웹 로그인/로그아웃: 완료 (Next Auth)
- AI 하드코딩 분석 기능: 완료 (gpt-4o-mini, 유료 기능 사용 중)
- 유저 결과 가공 (공백 제거, 개행 제거 등 포맷팅, 3.4의 보안 정책 결정에 따라 다르게 구현해야 함)
- 로그 추가(파일 저장 등)
-
도커 보안
- 채점 스크립트나 도커 파일로 메모리 및 시간 제한 추가 (ulimit, timeout, cgroup, etc.)
- cap-drop과 같은 컨테이너 보안 옵션 추가
- 메모리, 디스크, 파일 삭제와 같은 보안 대책 추가
- 아래 보안 방법 중 택 1
- 네트워크 비활성화 및 채점 데이터 전부 복사 후 출력까지 비교(현행)
- 브릿지 활성화 및 rabbitmq로 채점 데이터 및 출력 관리
- 비고: 후자 선택 시 아웃풋 비교 로직 호출 위치 및 실행 장소 고려.
또한 네트워크 침입 후 채섬서버 관련 정보 유출 대비책 고려
-
DB 볼륨 추가: 완료
-
코드 유지보수
- 백엔드 코드 분할: 완료
- 코어 코드 가독성 검토 및 재작성 여부 고려
-
테스트 케이스 자동 생성 유틸 프로그램 제작
-
예외처리
- 백엔드 코드 예외처리
- 코어 코드 예외처리
-
도메인 연결 (클라우트 플레어, 가비아 등)
npm run dev로 서버 실행 시useEffect가 두 번 실행됨.- dev 특성상 두 번 실행. 배포로 변경 시 해결
- 멀티 프로세싱 환경에서 디렉터리 생성 시 생성 에러 발생.
exist허용으로 임시 수정.- 코어 로직을 싱글 프로세스로 변경 후 컨테이너를 복수 생성하는 방법도 유효해 보이나
현재 배포 환경의 서버 컴퓨팅 성능이 낮아 우선순위 낮음
- 코어 로직을 싱글 프로세스로 변경 후 컨테이너를 복수 생성하는 방법도 유효해 보이나
- 윈도우 환경에서 프로젝트 빌드 시 MySQL에서 설정 파일이 제대로 적용되지 않는 문제 발생.
- 확장자 변경, 설정 파일 위치 변경 등 여러 시도를 해보았으나 해결되지 않음.
- 윈도우 환경에서 DB의 데이터를 코어로 전송 시 깨진 채로 전송되므로 관련 디버깅 시 주의(AI 등)
- 윈도우에서 테스트 시 별 찍기 문제에서
*가 와일드카드로 인식되어 오답으로 출력되는 현상 발생 - t2.micro 서버에서 자바 코드 제출 시 시간초과가 간헐적으로 발생
- 자바 언어의 제한 시간을 늘리거나 서버 컴퓨팅 성능 향상 필요
- 덧셈 문제와 같이 너무 단순한 문제의 경우 AI가 하드코딩으로 인식하는 문제 발생.
- 각각의 문제마다 시스템 프롬프팅을 분리하여 개별 작성 -> 각 문제별로 올바른 출력을 내는지 테스트 필요
- 현재 범용 프롬프트를 다양한 케이스에 적용할 수 있도록 고도화 -> 프롬프트의 복잡도가 증가, 새로운 케이스 추가시 프롬프트 업데이트 필요 가능성
Core 로직을 cpu수에 따른 멀티 프로세싱이 아닌 단일 코어로 변경 및 코어 컨테이너 자체를 여러개 생성하는 방식으로 변경하여 쿠버네티스 도입까지 고려. 단, 현재 서버 성능으로는 지금도 많이 느리다.