git 커맨드라인 명령어

`git init` 명령어를 사용하여 Git 저장소를 초기화할 수 있습니다. 이는 새로운 Git 프로젝트를 시작하거나 기존 프로젝트를 Git 저장소로 변환할 때 사용하는 명령어입니다. 다음은 `git init`을 사용하여 Git 저장소를 초기화하는 단계입니다: 1. **프로젝트 디렉토리로 이동**:    Git 저장소로 만들고 싶은 디렉토리로 이동합니다. 예를 들어, `my_project`라는 디렉토리로 이동하려면 다음 명령어를 사용합니다:    ```sh    cd my_project    ``` 2. **Git 저장소 초기화**:    해당 디렉토리에서 `git init` 명령어를 실행합니다:    ```sh    git init    ```    이 명령어는 `.git`이라는 숨겨진 디렉토리를 생성하여 현재 디렉토리를 Git 저장소로 만듭니다. 3. **파일 추가 및 커밋**:    프로젝트의 파일을 Git에 추가하고 첫 커밋을 만듭니다. 예를 들어, 모든 파일을 추가하고 커밋하려면 다음 명령어를 사용합니다:    ```sh    git add .    git commit -m "Initial commit"    ``` 다음은 단계별로 설명한 예시입니다: ```sh # 프로젝트 디렉토리로 이동 cd my_project # Git 저장소 초기화 git init # 모든 파일 추가 git add . # 첫 커밋 만들기 git commit -m "Initial commit" ``` 이제 `my_project` 디렉토리는 Git으로 버전 관리되는 저장소가 되었습니다. 이후에 원격 저장소를 추가하거나 브랜치를 만들고 관리할 수 있습니다. 예를 들어, GitHub에 원격 저장소를 추가하려면 다음과 같이 할 수 있습니다: ...

Json파일을 반복해서 열고 쓰고 저장하고 하니까 파일이 커질 수록 오래걸림.

주기적으로 저장하는 방식으로 조금 해결  파이썬에서 JSON 데이터를 다룰 때, 매번 파일에 쓰는 방식이 비효율적일 수 있습니다. 파일이 커질수록 시간이 많이 걸리기 때문입니다. 몇 가지 최적화 방법을 제안할 수 있습니다: 1. **덮어쓰기 대신 추가 모드 사용**:    - JSON 파일을 매번 읽고 쓰는 대신, 처음부터 한 번 읽고, 메모리에서 데이터를 추가한 후, 한 번에 파일에 저장하는 방법을 고려해보세요. 추가 모드로 데이터를 쓰는 것은 JSON 파일 구조상 어렵기 때문에 일반적으로는 한 번에 쓰는 것이 좋습니다. 2. **데이터를 주기적으로 저장**:    - 데이터가 일정량 누적되면 파일에 저장하는 방법을 사용할 수 있습니다. 이렇게 하면 매번 파일에 접근하지 않아서 성능을 향상시킬 수 있습니다. 3. **JSON 대신 다른 형식 사용**:    - JSON 대신 데이터베이스를 사용하는 방법도 고려할 수 있습니다. SQLite 같은 경량 데이터베이스는 작은 어플리케이션에 적합합니다. 또는 NoSQL 데이터베이스인 MongoDB도 JSON 형식의 데이터를 효율적으로 처리할 수 있습니다. 다음은 첫 번째 방법을 예시로 보여주는 코드입니다: ```python import json # JSON 파일 읽기 def read_json_file(file_path):     try:         with open(file_path, 'r') as file:             data = json.load(file)     except FileNotFoundError:         data = []     return data # JSON 파일 쓰기 def write_json_file(file_path, data): ...

깃허브에 json올려서 직접 호스팅

JSON 파일이 너무 커서 클라우드 플레어 페이지에 안올라가서 깃허브에 따로 올려서 그 페이지를 fetch해와서 썼다. 1. **GitHub에 파일 업로드**:     - GitHub 저장소를 생성하거나 기존 저장소를 사용합니다.     - `public/database` 디렉토리에 `dictionary_db.json` 파일을 업로드합니다. 2. **GitHub에서 파일의 Raw URL 가져오기**:     - 파일을 업로드한 후, 해당 파일의 Raw URL을 가져옵니다. 예를 들어, `https://github.com/USERNAME/REPOSITORY/raw/BRANCH/public/database/dictionary_db.json`와 같은 URL이 됩니다. 3. **코드 수정**:     - fetch 요청을 GitHub의 Raw URL로 변경합니다. 다음은 GitHub에 파일을 업로드하고 코드를 수정하는 과정입니다. ### 1. GitHub에 파일 업로드 - GitHub 저장소에 `public/database` 디렉토리를 생성합니다. - `dictionary_db.json` 파일을 해당 디렉토리에 업로드합니다. ### 2. GitHub에서 Raw URL 가져오기 - 파일을 업로드한 후, 파일을 클릭하여 GitHub에서 파일을 엽니다. - 파일 내용이 표시되는 페이지에서 `Raw` 버튼을 클릭하여 파일의 Raw URL을 가져옵니다.   - 예시 URL: `https://github.com/USERNAME/REPOSITORY/raw/BRANCH/public/database/dictionary_db.json` ### 3. 코드 수정 ```javascript import "./App.css"; import React, { useEffect, useState } from "react"; function createBlankWordObject(word) {   return { ...

