Skip to content

hwjdghks/OJ

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 

Repository files navigation

OJ

구현 웹 사이트

2차 TODO LIST

  1. 웹 디자인: 완료 (GPT 활용)

  2. 프로그램 기능

    1. 웹 로그인/로그아웃: 완료 (Next Auth)
    2. AI 하드코딩 분석 기능: 완료 (gpt-4o-mini, 유료 기능 사용 중)
    3. 유저 결과 가공 (공백 제거, 개행 제거 등 포맷팅, 3.4의 보안 정책 결정에 따라 다르게 구현해야 함)
    4. 로그 추가(파일 저장 등)
  3. 도커 보안

    1. 채점 스크립트나 도커 파일로 메모리 및 시간 제한 추가 (ulimit, timeout, cgroup, etc.)
    2. cap-drop과 같은 컨테이너 보안 옵션 추가
    3. 메모리, 디스크, 파일 삭제와 같은 보안 대책 추가
    4. 아래 보안 방법 중 택 1
      1. 네트워크 비활성화 및 채점 데이터 전부 복사 후 출력까지 비교(현행)
      2. 브릿지 활성화 및 rabbitmq로 채점 데이터 및 출력 관리
      • 비고: 후자 선택 시 아웃풋 비교 로직 호출 위치 및 실행 장소 고려.
        또한 네트워크 침입 후 채섬서버 관련 정보 유출 대비책 고려
  4. DB 볼륨 추가: 완료

  5. 코드 유지보수

    1. 백엔드 코드 분할: 완료
    2. 코어 코드 가독성 검토 및 재작성 여부 고려
  6. 테스트 케이스 자동 생성 유틸 프로그램 제작

  7. 예외처리

    1. 백엔드 코드 예외처리
    2. 코어 코드 예외처리
  8. 도메인 연결 (클라우트 플레어, 가비아 등)


발생한 이슈

  1. npm run dev로 서버 실행 시 useEffect가 두 번 실행됨.
    • dev 특성상 두 번 실행. 배포로 변경 시 해결
  2. 멀티 프로세싱 환경에서 디렉터리 생성 시 생성 에러 발생. exist 허용으로 임시 수정.
    • 코어 로직을 싱글 프로세스로 변경 후 컨테이너를 복수 생성하는 방법도 유효해 보이나
      현재 배포 환경의 서버 컴퓨팅 성능이 낮아 우선순위 낮음
  3. 윈도우 환경에서 프로젝트 빌드 시 MySQL에서 설정 파일이 제대로 적용되지 않는 문제 발생.
    • 확장자 변경, 설정 파일 위치 변경 등 여러 시도를 해보았으나 해결되지 않음.
    • 윈도우 환경에서 DB의 데이터를 코어로 전송 시 깨진 채로 전송되므로 관련 디버깅 시 주의(AI 등)
  4. 윈도우에서 테스트 시 별 찍기 문제에서 *가 와일드카드로 인식되어 오답으로 출력되는 현상 발생
  5. t2.micro 서버에서 자바 코드 제출 시 시간초과가 간헐적으로 발생
    • 자바 언어의 제한 시간을 늘리거나 서버 컴퓨팅 성능 향상 필요
  6. 덧셈 문제와 같이 너무 단순한 문제의 경우 AI가 하드코딩으로 인식하는 문제 발생.
    • 각각의 문제마다 시스템 프롬프팅을 분리하여 개별 작성 -> 각 문제별로 올바른 출력을 내는지 테스트 필요
    • 현재 범용 프롬프트를 다양한 케이스에 적용할 수 있도록 고도화 -> 프롬프트의 복잡도가 증가, 새로운 케이스 추가시 프롬프트 업데이트 필요 가능성

고려사항

Core 로직을 cpu수에 따른 멀티 프로세싱이 아닌 단일 코어로 변경 및 코어 컨테이너 자체를 여러개 생성하는 방식으로 변경하여 쿠버네티스 도입까지 고려. 단, 현재 서버 성능으로는 지금도 많이 느리다.

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 2

  •  
  •