10월, 2024의 게시물 표시

final cut pro keyframe 사용

final cut pro keyframe 사용 애니메이션 포인트잡아서 하는거는 속성마다 할 수 있고 타임라인에서 클립 잡아서우클릭해서 비디오 애니메인션으로 자세히 볼 수 있다 position 속성이 ease in out이 지원되지 않는다고.. 놀랍다.

춤추는 선인장 분해

   Teardown of the Dancing Talking Cactus Mimicking Toy - Desk of Ladyada https://youtu.be/Yn7jXo6lbsg?si=iyRq-dG7viWYvVWm

Making oddly satisfying LED magnet tiles

  https://youtu.be/L2J_eNgjxio?si=eDPUd-5hdTIGiEmQ

구글 개발자 계정 인증

 구글 개발자 계정 인증하라고 이메일이 왔다. 안하면 내 계정 삭제 해버린다고 이름 주소지 등록하고. 주소지랑 핸드폰 번호 인증 했는데 은행 명세서 카드명세서 이런 거 내라고 하는데 주민등록 등본도 받는다는 말이 있어서 그걸로 했다. 주소지만 일치하면 되는 거 같아서 주요 정보는 다 가리고 냄.  이름 legal name 쓰라고 하던데 영어로 쓸까 고민하다가 그냥 한글로 씀. 정부 24 가입후 주민등록 쪽 가서 발급하고 pdf로 출력. 그 파일로 인증함. ** +82로 번호 쓸때는 010 에서 0이 빠짐에 유의 +82 10... 오 승인 됐다 2일 걸렸네 월요일 저녁에 해서 수요일 오전에 승인남

React wysiwyg prose mirror

# draft js https://draftjs.org/docs/advanced-topics-issues-and-pitfalls/ 한국어가 잘 안되는 에러가 있음. # prose mirror https://prosemirror.net/docs/

맥북에서 윈도우 키보드 매핑 karabiner

이미지
카라비너 키보드 매핑 변경  맥북에서 윈도우 키보드 쓸 때 매핑을 바꾸고 싶을 때 사용 키보드 별로 매핑 설정 할 수 있다. https://karabiner-elements.pqrs.org/ 여기서 설치하고 karabiner-elements 앱을 열어서 버튼 매핑을 설정하는데 아무리 해도 안되서 karabiner 이벤트 뷰어 열어서 버튼 이벤트 확인해서 변경했다. ()[ ] 결과적으로는 이렇게 됨.

코틀린 기본

 ### ✅ **안드로이드 개발할 때 Kotlin 문법을 얼마나 깊이 알아야 할까?** **결론부터 말하면,** 안드로이드 개발을 시작하는 데 **Kotlin의 모든 고급 문법을 알 필요는 없어!**\ 하지만 **기본 문법 + 실용적인 기능을 잘 이해하면 개발이 훨씬 편해지고 코드 품질도 좋아져.** * * * * * ✅ **1\. 필수적으로 알아야 하는 Kotlin 문법 (안드로이드 개발 기본)** ---------------------------------------------- 다음 문법은 **안드로이드 개발에서 자주 쓰이는 Kotlin 문법이니까 반드시 익혀야 해!** ### 🔹 **1️⃣ 변수 및 데이터 타입 (`val`, `var`, `nullable`)** ``` val name: String = "Alice"  // 불변 변수 var age: Int = 25           // 가변 변수 var nullableText: String? = null  // null 가능 변수 ``` ✔ **`val`(불변) vs `var`(가변) 차이**\ ✔ **nullable 타입(`?`)과 null 체크 (`?.`, `!!`)** → `TextView`나 `Intent`에서 자주 사용 ### ✅ **코틀린의 Nullable 타입(`?`)과 Null 체크 (`?.`, `!!`)** 코틀린에서는 **Nullable 타입과 Null 체크가 필수적**이야! 안드로이드 개발에서는 **`TextView`, `Intent`, `Bundle`, `SharedPreferences` 등에서 Null 처리가 자주 필요함.** * * * * * ✅ **1\. Nullable 타입 (`?`)** --------------------------- ✔ 코틀린에서는 기본적으로 **null 값을 허용하지 않음.** ✔ `?`를 붙이면 **null을 허용하는 변수**가 됨. ``` var name: Strin...

한글 데이터

국립국어원 메인사이트 여기 여러 국립국어원에서 하는 사업이 있다. https://www.korean.go.kr/front/main.do   한국어기초사전 기본 한글 학습자를 위한 한글 단어를 5만여개 선별 https://krdict.korean.go.kr/statistic/dicStat 우리말샘: 참여사전 https://opendict.korean.go.kr/main 한국어학습자 말뭉치 나눔터: 인공지능 데이터 용도? https://kcorpus.korean.go.kr/