React input에서의 value

 React input에서의 value를 꼭 써야하나? `value={wordSearched}`는 React에서 입력 요소를 제어 컴포넌트로 만들 때 필요한 속성입니다. 제어 컴포넌트란 React 상태(state)를 통해 입력 요소의 값을 제어하는 방식을 말합니다. 이를 통해 React는 입력 요소의 상태를 관리하고, 변경할 때마다 화면이 자동으로 업데이트됩니다. ### 왜 필요한가요? 1. **상태 관리**: `value={wordSearched}`를 사용하면 입력 요소의 현재 값을 `wordSearched` 상태에 연결할 수 있습니다. 사용자가 입력하는 내용이 상태에 반영되므로, 이 값을 이용해 다양한 연산을 수행하거나 다른 컴포넌트와 상호작용할 수 있습니다. 2. **제어**: React가 입력 요소의 상태를 관리하므로, 사용자 입력에 따라 다른 컴포넌트나 기능을 동작시킬 수 있습니다. 예를 들어 검색 기능이나 필터링 기능을 구현할 때 매우 유용합니다. 3. **일관성**: React의 가상 DOM(Virtual DOM)에서는 상태와 UI를 동기화하기 위해 입력 요소의 상태를 추적합니다. `value` 속성을 사용하면 React가 이 변화를 감지하고 UI를 업데이트할 수 있습니다. ### 사용하지 않을 때의 문제점: 만약 `value={wordSearched}`를 사용하지 않고 입력 요소를 일반 HTML처럼 사용한다면, React의 상태 관리를 이용하지 않고 DOM에 직접 접근해야 합니다. 이는 React의 성능과 일관성을 저하시킬 수 있고, 복잡한 상태 관리나 UI 업데이트를 구현하기 어려울 수 있습니다. 따라서, React에서는 입력 요소의 상태를 제어 컴포넌트로 만들어 `value` 속성을 사용하여 상태를 관리하는 것이 좋은 프랙티스입니다. 이는 React의 기본 원칙 중 하나이며, React의 강력한 상태 관리 기능을 활용하는 방법입니다. `useEffect`는 주로 컴포넌트가 마운트되거나 업데이트될 때 부수 효과(side effects)를...

javascript join으로 배열을 스트링으로 합치기(python의 join과 비슷)

 리스트의 `join` 메서드는 배열의 모든 요소를 문자열로 변환한 다음 지정된 구분자를 사용하여 결합합니다. JSON 데이터가 있는 경우, 이를 문자열로 변환하여 `join`을 사용하면 됩니다. 예를 들어, 문자열 배열을 하나의 문자열로 결합하거나 JSON 객체의 특정 속성을 문자열로 결합할 수 있습니다. ### 예제 1: 문자열 배열 결합 ```javascript const words = ["apple", "banana", "cherry"]; const joinedWords = words.join(", "); console.log(joinedWords); // "apple, banana, cherry" ``` ### 예제 2: JSON 객체 배열의 특정 속성 결합 JSON 객체 배열이 있고, 이 배열의 특정 속성 값을 문자열로 결합하고자 할 때, `map()`과 `join()` 메서드를 함께 사용할 수 있습니다. ```javascript const data = [   { "id": 1, "name": "Alice" },   { "id": 2, "name": "Bob" },   { "id": 3, "name": "Charlie" } ]; const names = data.map(item => item.name); const joinedNames = names.join(", "); console.log(joinedNames); // "Alice, Bob, Charlie" ``` 이렇게 하면 JSON 객체 배열에서 특정 속성 (`name`)을 추출하여 하나의 문자열로 결합할 수 있습니다. ### 예제 3: 복잡한 JSON 데이터의 특정 필드 결합 좀 더 복잡한 JSON 데이터...

react map으로 리스트 렌더링

 React에서 리스트 요소를 반복적으로 그리려면 `map()` 함수를 사용하여 배열을 순회하고 각 요소에 대해 컴포넌트를 렌더링합니다. 예를 들어, 다음과 같은 JSON 배열이 있다고 가정해보겠습니다: ```json [   { "id": 1, "name": "Alice" },   { "id": 2, "name": "Bob" },   { "id": 3, "name": "Charlie" } ] ``` 이 배열의 각 요소를 React 컴포넌트로 렌더링하는 방법을 예제 코드로 보여드리겠습니다. ### 예제 코드 ```javascript import React from 'react'; // 예제 데이터 const data = [   { id: 1, name: 'Alice' },   { id: 2, name: 'Bob' },   { id: 3, name: 'Charlie' } ]; // 리스트 아이템 컴포넌트 const ListItem = ({ item }) => (   <li key={item.id}>     {item.name}   </li> ); // 메인 컴포넌트 const ListComponent = () => {   return (     <ul>       {data.map(item => (         <ListItem key={item.id} item={item} />       ))}     </ul>   ); }; export default ListComponent; ``` ### 설명 1. **데이터 준비**: 렌더링할 데이터를 배열 형태로 준비합니다. 2. **리스트 아이템 컴포넌트 (`ListItem`)**: 각 리스트 아이템을 렌더링하는...

