Back to Blog

항해 AI 생산성 토크쇼 Q&A

인사이트 공유가 제일 큰 목적인만큼, 최대한 많이 답변하기 위해 노력했지만 오늘 얘기한 내용들, 사업적인 아이디어, 혹은 비개발적인 AI 활용에 대한 질문은 제외했습니다. 저는 AI를 사용해서 생산성을 올리는 방법을 연구한 개발자일 뿐, AI 엔지니어가 아니기 때문에 비개발적인 AI 질문들은 대답하기 힘듭니다. 잘못된 답변을 드릴 수도 있기 때문에 답변을 하지 않았습니다.

저도 할루시네이션 해결법 같은 건 모릅니다. 대신 AI로 코딩할 때 AI가 틀린 코드를 작성한 경우 스스로 정정한 뒤에 다음 단계로 넘어가게 하는 방법은 알고 있습니다.

참고로 내용이 거의 비슷한 질문은 첫번째 질문을 인용으로 달았습니다.


문서화도 대체하고 싶은데 어떻게 자동화할까요

코드 @ 로 넣고 문서화 해달라고 하면 해줍니다.

코딩 에이전트 vs 어시스턴트. 앞으로의 방향성을 어떻게 보시는지 궁금합니다

에이전트가 간단한 작업은 다 대신 해주리라 보고있고요, 저도 하나 만들고 있습니다.

에이전트 등으로 FE라는 직무는 향후 5년 내 없어지지 않을까 예상하고 있습니다. 개발자들이 변화하는 ai 시대에 대응하기 위해 준비해야 할 역량은 무엇일까요?

AI 활용 능력입니다. 프론트엔드/백엔드 구분은 없어질 가능성이 높고요, 그냥 소수의 인원이 프론트엔드/백엔드 같은 구분 없이 전체를 구현하는 시대가 올 것이라고 봅니다. 이미 그러고있는 회사들도 있고요

AI와 페어 프로그래밍 방법

시연에서 보여드렸듯이 AI한테 일 시켜놓고 가끔 간섭하면 됩니다.

주니어다 보니 AI를 활용하면서도 너무 기본기를 못 쌓고 AI에만 의존하는게 아닌가 하는 걱정이 드는데 의견이 궁금합니다.

모르는 개념에 대해서 AI가 작성한 코드는 읽어보세요. 개념에 대해서 알고있는 경우는 그냥 넘어가도 되는데 개념도 모르는 상태에서 AI를 이용해서 구현만 하고 넘어가는 건 좋은 생각이 아닙니다.

AI가 전체 프로젝트 구조를 계속 인지한 싱태로 개발시킬 수 있는 방법

.cursorrules 같은 파일과 커서 같은 IDE의 인덱싱 기능을 활용하세요. 자동으로 RAG로 관련 코드를 AI한테 던져줍니다.

AI를 어디까지 활용하는게 맞을까요? 요즘에는 너무 AI에만 의존하는 것 같다는 생각이 들어서 고민입니다.

저는 은행권이나 군사쪽처럼 폐쇄망 개발을 해야하는 쪽을 가려는 것이 아닌 이상 거의 모든 일에 활용해도 된다고 봅니다. 근데 AI한테 일 시킬 정도는 이해하고 있어야하는데, 개념 정도만 제대로 이해하고 있으면 충분합니다. 혼자서 구현할 수 있을 정도까지는 필요없지만 AI가 짜놓은 코드를 보고 이건 개념의 어느 부분인지 알 수 있을 정도는 돼야합니다.

좋은 코드를 뱉는 ai 프롬프트 잘 짜는 방법

LLM을 직접 다루시는 것이라면 유출된 커서/윈드서프 같은 유명한 도구들 프롬프트 읽어보시는 걸 추천하고요, 커서를 쓰고 싶으신거면 그냥 쓰시면 됩니다. 근데 AI는 말을 진짜 있는 그대로 이해합니다. 비꼬는 건 다 알아듣는데, 보여드렸듯이 “최적화해줘” 를 안 넣고 “분리해줘” 만 하면 진짜 분리만 해줍니다.

AI답변이 사실인지 확인하는법