python json 다루기

 Python에서는 `json` 모듈을 사용하여 JSON 데이터를 다룰 수 있습니다. 이 모듈을 사용하면 JSON 형식의 문자열을 파이썬의 데이터 타입으로 변환하거나, 파이썬의 데이터 타입을 JSON 형식의 문자열로 변환할 수 있습니다. 기본적으로 사용하는 함수는 다음과 같습니다: 1. `json.loads()`: JSON 형식의 문자열을 파이썬 데이터 타입으로 변환 (parsing) 2. `json.dumps()`: 파이썬 데이터 타입을 JSON 형식의 문자열로 변환 (encoding) 3. `json.load()`: 파일에서 JSON 형식의 문자열을 읽어서 파이썬 데이터 타입으로 변환 4. `json.dump()`: 파이썬 데이터 타입을 JSON 형식으로 파일에 저장 아래에 각각의 예시를 보여드릴게요. ### 1. `json.loads()`와 `json.dumps()` 사용 예시 ```python import json # JSON 문자열을 파이썬 데이터 타입으로 변환 (Parsing) json_str = '{"name": "John", "age": 30, "city": "New York"}' python_data = json.loads(json_str) print(python_data) # 출력: {'name': 'John', 'age': 30, 'city': 'New York'} # 파이썬 데이터 타입을 JSON 문자열로 변환 (Encoding) python_dict = {"name": "Alice", "age": 25, "city": "London"} json_data = json.dumps(python_dict) print(json_data) # 출력: {"name": ...

터미널 프로그램 만들기 python

 터미널 프로그램을 만들고, 이를 명령어로 부를 수 있게 하는 과정은 주로 다음과 같은 단계를 거칩니다. 예제를 통해 Python을 사용해 간단한 CLI(Command Line Interface) 프로그램을 만들고, 이 프로그램을 터미널에서 명령어로 실행할 수 있도록 하는 방법을 설명해 드릴게요. ### 1. 터미널 프로그램의 기본 개념 이해 터미널 프로그램(명령줄 프로그램)은 터미널에서 명령어로 실행할 수 있는 프로그램을 말합니다. 이를 만들려면 다음 두 가지가 필요해요: 1. **프로그램 코드 작성**: 명령어를 입력하면 수행할 작업을 정의하는 코드 작성. 2. **시스템 경로 설정**: 작성한 프로그램을 터미널에서 명령어로 호출할 수 있도록 설정. Python으로 간단한 CLI 프로그램을 만들어보고, 이를 명령어로 호출하는 과정까지 설명하겠습니다. ### 2. CLI 프로그램 작성 Python을 이용해 간단한 CLI 프로그램을 작성해보겠습니다. 예제로 `hello`라는 명령어를 입력하면 인사말을 출력하는 프로그램을 만들어 볼게요. 1. **Python 프로그램 작성**: `hello.py`라는 파일을 생성하고, 아래와 같이 작성합니다.    ```python    # hello.py    import argparse    # ArgumentParser를 통해 명령행 인자를 설정합니다.    parser = argparse.ArgumentParser(description="Simple CLI example")    # --name 옵션을 추가하여 사용자로부터 이름을 입력받도록 설정    parser.add_argument('--name', type=str, help='Your name', default='World')    # 입력받은 인자들을 args로 저장    args = parser....

DFS에서 재귀를 사용하는 방법 vs 스택을 사용하는 방법

DFS에서 재귀를 사용하는 방법 vs 스택을 사용하는 방법 DFS(Depth-First Search)에서 **재귀를 사용하는 방법**과 **스택을 사용하는 방법**은 사실상 같은 논리를 구현하지만, 사용하는 스택의 종류가 다를 뿐이에요: 1. **재귀를 사용하는 DFS**:      재귀 호출은 시스템 스택을 이용해 함수 호출 정보를 저장해요. 이 경우, 재귀 함수가 호출될 때마다 시스템 스택에 함수 호출이 쌓이고, 함수가 종료되면 스택에서 빠져나가는 방식으로 동작해요. 즉, **시스템의 호출 스택(Call Stack)**을 직접 이용하는 거죠. 2. **스택을 사용하는 DFS**:      이 방법은 명시적으로 `stack` 자료구조를 사용하여 구현해요. 우리가 직접 스택을 선언하고, 노드를 추가(push)하고 제거(pop)하면서 DFS를 수행하는 거예요. 재귀 없이 반복문(while)을 사용하여 스택이 빌 때까지 탐색을 진행하죠. 정리하자면, **재귀 DFS는 시스템 스택을 사용하는 DFS**이고, **명시적 스택을 사용하는 DFS는 우리가 직접 관리하는 스택을 사용하는 DFS**라는 차이가 있을 뿐, 알고리즘의 동작 방식은 동일합니다. 두 방법의 차이점으로는 다음이 있어요: - **시스템 스택(재귀)**은 깊이가 깊어질수록 스택 오버플로우(Stack Overflow) 위험이 커질 수 있어요. 보통 C/C++ 같은 언어에서는 재귀 깊이가 수천~수만 이상이 되면 스택 오버플로우를 발생시킬 수 있죠. - **명시적 스택**을 사용하면 스택 크기를 코드에서 제어할 수 있기 때문에, 매우 깊은 트리 구조에서도 상대적으로 안전하게 사용할 수 있어요. 따라서, **스택의 크기와 깊이가 중요한 문제**에서는 재귀보다 명시적 스택을 사용하는 것이 더 안전할 수 있습니다. ## 재귀는 항상 지양해야 하나? 그렇다고 재귀를 무조건 피할 필요는 없어요. 상황에 따라 재귀와 명시적 스택(반복문) 중 어떤 것을...