[JavaScript] JSON 다루기

 JSON을 JavaScript에서 다루는 것은 매우 일반적입니다. JSON(JavaScript Object Notation)은 JavaScript의 객체 표기법과 매우 유사하며, 데이터를 효과적으로 전달하고 저장하기 위한 경량의 데이터 형식입니다. ### JSON 다루기 기본 JSON은 문자열 형태로 표현됩니다. JavaScript에서는 다음과 같은 방법으로 JSON을 다룰 수 있습니다. #### 1. JSON 파싱 (Parsing) JSON 문자열을 JavaScript 객체로 변환하는 것을 '파싱'이라고 합니다. ```javascript const jsonString = '{"name": "John", "age": 30}'; const obj = JSON.parse(jsonString); console.log(obj.name); // "John" console.log(obj.age); // 30 ``` 위 예제에서 `JSON.parse()` 함수는 JSON 문자열을 파싱하여 JavaScript 객체로 변환합니다. #### 2. JavaScript 객체를 JSON 문자열로 변환하기 (Stringify) JavaScript 객체를 JSON 문자열로 변환하는 것을 '직렬화'라고 합니다. ```javascript const obj = { name: "John", age: 30 }; const jsonString = JSON.stringify(obj); console.log(jsonString); // '{"name":"John","age":30}' ``` 위 예제에서 `JSON.stringify()` 함수는 JavaScript 객체 `obj`를 JSON 형식의 문자열로 변환합니다. ### 예외 처리 JSON 파싱이나 직렬화 과정에서 발생할 수 있는 예외를 처리하는 것...

[cloudflare] Error: Pages only supports files up to 25 MiB in size

  Error: Pages only supports files up to 25 MiB in size public/database/dictionary_db.json is 28.6 MiB in size 용량 초과

클라우드 플레어 pages 쓸때 깃허브 가서 리포지토리 접근 허용해줘야함

 클라우드 플레어 pages 쓸때 깃허브 가서 리포지토리 접근 허용해줘야함 일부접근만되게 해놨거든

python file 파일 쓰기

파이썬에서 파일에 한 줄씩 쓰는 방법을 알려드리겠습니다. 파일에 한 줄씩 쓰기 위해 다음과 같은 방법을 사용할 수 있습니다: 1. **파일 열기 및 쓰기 모드 설정**: `open()` 함수를 사용하여 파일을 열고, 쓰기 모드(`'w'` 또는 `'a'`)로 설정합니다. `'w'` 모드는 파일을 쓰기 전에 초기화하며, `'a'` 모드는 파일 끝에 추가합니다. 2. **파일에 쓰기**: 파일 객체의 `write()` 메서드를 사용하여 한 줄씩 문자열을 파일에 씁니다. 3. **파일 닫기**: 작업이 끝난 후에는 파일을 닫아 리소스를 해제합니다. 여기에 예제를 통해 자세히 설명하겠습니다: ### 1. 파일 열기 및 쓰기 ```python # 파일을 쓰기 모드('w')로 열기 with open('example.txt', 'w') as file:     # 한 줄씩 쓰기     file.write("첫 번째 줄\n")     file.write("두 번째 줄\n")     file.write("세 번째 줄\n") ``` 위 예제에서 `open()` 함수는 `'w'` 모드로 파일을 열어서 `example.txt`라는 파일에 쓰기 작업을 수행합니다. ### 2. 파일 닫기 `with` 구문을 사용하면 파일을 사용한 후 자동으로 닫히므로 명시적으로 닫을 필요가 없습니다. 하지만 일반적으로 파일 객체를 사용한 후에는 `close()` 메서드로 파일을 명시적으로 닫는 것이 좋습니다. ```python # 파일을 쓰기 모드('w')로 열기 file = open('example.txt', 'w') # 한 줄씩 쓰기 file.write("첫 번째 줄\n") file.write("두 번째 줄\n") file.write("세 번째 줄\...