코드 생성할 땐 테스트 짜는 게 최선입니다. 그리고 AI 없이도 개념 설명은 할 수 있어야 검증이 쉬워요.

AI로 인해 개발자도 생각보다 빠르게 줄어들고 있는 상황입니다. 이런 상황에서 나만의 무기를 만들 방법은 AI를 잘 활용하는 방법밖에는 없는걸까요?

AI를 활용한 개발 자동화 서비스를 만드는 것도 방법인데요, 저도 하고있습니다.

음… LLM을 사용하는 방식에 제일 많을 것 같은데 혹시 cursorrules 같은 instructions file같은 것을 많이 설정해놓고 하는 편이신가요?

전 여러가지 AI 툴을 사용하기도 하고 개인적으로 작업하는 레포지토리가 모노레포인 동시에 꽤나 복잡하기 때문에 .AI.md라는 파일을 폴더마다 넣어두고 .cursorrules 로 해당 파일을 적절한 상황에서 읽으라고 지시합니다. “/a/b/c의 파일을 수정할 것이면 /a/.AI.md, /a/b/.AI.md, /a/b/c/.AI.md를 전부 읽어야한다.” 같은 식입니다. 그리고 그 .AI.md 파일엔 “어떤 동작을 할 것이라면 어떤 파일을 읽어봐라” 혹은 “어떤 동작은 이런식으로 처리해라” 식의 문장을 넣어둡니다. 이렇게 하면 자기가 작업 전에 예시 파일 읽고 상황에 맞는 동작 취해요.

AI 정보 얻는 곳이 궁금합니다!

전 주로 Geek News나 쓰레드에서 정보를 얻습니다.

AI는 개발자와 대립하는 존재인가 동반자가 될 존재인가

적어도 살아남은 개발자한텐 엄청나게 중요한 동반자일겁니다.

보안이 엄격한 회사에서는 AI를 어떻게 활용할 방법이 없을지 궁금합니다

오픈소스 LLM을 자체적으로 띄우면 됩니다. 물론 코딩 실력은 좀 떨어지지만 그래도 쓸만하다고 들었습니다.

생성형 ai가 범람하는 이때 주니어 개발자를 채용하지 않겠다는 소식을 가끔 듣습니다. ai에 대체 당하지 않을 개발자가 되는 법은 무엇일까요?

AI를 잘 다루는 게 최선입니다. 이미 시니어 한 명이 AI를 적극적으로 활용해서 시니어 몇명분의 업무를 처리하는 시대이거든요. “1인분”의 개념 자체가 AI 때문에 바뀔 겁니다.

AI가 제공한 코드에 대한 검증을 어떻게 하는지

테스트 케이스 많이 짜달라고하고 테스트 케이스를 검증하는 게 제일 쉬운 방법입니다. 물론 개념은 다 이해하시고 넘어가시고요.

AI의 교육적 활용법

시연에서 보여드렸듯이 AI한테 진행하지 말고 가능한 모든 방법을 나열해달라고 하는 게 최고입니다.

조직이 매우 소규모라 프로토타이핑을 넘어서 운영 레벨로 넘어갈때에 대한 고민이 있고(조직내 대부분의 인원이 리서처 출신으로 모델 학습을 주로 했던지라 큰 서비스 운영 경험이 없음), 채용 관점에서 매일 세상이 바뀌는 느낌이라 어떤 분을 뽑아야하는지 고민이 있습니다.

AI를 잘 다루는 시니어가 현 시점에선 최고입니다. 근데 이런 분을 실질적으로 어떻게 알아볼 것인가에 대한 얘기는 저도 아직 잘 모르겠습니다. 하지만 세상이 빨리 바뀔수록, 그리고 인공지능이 뜨면 뜰수록 순수 지능 높은 개발자가 최고입니다. 그쪽으로 찾아보시는 걸 추천드립니다.

비인기 언어 사용시 나타나는 환각을 어떻게 피하는지 궁금해요!

자체적인 언어라면 언어 스펙 문서 같은 걸 컨텍스트로 넣으시면 잘 작동할겁니다.

안정적인 서비스적용을위한 평가방법론이 궁금합니다

