M1 맥에서 안드로이드 앱 돌리기 — 녹스·블루스택 대신 AVD
Apple Silicon 맥에서는 녹스나 블루스택이 제대로 안 돈다. 안드로이드 스튜디오가 테스트용으로 쓰는 AVD 를 대신 쓰면 되는데, 플레이스토어가 없는 문제까지 포함해 순서대로 정리한다.
Apple Silicon 맥에서는 녹스나 블루스택이 제대로 안 돈다. 안드로이드 스튜디오가 테스트용으로 쓰는 AVD 를 대신 쓰면 되는데, 플레이스토어가 없는 문제까지 포함해 순서대로 정리한다.
CI 파이프라인의 뼈대는 언제나 같다 — 저장소에서 코드를 가져와 빌드한다. 비공개 저장소 자격 증명부터 함수로 나눠 재사용하는 구조까지, 실제로 쓰는 형태로 정리한다.
빌드가 늘면 마스터 한 대로는 버티지 못한다. 마스터·노드·에이전트·엑시큐터가 각각 무엇이고 왜 나누는지, 그리고 슬레이브 노드를 SSH 로 실제로 붙이는 순서까지 화면과 함께 정리한다.
Jenkins 가 먹통이 되거나 이전 시점으로 돌아가야 할 때가 온다. 백업셋이 있다면 되돌릴 수 있다. 기존 설치를 지우고, 원하는 버전으로 다시 깔고, JENKINS_HOME 을 백업본으로 갈아 끼우는 순서.
Jenkins 에서 AWS CodeBuild 를 호출해 변수까지 넘기는 방법과, 지원이 끊긴 플러그인을 대신해 Bitbucket 을 CodeCommit 으로 미러링한 임시 방편. 지금 이 구성을 새로 잡으면 안 되는 이유도 함께.
빌드가 끝나면 산출물은 Jenkins 워크스페이스에 남을 뿐이다. 그걸 저장소로 옮겨 배포 대상이 가져가게 만들고, Jenkins 가 Ansible Tower 를 호출해 배포까지 잇는 구조를 정리한다.
맥을 새로 잡을 때마다 반복하는 터미널 설정을 순서대로 모았다. oh-my-zsh 을 깔고 테마를 바꾸면 글씨가 깨지는데, 그게 왜 그런지와 어떻게 푸는지까지.
Nous Research 의 오픈소스 에이전트 Hermes 를 리눅스에 설치하고, 모델을 Claude API 로 붙이거나 Ollama·vLLM 으로 완전히 로컬에서 돌리는 방법. 컨텍스트 길이처럼 빠뜨리면 조용히 망가지는 지점까지.
되돌려야 할 때 "어디로" 돌아갈지부터 정해져 있어야 한다. SemVer 로 기준점을 만들고, 기존 아티팩트를 쓸지 다시 빌드할지 고르고, 배포 방식별로 롤백이 어떻게 달라지는지 정리한다.
소비보다 발행이 빠르면 큐가 쌓이고, 디스크가 한계선을 넘으면 RabbitMQ 가 발행을 막는다. 그 과정을 실제로 알람을 띄워 재현하고, rabbitmqctl 로 원인 큐와 막힌 연결을 찾아 푸는 순서까지.