함께 즐겨요. 생산성🍕 — 개발환경 설정 팁과 앱 추천

whitelips
a day of a programmer
22 min readSep 22, 2023

#macOS #iOS #개발환경 #설정팁 #생산성 #앱추천

이번엔 macOS 개발환경에서 일하는 iOS 개발자를 위한 가볍고 즐거운 주제를 들고 왔습니다. iOS 개발자가 아니어도, macOS 앱추천은 macOS로 일하는 분들에게는 재밌게 볼만한 내용으로 구성했습니다.

그럼 다 같이 함께 즐겨요. 생산성! (도구)

과거 유명했던 광고 문구, 아직 멜로디가 생각나요.

생산성이란?

그런데 말입니다. 앞서 이야기한 생산성이란 무엇일까요?

구글에서 검색하면 보여주는 Oxford Languages 사전 정의를 살펴보았습니다.

명사
1. (경제학) 어떤 생산 요소가 생산에 이바지한 정도나 그 효율성. 토지나 자본의 생산성도 있으나 일반적으로 노동 생산성을 가리킴
2. (언어학) 형태론, 특히 조어법에서, 어떤 접사가 새로운 어휘를 파생시킬 수 있는 정도. 어휘를 많이 파생시킬수록 ‘생산성이 높다'고 함.

그런데 개발자의 생산성?

단순하게는 개발자가 하는 노동에 대한 생산성, 앞선 정의의 1번에 가까운 뜻으로 생각해볼 수 있습니다.

다른 사람들은 어떻게 생각할까요? 먼저 2017년 7월 어느 칼럼의 내용입니다.

개발자의 생산성과 블랙잭
임백준 칼럼
- 생산성이란, 개발자 한 사람이 정해진 시간 내에 얼마나 많은 그리고 좋은 품질의 코드를 생산하는 가를 측정하는 척도다.
- 퇴근 시간 이후에 업무 지시하기, 타인에게 사소한 문구 수정을 반복적으로 시키기, 반드시 필요하지 않은 일을 위해서 다른 사람을 대기시키기, 마감일 직전 무리한 일을 요구하기 등은 개발자의 생산성을 떨어뜨린 일이다.
- 반복되는 시스템 장애와 오류는 곤두박질친 생산성의 자기표현이다.

앞서 경제학의 노동 생산성 정의와 같은 맥락으로 이야기하고 있습니다.

이번에는 2022년 11월의 다른 내용입니다.

개발자의 생산성을 측정해야 하는가?
Nick Hodges
소프트웨어 개발팀의 강점은 개발자 개인이다. 각 개발자의 강점은 팀이다.
- 지표를 내놓아라
조작될 가능성이 높다. 팀 생산성을 희생할 가능성이 높다.
- 팀을 측정하다
코드 작성전 프로젝트 설계 및 구축 논의. 코드를 작성하며 질문에 답하고 인사이트를 제공하는 팀원의 도움을 받는 경우가 많음. 모든 팀 구성원은 코드를 검토하면서 수행된 작업을 확인하고 승인. 모든 사람은 일을 성공시키기 위해 함께 노력한다.

어떤가요?

2017년의 시각과 달라진 점이 느껴지죠. 물론 외국인의 시각과 한국인의 시각 차이도 존재할 수 있습니다. 그러나 앞서 소개한 컬럼의 임백준님은 외국 경험도 충분히 가지고 계신 분이에요. 그러니 시간이 지남에 따라 개발자의 생산성은 개인에서 팀으로 옮겨져왔고, 정량적 측정은 유효하지 않다는 의견이 새롭게 나왔다고 이해해도 좋습니다.

제가 경험한 생산성도 마찬가지입니다. 처리한 티켓의 수, 개발한 코드의 라인, 혹은 커밋 개수 등으로 어느 개발자의 생산성이 좋다 혹은 나쁘다 라고 말한다면 저는 동의할 수 없다고 답변하겠습니다.

앗! 사실은 이런 시간이 아니에요.

가볍게 일하는 개인의 개발환경을 좋게 하려는 여러가지 이야기를 해보려고 생산성을 잠시 꺼내보았습니다. 😆

제가 말하려는 유머버전의 생산성은 아래와 같습니다.