저도 개발 자동화 서비스를 개발중인 입장이라서 고민중인 내용인데요, 아직은 PR까지 만든 뒤 CI와 사람의 코드리뷰를 활용하는 게 제일 안전하지 않나 생각합니다. 참고로 저는 상위 모델을 사용하는 Supervisor 에이전트를 만드는 것도 고려중인데, 작동할지는 잘 모릅니다. 시도는 한 번 해 볼 생각입니다.

AI의 발전으로 인해 1인 개발자가 많아진다면 사실 협업이나 커뮤니케이션 역량은 그닥 도움이 되지 않는게 아닐까 하는 걱정이 있는데 어떻게 생각하시나요

1인 창업을 하실 게 아니라면 여전히 중요한 능력일 겁니다. 1인 개발이라는 게 개발을 혼자한다는 얘기지 회사의 모든 업무를 혼자 한다는 얘기가 아니기 때문에 여전히 마케팅이나 디자인처럼 개발이랑 전혀 상관없는 업무를 맡으신 분과는 협업을 해야하실 겁니다.

여러 aI 도구간의 파이프라이닝을 어떻게 하면 좋을까요?

저도 한참 고민해본 문제인데요, 이건 결국 코딩을 하지 않고 해결이 안 되는 문제 같습니다. 저도 그래서 결국 개발 반자동화 서비스가 필요하다는 결론을 내리고 개발중입니다.

기초적인 코드 작성할때 자꾸 AI에 기대는 것 같은데 이렇게 의존해서 실력이 하락할까 걱정입니다.

저도 실력이 어느정도 떨어졌겠지만 저는 폐쇄망 개발쪽으로 갈 의향이 없기 때문에 별로 신경쓰지 않습니다. 저는 폐쇄망 개발이 필요한 상황이 오지 않는다면 AI 도움 없이 코드를 만들어내는 능력은 가면 갈수록 별 의미가 없어질 것이라고 생각합니다.

Shadcn 외 다른 컴포넌트로도 V0 사용 가능한가

v0에 프롬프트 넣는 기능이 있는데요, 최근에 프롬프트 유출됐으니 한번 보시고 컴포넌트 부분을 사용하시는 컴포넌트 라이브러리에 맞게 수정하신 뒤 프롬프트로 넣으시면 작동할겁니다.

개발자라는 직업에서 AI한테 대체가능한 영역이 어느정도라고 보시는지 궁금합니다

코드를 짠다라고 하는 부분은 사실상 거의 다 대체가 가능할 것이라고 봅니다.

manus같은 에이전트를 한국에서 개발하려는데 자금이 부족합니다. 어떻게 해야할까요.

에이전트 개발 자체는 비용이 크게 들지 않습니다. 대규모 언어 모델을 만드는 게 아니잖아요. 에이전트도 언어 모델을 활용한다 뿐이지 일반적인 프로그램입니다. 운영 비용은 수익 모델을 만들어서 충당하시면 됩니다.

요즘은 개발에도 ai 를 연동시키거나 접목시키는 경우가 많은 것 같습니다. 그래서 백엔드 개발자로서 어떤 포지션으로 어떤 지식을 가지고 있어야 하는지 알고싶습니다.

오늘 얘기한 지식 정도면 거의 충분할겁니다. 참고로 Roo Cline이나 커서 같은 경우 MCP를 이용하면 인프라까지 관리할 수 있습니다. 이런 식으로 어떤 AI 도구가 어떤 역할까지 할 수 있는지 알고 있으면 됩니다.

주니어의 AI 페어프로그래밍 시 효과적인 사용법

기본적으로는 위에서 답변했듯이 코드를 생성하되 개념은 진짜로 이해하고 넘어가는 게 제일 좋은 활용법이라고 봅니다. 그리고 제가 생각하는 개념 이해의 기준선은 AI가 작성한 코드의 어떤 부분이 개념의 어떤 부분을 구현한 것인지 바로바로 알 수 있을 정도입니다. 이 정도면 추후에 다른 작업을 지시할 때나 관련 문서를 작성할 때 충분합니다. 그리고 오늘 보여드렸듯이, “가능한 모든 최적화를 나열해줘” 같은 것도 좋은 사용법입니다.