css `align-items` vs `align-content`

 `align-items`와 `align-content`의 차이를 좀 더 쉽게 설명해 드리겠습니다. ### Flexbox 레이아웃의 기본 이해 - **주축(main axis)**: Flex 컨테이너의 주요 방향(기본적으로 가로 방향). - **크로스 축(cross axis)**: 주축과 수직인 방향(기본적으로 세로 방향). ### 1. `align-items` - **기능**: **한 줄**의 항목들을 크로스 축을 따라 정렬합니다. - **예시**: 자식 요소들이 한 줄에 있을 때, 그 줄 내에서 자식 요소들의 정렬을 설정합니다. - **사용 상황**: 모든 자식 요소들이 한 줄에 있을 때, 예를 들어, 높이를 조정하거나 중간, 위, 아래로 정렬하고 싶을 때 사용합니다. #### 비유 - **교실에서 책상 정렬**: 학생들이 한 줄로 앉아 있을 때, 그 줄 내에서 학생들을 중간, 위, 아래로 정렬하는 것과 같습니다. #### 예시 ```css .container {   display: flex;   height: 200px; /* 컨테이너 높이 설정 */   align-items: center; /* 자식 요소들을 컨테이너의 중간에 정렬 */ } ``` ### 2. `align-content` - **기능**: **여러 줄**의 항목들을 크로스 축을 따라 공간을 분배합니다. - **예시**: 자식 요소들이 여러 줄로 랩핑될 때, 각 줄 사이의 공간을 설정합니다. - **사용 상황**: 여러 줄의 항목이 있는 경우, 각 줄 사이의 공간을 조정하고 싶을 때 사용합니다. #### 비유 - **교실에서 줄 간격 정렬**: 여러 줄의 책상이 있는 교실에서 줄 간의 간격을 설정하는 것과 같습니다. #### 예시 ```css .container {   display: flex;   flex-wrap: wrap; /* 여러 줄로 랩핑 */   height: 400px; /* 컨테이너 높이 설정 */   a...

m1 맥북에서의 파이썬 스레드 thread GIL

 Apple M1 칩을 사용하는 맥북에서 파이썬으로 사용할 수 있는 스레드 수는 몇 가지 요소에 따라 다를 수 있습니다. 여기에는 CPU 코어 수, 프로그램의 성격, 운영체제의 스케줄링 정책 등이 포함됩니다. ### Apple M1 칩의 스레드 처리 능력 1. **코어 구성**:     - M1 칩은 8개의 CPU 코어로 구성되어 있습니다. 이 중 4개는 고성능 코어(Performance cores)이고, 나머지 4개는 고효율 코어(Efficiency cores)입니다.      2. **스레드와 병렬 처리**:     - 파이썬의 기본 스레딩 라이브러리인 `threading` 모듈은 실제로 CPU 병렬 실행을 하지 않습니다. 이는 파이썬의 전역 인터프리터 잠금(Global Interpreter Lock, GIL) 때문입니다.     - 병렬 처리가 필요하다면, `multiprocessing` 모듈을 사용하는 것이 더 적합할 수 있습니다. 이 모듈은 각 프로세스가 별도의 인터프리터와 메모리 공간을 가지므로 GIL의 영향을 받지 않습니다. ### 파이썬으로 가능한 스레드 수 1. **I/O-bound 작업**:     - 파일 입출력, 네트워크 작업 등 I/O-bound 작업에서는 수백 개의 스레드를 사용할 수 있습니다. 이러한 작업은 GIL의 영향을 덜 받기 때문입니다.      2. **CPU-bound 작업**:     - 계산 집약적인 작업에서는 `multiprocessing` 모듈을 사용하여 코어 수에 맞게 프로세스를 분산시키는 것이 좋습니다. M1 칩의 경우 8개의 코어가 있으므로 최대 8개의 프로세스를 동시에 실행할 수 있습니다. ### 예제 다음은 I/O-bound 작업에서 스레드를 사용하는 간단한 예제입니다: ```python import threading def io_bound_task(): ...

openai api

퀵스타트 플레이그라운드에 생성되는 코드 바로 적용 안됨 키 넣어줘야함. env로 넣어도 되고 그냥 바로 넣어도 되고 https://platform.openai.com/docs/quickstart 토큰 수 계산 https://platform.openai.com/tokenizer 토큰 콜수 비용계산 사이트 여러 llm 가격비교 얼추 내가 손으로 계산한거랑 비슷하게 나오는거 보니 계산은 맞게 했는데 실제로는 더 비싸게 나옴 https://www.launchnow.pro/openai-chatgpt-api-pricing-calculator 내 티어 확인(rpm 제한 다름) https://platform.openai.com/settings/organization/limits 티어별 rpm 문서 https://platform.openai.com/docs/guides/rate-limits/rate-limits Azure OpenAI 라는 것도 있네 https://learn.microsoft.com/en-us/azure/ai-services/openai/overview#comparing-azure-openai-and-openai OpenAI와 동일한 모델을 실행하면서 Microsoft Azure의 보안 기능을 얻을 수 있습니다. Azure OpenAI는 프라이빗 네트워킹, 지역별 가용성 및 책임 있는 AI 콘텐츠 필터링을 제공합니다. 이거 댓글 읽어볼만함  ... In fact, “real” parallelism is not natively possible at all because of what’s called the Global Interpreter Lock 2 (the GIL) in python... -> GIL 때문에 스레드가 동시에 작동은 안되지만 스레드를 번갈아서 사용하게되어서 어쨌든 되기는 하는 듯? https://community.openai.com/t/can-one-assistant-run-concurrently-on-multiple-differe...