1시간 짜리 일을 50분 쉬고 10분만에 마치기
또는 하기 싫은 일을 50분 미루고 10분만에 해치우기
절대 10분만에 일을 마치고 50분을 더 일하기가 아닙니다. 😂

그래서 꿀팁🍯을 모았어요.

⚠️주의하세요. 일부 유료💰 결제 프로그램 소개가 있습니다. 하지만 무료도 많아요. 기능을 계속 사용하려면 앱의 결제가 필요한 앱은 제목에 💰이모지를 달아두었으니 참고하세요. Trial 기간동안 무료로 써본 후에 구매할 수 있으니 부담없이 사용해보세요.

꿀팁은 macOS 에 대한 이야기에요. (Ventura 에서 확인했습니다. 이 글을 쓰는 시기에는 Sonoma 정식 버전이 아직 출시되지 않았어요.)

시스템 설정

대부분의 사람들이 macOS 에서 키보드 입력을 하면서 곤란한 점을 겪습니다. 그에 대한 해결 팁이에요.

키보드 > 텍스트 입력 > 입력 소스의 ‘편집'
- 맞춤법 자동 수정 끄기
- 자동으로 단어를 대문자로 시작 끄기
- 스페이스를 두 번 눌러 마침표 추가 끄기
- 스마트 인용 부호 및 대시 사용 끄기

내가 입력한 단어가 임의로 다른 단어로 바뀌는 경험, 탭 대신 스페이스를 넣는데 갑자기 마침표가 등장하거나, 나는 소문자로 적는데 대문자가 나오고, 따옴표가 입력된 텍스트를 복사했는데 컴파일 에러가 난다면 바로 위 내용을 적용해보세요.

Spotlight

스팟라이트는 거대한 💩이에요. 가능하면 다른 걸 쓰세요. 아래 2가지를 추천드려요.

Alfred
- 너무 유명해서 말하기 민망한 앱이에요.
- 워크플로우는 정말 최고에요. 만들기도 쉽고 공유하고 설치도 잘 되죠.
- 안드로이드 느낌이에요. Powerpack을 구매하셨나요? 계속 써도 좋아요.
Raycast
- 새로 나왔어요. 이뻐요.
- Extension이 있어요. 중앙에서 관리하는 Store를 통해서만 검색, 설치해요.
- 아이폰 느낌이에요. 기본 기능(Clipboard History, Floating Note)가 좋아요.

알프레드는 사실 너무 많은 분들이 쓰고 있고 소개해주셔서, 더 말할 내용도 없습니다. 그러나 레이캐스트는 생소한 분들이 있을 거에요. 알프레드 무료 사용자라면 레이캐스트를 한번 고려해도 좋습니다. 알프레드 워크플로우가 좋은데 뭐가 좋은지 어떤걸 설치해야하는지 어렵다면, 레이캐스트를 추천해요! 스토어를 통해서 원하는 키워드를 검색해서 나오는 익스테션을 설치할 수 있거든요. 그래서 알프레드는 더 강력하고 많은 기능이 있는 안드로이드, 레이캐스트는 이쁘고 엣지 있는 아이폰 느낌을 받았습니다.

저는 레이캐스트 스토어에서 다음 익스텐션들을 추천해요.

  • Naver Search: 영어 사전 등을 유용하게 써요.
  • Brew: 맥에 설치된 Brew 목록을 확인하고 업데이트 할 수 있어요.
  • System Monitor: 맥이 쓰는 CPU, Memory, Power, Network를 간단하게 확인해요.
  • Format JSON: 클립보드에서 또는 입력하여서 JSON을 이쁘게 바꿔줘요. 더이상 웹브라우저에서 찾아가서 바꾸지 않아도 좋아요.

물론 위 익스텐션 말고도 ChatGPT, 구글 번역 등 유용한 익스텐션이 많으니 필요하면 설치해서 쓰시면 됩니다.

기본 기능도 함께 소개할게요.

Raycast — Clipboard History

레이캐스트의 클립보드 히스토리는 클립보드 내용과 프리뷰 그리고 필터링 기능을 제공합니다.

Raycast — Floating Window

레이캐스트의 플로팅 노트를 쓴다면 오늘 계속 확인할 내용을 위해 별도의 앱을 설치하지 않고 화면에 계속 보여줄 수 있습니다.

Rectangle Mac