AI 생성에 유리한 언어나 프레임워크의 특성이 궁금합니다.

러스트, 타입스크립트가 대표적으로 불리한 언어인데요, 러스트는 언어 자체가 추론할 게 많고, 타입스크립트는 Mapped 타입 같은 것들 한정입니다. 이런 식으로 추론이 많이 필요하면 불리해져요. 반대로 사람 입장에서도 추론할 게 없다면 코드 잘 짜줍니다.

사내 LLM백엔드를 쉽고빠르고저렴하게 구성하는방법

인프라 엔지니어가 아니라서 잘 모릅니다.

데이터분석에 어떤식으로 활용하면 효율성을 극대화 시킬 스 있을지 궁금합니다.

v0한테 데이터 던지고 시각화 해달라고 하면 이미지나 그래프로 보여줍니다. 경험상 그게 제일 빨라요. 데이터 분석 과정에 사용하고 싶으신 것이라면 분석 스크립트를 짜달라고 하시면 돼요. 어떤 점을 분석하고 싶은 것인지만 얘기해도 자기가 알아서 코드 만들어줍니다.

  1. Cursor 나 Windsurf 구독하지 않고 비슷한 기능을 사용하는 방법을 알고 싶어요. 2. 개발하는 프로젝트 구조와 파일 수가 많이 커져도 전체를 다 파악하면서 일관성있게 개발을 계속하고 리펙토링도 가능한 방법이 있나요?

관련된 도구를 직접 만드시는 방법이나 개인 API 키를 사용하시는 방법 외엔 사실상 없다고 보시면 됩니다. 두번째 질문은 .AI.md 답변 참고하세요.

프로덕션 상에서는 기능 추가에 AI를 사용할 경우 워낙 코드베이스가 방대하다보니 그 정확도가 많이 떨어집니다. 이를 어떻게 극복하고 계신지가 궁금합니다.

.AI.md 답변 참조하시면 됩니다.

아주 긴 코드에서 맥락 유지하면서 개발하는 방법

파일이 많은 것이라면 .AI.md 답변 참고하시면 되는데, 긴 파일 얘기하시는 것이라면 커서 같은 도구 사용하세요. 커서에 Long Context Mode 라는 것이 있는데 체크박스만 누르면 긴 파일도 컨텍스트로 넣어줍니다.

개발팀이 AI를 더 잘 활용할 수 있도록 회사 차원에서 어떤 걸 해주면 좋을지 고민입니다

커서/윈드서프 등 툴 지원 및 Roo Cline 같은 도구들 사용할 때 드는 비용 정도 지원해주시면 될 것 같습니다.

AI를 어디까지 접목해야하는지, 모두다 ai가 한다면 내 코드가 맞는지

앞 질문은 위에 답변 참조하시고, ai 별 이용약관이 있는데 그것을 읽어보시면 됩니다. 현실적으로는 당연히 제 코드고요.

ai를 전문적으로 공부할 생각은(지금단계에서는) 없지만 활용 역량을 끌어올리고 싶다는 가정하에 ai에 대해 이론 공부를 어디까지 하면 좋을지 궁금합니다

AI를 코딩용으로 활용하는 게 목적이면 이론 공부는 필요 없습니다.

현재 온페이지, 테크니컬SEO를 주 담당하고있는데 AI를 사용함으로써 더 생산성이 높아질지

당연히 높아집니다. SEO 해달라고 하면 진정한 SEO 초고수가 뭔지 보여주더라고요. 저도 해봤는데 사람보다 한참 위라고 느꼈습니다. og는 물론이고 구조화된 메타데이터까지 짜줍니다.

AI로 생성된 코드의 보안 취약점을 효과적으로 분석하고 방지하는 방법.

시도해보진 않았지만 보안 취약점이 없는 코드를 짜달라고 하면 CSRF 토큰 같은 것도 적용해서 코드를 작성해줄 것입니다. 근데 기본적인 접근은 주니어가 짠 코드로 취급하는 것이 최선인 것 같습니다. 저도 개발 반자동화 서비스를 만들고 있는데, 코드 리뷰로 취약점을 잡을 생각이에요. 참고로 프롬프트나 .cursorrules 같은 것으로 보안 규칙을 명시해주면 잘 따릅니다.

