본문 바로가기

전체 글357

ZWO EAF 전동 포커서 규격 Size: 59mm x 52mm x 41mm Moter: Step moter, 35mm diameter, 7.5° step angle Reduction ratio: 120 Power/Data port: USB2.0 port, Type-B Weight: 277g Capacity: 5kg 연결 구성품 도면 2024. 3. 13.
Borg 9858 마이크로 포커서(MMF-1) 구매한 제품에 동봉된 일본어 매뉴얼을 번역한 글입니다. MMF - 1의 사용법 MMF-1은 기어를 전혀 사용하지 않고, 롤러와 베어링의 마찰만으로 드로우 튜브를 전후로 움직이게 하는 방식의 초점 맞추기 장치입니다. 틈이나 백래시가 없으며, 매우 부드러운 초점 조절 감각을 얻기 위해, 아래에 설명된 초점 조절 노브 1&2, 그리고 네 개의 나사(A・B・C・D)의 올바른 사용법을 확인해 주세요. 초점 조절 노브1&2: 1은 감속 장치가 없는 조절 노브로, 아이피스를 교체했을 때 등 빠른 초점 조절이 필요할 때 사용합니다. 2는 1의 1/10의 속도로 드로우 튜브를 전후로 움직이게 하는 감속 장치가 장착되어 있으며, 매우 세밀한 초점 조절이 가능합니다. 항상 1 →2의 순서로 사용함으로써, 빠른 초점 조절 속.. 2024. 3. 13.
Vue 3 Composition API 관련 심화 내용 Vue 3에서 {{ count }} 이 구문은 Vue 3에서 새로운 컴포넌트를 작성할 때 효율적이고 선언적인 방식을 제공합니다. ref() vs toRefs() Vue 3의 Composition API에서 ref()와 toRefs()는 반응형 참조를 다루는 데 사용되지만, 각각 다른 목적과 사용 방식을 가지고 있습니다. ref(): ref() 함수는 주로 기본 타입(문자열, 숫자, 불리언 등) 또는 객체/배열 등을 반응형 데이터로 만들기 위해 사용됩니다. ref()를 사용하여 생성된 참조는 .value 속성을 통해 실제 값을 얻거나 설정합니다. ref()는 단일 값에 대한 반응성을 제공하며, 주로 템플릿에서 직접적으로 사용될 때 유용합니다. 예시: import { ref } from 'vue'; cons.. 2024. 1. 26.
Laravel Inertia - Shared data 공유 데이터 데이터 공유하기 애플리케이션 내의 여러 페이지에서 특정 데이터에 액세스해야 할 때가 있습니다. 예를 들어, 사이트 헤더에 현재 사용자를 표시해야 할 수 있습니다. 전체 애플리케이션에 걸쳐 각 응답에 이 데이터를 수동으로 전달하는 것은 번거롭습니다. 다행히 더 나은 방법이 있습니다: 공유 데이터. Inertia 의 서버 측 어댑터는 모든 요청에 공유 데이터를 사용할 수 있는 방법을 제공합니다. 이는 일반적으로 컨트롤러 외부에서 수행됩니다. 공유 데이터는 컨트롤러에서 제공된 페이지 props와 자동으로 병합됩니다. Laravel 애플리케이션에서는 일반적으로 HandleInertiaRequests 미들웨어를 통해 처리됩니다. 이 미들웨어는 서버 측 어댑터 설치 시 자동으로 설치됩니다. class .. 2024. 1. 18.
Laravel Inertia - Validation 유효성 검증 작동 방식 Inertia에서 서버 측 유효성 검증 오류를 처리하는 방법은 전통적인 XHR 기반 폼과 다릅니다. XHR 기반 폼에서는 422 응답에서 유효성 검증 오류를 캐치하고 폼의 오류 상태를 수동으로 업데이트해야 하지만, Inertia에서는 422 응답을 받지 않습니다. 대신, Inertia는 전통적인 전체 페이지 폼 제출과 매우 유사하게 작동합니다. 아래는 그 방법입니다: 먼저, Inertia를 사용하여 폼을 제출합니다. 서버 측 유효성 검증 오류가 있는 경우, 이러한 오류를 422 JSON 응답으로 반환하지 않습니다. 대신, 유저를 이전에 있던 폼 페이지로 리다이렉트하고 세션에 유효성 검증 오류를 플래시합니다. Laravel과 같은 일부 프레임워크는 이를 자동으로 처리합니다. 다음으로.. 2024. 1. 18.
Laravel Inertia - File uploads 파일 업로드 FormData 변환 파일(중첩된 파일 포함)이 포함된 Inertia 요청을 수행할 때, Inertia는 자동으로 요청 데이터를 FormData 객체로 변환합니다. 이 변환은 XHR을 통해 multipart/form-data 요청을 제출하기 위해 필요합니다. 데이터에 파일이 포함되어 있지 않더라도 요청이 항상 FormData 객체를 사용하도록 하려면 요청을 수행할 때 forceFormData 옵션을 제공하면 됩니다. import { router } from '@inertiajs/vue3' router.post('/users', data, { forceFormData: true, }) FormData 인터페이스에 대한 자세한 정보는 MDN 문서를 참조하세요. 버전 .. 2024. 1. 18.
Laravel Inertia - Forms 폼 폼 제출 전통적인 HTML 폼 제출 방식도 Inertia에서 사용할 수 있지만, 이는 전체 페이지를 새로고침하므로 권장되지 않습니다. 대신 폼 제출을 가로채고 Inertia를 사용하여 요청을 하는 것이 좋습니다. First name: Last name: Email: Submit 위 예제에서 볼 수 있듯이, Inertia를 사용할 때 클라이언트 측에서 폼 응답을 검사할 필요가 일반적으로 없습니다. 대신 서버 측 라우트/컨트롤러는 일반적으로 리다이렉트 응답을 발행합니다. 이 방식을 사용하면 Inertia 폼 제출을 처리하는 것이 전통적인 HTML 폼 제출을 처리하는 것과 매우 유사하게 느껴집니다. class UsersController extends Controller { public function i.. 2024. 1. 18.
Laravel Inertia - Manual visits Manual visits 수동 방문 링크를 생성하는 것 외에도, JavaScript를 통해 프로그래밍 방식으로 Inertia 방문/요청을 수동으로 수행할 수 있습니다. 이는 router.visit() 메소드를 통해 이루어집니다. import { router } from '@inertiajs/vue3' router.visit(url, { method: 'get', data: {}, replace: false, preserveState: false, preserveScroll: false, only: [], headers: {}, errorBag: null, forceFormData: false, onCancelToken: cancelToken => {}, onCancel: ().. 2024. 1. 18.
Laravel Inertia - Links 링크 Inertia 앱 내에서 다른 페이지로의 링크를 생성할 때는 일반적으로 Inertia 컴포넌트를 사용합니다. 이 컴포넌트는 표준 앵커() 링크를 둘러싼 가벼운 래퍼로, 클릭 이벤트를 가로채고 전체 페이지 새로고침을 방지합니다. 이를 통해 애플리케이션이 로드된 후 싱글 페이지 앱 경험을 제공합니다. 링크 생성하기 Inertia 링크를 생성하려면 Inertia 컴포넌트를 사용하세요. 이 컴포넌트에 제공된 모든 속성은 기본 HTML 태그로 전달됩니다. import { Link } from '@inertiajs/vue3' Home 기본적으로 Inertia는 링크를 앵커() 요소로 렌더링합니다. 그러나 as 속성을 사용하여 태그를 변경할 수 있습니다. import { Link } from &#.. 2024. 1. 18.
Laravel Inertia - Title & meta 타이틀 & 메타 Inertia로 구동되는 JavaScript 애플리케이션은 문서의 내에서 렌더링되므로, 문서의 타이틀 축약형 문서의 여러 Head 인스턴스 애플리케이션 전체에 걸쳐 여러 // About.vue import { Head } from '@inertiajs/vue3' Inertia는 한 번에 하나의 태그만 렌더링하지만, 다른 태그는 여러 인스턴스가 있을 수 있기 때문에 쌓입니다. 중복 태그를 피하기 위해 head-key 속성을 사용할 수 있으며, 이는 태그가 한 번만 렌더링되도록 보장합니다. 위 예제에서 태그에 대해 이를 설명합니다. 위 코드 예제는 다음 HTML을 렌더링합니다. Head 확장 실제 애플리케이션을 구축할 때, Inertia의 사용자 정의 컴포넌트를 생성한 후에는 .. 2024. 1. 18.
Laravel Inertia - Routing 라우팅 라우트 정의하기 Inertia를 사용할 때, 애플리케이션의 모든 라우트는 서버 측에서 정의됩니다. 이는 Vue Router나 React Router가 필요하지 않다는 것을 의미합니다. 대신, Laravel 라우트를 정의하고 해당 라우트에서 Inertia 응답을 반환하기만 하면 됩니다. 간편한 라우트 "FAQ"나 "about" 페이지처럼 해당 컨트롤러 메소드가 필요 없는 페이지가 있다면, Route::inertia() 메소드를 통해 컴포넌트로 직접 라우팅할 수 있습니다. Route::inertia('/about', 'About');URL 생성하기 일부 서버 측 프레임워크는 명명된 라우트에서 URL을 생성할 수 있습니다. 그러나 클라이언트 측에서 이러한 헬퍼에 접근할 수는.. 2024. 1. 18.
Laravel Inertia - Redirects 리다이렉트 Inertia를 사용하여 non-GET 요청을 수동으로 하거나 요소를 통해 수행할 때, 항상 적절한 Inertia 리다이렉트 응답으로 응답하는 것이 중요합니다. 예를 들어, 컨트롤러가 새로운 사용자를 생성하는 경우, "store" 엔드포인트는 사용자 "index" 페이지와 같은 표준 GET 엔드포인트로 리다이렉트되어야 합니다. Inertia는 이 리다이렉트를 자동으로 따라가고 페이지를 그에 맞게 업데이트합니다. class UsersController extends Controller { public function index() { return Inertia::render('Users/Index', [ 'users' => User::all(), ]); } publi.. 2024. 1. 18.
Laravel Inertia - Responses Responses 응답 Creating responses 응답 생성하기 Inertia 응답을 생성하는 것은 간단합니다. 시작하려면, 컨트롤러나 라우트 내에서 Inertia::render() 메소드를 호출하고, 렌더링하고자 하는 JavaScript 페이지 컴포넌트의 이름과 페이지에 대한 props(데이터)를 제공하면 됩니다. 아래 예제에서, 단일 prop(event)을 Event/Show 페이지 컴포넌트에 전달합니다. 이 prop에는 네 개의 속성(id, title, start_date, description)이 포함됩니다. use Inertia\Inertia; class EventsController extends Controller { public function show(Event $event) { .. 2024. 1. 18.
Laravel Inertia - Pages Inertia 를 사용하여 애플리케이션을 구축할 때, 애플리케이션의 각 페이지는 일반적으로 자체 컨트롤러/라우트와 해당하는 JavaScript 컴포넌트를 가집니다. 이를 통해 해당 페이지에 필요한 데이터만 검색할 수 있으며, API는 필요하지 않습니다. 또한, 페이지에 필요한 모든 데이터는 브라우저에서 페이지가 렌더링되기 전에 검색될 수 있어, 사용자가 애플리케이션을 방문할 때 "loading" 상태를 표시할 필요가 없어집니다. Creating pages 페이지 생성하기 Inertia 페이지는 단순히 JavaScript 컴포넌트입니다. Vue, React, 또는 Svelte 컴포넌트를 작성해본 적이 있다면 금방 익숙해질 것입니다. 아래 예시에서 볼 수 있듯이, 페이지는 애플리케이션의 컨트롤러로부터 pro.. 2024. 1. 18.
Chat Plugins - productionizing your plugin Rate limits 노출된 API 엔드포인트에 대해 속도 제한을 구현하는 것을 고려하세요. ChatGPT는 429 응답 코드를 존중하며, 짧은 시간 내에 일정 수의 429 또는 500 응답을 받은 후 플러그인에 요청을 보내는 것을 동적으로 줄입니다. Timeouts 플러그인 경험 중 API 호출을 할 때, 다음 임계값을 초과하면 타임아웃이 발생합니다: ai-plugin.json/openapi.yaml을 가져오는 데 걸리는 왕복 시간 15초 API 호출을 위한 왕복 시간 45초 플러그인 경험을 더 많은 사람들에게 확장함에 따라, 타임아웃 임계값이 감소할 것으로 예상합니다. Rate limiting users 저희는 지속적인 사용자 수준 ID를 노출하지 않고, 대신 플러그인에 보내는 요청에 openai-e.. 2024. 1. 12.