정말 유용한 창관리 프로그램입니다. 일을 하다보면 여러 창을 띄울텐데요. 키보드 단축키로 슥-삭 창 크기와 위치를 정리해서 볼 수 있습니다.

프로그램에서도 볼 수 있지만 간단한 단축키도 소개해요.
- ctrl + option + 화살표 // 화면의 절반 사용 (상,하,좌,우)
- ctrl + option + U, I, J, K // 화면의 1/4 사용 (4분면을 나누어서 창 배치)
- ctrl + option + D, F, G // 화면 1/3 사용

BTT💰

BetterTouchTool이라는 풀네임보다 줄임말이 더 유명한 앱이에요. 앞에 소개한 Rectangle 기능을 포함한 더 많은 단축키 기능을 가지고 있습니다. (물론 커스텀도 가능해요) 특히 트랙패드의 모서리, 제스처를 활용하는 방법으로 유명해졌어요.

다만 저는 맥북의 트랙패드 외에 별도의 트랙패드도 있지만 손목 건강 문제로 많이 쓰고 있지는 않아서 구매하지는 않았습니다.

Bartender💰

맥북 상단의 ‘메뉴바'가 지저분하게 느껴지나요? 바텐더로 정리하세요.

- 맥북에 점점 많아지는 메뉴바 아이템
- 노치영역까지 침범할 느낌
- 안봐도 되는 정보가 계속 보이는게 싫다면
- 단순히 정리가 아니에요.
- 숨김/정리 외에 간격 조정등 레이아웃도 정할 수 있어요.

숨긴 메뉴바 아이템은 클릭하면 다시 찾아볼 수 있습니다.

저는 바텐더 4를 사용하고 있습니다. 그런데 이 글을 쓰면서 확인하니 바텐더 5가 나왔어요. macOS Sonoma 버전 대응을 위한 신규 출시이면서, 새로운 기능도 담고 있습니다. 그룹 기능은 숨긴 메뉴바 아이템을 ⚫️⚫️⚫️ 외에 정해진 묶음으로 커스텀을 지원합니다.

그런데 소노마가 나오면 어떻게 하냐구요? 다행히 최근 바텐더 4 구매자는 무료로 바텐더 5 업그레이드를 지원해주고 있습니다. 너무 걱정하지 말고 써도 좋아요.

Input Source Pro

‘dkssudgktpdy’ 라고 입력해서 글자를 모두 지우고 다시 타이핑한 적이 있나요? 그렇다면 인풋 소스 프로를 추천합니다.

- 개발IDE에서는 영어를 기본으로 입력하고, 슬랙과 같은 메신저에서는 한글을 기본 입력으로 설정해요.
- 앱별로 기본 언어를 설정하는 것 외에, 브라우저는 URL 별로 언어 설정도 가능해요.
- 입력 커서(마우스 커서) 바로 옆에 변경된 언어를 보여줘요.

이제 가까운 곳에서 현재 언어를 확인해요.

Soulver 3💰

엑셀(구글시트, 넘버스)를 열기에는 귀찮고, 계산기로는 부족한 적이 있나요? 그때에는 이 앱이 아주 적당해요.

- 변수 입력 활용 가능해요.
- 서술형 계산도 가능해요.

제 설명 보다는 링크의 홈페이지에서 예시를 보는게 더 매력적입니다.

Fork

주변에서 물으면 제가 항상 추천하는 git client 입니다. 제발 SourceTree 그만쓰세요.

- 아주 가볍고 빠른 macOS 네이티브 앱입니다.
- 즉, CPU와 Memory를 적게 씁니다.
- 그리고 브랜치 변경이 정말 빨라요.

비교할만한 혹은 함께 추천하는 앱으로는 GitKraken이 있습니다. 이건 올인월 앱으로 강력한 기능을 가집니다. 워크스페이스와 터미널도 함께 쓸 수 있습니다. 단, Chromium based 앱이라서 크롬 계열 특징인 메모리 소모가 큽니다.

아래 비교 화면을 확인해보세요. 같은 git 저장소 하나만 열었습니다.

Fork는 231MB를 사용중
GitKraken은 약 500MB를 사용중

Sublime Text

Windows에 Notepad++이 있었다면 macOS와 linux에는 Sublime Text가 있습니다. 강력한 메모장부터 간단한 IDE까지 전천후 텍스트 에디터 입니다.