개발할 때 LLM을 적극 활용하시나요? 신규 기능을 도입할 때 적극 활용중인데, 너무 LLM 의존적인 것 같아 가끔 스스로 회의감이 들 때가 있습니다. 모르는 기능을 도입할 때 어떤 식으로 활용하시나요?

매우 적극적으로 활용합니다. 근데 저는 관련된 개념은 다 이해하고 있습니다. 저는 개념 이해 정도면 충분하다고 봅니다. 저는 어차피 AI 도움 없이 혼자서 코드를 짜는 능력은 가면 갈수록 큰 의미가 없어질 것이라고 봐요. 단지 컴퓨팅적 사고에 소질이 있다는 것을 증명하는 용도가 되지 않을까 생각합니다. 그리고 저는 제가 예전에 구현했던 것들 AI한테 절대 참조하지 말고 처음부터 구현해보라고 시킨 뒤 AI는 어떤 식으로 접근했나도 살펴봅니다. 이러면 도움이 많이 되는 것 같아요.

레거시와 함께할때 어떻게 최대치로 활용할까

커서 같은 도구를 사용하시면 레거시 코드도 컨텍스트로 알아서 넣어줍니다. @로 직접 넣으셔도 되고요. .AI.md 관련 답변도 읽어보시는 걸 추천드립니다.

AI를 사용함으로써 생산성을 올릴 수 있지만 보안에 대한 이슈는 없을지 궁금합니다

민감한 정보는 외부 AI에 넣지 않는 것이 기본입니다. 코드가 민감한 정보라면 리텐션 기능이 있는 (유료) AI 도구만 활용하세요. 그리고 .rooignore 같은 파일을 적극적으로 활용하시는 것을 추천드립니다.

1. AI를 어느정도 범위로 사용하시는지?
2. 협업에 혼란이 가지 않게끔 AI가 코드를 작성하게할 수 있는지? (기존 컨벤션이나 파일을 과 맞지 않는 코드 작성)
3. 생소한 라이브러리와 AI를 함께 사용하는 경우 활용도가 떨어지는 문제를 겪고있는데 혹시 이런 경험이 있으신지, 있다면 특별한 해결방법이 있을지?

1번은 토크쇼에서 얘기했습니다.

2번 같은 경우, git hook 같은 방법을 찾아보세요. 컨벤션은 기본적으로 도구를 이용해서 관리하는 것입니다. git hook으로 안 되는 종류의 컨벤션은 관련 명령어를 구성해둔 뒤 AI한테 해당 명령어가 통과해야한다고 지시해주면 됩니다. 지시해주는 방법은 .AI.md 답변 참조하시면 됩니다.

3번 같은 경우, 저는 .AI.md 에 “어떤 라이브러리는 어떤 식으로 써야한다.” 이렇게 가르쳐줍니다.

10. If you need to call mutating RPC methods, use the `useMutation` hook. ```ts const createProject = xxxClient.createProject.useMutation(); ``` 11. If you need to call query RPC methods, use the `useQuery` hook. ```ts const projects = xxxClient.listProjects.useQuery(); ``` 12. Include `locale: Locale` where `Locale` is `import { Locale } from "@/i18n";` in the params of the page components. 13. Define the params as `Promise<T>` in the page components. 14. Use `use(params)` to unwrap the params as `T` from `Promise<T>` in the page components.

제가 실제로 사용중인 .AIㅅ.md에서 발췌한 내용입니다. 이런 식으로 가르쳐주면 잘 사용합니다.

커서, 윈드서프, 클로드 cline등 ai 서비스가 많은데, 어떤 서비스 사용 빈도가 가장 높고, 상황별로 특별히 선호하는 서비스가 있는지?

토크쇼에서 얘기했습니다.

AI을 활용해서 개발을 진행할때 같은 문제가 반복된다면 어떤 조치를 취하시는지 알고싶습니다