python 문자열 format 포맷팅

 파이썬에서 문자열 포맷팅을 사용하여 C 언어에서 %d와 같이 값을 삽입하는 방법이 있습니다. 여러 가지 방법이 있지만 가장 일반적으로 사용되는 방법은 다음과 같습니다: 1. **포맷 문자열 사용하기**: `format()` 메서드나 f-string을 사용하여 값을 삽입하는 방법입니다.    - **format() 메서드 사용**:      ```python      num = 10      text = "숫자는 {}입니다.".format(num)      print(text)      ```    - **f-string 사용** (Python 3.6 이상):      ```python      num = 10      text = f"숫자는 {num}입니다."      print(text)      ``` 2. **% 포맷팅 사용하기**: C 스타일의 포맷 문자열을 사용하여 값 삽입도 가능합니다.    ```python    num = 10    text = "숫자는 %d입니다." % num    print(text)    ``` 위 예제에서 `%d`는 정수를 대체할 위치를 나타내며, `% num`은 해당 위치에 들어갈 값을 제공합니다. 이러한 방법들은 각각의 장단점이 있으며, 파이썬의 버전 및 개인적인 코딩 스타일에 따라 선택할 수 있습니다. 최근 파이썬에서는 f-string이 가독성과 표현력 면에서 매우 유용하므로, 가능하다면 f-string을 사용하는 것이 권장됩니다. 여러 개의 값을 삽입하는 방법도 간단하게 설명해 드리겠습니다. 여러 개의 값을 삽입하는 경우...

mac 이미지 사이즈 조정하기

 mac 이미지 사이즈 조정하기 preview로 이미지 열어서 상단바 tools > adjust size

synology nas란

Synology는 네트워크 연결 스토리지(Network Attached Storage, NAS) 기기를 제조하는 회사입니다. NAS는 파일을 중앙에서 저장하고 네트워크를 통해 여러 사용자와 장치가 접근할 수 있도록 해주는 장치입니다. Synology의 NAS 장치는 사용하기 쉬운 인터페이스와 강력한 기능들로 잘 알려져 있습니다. 주요 기능은 다음과 같습니다: 1. **파일 공유 및 백업**: 네트워크를 통해 파일을 공유하고 백업할 수 있습니다. 2. **멀티미디어 서버**: 사진, 음악, 동영상 등을 스트리밍할 수 있는 멀티미디어 서버로 사용할 수 있습니다. 3. **데이터 보호**: RAID 구성, 자동 백업, 클라우드 백업 등을 통해 데이터를 안전하게 보호합니다. 4. **원격 액세스**: 인터넷을 통해 원격으로 NAS에 접근할 수 있습니다. 5. **애플리케이션 지원**: 다양한 애플리케이션을 설치하여 기능을 확장할 수 있습니다. 예를 들어, 웹 서버, 메일 서버, 비디오 관리 시스템(VMS) 등을 운영할 수 있습니다.

마우스 더블클릭 문제. 클릭이 풀렸다가 다시 클릭되는 문제.

마우스 몇번 떨어트려서 그런지 마우스가 더블클릭 문제.  클릭이 풀렸다가 다시 클릭되는 문제가 생겼는데 https://youtu.be/p5CB8QzJsDE?si=lzqHfgaStKdbxtCU 이 영상을 보고 좀 해결된거 같다 지켜봐야 알겠지만 뒤집에서 세번 내려치기

jupyter notebook package error

 jupyter 쓰고 대충 이런 문제였는데 Cannot import name ‘OpenAI’ from ‘openai’ 버전이 바뀌면서 패키지 내용이 좀 바뀌어서 방식이 바뀌어서 그런거였는데 업데이트 해도 업데이트가 안 되길래 헤맸는데 Jupyter 한번 껐다 켰더니 되더라.

final cut pro 클립 거꾸로 돌리기

 클립 선택 > 상단바에서 modify > Retime >Reverse Clip

final cut pro 오디오 클립 회색으로 뜨고 오디오 소리 안날때 작동안할 때

 final cut pro  오디오 클립 회색으로 뜨고 오디오 소리 안날때 작동안할 때 껐다 켰더니 해결됨 로딩에서 오류인듯

iphone Heic heif 사진 변환법

 아이폰으로 사진 찍으면 heic으로 저장되는데 캡쳐하면 Png로 저장된다.

gpt4 - marlin gpt3.5 dory

