기본 콘텐츠로 건너뛰기

AI와 함께 춤을.. 아니, 코딩을.. (4) - 모노레포로 개발 환경 통합하기

바이브 코딩을 하는 가장 큰 이유는 아마도 개발 생산성 향상 일 것이다. 그래서인지 바이브 코딩을 하면서 자연스럽게 "어떻게 하면 효율을 더 높일 수 있을까?"를 고민하게 된다. 직접 코드를 작성하지 않으니, 그만큼 남는 시간을 프로세스 개선에 투자하게 되는 셈이다. 지난 포스팅에서 앱과 서버를 함께 개발할 때 명세 문서를 작성하고, 이를 기반으로 AI 에이전트에게 개발을 지시하는 방식을 소개했었다. 오늘은 이 방식을 실제로 사용하면서 겪었던 불편함과, 그것을 어떻게 개선했는지 이야기해보려 한다. 기존 개발 환경 앱에 기능을 추가하다 보니 서비스가 하나가 아니라 여러 개가 되었다. 당시 내 개발 환경을 간단히 그려보면 이런 구조였다. 개발 Macbook └─ 앱 프로젝트/ ├─ docs/ └─ src/ Ubuntu 서버 ├─ server1 프로젝트/ │ ├─ docs/ │ └─ src/ └─ server2 프로젝트/ ├─ docs/ └─ src/ iOS 앱 개발은 어쩔 수 없이 Mac에서 해야 했다. 서버는 DB도 돌려야 하고, 실제 운영 환경과 동일한 조건에서 개발하는 게 나을 것 같아 Ubuntu에서 진행했다. Macbook 용량도 부족한데 DB 서버를 계속 띄워놓기도 부담스러웠고, 초기에 API 서버가 PHP + Apache 조합이었던 것도 분리한 이유 중 하나였다. 기존 개발 프로세스 새로운 기능을 추가하거나 수정할 때는 이런 순서로 작업했다. VS Code에서 앱 프로젝트를 열고, Claude를 이용해 명세를 작성 한다. 작성된 명세를 구현이 필요한 각 프로젝트의 docs 폴더에 복사 한다. VS Code에서 각 프로젝트를 연다. 서버의 경우 VS Code의 원격 연결을 이용한다. 각 프로젝트에서 Claude를 실행하고, docs 폴더의 명세를 기반으로 개발을 지시 한다. 문제점 문제...

수경재배 상추 10일차 - 첫 양액 투입과 A/B 용액 배합 방법

파종 10일 후 성장 현황

상추를 파종한지 10일이 지나서 상추들이 이만큼 자랐습니다.

수경재배 상추 파종 10일차 위에서 본 잎 성장 모습

뿌리 성장 상태

수경재배 상추 뿌리가 포트 밖으로 나온 모습

상추의 뿌리가 포트 밖으로 빠져나올 정도로 길게 자랐습니다. 그래도 아직은 뿌리의 가닥 수도 작고, 가늘고 약합니다. 사무실에 사람이 있는 동안은 난방을 하니까 괜찮은데, 저녁에는 아직도 기온이 많이 내려가기 때문에 성장이 더딘것 같습니다. 이제 낮기온도 꽤 올라가고 꽃도 피기 시작하니까 멀지 않아서 폭풍 성장을 할 것 같습니다.

양액 A/B 용액 배합 방법

수경재배기 메뉴얼에서는 2주에 한 번 전체 물을 갈아주고, 그 외에는 보충을 해주라고 되어 있습니다. 아직 상추가 싹이 작기도 하고, 10일 밖에 지나지 않았지만, 그 동안 물로만 키우고 있었기 때문에 오늘은 양액을 넣어 주기로 했습니다. 그래서 전체 물갈이를 할 예정입니다.

우선 양액을 준비합니다. 국내에서 많이 판매되는 양액이 있기는 합니다만, 수경재배기에 포함되어 있는 양액을 먼저 사용하려고 합니다.

수경재배기에 포함되어 있는 양액은 액체 상태가 아닌 알갱이 상태로 두 개의 병에 담겨 있습니다.

