여태까지 배운 EJS, ExpressJS, MySQL 등만을 이용하여 CRUD 시스템이 적용되는 "하이볼 레시피 공유 플랫폼" 을 만들었다.
기본적으로 하이볼 레시피를 작성(Create)
, 수정(Update)
, 삭제(Delete)
, 조회(Read)
을 할 수 있도록 했다. 또한, 유저가 회원가입(Create)
, 수정(Update)
, 탈퇴(Delete)
, 조회(Read)
할 수 있도록 구현했다. 페이지는 총 6개다. (레시피 조회 / 레시피 작성 / 레시피 수정 / 레시피 / 회원가입 / 마이페이지)
EJS
, Tailwind CSS
, Axios
Sequelize
, Express.js
, MySQL
내가 담당한 부분은 다음과 같다. 결과적으로, 프론트엔드와 백엔드를 둘 다 담당하였다.
프론트엔드와 백엔드 구현을 동시에 하다보니 큰 숲을 보고 개발할 수 있는 감각이 중요하다는 것을 알게되었다.
Tailwind CSS 를 처음 사용해보았다.
여러장의 이미지를 axios
와 multer
로 백으로 넘기는 과정에 대해서 많이 배웠다.
첫 팀 프로젝트이다보니, Git
으로 협업하는 방법에 대해서 배웠다.
구글링 실력이 늘었다
버그를 너무 주먹구구식으로 발견했다
프론트와 백을 연결하는 과정에서 발생한 자잘한 버그들을 해결하는 데에 많은 시간을 소비했다.
개발 프로세스의 많은 부분이 소통이라는 점을 느끼게 되었다. 같은 팀원들끼리의 소통은...
1) 문제가 커지기 전에 미연에 방지해주고,
2) 일을 두번 하지 않게 한다.
이번 팀 프로젝트에서는 소통이 비교적 원활하게 된 것 같아서 다행이라는 생각이 든다.
이전에 프로그래밍과 관련해서 구글링만을 했었더라면, 요즘에는 GPT도 활발하게 사용하고 있다. 버그 수정에 생각보다 많은 시간을 써야했는데, GPT를 쓰면서 그 시간을 조금이나마 줄일 수 있었다. 더 적극적으로, 더 정교하게 프롬프트를 쓸 수만 있다면 강력한 툴이 될 수 있겠다는 느낌이 들었다.
이외에도, 서비스를 구축하면서 새로운 복잡한 로직을 짜는 것보다 구글링하여 기능을 찾아다 쓰는 것이 생각보다 많았다. 특히, GPT를 쓰면 복잡한 코드를 순식간에 작성해준다. (정확도는 장담할 수 없다) 예를 들어, ERD 사진을 input으로 넣어주면, 3초만에 sequelize 코드를 줄줄 뽑아낸다.
이런 점에서, LLM 서비스들은 개발자의 든든한 동료가 되는 동시에, 위협적인 존재가 될 수 있다는 생각이 들었다. 솔직히 회사 입장에서 1시간 걸려서 sequelize를 쓰는 개발자보다 3초만에 코드를 써주는 GPT를 채용하는 것이 더 이득이다.
따라서, GPT에게 대체되는 개발자가 되지 않기 위해서는 나름의 대비가 필요해보인다. OpenAI의 창립자인 Sam Altman은 AI의 위협에 대해서 '앞으로 위협은 커녕, 엄청난 기회의 확대가 있을 것' 이라고 이야기하였는데, 모두에게 적용될 수 있는 이야기는 아닌 것 같다. 적어도 지금의 나는 미래에 쉽게 대체될 것 같다.
기본적으로, 웹 엔지니어링에 대한 fundamental을 다지고, 큰 그림을 그릴 수 있도록 (궁극적으로, GPT에게 프롬프트를 써주는 사람이 되도록) 훈련해야겠다는 생각이 들었다.