이미지
 <img alt="" data-original-height="192" data-original-width="774" height="79" src="https://blogger.googleusercontent.com/img/a/AVvXsEjW055m_YDdBiRovvS34knz8YrtINABey9-HdpfOLOUGApHBwsVA1Jo67TL-UXbnt3TfJbYlIsSSqj0MK52lYVY1QWD-OE0pnDCOI4SqkGEq0nhFqMZaHTWml9ZUF9qmIv82rBQ84ymJ8ASs4YWx2hsCNoGEqqVxMJnpO3CX4-sb_DDxm-w7zhlDWYus-JW" width="320" />

final cut pro 목소리 피치 변경

오디오 파일에(비디오라면 우클릭으로 detach audio)  effects의 audio에 pitch shifter 을 끌어다가 놓는다. 그리고 파라미터 클릭해서 조정하는데 mix 100%(안하면 원래 음이랑 같이들림) semitones 를 올리면 된다.

final cut pro green screen 크로마키 적용

배경 이미지랑 영상을 겹쳐둔다. 이미지가 밑으로 effect창을 킨다. green screen keyer를 끌어다가 영상에다가 넣는다 https://support.apple.com/ko-kr/guide/final-cut-pro/ver40b003bc/mac

gemini api 가격

  https://ai.google.dev/pricing 무료 기준 1.5 flash 15 RPM (requests per minute) 1 million TPM (tokens per minute) 1,500 RPD (requests per day) 1.5 pro 2 RPM (requests per minute) 32,000 TPM (tokens per minute) 50 RPD (requests per day) 1.0 pro 15 RPM (requests per minute) 32,000 TPM (tokens per minute) 1,500 RPD (requests per day)

deepl api 한달에 500000자까지 무료

https://www.deepl.com/ko/pro-api 괜찮아보이는데 DeepL API Free 특징: 모든 기능 사용 가능 DeepL REST API에 액세스 한 달에 500,000자까지 번역 용어집 1,000개(일부 언어만 해당) 언제든 Pro로 업데이트 가능

final cut pro 클립 길이 줄이기(자르지 않고 속도 빠르게)

 클립 선택해서 cmd+R 상단에 나오는 바 끝을 눌러 드래그 해서 길이를 조절하면 그것에 맞춰져서 속도가 자동 조절

tree traversal

 hierarchical: 하이얼아키컬 이라고 발음 https://skilled.dev/course/tree-traversal-in-order-pre-order-post-order

cloudflare worker vs page

 Cloudflare Pages와 Cloudflare Workers는 Cloudflare가 제공하는 서비스로, 모두 개발자들이 웹 콘텐츠를 효율적으로 배포하고 관리할 수 있도록 설계되었습니다. 그러나 이 두 서비스는 각기 다른 용도와 기능을 가지고 있습니다. 여기 각 서비스의 주요 차이점을 설명하겠습니다. ### Cloudflare Pages Cloudflare Pages는 주로 정적 웹사이트의 배포에 초점을 맞춘 서비스입니다. 정적 사이트 생성기(예: Hugo, Jekyll)로 만든 웹사이트 또는 단순 HTML, CSS, JavaScript 파일을 사용하는 사이트를 쉽게 배포하고 관리할 수 있습니다. - **목적**: 정적 웹사이트 호스팅과 배포. - **기능**:   - Git 저장소(GitHub, GitLab, Bitbucket)와 직접 통합하여 자동으로 웹사이트를 빌드하고 배포합니다.   - 무료 SSL 인증서를 자동으로 제공하여 HTTPS를 통한 보안 연결을 지원합니다.   - 전 세계 Cloudflare의 CDN을 통해 빠르게 콘텐츠를 제공합니다.   - 배포할 때마다 새 URL을 생성하여 미리보기와 테스트가 용이합니다. ### Cloudflare Workers Cloudflare Workers는 서버리스 함수를 글로벌 네트워크에서 실행할 수 있는 서비스로, 동적 콘텐츠 생성, API 요청 처리, 웹 요청 수정 등에 사용됩니다. - **목적**: 서버리스 컴퓨팅 및 웹 요청 처리. - **기능**:   - 사용자 정의 코드를 Cloudflare의 글로벌 네트워크에서 실행하여, 어느 위치에서나 낮은 지연시간으로 응답할 수 있습니다.   - JavaScript, Rust, C, C++ 등 여러 언어를 지원합니다.   - 강력한 API와 통합 기능을 제공하여, 외부 API와의 상호작용이나 웹사이트의 요청/응답을 동적으로 조작할 수 있습니다.   - 다양한 Cloudflare의 ...

[mac] m4a -> wav

 music > setting > files > import settings > import using wavfiles 로 설정한 후 music 에서 음원 선택 후 file > convert > create wav version  변환 파일 finder의 music > media  쪽에서 찾으면 됨.

[mac] voice memo 파일 위치

Voice Memos app > under All Recordings section > right click the file > Services > Open with Finder.

