기본 모드 모드 전환 방법 키설명iInsert 모드 (커서 위치)IInsert 모드 (줄 맨 앞)aInsert 모드 (커서 다음)AInsert 모드 (줄 맨 뒤)oInsert 모드 (아래 새 줄)OInsert 모드 (위에 새 줄)EscNormal 모드로 돌아가기Ctrl+[Normal 모드로 (Esc 대체)vVisual 모드 (문자 단위)VVisual 모드 (줄 단위)Ctrl+vVisual Block 모드:Command 모드 이동 (Motions) 기본 방향키 키설명h왼쪽j아래k위l오른쪽w다음 단어 시작W다음 단어 시작 (공백 기준)e다음 단어 끝E다음... Continue Reading →
임베디드 기사 실기 기출문제 확장판 (2015-2023년)
임베디드 기사 실기 기출문제 확장판 (2015-2023년) 본 문서는 2015년부터 2023년까지의 임베디드 기사 실기 기출문제를 주제별로 분류하고, 내용을 검증·수정·확장한 자료입니다. 📋 목차 메모리 관련 컴파일러 및 링커 주소 지정 및 데이터 표현 리눅스 파일 시스템 부팅 및 시스템 초기화 소프트웨어 개발 방법론 네트워크 프로그래밍 커널 관련 프로세스 및 스레드 동기화 기법 메모리 관리 디바이스 드라이버 UML... Continue Reading →
무료 온프레미스 칸반보드 + 업무관리 도구 탐색기
개인이나 팀에서 무료로 사용할 수 있는 온프레미스 칸반보드 솔루션들을 알아봤습니다. Notion을 사용 중이지만, 자체 서버에서 운영하면서 API도 제공하는 도구들을 찾아보았습니다. 오픈소스 칸반보드 옵션들 Wekan MIT 라이선스 오픈소스 Trello 클론으로 UI가 매우 유사 Docker로 간편 설치 REST API 제공 카드 댓글, 라벨, 체크리스트 등 기본 기능 제공 실시간 업데이트 지원 특징: 심플하고 가벼우며 Trello에서 데이터 마이그레이션... Continue Reading →
Double CSRF Protection
토큰 + 쿠키 사용하는 방법 토큰만 사용할 경우 특정 웹페이지 접근 토큰 발행 요청 이 경우 토큰이 유효한지 서버에서 정보를 갖고 있어야 함 쿠키만 사용할 경우 토큰하고 차이 크게 없음 저장하는 위치가 쿠키일 뿐 토큰은 페이지 떠나면 사라지지만 쿠키는 안 사라짐 CORS 활성 상태면 뚫림 두 개를 사용한 방법 서버에서 토큰이 유효한지 정보 갖고 있을... Continue Reading →
Docker Compose와 Docker Swarm 요약
Docker Compose와 Docker Swarm 요약 1. 개발 및 배포 흐름 개발 단계 docker-compose.yml 파일을 작성하여 여러 컨테이너(서비스)를 정의하고, 로컬 개발 및 테스트 환경에서 사용. 배포 단계 Swarm에 맞는 설정(deploy 섹션, replicas, placement 등)을 Compose 파일에 추가/수정. Swarm 클러스터에서 docker stack deploy -c docker-compose.yml <스택이름> 명령으로 배포. 2. Compose와 Swarm의 차이 Compose: 단일 서버에서 여러 컨테이너를 쉽게 관리. Swarm: 여러 서버(노드)에 컨테이너를 분산·복제하여... Continue Reading →
아프리카TV와 치지직 그리드 앱 비교 (2024.5.5 기준)
네이버 치지직이 5월부터 그리드를 적용해서 아프리카TV와 동작 방식이 어떻게 다른지 비교를 해봤다. 아프리카 TV 1. 설치 프로그램 불필요한 기능은 추가로 설치하지 않음, 7.7MB로 작은 용량만 소모. 해당 프로그램 하나만 설치를 요구함 2. 시작 프로그램 윈도우 시작 프로그램에 afreecatvpackage.exe가 추가됨. PC를 켜는 즉시 자동 시작이며, "사용 안 함"으로 설정해 줘야만 시작하지 않음. 시작 프로그램으로 사용하지 않아도... Continue Reading →
tflite model maker with docker
Tensorflow Lite Model Maker로 커스텀 모델을 만들기 위해 설치하는 과정에서 많은 트러블이 발생. 어떤 문제가 발생했고 이 문제를 해결하기 위한 방법을 소개한다. Trial 첫 번째 시도 환경 AMD64(X64) Windows 10 Python 3.8.3 설치 과정 pip install tflite-model-maker 문제점 아래와 같은 오류가 발생함 ERROR: Cannot install flax because these package versions have conflicting dependencies. The conflict... Continue Reading →
라즈베리 파이 5 USB로 SSH 하기(USB 이더넷)
이전에 포스팅한 자료에 5까지 가능하다고 썼지만 라즈베리 파이 5의 경우 한동안 지원을 하지 않았다. 여기저기서 자료를 찾아 여러가지 세팅을 해야 했지만 이 글을 쓰는 시점의 Raspberry pi OS 최신 버전인 Bookworm부터 업데이트만 해주면 사용할 수 있다. 사용 방법은 아래와 같다 Raspberry Pi OS 12(bookworm)버전 이상 설치 - 어짜피 라즈베리 파이 5는 bookworm부터 사용 가능 g_ether... Continue Reading →
UnhandledException에 대한 대처방법
UnhandledException에 속하는 Exception들은 대부분의 다른 것들과 달리 try..catch문에 의해 걸러지지 않고 바로 프로그램을 종료시켜 버린다. UnhandledException은 시스템 자원이나 커널 쪽의 문제이기 때문에 프로그램이 계속 운영할 수 없는 상황인 경우들이기 때문에 종료되는 것을 막지 못하며 막더라도 문제를 발생시킨다. 이 UnhandledException을 해결하기 위한 몇 가지 대처 방법을 C# 기준으로 소개한다. 대표적인 UnhandledException 자주 볼 수 있는 UnhandledException으로는... Continue Reading →
MediaWiki 슬래시 포함 제목 REST 404 에러 관련 해결 방법
MediaWiki에서 슬래시가 들어간 제목의 문서에 접근할 때 "Error contacting the Parsoid/RESTBase server (HTTP 404)"오류와 함께 진입이 되지 않는 경우 해결방법에 대해 소개한다. 원인 Parsoid/RESTBase 서버는 페이지 정보를 슬래시로 구분한 URL로 요청을 받는다(예: POST /wiki/rest.php/localhost/v3/transform/html/to/wikitext/TestPage/12 HTTP/1.1" 200 521 “-” "VisualEditor-MediaWiki/1.38.2). 만약 페이지 제목의 슬래시가 그대로 들어갈 경우 문제가 발생한다. 제목이 파싱 과정에서 두 개의 데이터로 인식하기... Continue Reading →