수경재배 양액 A용액 알갱이 - 물에 녹이기 전 상태 수경재배 양액 B용액 알갱이 - 물에 녹이기 전 상태

각 병에 물 100ml 씩을 넣고 알갱이가 다 녹을 때까지 섞어 줍니다. 병에 100ml 눈금이 표시되어 있기 때문에 눈금까지 넣어 주면 됩니다. 메뉴얼 상에는 역삼투압 방식으로 정수된 물을 사용하라고 하는데, 전 그냥 수돗물을 사용했습니다. 순수한 물을 사용하면 아무래도 양액의 농도나 같은 것들이 좀 더 정확해 지지 않을까 싶긴 합니다만, 사무실에 정수기도 없고.... 그렇다고 약국에 증류수를 사러가기도 뭐하고.. 근처에 약국도 없고.. ^^;;;;;;;

여튼, 알갱이가 다 녹을 때까지 섞어 줍니다. A용액은 약간 노란빛이 드는 액체가 되고, B용액은 투명색을 그대로 유지합니다.

양액 희석과 수조 채우기

수경재배 양액 A/B 용액을 물에 희석하여 배합하는 모습

2L 생수병에 물 2L를 채우고, A용액을 10ml 넣어준 다음에 B용액 10ml 를 추가하였습니다. A/B용액이 직접 만나게 되면 화학 반응이 일어날 수 있는 모양입니다. 그래서 A용액이 물에 충분히 희석된 다음에 B용액을 넣었습니다.

양액 농도 조절 - TDS 측정기 없이 보수적으로

메뉴얼에는 12포트이면 각각 15ml를 넣으라고 되어 있습니다. 저는 각각 10ml를 넣었으니 2/3 정도 넣은 것이 됩니다. 수경재배 관련된 내용을 보면 양액을 배합하고 TDS 측정기(농도 측정기??)를 이용해서 각 작물에 맞는 농도로 배합해서 사용하라고 되어 있는데 아직 TDS 측정기를 구매하지 않아서 메뉴얼에 제시 된 수치보다 작은 값을 선택했습니다.

양액의 농도가 지나치게 높으면 뿌리가 상해버린다고 합니다. 그리고 전 수돗물을 그대로 사용했기 때문에 아무래도 증류수 같은데 양액을 배합 했을 때 보다는 높은 농도를 갖게 될 것이기 때문에 더 적은 양을 넣었습니다. 양분이 부족하면 상추가 늦게 자라거나 부실하게 자랄 뿐이지만 새로 파종해서 키우는 사태는 발생하지 않을 것이니까요.

마지막으로 수조에 들어 있던 물을 모두 버리고, 양액을 섞은 2L의 물과, 아무것도 섞지 않은 2L의 물을 수조에 다시 채웠습니다. 별 문제없이 뿌리도 많이 내리고 하면 좋겠네요...ㅎㅎ

다음에 상추가 더 자라면 또 글 남기겠습니다.

댓글

이 블로그의 인기 게시물

수경재배 상추 두 번째 도전 - 그로잉스펀지 비교와 TDS 측정기 활용 후기