- 빠르고 강력한 네이티브 앱
- 설정에서 font_size, tab_size, translate_tabs_to_spaces 등을 지원합니다. 개발자에게 필수인 탭을 공백 바꾸기가 있어요.
- 텍스트 정렬 기능도 쉽고요.
- 가로 블록(선택) 외에 세로 블록(선택)도 지원합니다.
- 다양한 플러그인 설치를 통해서 기능 확장도 쉽습니다.
- cmd + q를 통해 종료하면 파일로 저장하지 않고도 탭의 내용을 그대로 보관하고 있습니다.

이렇게나 좋은 서브라임 텍스트도 경쟁자가 있습니다. 바로 VSCode 입니다.

VSCode 역시 너무 좋은 에디터입니다. 그러나 가벼운 텍스트 에디터로 쓰기에는 크고 무겁게 느껴집니다. 그래도 Python, JS 등의 언어를 사용하는 개발 IDE 전용에서는 Sublime Text보다 강력한 부분이 많습니다. 크고 무겁다고 하는 이유는 VSCode가 Chromium based 앱입니다. 따로 비교 하지 않아도 앞서, Fork vs GitKraken 과 같이 메모리와 CPU를 더 사용하고 있습니다.

Zoom

줌은 COVID-19 즉 코로나 시대에 많은 사람들이 이미 익숙하게 사용한 화상회의 도구입니다. 그래서 별도의 추천 보다는 설정 팁을 공유하려고 합니다.

# 오디오 설정
- Zoom 배경 소음 제거. 때에 따라서 ‘높음'을 하면 주변 공사 소음까지도 깨끗하게 제거해줍니다. 실제로 저희 이웃집이 인테리어 공사할 때 아무도 눈치채지 못했습니다. (저만 시끄러웠어요.) 카페 등 조용하지 않은 장소에서 비대면 회의를 해야한다면 이 설정을 꼭 사용하세요.
- 마이크. 혹시 내 소리가 상대방에게 작게 들리나요? 크게 말해주세요라는 피드백을 받은 적이 있나요? 그렇다면 볼륨 자동 조정을 OFF 하고 입력 볼륨을 직접 크게 조정하세요.
# 비디오 설정 또는 배경 및 효과
- 아바타. 발표자에게 마치 내가 집중해서 듣는 것 같은 효과를 줍니다. 가장 좋은 건 카메라를 켜는 것이지만 따로 공지 받은 회의가 아니면 다들 카메라를 꺼두고 참여하는 경우가 많습니다. 이럴 때에 아바타를 켜보세요. 참고로 이 아바타는 내가 카메라에 없어도, 카메라를 꺼두어도 계속 나타납니다.

iTerm2

너무 익숙한 터미널 앱입니다. 아직도 맥의 기본 터미널을 쓰는 사람은 없지요? macOS Ventura 부터 기본 shell이 zsh로 바뀌었을 겁니다. (혹시 아닐 수도 있어요.) zsh 을 이쁘게 꾸미는 설정은 개인 취향이며, 꾸밈 설정에 따라 터미널 반응이 느려지는 경우도 흔합니다. (다행히 m1 부터는 인텔맥보다 빠르게 잘 동작합니다.)

zsh 꾸밈은 인터넷에 이미 많아서, 그보다는 다른 설정 팁을 이야기하려고 합니다.

# 상태바 설정
- Preference > Profiles > Session > Status bar enabled
- Preference > Appearnce > General > Status bar location

위 내용으로 상태바를 켜고, 위치를 상단 또는 하단으로 둘 수 있습니다. 터미널에서 간혹 명령어를 수행하고 반응이 없는 경우가 있는데요. 이 경우 보통 Ctrl + C로 중단하고 — verbose 옵션으로 재수행하게 되지요. 그러면 주르륵 실행 상세 로그가 나오는 것을 보며 잘 동작한다고 안심합니다.

이제는 그러지 않고 터미널 상태바에서 바로 CPU, Memory, Network를 확인하세요. 입력한 명령어가 일을 하는지 아닌지 상태바가 바로 알려줄 것입니다.

iTerm2 상태바를 켠 모습의 예

ForkLift💰

