LG CNS 부트캠프 학습일지 43일차
학습 내용
- 마이크로서비스 개요
미니 프로젝트 1 마무리
저번 주 목요일(16일)로 미니프로젝트1을 마무리했다. 프로젝트를 진행할 때는 학습일지를 작성하지 못했다.
프론트엔드를 담당했는데, 디자인적 감각이 부족해서 원하는 결과물을 만들지는 못했던 것 같다. Figma를 사용하는 것도 고려해볼만 하지만, UI를 수정하거나 변경할 때 형상관리 도구를 사용해서 추적할 수 없다는 점 때문에 MUI 같은 라이브러리를 고집했다. 다른 팀들 결과물을 보니 바이브 코딩을 적극적으로 했더라면 더 좋지 않았을까하는 아쉬움이 남기도 했다. 그래도 UI 라이브러리 사용법을 익히고 스스로 고민하면서 배우게된 점이 있다고 생각한다. 무엇보다 다른 사람들과 함께 개발하고 Git 형상관리 도구를 사용해서 협업하는 것을 경험한 것이 가장 좋았다.
바이브 코딩
이 기회에 바이브 코딩에 대해서 이야기를 해보려고 한다. 바이브 코딩은 개발자들 사이에서는 꽤 논란이 많은 주제라고 생각한다. 짧은 지식과 경험을 가지고 대다수의 개발자들은 어떻게 생각한다고 단정적으로 이야기할 수는 없을 것이다. 어디까지나 나는 내 생각을 이야기하는 것이니까.
바이브 코딩을 하려는 개발자는 그 도구를 사용하기 위해서는 프론티어 모델 서비스를 구독해야 한다. 개인적으로는 이 점이 가장 마음에 들지 않는다. 게임패스, 넷플릭스, 스포티파이, 포토샵, 오피스365 등 모든 것이 구독제가 되어버린 사회적 분위기도 개탄스러운데, 개발자로서 경제활동을 하기 위해서 LLM 서비스에 구독을 해야한다니 이것은 뭔가 잘못되었다는 생각을 지울 수 없다.
인공지능의 진정한 혁신은 프론티어 모델을 구독하지 않고, 누구나 저렴한 가격으로 개인 컴퓨터에서 인공지능을 돌릴 수 있을 때 온다고 생각한다. LocalLLM이라는 것이 있다. 개인 컴퓨터에 설치한 소비자용 GPU를 사용해서 LLM을 돌리는 것이다. RTX 3060 12GB에서 사용해보니 나쁘지는 않지만 그리 좋지도 않았다. GPU 가격이 저렴해지거나 중급형 소비자 GPU에서 거뜬히 돌릴 수 있는 훌륭한 코드 에이전트 인공지능 모델이 나온다면 바이브 코딩을 조금 더 긍정적으로 바라볼 수 있을 것이다.
바이브 코딩을 부정적으로 인식하게 되는 가장 큰 이유는 협업하기가 어렵다는 점이다. 인공지능이 작성한 코드의 문제라기 보다는 인공지능을 사용하는 사람들의 태도의 문제라고 할 수 있겠다. 사람들의 태도가 불량하다거나 그런 문제는 아니다. 다만 사람들이 협업을 하는 이상 커밋 메세지 등을 사람이 이해하기 쉽게 적어주면 더 좋을 것 같다. 그리고 인공지능이 수정한 코드 덩어리를 하나로 묶어서 커밋을 하는 것이 아니라, 기능을 추가한다면 그 기능을 추가하는데 수정하는 코드 덩어리 하나, 버그를 수정한다면 버그를 수정하는 코드 덩어리 하나 이렇게 나눠서 커밋을 한다면 협업하는데 좋을 것 같았다.
마이크로서비스
DevOps랑 관련이 있다. 마이크로서비스란 무엇인가. 보통 개념정리부터 하게된다. 마이크로 + 서비스 즉 작은 서비스라는 뜻이다. 반대쪽에 있는 개념은 매크로서비스, 큰 서비스, 모노리스(monolith) 구조일 것이다. 요즘 트랜드가 마이크로서비스라고는 하지만 모노리스 구조가 나쁜 것은 아니다. 모든 공학적 문제가 그렇듯이 장점이 있으면 단점이 있고, 단점이 있으면 장점이 있는 법이다. 엔지니어라면 그 장단점을 알고 최적의 해를 찾을 수 있어야 한다.
개인 Proxmox 서버를 관리하고 있다 따라서 마이크로서비스에 대해서는 꽤 익숙하다. 필요해서 스스로 공부하고 찾아봤기 때문이다. 하지만 개발자로서 마이크로서비스의 원리를 이해하고 있다고 할 수 없다. 어디까지나 사용자의 입장이었기 때문이다. 도커(Docker)와 도커 컴포즈(Docker Compose)를 사용해서 마이크로서비스를 관리하고 있다. 도커를 사용하지 않는다면 가상머신을 사용해서 어플리케이션 마다 독립된 환경을 만들어주는데, 가상머신은 그 위에 운영체제를 설치하고 운영체제가 필요한 메모리 공간이 있어야하기 때문에 오버헤드가 크다고 알려져 있다.
Comments powered by Disqus.