나는 Flutter 개발 공부를 Cursor 코드 편집기로 하고 있다. 노마드코더 강의를 듣다 보면 종종 강의와 실제 내가 작성하는 코드가 일치하지 않는 경우가 더러 생긴다. 약 2년 전의 강의이기 때문에 강의대로 코딩을 하더라도 함수명이나 메서드가 달라져서 100% 똑같이 작성할 수 없게 된다.

이번 글에서는 내가 Flutter 로 웹툰 앱 만들기 강의를 들으면서 마주한 에러를 어떻게 해결했는지, 그리고 앞으로 비슷한 상황에서 참고할 수 있는 팁을 공유하려고 한다.

문제의 시작: withOpacity 대신 withAlpha 사용

강의를 따라 코드를 작성하다 보면 가장 자주 부딪히는 문제는 함수나 메서드의 변경이다. 내가 겪었던 문제 중 하나는 색상 투명도를 조절할 때 발생했는데.
니코 강사님의 강의에서는 Color 객체에 .withOpacity를 사용해 투명도를 설정했지만, 제가 사용하던 최신 플러터 버전에서는 .withAlpha를 사용하도록 요구했다.

차이점:

  • withOpacity는 투명도를 0.0에서 1.0 사이의 소수점 값으로 설정합니다.
  • withAlpha는 투명도를 0에서 255 사이의 정수 값으로 설정합니다.
//.withOpacity를 사용해 투명도를 설정
Color myColor = Colors.blue.withOpacity(0.5);

//.withAlpha를 사용해 투명도를 설정
Color myColor = Colors.blue.withAlpha(128); // 50% 투명도

둘 다 써도 하지만 최신 플러터 버전에서는 .withAlpha가 좀 더 명확한 방식으로 추천되었고, 이를 적용하면 이렇게 수정된다.

어떻게 해결했을까? – Cursor Ai

Fultter 메서드의 변경

에러 확인
위 이미지에서 보이는 것처럼, Cursor로 코딩을 작성하다 보면 오타가 날 경우와 부적절한 함수를 사용할 경우 친절하게 표시를 해준다. 수정 없이도 코드가 실행되는 변수명에 대해서도 확인을 요구하며 1부터 10까지 감독 하에 코드를 작성하도록 요구한다.

Cursor Ai 활용
고치라고 표시된 곳을 클릭 후 cntl+K(혹은 cntl+L로 통합 체팅)를 눌러서 Cursor AI에게 “이 코드에 문제가 있어, 에러를 수정해줘”라고 요청하니, 자동으로 withAlpha로 바꿔주고 어떤 이유로 바꿨는지도 친절히 설명을 해준다.

이전에 VS code를 사용할 때만 해도, 에러를 잡기 위해선 에러코드를 복사해서 구글에 검색하거나, 강의 댓글에서 나와 같은 사람을 찾아다녀야 했는데, 이제는 아무 고민 없이 쳇 GPT에게 물어보고, Cursor를 사용하면 더 편하게 편집창에서 바로 Ai에게 수정을 요청할 수 있는 것이다.

Cursor Ai로 해결할 수 없는 문제

Cursor AI는 정말 강력한 도구다, 많은 코딩 유튜버들이 코파일럿 Ai와 커서 Ai를 두고 어느게 더 좋은지 비교를 한다. 코파일럿을 사용해 보지 못했지만 둘 다 코딩을 배우고 있는 나에게는 너무나 매력적이고, 고마운 존재이다.

Cursor 덕분에 옛날 강의로 공부를 해도 자동으로 플러터 최신 버전에 맞게 수정, 지도해 주는 기능은 학습과 개발을 빠르게 진행할 수 있도록 도와준다. 하지만 모든 문제를 해결할 수 있는 만능 열쇠는 아니다.

SDK 버전 오류의 벽