js sort

 JavaScript에서 `sort` 메서드는 배열을 정렬하는 데 사용됩니다. `sort` 메서드는 기본적으로 요소들을 문자열로 변환한 후 유니코드 값에 따라 정렬합니다. 이를 커스터마이즈하려면 비교 함수를 전달할 수 있습니다. ### 기본 사용법 ```javascript let numbers = [4, 2, 5, 1, 3]; numbers.sort(); // [1, 2, 3, 4, 5] ``` ### 비교 함수 사용 숫자나 사용자 정의 기준으로 정렬하려면 비교 함수를 전달합니다. #### 숫자 정렬 ```javascript let numbers = [4, 2, 5, 1, 3]; numbers.sort((a, b) => a - b); // 오름차순 [1, 2, 3, 4, 5] numbers.sort((a, b) => b - a); // 내림차순 [5, 4, 3, 2, 1] ``` #### 문자열 길이 기준 정렬 ```javascript let strings = ["short", "medium", "longest", "tiny"]; strings.sort((a, b) => a.length - b.length); // ["tiny", "short", "medium", "longest"] ``` ### 정렬 안정성 ES2019 이후, JavaScript의 `sort` 메서드는 안정적인 정렬을 보장합니다. 즉, 같은 값을 가진 요소들의 순서는 정렬 후에도 유지됩니다. ### 주의 사항 - `sort` 메서드는 원본 배열을 직접 변경합니다. - 비교 함수가 없으면 기본적으로 문자열 유니코드 순서로 정렬됩니다. 이러한 기본과 비교 함수를 활용하여 다양한 방식으로 배열을 정렬할 수 있습니다.

Map vs Object

JavaScript의 `Object`와 `Map`은 둘 다 키-값 쌍을 저장하는 자료구조이지만, 몇 가지 중요한 차이점이 있습니다. ### Object - **키 타입**: 문자열 또는 심볼만 키로 사용할 수 있습니다. - **순서**: 키의 순서는 삽입 순서를 보장하지 않습니다. - **성능**: 주로 간단한 구조의 데이터를 저장할 때 사용됩니다. - **기본 메서드**: `hasOwnProperty`와 같은 기본 메서드를 가지고 있습니다. ### Map - **키 타입**: 모든 값을 키로 사용할 수 있습니다 (객체 포함). - **순서**: 삽입된 순서를 보장합니다. - **성능**: 대량의 데이터 및 빈번한 삽입/삭제에 더 최적화되어 있습니다. - **메서드**: `size`, `set`, `get`, `delete`, `has` 등 다양한 메서드를 제공합니다. ### 예제 #### Object ```javascript let obj = {}; obj['key'] = 'value'; console.log(obj['key']); // "value" ``` #### Map ```javascript let map = new Map(); map.set('key', 'value'); console.log(map.get('key')); // "value" ``` ### 요약 - `Object`는 문자열/심볼 키, 삽입 순서 비보장, 간단한 데이터 저장에 적합. - `Map`은 모든 키 타입, 삽입 순서 보장, 대량 데이터/빈번한 삽입/삭제에 적합.  ### `Map` 메서드 1. **`set`**: 키-값 쌍을 추가하거나 업데이트합니다.    ```javascript    let map = new Map();    map.set('key1', 'value1');    ``` 2. **`get`**: 키에 해당하는 값...

노트북 비프음 한번 나는 이유

 컴퓨터를 켤 때 나는 한 번의 비프음은 일반적으로 "POST"라고 불리는 전원 켜기 자체 진단 과정이 성공적으로 완료되었음을 나타냅니다. POST는 Power-On Self-Test의 약자로, 컴퓨터의 기본 하드웨어 요소들이 제대로 작동하는지 확인하는 절차입니다. 비프음은 컴퓨터의 메인보드에서 내장된 스피커를 통해 발생하며, 이는 CPU, 메모리, 비디오 카드 등 주요 부품들이 정상적으로 작동하고 있다는 신호입니다. 따라서 한 번의 비프음은 좋은 징조로, 시스템이 정상적으로 시작되고 있다는 것을 의미합니다. 원래 비프음이 나지 않다가 갑자기 나기 시작했다면 몇 가지 가능성을 고려해 볼 수 있습니다: 1. **바이오스 설정 변경**: 최근에 바이오스 설정을 변경했다면, 비프음 설정이 활성화되었을 수 있습니다. 바이오스에 접근하여 비프음과 관련된 설정을 확인해 보세요. 2. **하드웨어 추가 또는 변경**: 새로운 하드웨어를 추가하거나 기존 하드웨어를 변경한 경우, 시스템이 새로운 구성을 인식하고 그에 따라 비프음을 내는 것일 수 있습니다. 3. **하드웨어 문제**: 비프음이 예고 없이 갑자기 시작된 경우, 이는 때때로 하드웨어 문제를 알리는 신호일 수 있습니다. 특히 비프음이 한 번 이상 반복되거나 다른 패턴을 보이는 경우, 문제가 있는 하드웨어 구성 요소를 진단하는 데 도움이 될 수 있습니다. 4. **케이블 접속 문제**: 내부 케이블이 느슨해지거나 접촉이 제대로 되지 않을 경우, 비프음이 발생할 수 있습니다. 컴퓨터 내부를 점검하여 모든 케이블이 제대로 연결되어 있는지 확인하세요. 위의 가능성을 확인해 보시고, 문제가 지속된다면 추가적인 진단을 위해 전문가의 도움을 받는 것도 고려해 보세요. CMOS 배터리를 교체한 후 비프음이 시작되었다면, 몇 가지 원인이 있을 수 있습니다: 1. **바이오스 설정 초기화**: 배터리를 교체하면 바이오스 설정이 초기화될 수 있습니다. 이 경우, 기본 설정이 복원되면서 비프음 설정이 활성화되었을 수 있...

