CVAT 프로젝트 생성 및 사용방법

이미지
CVAT 사용방법 1. cvat 프로젝트 생성     Add label 클릭   label 이름 text 입력 타입은 디폴트 Any  선택 Add an attribute 클릭하여 속성 추가   속성 2개 추가 하나는 이미지에 있는 텍스트, 또 하나는 정답 텍스트 속성  text 입력 타입은 Text 이고 수정가능하게 Mutable 체크 속성 transcription 추가 타입은 Text 이고 수정가능학 Mutable 체크 다 추가 한 후에 Submit & Open 클릭하여 저장 2. Tasks 생성 Tasks 탭에서 Create a new task 클릭 Name 입력 :  알아볼수 있는 이름 Project : 기존에 만든 프로젝트 선택 Subset 필수는 아님 그냥 Train 선택 이미지 파일 추가 Advanced configuration image quality 좋게 100% 입력 Overlap size 0 으로 입력해야 추가한 이미지 그룹으로 묶임 segment size 비워둬야 추가한 이미지 전체가 그룹으로 묶임 저장하고 나면 Jobs에 추가한 Tasks가 보임 Jobs 에 클릭하여 들어가서 작업 영역을 잘 선택후 속성에서 text 에는 이미지에 보이는 텍스트 transcription 에는 이미지에 오타가 있을수도 있기 때문에 text와 조금 다를수 있음 대부분 text와 같음 정답을 입력

tsconfig 환경설정

tsconfig.json 환경설정


기존 디폴트로 설정된 파일의 내용은 삭제후 아래와 같이 환경설정을 한다.

{
  "compilerOptions": {
    "target": "ESNext",
    "useDefineForClassFields": true,
    "lib": ["DOM", "DOM.Iterable", "ESNext"],
    "allowJs": true,
    "skipLibCheck": true,
    "esModuleInterop": false,
    "allowSyntheticDefaultImports": true,
    "strict": true,
    "forceConsistentCasingInFileNames": false,
    "module": "ESNext",
    "moduleResolution": "node",
    "resolveJsonModule": true,
    "isolatedModules": true,
    "noImplicitAny": false,
    "noEmit": false,
    "declaration": true,
    "declarationDir": "./types",
    "jsx": "preserve",
    "baseUrl": "..",
    "paths": {
      "~/*": ["./client/src/*"],
      "test/*": ["./client/test/*"],
      "*": ["./client/*", "../node_modules/*"],
      "librechat-data-provider/*": ["./packages/data-provider/*"]
    }
  },
  "types": ["node", "jest", "@testing-library/jest-dom"],
  "exclude": ["node_modules", "vite.config.ts"],
  "include": [
    "src/**/*",
    "test/**/*",
    "../e2e/**/*",
    "test/setupTests.js",
    "env.d.ts",
    "../config/translations/**/*.ts"
  ]
}


tsconfig.json 파일은 TypeScript 컴파일러가 프로젝트를 컴파일하는 방식을 정의하는 데 사용됩니다. TypeScript 프로젝트에서 이 파일은 매우 중요하며, 코드의 타입 검사, 모듈 해석, 출력 방식 등을 제어합니다.

compilerOptions