진보된 파인더, 바로 포크리프트입니다. 파인더는 알게 모르게 불편한 점이 많습니다. 최근에야 탭 기능이 생겼지만, 보통은 뭘 하다보면 계속 늘어만 가는 파인더 창을 볼 수 있습니다. 또한 이 창에서 저 창으로 파일이나 폴더를 옮기려면 창 두개를 또 화면 위로 올려야 하구요. 이 과정이 진행되는 창도 또 내려가서 잘 안보이고 멀티 태스킹에 적절한가 의문이 있습니다.

그래도 참고 쓸 수는 있습니다. 하지만 아래와 같은 분은 포크리프트를 추천합니다.

- 듀얼 패널이 필요하신 분. 파일 옮기거나 비교가 많은 경우입니다.
- 파일 정보를 자주 보는 분. 폴더 크기 계산이 종종 필요한 분. 정보 가져오기 보는 것이 너무 불편 했다면 이제 쉽게 해요.
- 설치된 앱 삭제가 깔끔하길 원하는 분. 파인더로 애플리케이션 폴더에서 앱 삭제하면 다른 경로의 임시 파일이나 설정 파일은 그대로 남아있습니다. 포크 리프트는 이걸 함께 지워줘요.
- 리모트 드라이브(클라우드 서비스, NAS, FTP 등)에 열결해서 쓰는 분. 파인더의 마운트 기능은 정말 별로 입니다. 포크리프트가 그 대안입니다.

nnn

사실 이 nnn은 추천드리기가 어렵습니다. 저도 적응을 못해서 다 못쓰고 위에 지게차를 사용합니다. 그래도 올리는 이유가 있는데요. 바로 Geek을 위한 앱입니다. 아닌 분은 여기 소개는 넘어가주세요 :]

- Finder, ForkLift 는 사치라고 생각하는 분
- Terminal 에서 다 해치울 수 있는 분
- 진짜 Terminal base file manager 입니다.
- vi(vim)을 좋아하고, 해피해킹을 좋아한다면 도전해보세요.

Scroll Reverser

(애플) 님, 터치(트랙패드)와 마우스는 다른 동작을 하는 장치가 아닐까요? 제가 윈도우로 PC를 배운 세대라서 그런지 마우스의 휠은 스마트폰의 터치나 트랙패드의 역방향이 아닌 휠이 굴러가는 정방향의 스크롤을 선호합니다. 그런데 맥 기본 설정에서는 따로 구분을 하지 못해서, 마우스를 위해 역방향을 설정하면 가끔 쓰는 트랙패드가 어색해집니다. 그런 분을 위해 추천합니다.

- 터치 디바이스(트랙패드, 매직마우스)가 아닌 일반 마우스나 트랙볼을 쓰는 분께 추천
- 트랙패드는 그대로 쓰고 마우스만 스크롤을 바꿔줄 수 있어요.
- 한번 설치하고 설정하면 끝
- 수평 스크롤을 지원하는 마우스는 수평 반전도 가능해요.

Scroll Reverser 의 실행 화면이자 설정 화면 전부

Shottr💰

macOS의 기본 캡처가 강력하다고요? 그건 아직 shottr을 만나지 않았기 때문입니다. 아래 추천 내용을 확인해주세요.

- 클립보드에 넣으려고 했는데 깜빡 스크린샷을 날린 적이 있나요?
- 파일 저장하려는데 기다리는 시간이 너무 지루했나요? (섬네일을 스와이프 하거나 사라질 때까지)
- 이제 모두 잊고 이걸 써요.
- 찍고 바로 편집창이 나오고, 설정에 따라 esc로 창을 닫으면 바로 저장도 혹은 클립보드 복사도 가능합니다. 물론 cmd + s, cmd + c도 동작하는 직관적인 앱이에요.
- 무엇보다 스크롤 캡처를 해줍니다. 때때로 강력한 기능이죠.

이번에는 아주 작은 Git 팁이에요

요즘 개발자들은 아주 익숙하게 git을 다루고 있습니다. 그러나 30년 양치질을 한다고 해서 양치질 전문가가 아니듯, 우리도 익숙하지 않아 따로 공부하지 않으면 모를 수 있는 git 명령어 딱 2개를 공유 드려요.