netlify -> cloudflare pages 옮김.

이미지
 여기는 bandwidth가 무료래서 옮겼다. 분기 그냥 메인이고 (나중에 배포 분기를 따로 만들어야겠다.) 빌드 명령 npm run build 로 안되서 왜인가 했는데 이전에 Netlify 로 배포하면서 내가 명령어 설정을 바꿨나 기억이 잘 안난다. <img alt="" data-original-height="432" data-original-width="958" height="144" src="https://blogger.googleusercontent.com/img/a/AVvXsEhE05eKnC4FKB5F0bIeiOxFE8rNJ54HILD8S-ZOcuAQrZIMiJoAQLb0cKzUDVa6mhGWtuXK_wyBKdRS3YacE-XYXJeFdXHzML0NRUVS2n6gbF_B0MFfj2MuxZoKIn5KYW87TfkOcBZ79gHqTWhhYg4MvYyyCFg6s4NKF0Hty5vKKbAXliIox--PBWoesn8Y" width="320" /> 배포도 쉽게 되고 훨씬 좋은 듯 cloudflare pages 설명 https://pages.cloudflare.com/

final cut pro 사용시 용량 차지 문제 해결

 final cut pro 의 실시간 렌더링 기능 때문에 용량이 많이 차지하는 문제가 생긴다. movies(동영상)> fcpbundle 확장자의 파일로 들어가서(show package content)> render files > high quality media 안의 파일들을 삭제하면된다. 실시간 렌더링 기능 자체를 끌 수도 있고 final cut pro 자체에서도 삭제가 가능한듯 아래 내용 참고 --- Final Cut Pro에서 실시간 렌더링 기능은 프로젝트 작업 중 실시간으로 변화하는 편집 내용을 렌더링하여 시각적으로 확인할 수 있도록 도와줍니다. 그러나 이 기능은 배경 렌더링과 연계되어 디스크 공간을 많이 사용할 수 있습니다. 이 기능을 끄려면 다음 단계를 따라 하시면 됩니다: ### 배경 렌더링 끄기 1. **Final Cut Pro 열기**: 프로그램을 열고 프로젝트를 로드합니다. 2. **Preferences 접근**: 상단 메뉴에서 `Final Cut Pro` 메뉴를 선택한 후 `Preferences` (단축키: `Command + ,`)를 클릭합니다. 3. **Playback 탭 선택**: Preferences 창에서 `Playback` 탭을 선택합니다. 4. **Background Render 비활성화**:     - `Background Render` 옵션의 체크박스를 해제합니다. 이 설정을 비활성화하면 Final Cut Pro가 사용자가 명시적으로 요청할 때만 렌더링을 수행하게 됩니다. ### 추가적인 디스크 공간 관리 - **렌더 파일 삭제**: 기존에 생성된 렌더 파일들이 많이 쌓여 있다면, 이 파일들을 삭제하여 공간을 확보할 수 있습니다. `File` > `Delete Generated Library Files` 메뉴를 통해 렌더 파일, 프록시 파일, 최적화된 미디어 등을 선택적으로 삭제할 수 있습니다.    - **프록시 미디어 사용**: 고해상도 미디어의 렌더링으로 ...

netlify 100gb 트래픽 제한인데 디도스 받으면 요금 나올 수 있음

이미지
netlify 100gb 트래픽 제한인데 디도스 받으면 자동 정지 이런 기능은 없어서 요금 폭탄 나올 수 있다고 해서  잠시 내릴까 고민, 옛날 꺼는 싹 지움 진짜 조금이지만 접속한 사람이 있어서 고민. 어떻게 온거지  

final cut pro 공식 사용 설명서

https://support.apple.com/ko-kr/guide/final-cut-pro/welcome/mac 흔들림 보정 https://support.apple.com/ko-kr/guide/final-cut-pro/verbacf92b/mac

react native 환경 세팅

  https://reactnative.dev/docs/environment-setup?guide=native&platform=android cli 설치하는 거 권장 안하고 npx로 하는 걸 권장 npx react-native@latest init AwesomeProject 다른거 다 있어서 이걸로 프로젝트 바로 생성

Final cut pro 자료

 https://youtu.be/J8-91kpT4wU?si=G2FR0CNx6wn7QRtG