이 객체는 TypeScript 컴파일러의 동작 방식을 구성하는 핵심 부분입니다.

  • target: "ESNext": 컴파일된 JavaScript 코드가 어떤 ECMAScript 버전으로 출력될지 지정합니다. "ESNext"는 가장 최신 버전의 ECMAScript 기능을 사용하겠다는 의미입니다.
  • useDefineForClassFields: true: 클래스 필드를 Object.defineProperty를 사용하여 정의할지 여부를 지정합니다. 이는 최신 JavaScript 표준과 더 잘 호환되게 합니다.
  • lib: ["DOM", "DOM.Iterable", "ESNext"]: 프로젝트에 포함할 기본 라이브러리 선언 파일을 지정합니다.
    • "DOM": 브라우저 환경의 표준 DOM(Document Object Model) API를 지원합니다.
    • "DOM.Iterable": DOM 관련 Iterable 프로토콜을 지원합니다.
    • "ESNext": 최신 ECMAScript 기능에 대한 타입 정의를 포함합니다.
  • allowJs: true: TypeScript 프로젝트에서 .js.jsx 파일을 허용합니다. 즉, JavaScript 파일과 TypeScript 파일을 함께 사용할 수 있습니다.
  • skipLibCheck: true: 모든 선언 파일(*.d.ts)의 타입 검사를 건너뜁니다. 주로 node_modules 내부의 라이브러리에서 발생하는 타입 오류를 무시하여 컴파일 시간을 단축하고 빌드 실패를 줄이는 데 사용됩니다.
  • esModuleInterop: false: CommonJS 모듈과 ES 모듈 간의 상호 운용성을 처리하는 방식을 비활성화합니다. 이 설정을 true로 하면 ES 모듈의 import * as React from 'react' 같은 구문을 import React from 'react'로 사용할 수 있게 해줍니다. 여기서는 `false``로 되어 있어 명시적인 CommonJS/ES 모듈 임포트 규칙을 따릅니다.
  • allowSyntheticDefaultImports: true: esModuleInteropfalse일 때, 기본 내보내기가 없는 모듈에서 기본 임포트(e.g., import React from 'react')를 허용합니다. 이는 일부 라이브러리에서 발생할 수 있는 문제를 해결하는 데 도움이 됩니다.
  • strict: true: 엄격한 타입 검사 옵션을 모두 활성화합니다. 이는 코드의 안정성과 가독성을 높이는 데 권장됩니다.
  • forceConsistentCasingInFileNames: false: 파일 이름의 대소문자 일관성을 강제하지 않습니다. 일반적으로 true로 설정하여 대소문자로 인한 문제를 방지하는 것이 좋지만, 여기서는 false로 되어 있습니다.
  • module: "ESNext": 생성될 모듈 코드의 종류를 지정합니다. "ESNext"는 ES Modules 형식을 사용하며, 이는 최신 브라우저와 번들러에 적합합니다.
  • moduleResolution: "node": 모듈을 해석하는 방식을 Node.js 방식으로 따릅니다. 이는 node_modules 디렉토리에서 모듈을 찾는 방식과 유사합니다.
  • resolveJsonModule: true: .json 파일을 모듈로 가져올 수 있도록 허용합니다.
  • isolatedModules: true: 각 파일을 독립적인 모듈로 간주합니다. 이는 Babel과 같은 트랜스파일러가 파일을 단일 파일로 처리하는 방식과 유사하며, 특정 타입스크립트 기능(e.g., const enum) 사용을 제한할 수 있습니다.
  • noImplicitAny: false: 명시적으로 타입을 선언하지 않은 경우 any 타입을 암시적으로 사용하는 것을 허용합니다. strict: true를 설정했음에도 불구하고 noImplicitAnyfalse로 명시적으로 재정의한 것으로 보입니다. 일반적으로 true로 설정하여 타입 안정성을 높이는 것이 권장됩니다.
  • noEmit: false: TypeScript 컴파일러가 JavaScript 파일을 출력하는 것을 허용합니다. true로 설정하면 타입 검사만 수행하고 실제 파일은 생성하지 않습니다. 이 설정은 주로 번들러(예: Vite, Webpack)가 트랜스파일을 담당할 때 사용됩니다.
  • declaration: true: 컴파일 시 .d.ts 선언 파일을 생성합니다. 이는 라이브러리를 만들 때 다른 TypeScript 프로젝트에서 타입 정보를 활용할 수 있도록 해줍니다.
  • declarationDir: "./types": 생성된 선언 파일(*.d.ts)이 저장될 디렉토리를 지정합니다. 여기서는 프로젝트 루트의 ./types 디렉토리에 저장됩니다.
  • jsx: "preserve": JSX 구문을 컴파일러가 그대로 유지하도록 지시합니다. JSX 트랜스폼은 Babel이나 Vite와 같은 다른 도구에서 처리할 것으로 예상됩니다.
  • baseUrl: "..": 모듈 해석의 기준 경로를 지정합니다. "../"는 현재 tsconfig.json 파일이 위치한 디렉토리의 상위 디렉토리를 기준으로 합니다.
  • paths: 모듈 임포트 경로에 대한 별칭(alias)을 정의합니다. 이는 긴 상대 경로 대신 짧은 별칭을 사용하여 모듈을 임포트할 수 있게 해줍니다.
    • "~/*": ["./client/src/*"]: ~/로 시작하는 경로는 ./client/src/ 디렉토리를 가리킵니다. (예: import someModule from '~/components/SomeComponent';)
    • "test/*": ["./client/test/*"]: test/로 시작하는 경로는 ./client/test/ 디렉토리를 가리킵니다.
    • "*": ["./client/*", "../node_modules/*"]: 모든 경로에 대해 먼저 ./client/ 디렉토리에서 모듈을 찾고, 없으면 ../node_modules/에서 찾도록 합니다.
    • "librechat-data-provider/*": ["./packages/data-provider/*"]: librechat-data-provider/로 시작하는 경로는 ./packages/data-provider/ 디렉토리를 가리킵니다.

types

  • "node", "jest", "@testing-library/jest-dom": 프로젝트에서 전역 타입으로 사용할 타입 정의 패키지를 명시적으로 지정합니다.
    • node: Node.js 환경에서 사용되는 전역 타입 (e.g., process, Buffer).
    • jest: Jest 테스트 프레임워크 관련 전역 타입.
    • @testing-library/jest-dom: Jest DOM 확장 라이브러리 관련 타입.

exclude

컴파일러가 타입 검사에서 제외할 파일 또는 디렉토리를 지정합니다.

  • "node_modules": 일반적으로 모든 의존성 패키지가 있는 디렉토리이므로 제외합니다.
  • "vite.config.ts": Vite 설정 파일은 일반적으로 번들링 과정에서 처리되므로 타입스크립트 컴파일 과정에서는 제외합니다.

include

컴파일러가 타입 검사를 포함할 파일 또는 디렉토리를 지정합니다. 이 경로에 있는 파일들만 컴파일됩니다.

  • "src/**/*": src 디렉토리 아래의 모든 파일과 하위 디렉토리를 포함합니다.
  • "test/**/*": test 디렉토리 아래의 모든 파일과 하위 디렉토리를 포함합니다.
  • "../e2e/**/*": 현재 디렉토리의 상위 디렉토리에 있는 e2e 디렉토리 아래의 모든 파일과 하위 디렉토리를 포함합니다.
  • "test/setupTests.js": 특정 테스트 설정 JavaScript 파일을 포함합니다.
  • "env.d.ts": 환경 변수 타입 정의 파일을 포함합니다.
  • "../config/translations/**/*.ts": 현재 디렉토리의 상위 디렉토리에 있는 config/translations 디렉토리 아래의 모든 TypeScript 파일을 포함합니다.

요약

tsconfig.json 파일은 프런트엔드 애플리케이션(아마도 React/Vite 기반) 개발을 위한 설정을 주로 담고 있습니다.

  • 최신 JavaScript 기능을 사용하고 JSX 구문을 보존하여 번들러가 처리하도록 합니다.
  • 엄격한 타입 검사(strict: true)를 활성화하여 코드 품질을 높이지만, noImplicitAny: false로 일부 유연성을 둡니다.
  • 모듈 해석 방식을 Node.js와 유사하게 설정하고, JSON 모듈 임포트를 허용합니다.
  • **경로 별칭(paths)**을 통해 복잡한 임포트 경로를 단순화하여 개발 편의성을 높였습니다.
  • Node.js, Jest, Testing Library와 같은 테스트 환경을 위한 타입 정의를 포함합니다.
  • 프로젝트의 소스 코드, 테스트 코드, E2E 테스트 코드, 설정 파일 등을 컴파일 대상에 명확히 지정하여 필요한 파일만 처리하도록 구성되어 있습니다.

이 설정은 개발자가 타입스크립트의 강력한 타입 시스템을 활용하면서도, 현대 웹 개발 워크플로우(번들러 사용, JSX)에 잘 통합될 수 있도록 고안 되었습니다.

댓글

이 블로그의 인기 게시물

티베로 이관 작업 절차

아파치 보안관련 기본설정

윈도우 네트워크 리소스 사용권한 오류