# utils

Penta SATA HAT
DietPi 설치 문제 1) No module 'mraa' mraa 설치 https://github.com/brian541/mraa/blob/master/docs/building.md OLED https://www.the-diy-life.com/add-an-oled-stats-display-to-raspberry-pi-os-bullseye/ OMV6 설치

TIL 0323
🏷️ [목차] library폴더의 utils 파일 관리 컴포넌트 재사용성 수정한 값만 바꿔주기 defaultValue와 state defaultValue를 넣어도 생기는 다음 문제점 defaultValue를 state의 초깃값으로 넣는다면 변경된 부분만 mutation 날려주기 🖇️ [출처 및 참조] 코드캠프 💡 library폴더의 utils 파일 관리 > 파일을 분리해 관리하는 것은 협업과 유지보수에 있어 정말 중요한 요소 이다! 프로젝트 디자인에 수정사항이 생기면 styles 파일로, api 수정사항이 생겼을 경우에는 queries파일을 확인하면 되기 때문에 수정이 좀 더 용이하다 폴더와 파일 이름은 회사마다 다르며 공통적으로 쓰이는 함수를 한 곳에 저장하여 협업하는 사람들과 함께 사용하는 방법도 있다.
Symbolic-link in Ubuntu
Symbolic link in Ubuntu Create symbolic link Ex) libexample.so.3.1.0 파일에 대한 심볼릭 링크로 libexample.so 를 생성하고함 Remove symbolic link Ex) Checked symbolic link ls commend stat commend
Make tar file module with Python
Make tar file module with Python 작성 개요 작업 공간 내에 여러 파일을 압출 할 경우 Python glob 모듈을 사용하여 여러 폴더를 각자 폴더명에 맞게 tar 압축 진행 Script filename.tar filename.tar.gz
Unzip using Python
Python unzip module with 한글 작성 개요 Open dataset를 다운받아 사용할 때 여러개의 zip 파일이 존재할 경우 압축 해제하는게 번거롭다. 데스크탑과 같이 화면이 출력되는 경우에는 불편함이 없지만, 서버에서 작업할 경우 일일이 unzip을 해야하는 것 같아 그냥 python module을 작성하여 사용했다. unzip module python에서 작성한 unzip module이다. 6번째 line에서 한글 파일 이름이나, 폴더의 경우 unzip후 파일 이름이 깨져서 추출될 수 있다. 이를 방지하기 위해 encode, decode를 진행한다. 전체 코드 사용 방법은 다음과 같다 Dependency tqdm glob RUN python unzip.py —path zipsourcepath —extra dest_path

[TIL] 001. fetch 함수 재활용
2023. 01. 08 (일) 업데이트 - 2023. 02. 04 (토) 백엔드와 통신하는 fetch 함수를 재사용이 가능한 형태로 구현하였다. 함수의 결과값으로 response를 return하여 사용하는 곳에서 변수로 저장한 뒤 다음 로직을 상황에 따라 다르게 작성해준다.

[Javascript] 자바스크립트 글자수 제한 및 대체하기(...)
javascript에서 특정 글자수가 넘어가면 화면의 UI가 깨지는 경우가 발생하는데, 그럴때 아래와 같이 제한한 글자수를 넘어가면, ...으로 대체한다.
화면캡처 ( mac & window )
https://www.snipaste.com/download.html F1 : 원하는 영역을 선택하면 캡쳐가 바로 되면서 편집 수정 할 수 있다 F3 : 원하는 영역을 복사하면 해당 텍스트 내용이 캡쳐가 된다. 기능 : 편집 수정 고정 확대 축소 아아아주 유용!!

