이사인 줄 알았는데 사실은 재건축이었던 건에 대하여

프로필

2025년 04월 01일

24 0

중간 점검

생각보다 블로그가 더 개판이란 걸 알게 되었고, 단순히 현재 구성된 HTML 기반 프론트엔드를 Next.js 기반으로 전환만 하면 되는 간단한 프로젝트가 아니라는 걸 깨달았다.

RESTful API

Cursor IDE가 리팩토링을 그렇게 잘한다고 해서 처음엔 Cursor에게 맡겨봤다. 아무래도 모듈화가 꽤나 세밀하게 되어있기도 하고 컨텍스트 자체가 Cursor의 수용 범위를 초과하는 거 같았다. 분명 엔드포인트 수정을 요청했지만 엉뚱한 코드를 건드려서 그냥 내가 손으로 직접 수정하기로 했다.

여기서 또 하나 깨달은 점이 있는데, FastAPI에는 기본적으로 Swagger가 달려있지만, 지금까지 개발을 하면서 항상 HTML로 템플릿을 만들어서 기능을 직접 손으로, 눈으로 테스트 해가면서 수정을 해왔는데, 거지발싸개 같던 엔드포인트들을 GET/POST 양자택일이 아닌 DELETE, PATCH 등의 메소드을 적극 이용하면서 수정을 하고 나니 반대로 이 메소드들은 HTML이 지원을 하지 않는다는 걸 깨달았다.

그럼 어떻게 해야하는가?

어떻게 하긴 시벌... Swagger로 하나하나 테스트 해봐야지 뭐... 그래서 난생처음은 아니지만 되게 오랜만에 /docs로 접속을 해봤고, 기능을 하나하나 테스트했다. 또한 이 과정에서 지금 배포되어 있는 프로덕션 환경인 cliche.life의 /docs에 아무런 제한이 걸려있지 않았다는 걸 확인했고, 이건 보안적으로 상당히 위험하다는 걸 깨달았다. 그래서 이 또한 호스트에서 설정을 통해 막아줬다.

Next.js

원래는 순차적으로 하나하나씩 도입을 하면서 바꾸려고 했으나, 위에서 얘기한 HTML의 메소드 미지원으로 인해 저걸 프로덕션 환경으로 옮기려면 아예 Next.js로 완전히 이식을 한 다음에 배포를 하는 게 가성비 측면에서 나을 거라는 판단을 했고, Cursor와 함께 프론트 작업을 진행했다. 예상했던 것보다 퀄리티가 구렸고, 지금 HTML로 짠 페이지보다 UI에서도, UX에서도 뭐가 나은 건지 구분이 안갈 정도의 옆그레이드 였기에, Cursor가 아닌 Windsurf를 사용해봤다.

Cursor의 작품

Windsurf는 생각보다 전체 컨텍스트를 파악하는 능력이 좋았고, 커서에 비하면 확실히 프론트엔드 적 측면에서 우위에 있는 듯한 느낌을 받았다. 하지만 껍데기만 잘 만들고, 그걸 기존 FastAPI 백엔드와 연결하는 부분이 거의 폐급 수준이라 그 부분은 다시 Cursor의 도움을 받았다.

Windsurf의 작품

이 부분은 사실 조금 의아해서 따로 검색을 해봤는데, 난 기본적으로 Cursor를 쓸 때도, Windsurf를 쓸 때도, 모델을 Claude의 Sonnet 3.7을 이용하는 데, 아마 서로 지향하는 방향이 조금 다른 거 같았다. 그건 각 회사의 모델 학습 방향이나 프롬프트가 달라서 그런 것 같다.

Thread에서 본 Windsurf 프롬프트, 인간이 이렇게 잔인하다.

결론

사실 RESTful API 말고도 인지는 하고 있었으나, 당장 문제가 되진 않을 버그들이 몇 개 있었는데, 지금 이 프로젝트를 진행하는 과정에서 그냥 겉치레만 이쁘게 조정하는 게 아닌, 계속 사용하는 데 문제가 없도록 수정을 진행하려고 한다. 사실 껍데기만 옮기는 작업은 거의 다 끝나긴 했는데, 코드를 직접 수정하다보니 보이는 문제점이 생각보다 많았고, AI를 이용해서 껍데기를 만들었다고 한들, 나중에 내가 이걸 직접 유지보수 하는데 드는 비용이 너무 커질 거 같아서 간단하게라도 Next.js에 대한 공부도 진행하고, 보이지 않는 곳에 짱박아둔 기술 부채도 해결을 했을 때 프로덕션으로 배포가 될 거 같다.

요즘은 코딩 테스트 + 알고리즘 공부를 하고 있어서, 처음에는 한 1~2주 정도면 리팩토링이 완료되겠지 했는데 이건 그렇게 간단하게 볼 게 아닌, 좀 시간을 들여서 미래의 내가 또 고통받지 않도록 확실하게 작업하는 게 나을 거 같다는 생각이 들었다.

💬 오늘의 명언  
인생 꿀팁  
개븅신같은 HTML 말고 프론트까지 같이 짤 거 아니면  
RESTful은 엿이나 처먹으라고 해라  
- 어느 블로그 개발자의 절규 中

#REST #RESTful #RESTful API #Next.js #리팩토링

댓글 개

댓글을 작성하려면 로그인이 필요합니다