강의를 따라 개발을 진행하던 중, 특정 패키지를 설치하려고 할 때 **”SDK 버전과 호환되지 않음”**이라는 에러를 마주쳤는데, 처음엔 Cursor Ai에게 에러 로그를 복사해서 “이 문제를 해결해줘”라고 요청했는데, AI는 이미 시도해본 방법들 즉 pubspec.yaml에서 플러터 SDK 버전을 올리거나 낮추라는 기본적인 답변을 반복했다.

내가 Cursor Ai에게 기대했던 것은 영화 아이언맨에 등장하는 자비스 처럼 모든 것을 통제하는 모습이었지만, 아쉽게도 현재의 Cursor Ai는 부족한 모습이었다.

SDK 버전 충돌을 해결하기 위해선 단순히 버전을 업그레이드하는 것으로 해결되는 게 아니었다. 최신 SDK 버전에서 해결되지 못한 에러가 있었기에 오히려 구버전으로 다운그레이드를 해야 하는 상황이었고, 내 컴퓨터의 system 환경 설정과도 호환이 되는 버전으로 매칭을 해줘야 했다.

Cursor Ai는 이런 시스템 레벨 문제, 호환성 체크에 대해 제한적이고 아쉬운 모습을 보였다.

결국 찾아간 곳: Stack Overflow

결국 나는 옛날 방식으로 Stack Overflow에서 에러 로그를 검색하기 시작했다. 구글에 검색해도 좋지만, 결국은 여기로 들어오게 되어있다.

// 콘솔창에 보이는 에러 메시지
Error: The current Flutter SDK version does not satisfy the requirement
  1. 에러 메시지 중 핵심 문구를 복사해서 검색창에 입력
  2. 거의 모든 경우 100% 동일한 에러코드를 질문한 사람이 있음.
  3. 해당 질문에 들어가서 가장 많은 추천을 받은 답변을 보고 최대한 동일하게 작업.
  4. 만약 다른 에러코드가 뜨면 해당 코드를 다시 Stack Overflow에 검색하기

Cursor Ai의 한계

이 경험을 통해 깨달은 것은, Cursor AI가 작성 중인 코드의 로직을 수정하거나, 최신화하는 데는 탁월하지만, 시스템 설정(SDK 충돌, 환경 변수 문제 등)을 다루는 데는 한계가 있다는 점입니다.

SDK와 관련된 문제는 로컬 환경, 운영체제, 설치된 도구의 버전 등 다양한 외부 요소가 얽혀 있기 때문에, Ai가 그 모든 것을 이해하고 해결하기는 어렵습니다.

문제 해결 팁: 시스템적 오류를 마주했을 때

  1. Stack Overflow 적극 활용
    에러 메시지의 핵심 문구를 검색하면, 이미 같은 문제를 겪고 해결한 사례를 찾을 확률이 높습니다.
  2. Flutter 공식 GitHub 이슈 확인
    최신 SDK 관련 문제나 패키지 충돌은 GitHub 이슈 페이지에 빠르게 공유되곤 합니다.
  3. Ai는 보조 수단일 뿐
    Ai 도구는 개발을 보조하는 훌륭한 도구지만, 모든 문제를 대신 해결해줄 수 없다는 점을 기억하세요. 직접 검색하고, 문제를 파악하며, 해결책을 찾아가는 과정에서 얻는 경험은 장기적으로 더 큰 도움이 됩니다.

Cursor Ai는 플러터 코딩을 할 때 정말 유용하지만, 시스템적인 문제를 해결하려면 직접 발로 뛰는 노력이 필요하다. Ai를 적절히 활용하면서도, 문제를 근본적으로 이해하려는 자세를 가지는 것이 중요하다.

내가 주로 하는 방법은, 코드 수정을 해달라 하고, 맨 윗 줄 부터 왜 이렇게 코드를 작성했는지 설명해달라고 한번더 요청을 하고, 코드 리뷰를 해본다. 코드 마다 내가 이해 할 수 있게 주석을 추가로 달아달라고 하면 도움이 많이 된다.

Similar Posts