두 번째 수경재배 상추 도전기 게으름으로 인하여 두 번째 상추 재배는 수확까지 끝난 다음에야 포스팅을 하게 되었습니다. 두 번째 상추 재배는 새로운 그로잉스펀지와 재배기에 심을 수 있는 12포트 중에서 4포트만 사용하여 상추를 재배했습니다. 그리고, TDS 측정기를 이용하여 양액의 농도 측정도 하면서 재배를 하였습니다. 새 그로잉스펀지 - 네모 스펀지 사용기 수경 재배기를 살 때 포함되어 왔던 그로잉스펀지는 지난번 상추 재배로 인하여 모두 소비되어서 알리에서 새로운 스펀지를 주문했습니다. 주문하면서 실수로 동그란 스펀지가 아닌 네모 스펀지를 주문하는 바람에 포트에 넣었을 때 약간의 공간이 생깁니다만 크게 문제가 되지는 않습니다. 그런데 이번에 스펀지는 번들 스펀지에 비해서 밀도가 높다라고 해야할지 스펀지에 구멍이 적은 것 같습니다. 상추 뿌리가 스펀지를 뚫고 나오는데 지난번 보다 오래 걸린것 같습니다. 다음에 주문할 때에는 이런 부분을 좀 주의해야 할 것 같습니다. TDS 측정기로 양액 농도 관리 스펀지와 함께 TDS 측정기도 함께 구매해서 양액의 농도도 측정하였습니다. 상추의 경우 560 ~ 840 정도의 TDS 범위로 양액을 맞춰주라고 하는데, 수경 재배기에 번들된 양액을 12포트 분량으로 혼합하면 이 범위를 만족합니다. 지난번 재배에서는 이 값을 몰라서 싹을 틔우는 시기와 어린 시기에 양액 농도를 낮게 했었는데 그럴 필요는 없었던 것 같습니다. 5주 후 수확 결과 약 5주 가량 길러서 수확하기 직전의 상태입니다. 12포트를 키울 때 보다 빛을 잘 받아서 그런지 웃자람도 없고, 상치 잎의 크기도 지난번보다 상대적으로 컸습니다. 보통 상추를 키울때, 잎이 커지면 일부를 따 먹으면서 계속 키우는데 4포트만 키우게 되면 잎을 따 먹기에는 양이 너무 적어서 다 키워서 한번에 수확을 해야 했습니다. 그래서 다음 재배는 포트수를 조금 더 늘려서 시도해보겠습니다.

iOS Privacy Manifest(PrivacyInfo.xcprivacy) 설정 가이드 - Xcode 프로젝트 적용 방법

Privacy Manifest 요구사항 개요 Apple App Store는 2024년 5월 1일부터 배포되는 앱(신규, 업데이트 모두)에 대해서 Privacy Manifest 를 포함을 요구하고 있습니다. 아마 저를 포함하는 많은 개발자들이 이 사항을 가지고 머리를 싸매고 있지 않을까 생각이 됩니다. Privacy Manifest를 프로젝트에 포함시키는 것은 기술적으로 어렵지 않고 애플도 비교적 잘 설명된 문서들을 제공하고 있습니다. ( 참고1 , 참고2 ) 그리고, 이미 많은 글에서 이것에 대해서 설명하고 있습니다. 서드파티 SDK와 Privacy Manifest의 의미 저는 애플의 이러한 정책의 방향성은 훌륭하다고 생각합니다. 요즘 개인정보 관련한 정보 제공 요구가 나날이 강화되고 있는데, 앱 개발자 입장에서 내가 작성한 코드에 대해서는 그나마 알 수 있지만, 요즘과 같이 많은 서드파티 SDK 의존성을 바탕으로 앱을 개발하고 있는 상황에서 각 서드파티 SDK에서 수집되는 정보를 일일이 파악할 수도 없으며, 이들이 이 정보를 이용하는 목적은 더더욱 알기가 어렵기 때문입니다. 그리고, 단순 "수집"이냐 "추적"이냐 까지 파고 들려면, 용어도 어렵고, 정책적 부분이 판단도 애매한 상황에서 개발자가 자신이 개발한 앱에서 수집하는 개인정보에 대해서 모두 제공하는 것은 불가에 가깝습니다. 그래서 앱 스토어에서 "앱이 수집하는 개인정보" 섹션을 채우라고 했을 때는 개인정보를 수집할 것 같은 서드파티들의 기술지원 페이지를 참고해서 항목들을 정리해야하만 했습니다. 이번 애플 정책 요구에서 눈에 띄는것은 각 서드파티에서 제공하는 SDK에도 Privacy Manifest를 포함하도록 요청하고 있습니다. 이로 인해서 개발자는 내가 개발하는 코드에서 수집되는 정보에 대해서 좀 더 집중할 수 있습니다. 다만, 오래된 서드파티 SDK 버전을 사용하는 경우에는 부득이 업데이트를 하거나 대안을 찾거나 하는 피곤한 상황이 생...