BE_[Node] API Architecture & Layered Pattern
1. API Architecture > 요약 코드의 아키텍처(architecture) : 코드의 구조를 더 체계적으로 그리고 효율적으로 구현하는 것. 아키텍쳐 적용의 중요성 : 확장성, 재사용성, 유지 보수 가능성, 가독성, 테스트 가능성 관심사 분리 : 각 코드의 역할을 독립적으로 분리할 필요가 있다. 코드 구조의 중요성 확장성, 재사용성, 유지보수 가능성, 가독성, 테스트 가능성 관심사 분리, Separation Of Concerns 주된 역할과 집중해야할 기능을 분리하여 서로 다른 기능을 하는 파일은 신경을 쓰지 않도록 하는 것 역할에 대한 분리 (ex) 회원가입 시 서버의 역할 분리 전/후 로 설정하고 그 안에 레포지토리(.git 디렉토리) 생성 git config user.name 'codeit' : 현재 사용자의 아이디를 'codeit'으로 설정(커밋할 때 필요한 정보) git config user.email 'teacher@codeit.kr' : 현재 사용자의 이메일 주소를 'teacher@codeit.kr'로 설정(커밋할 때 필요한 정보) git add [파일 이름] : 수정사항이 있는 특정 파일을 staging area에 올리기 git add [디렉토리명] : 해당 디렉토리 내에서 수정사항이 있는 모든 파일들을 staging area에 올리기 git add . : working directory 내의 수정사항이 있는 모든 파일들을 staging area에 올리기 git reset [파일 이름] : staging area에 올렸던
Tmux 사용하기
로컬이나 ssh등을 이용해서 학습시키거나 데이터를 다운받을 때, 예기치 않게 종료되거나 연결이 끊어지면... 정말 ㅂㄷㅂㄷ... 꼼꼼한 성격이라고 자부하며 tmux를 안쓰려고 버텼지만 몇번 쓰다보면 신경쓸 거리가 조금은 줄어든다. Tmux : 돌발상황에도 코드 실행이 중단되지 않도록 해주는 장점이 있고, 여러개의 터머널을 생성 및 관리할 수 있는 terminal multiplexer 사전 지식 tmux를 실행하면 session, window, pane을 알고 있는게 좋다. session: tmux의 가장 큰 실행단위 window: session을 구성하며, chrome에서의 탭이라고 생각해도 좋다. pannel: window를 구성하며, 화면상에서 분할하여 사용할 수 있다. 일단 머리가 복잡하다면 그냥 session이 우리가 일반적으로 보는 terminal창이라고 생각하자! 설치 리눅스 macOS Tmux Command

Mac에서 NAS로 포트포워딩하기
공유기에 NAS를 물려놓고 Mac에서 접속하여 사용 중이다. 문제는 WiFi를 통해서 데이터를 이동하다보니 너무 느리다. 주로 집에서 사용하기 때문에 Mac에 이더넷 포트로 직접 물려서 사용하는게 빠를 것 같았다. Mac에 남아있는 이더넷 포트를 사용하여 NAS를 연결하려고 이리저리 정보를 찾아 해결한 내용을 정리하였다. '인터넷 공유' 사용하기 시스템 환경설정에서 공유를 선택한 뒤, 연결 공유는 Wi-Fi로 다음 사용에는 이더넷을 선택한다. <img src="https://images.velog.io/images/seareale/post/74253741-2870-4cd9-b0fb-15bf36f6619a/ima

scrcpy를 사용하여 안드로이드 모바일 기기를 미러링하기
직업 특성상 모바일 기기를 조작해가며 테스트해야 하는 상황들을 자주 직면하게 된다. 안 그래도 자세가 엉망인데 모바일 기기를 다뤄가며 업무 수행할 때는 유독 심하게 자세가 망가져 목과 어깨에 통증이 수반된다. 아마 일하는 나의 모습은 이러하겠지…. 아무튼 조금이라도 올곧은 자세를 유지하고자 모바일 기기의 화면을 PC에 미러링해서 활용할 수 있는 방법을 찾아보았다. 물론 Android Studio에서 제공하는 Emulator를 사용해도 되지만, Emulator 자체가 매우 무겁기도 하고 내 테스트 기기에 셋팅되어있는 것들을 완벽히 이관할 수 없어서 미러링으로 해결하기로 했다. 결과적으로 내가 선택한 것은 scrcpy 이다. low latency, low startup time, non-intrusivenes

tree 로 디렉토리 구조 시각화하기
블로그 포스팅을 하다보면 디렉토리 구조를 시각화해야하는 상황들이 생겨난다. 그래서 찾아보니 tree 라는 녀석을 사용하면 매우 간편하게 시각화 할 수 있었다. 1. brew로 인스톨 2. 터미널에서 tree 로 디렉토리 시각화 결과
AppsScript - 스프레드시트로 슬랙 웹훅 전송
STEP 1. 슬랙 채널에 웹 훅 연동 1-1. 웹 훅을 수신하고자 하는 슬랙 채널을 선택하고 해당 채널에 앱을 추가한다. (링크) STEP 2. 웹 훅 URL 발급 2-1. 추가된 채널의 웹 훅 URL을 확인하여 따로 저장한다. STEP 3. 스프레드 시트로 웹 훅 보내기 3-1. 구글 스프레드 시트의 Apps Script 에서 아래 코드를 붙여넣어 테스트한다. STEP 4. 결과 확인 ![](h
AppsScript - 스프레드시트로 HTML 표 만들어 메일 전송
STEP 1. HTML 구조 추출하기 1-1. 구글 스프레드 시트를 활용하여 보내고자 하는 표를 만들고 메일에 첨부하여 발송한다. 그 후 Gmail 받은 편지함에서 메일을 선택하여 원본 보기를 누른다. 1-2. 원본 소스에서 "Content-Type: text/html;" 을 찾은 후 해당 문구 기준으로 아래에 위치한 HTML 코드를 복사해온다. 이때 주의 사항으로는 맨 밑에 위치한 "—XXXXXXXXXXXX" 이 부분은 제거한다. 1-3. 복사한 코드는 디코딩하는 과정을 거친다. 첨부된 URL 에 접속하여 Encode