중간에 개입하거나 프롬프트를 바꿔서 재시도합니다. 그리고 잘못된 코드를 짜는 경우엔 매 과정마다 테스트를 돌리라고 시킵니다.

어떤 기능 구현에 대한 로직 초안, 에러 원인 추정 등 여러가지 상황이 있는데 각각에 적합한 질문법과 특화된 AI 툴이 있는지 궁금합니다!

따로 구분할 필요 없이 커서나 Roo Cline 모델을 claude-3.7-sonnet-thinking로 설정하시고 해달라고 하면됩니다. 이 모델이 생각보다 똑똑해서 상황 구분할 필요 없이 디버깅 요청이든 뭐든 프롬프트로 요청만 하면 됩니다. 테스트 고쳐달라고 하면 자기가 테스트에 dump용 로그 메시지 추가해서 돌린 뒤 디버깅하고 에러 잡은 뒤에 해당 코드 다시 지우는 수준의 작업까지 합니다. 근데 프롬프트에 테스트를 수정하지 말라고 해야합니다. 안 그러면 디버깅하다가 잘 안되면 테스트의 expected 값을 바꿔서 테스트가 통과하게 합니다.

“3년 전 - 현재 - 3년 후” 개발 조직 구성과 조직 협업 방식이 어떻게 변해왔고, 어떻게 변해갈까요? 어떤 것을 주로 떠올리실지 궁금합니다. AI 어시스턴트 수준이 계속 높아지는데, 업무 협업 방식도 많이 변해갈 것 같아서 질문 남깁니다! 실력도 실력이지만 여전히 사람이 잘해야만 하는 면을 잘 길러둬야, 협업하기 좋은 인재로 성장할/시킬 수 있을 거라 생각해서요!

백엔드/프론트엔드 같은 구분은 없어지고 혼자서 다 하게 될 가능성이 높다고 생각합니다. 그래도 혼자서 회사를 운영하는 것이 아니라면 기본적인 협업능력은 필수일 것입니다. 근데 협업이 이제 백엔드-프론트엔드 같은 방식은 아닐 것입니다. 업무를 나누는 방식이 달라질텐데, 혼자서 업무범위 전체를 AI를 이용해서 짧은 시간에 구현할 줄 알아야 할 것 같습니다. 즉, AI 활용 능력을 키우는 게 가장 바람직해 보입니다.

질문이 쌓이다보면 계속 같은 말은 반복하거나, 원하는 흐름에서 벗어나는 경우가 많아요
어떻게 질문을 쌓아가는게 좋은지

그런 경우 질문들을 모아서 새 챗을 만들고 첫 프롬프트로 전부 넘기시면 됩니다. 내용만 모아주는 게 가장 낫지만 귀찮으시다면 질문 형태로 그대로 복붙하셔도 작동은 합니다. 보여드린 SWC의 점프 테이블 작업이 그런 예시입니다. AI가 자꾸 이상한 행동을 하길래 저도 점프 테이블에 관련된 요구사항을 상세히 던져준 것입니다.

참고로 그 작업 같은 경우 AI가 제가 원하는 방식대로 구현 안 한 이유가 있었습니다. 벤치마크 결과 잘못된 최적화였습니다.

AI 연계 에디터(예: 커서) 사용여부와 AI의 코드 접근에 대한 기준을 어떻게 잡고 있는지 궁금합니다.

앞의 질문은 토크쇼에서 얘기했습니다. 접근 기준 같은 경우 SWC나 next.js는 오픈소스라서 거의 신경을 쓸 일이 없고요, 비공개 프로젝트 같은 경우엔 리텐션 기능을 활용하고, .rooignore 같은 파일이나 vscode의 ignore 기능도 사용합니다.

AI를 사용해서 멍청해지는 듯한 느낌을 받은 적이 있나요?

멍청해진다는 느낌은 받은 적 없고 게을러졌다는 느낌은 받은 적 많습니다. 장난으로 멍청해졌다 이런 얘기는 가끔 하는데, 저는 어지간한 것들 여전히 다 구현할 수 있습니다. 그래도 빡센 구현은 옛날보다 시간이 더 걸리긴 할 것 같습니다.