# git bisect
- 크리티컬 장애가 발생했나요? 가장 빠른 방법은 롤백입니다. 그런데 무얼 롤백해야 하는지 모른다구요?
- 핫픽스를 가장 빠르게 해결하는 명령어입니다. 장애를 만든 커밋 범인을 찾아서 revert 하도록 도와줍니다.
- 잘 동작하는 커밋은 good, 동작하지 않는 커밋은 bad만 체크하세요.
- 이름에서 유추할 수 있는 이진탐색으로 1000개의 커밋도 2¹⁰=1024, 즉 10번만 확인하면 끝이에요.
# git reflog
- 가끔 커밋을 이쁘게 정리하려는 욕심에 작업한 커밋이 날라가요. 🤬
- 그럴 때는 기억을 되살려 다시 일하지 말고 이 명령어로 살려요. 😁

그리고 git 편을 마치기 전, 브랜치 혹은 커밋 충돌 해결은 단순 텍스트 에디터 혹은 IDE에서 수행하지 마세요. 가끔 내 작업이 아닌 경우, 혹은 변경사항이 많은 경우 충돌 해결에 어려움이 있는데요. 도구의 힘을 빌리면 됩니다.

앞서 소개한 Fork 또는 GitKraken으로 충돌 해결을 시도해보세요. 이전에 보던 — 대시라인의 변경사항이 아닌 브랜치 2개와 현재(또는 해결후) 모습을 보면서 작업할 수 있습니다.

위 충돌 코드의 예는 Fork 홈페이지에서 가져온 공개해도 문제없는 내용입니다.

마지막 iOS 앱개발자를 위한 작은 팁

이 모든 걸 다 겪고도 iOS 개발자에게는 작은? 아니 큰 산이 남아있습니다. 바로 Xcode 입니다.

Xcode 팁 이야기

Xcode는 솔직히 말게 다른 IDE에 비교하면 정말 별로입니다. iOS만 하신 분은 잘 모르시기도 하는데, 다른 언어 혹은 다른 툴을 사용하던 분이 오면 언제나 IDE 불평부터 들을 수 있어요. 특히 매년 업데이트는 하는데, 이게 예측 불가능입니다. 가끔은 원하지 않는 방향으로 진행하고 사용을 강제하지요.

탭 스타일이 어느날 바뀌었는데, 강제 적용입니다. 원래대로 돌릴 수 있어요. 2단 탭은 정말 헷갈리니까요.
- Preference > Navigation > Navigation Style: Open in Place
공백제거(trim)이 요즘 세상에 기본이 아닌 IDE 입니다. 그래도 설정해줄 수 있어 다행이에요.
- Preference > Text Editing > Editing > While Editing 항목 2개 모두 체크✅
가끔 Xcode가 이륙해요🛫(인텔맥 시절의 표현이고, 풀어내면 느리고 버벅임) 그건 함께 동봉된 소스 컨트롤 기능이 안좋아서 그런 경우가 많습니다.
- Preference > Source Control > Enabled Source Control 잠시 끄기. IDE에서 이전 git 이력을 보는 경우가 없다면 영원히 꺼도 좋습니다.

기타 1g 팁

이제 설정팁과 추천 이야기가 끝이에요. 여긴 이미 아는 내용일테지만 혹시나 해서 남겼어요.

# 터미널
- alias: 터미널 명령어 단축입니다.
ex) alias be=”bundle exec” 와 같이 자주 붙여 쓰는 명령어를 줄여써요.
# 시뮬레이터 네트워크 변경
- charles 라는 강력한 툴을 많이 쓰시는데요. 가끔 맥 호스트를 바꿔야 하는 경우, charles를 쓸 수 없는 경우에 기억해두면 좋아요.
- 애플 개발자 홈페이지에서 Additional Tools for Xcode를 다운로드 받으세요. 후에 ‘Network Link Conditioner’를 설치하면 됩니다. 사용법은 따로 이야기 안해도 쉬워요.

Network Link Conditioner 실행 예

힘들어도 즐겨요

어렵고 하기 싫은 일도 추천 앱 또는 개발 설정을 통해서 지나가는 일이 되면 좋겠습니다.

--

--

whitelips
a day of a programmer

Software Engineer with 10+ years in iOS, focusing on performance optimization, modularization, and innovative solutions. Proven leader in major tech projects.