나의 인생 첫 풀스택 프로젝트 회고

Tay (Taewan) Ham·2024년 7월 26일
0

SeSAC

목록 보기
2/2

🧷 프로젝트 관련 링크

1. 🍹 프로젝트에 대한 간단한 설명

drawing

여태까지 배운 EJS, ExpressJS, MySQL 등만을 이용하여 CRUD 시스템이 적용되는 "하이볼 레시피 공유 플랫폼" 을 만들었다.
기본적으로 하이볼 레시피를 작성(Create), 수정(Update), 삭제(Delete), 조회(Read) 을 할 수 있도록 했다. 또한, 유저가 회원가입(Create), 수정(Update), 탈퇴(Delete), 조회(Read) 할 수 있도록 구현했다. 페이지는 총 6개다. (레시피 조회 / 레시피 작성 / 레시피 수정 / 레시피 / 회원가입 / 마이페이지)

2. 🙋🏻 내가 담당한 부분

1) 사용한 기술

  • Front : EJS, Tailwind CSS, Axios
  • Back : Sequelize, Express.js, MySQL

2) 구현한 부분들

내가 담당한 부분은 다음과 같다. 결과적으로, 프론트엔드백엔드를 둘 다 담당하였다.

  • 레시피 작성페이지, 수정페이지, 조회페이지의 프론트엔드 부분
  • 마이페이지(회원정보 조회 및 수정페이지)의 프론트엔드백엔드 부분

3. 회고

1) ✏️ 배운점

  1. 프론트엔드와 백엔드 구현을 동시에 하다보니 큰 숲을 보고 개발할 수 있는 감각이 중요하다는 것을 알게되었다.

    • 예시) 화면의 input을 구현할 때, 백엔드에 어떠한 타입으로 넘겨야하는지 DB 레벨에서 생각해봐야 한다
    • 즉, 프론트엔드만 하더라도 백엔드에 대해서 아는 것은 시야를 확장시켜준다 (결국엔 끊임없이 공부해야 한다)
  2. Tailwind CSS 를 처음 사용해보았다.

  3. 여러장의 이미지axiosmulter로 백으로 넘기는 과정에 대해서 많이 배웠다.

    • 이 부분이 가장 골치 아픈 부분이었는데, 결국에는 해결되었다.
  4. 첫 팀 프로젝트이다보니, Git으로 협업하는 방법에 대해서 배웠다.

    • git convention, branch control 등에 대해서 알게 되었다.
    • 동시에 같은 코드를 수정하다보니 조심해야 한다 (pull request 중요!)
  5. 구글링 실력이 늘었다

2) ⚠️ 미흡한 점

  1. 버그를 너무 주먹구구식으로 발견했다

    • QA를 해야할 리스트를 개발을 시작하기 전에 미리 만들었다면, 버그를 더 효율적으로 발견 가능했을 것 같다.
  2. 프론트와 백을 연결하는 과정에서 발생한 자잘한 버그들을 해결하는 데에 많은 시간을 소비했다.

    • UI/UX에 대한 부분을 소홀히 한점이 너무 아쉽다.
    • 프론트엔드를 담당하게 되면서 멋진 UI/UX 구현에 도전해보고 싶었는데 시간이 부족했다.
    • 특히, 레시피 조회페이지의 시각화 방법에 대해서 더 고민해보고 싶었는데, 이 부분이 유난히 아쉬웠다.

4. 🤔 느낀점

소통, 소통, 소통

개발 프로세스의 많은 부분이 소통이라는 점을 느끼게 되었다. 같은 팀원들끼리의 소통은...

1) 문제가 커지기 전에 미연에 방지해주고,
2) 일을 두번 하지 않게 한다.

이번 팀 프로젝트에서는 소통이 비교적 원활하게 된 것 같아서 다행이라는 생각이 든다.

  • 간단명료하게 소통이 이뤄질 수 있게 미리 정할 수 있는 부분은 최대한 정하고 개발을 시작하는 것이 좋을 것 같다
  • 너무 적은, 너무 많은 소통을 해도 문제이다 ➡️ 결국 가장 적당한 소통빈도 및 방법에 대해서도 고민 필요하다

명예팀원, GPT

이전에 프로그래밍과 관련해서 구글링만을 했었더라면, 요즘에는 GPT도 활발하게 사용하고 있다. 버그 수정에 생각보다 많은 시간을 써야했는데, GPT를 쓰면서 그 시간을 조금이나마 줄일 수 있었다. 더 적극적으로, 더 정교하게 프롬프트를 쓸 수만 있다면 강력한 툴이 될 수 있겠다는 느낌이 들었다.

이외에도, 서비스를 구축하면서 새로운 복잡한 로직을 짜는 것보다 구글링하여 기능을 찾아다 쓰는 것이 생각보다 많았다. 특히, GPT를 쓰면 복잡한 코드를 순식간에 작성해준다. (정확도는 장담할 수 없다) 예를 들어, ERD 사진을 input으로 넣어주면, 3초만에 sequelize 코드를 줄줄 뽑아낸다.

이런 점에서, LLM 서비스들은 개발자의 든든한 동료가 되는 동시에, 위협적인 존재가 될 수 있다는 생각이 들었다. 솔직히 회사 입장에서 1시간 걸려서 sequelize를 쓰는 개발자보다 3초만에 코드를 써주는 GPT를 채용하는 것이 더 이득이다.

따라서, GPT에게 대체되는 개발자가 되지 않기 위해서는 나름의 대비가 필요해보인다. OpenAI의 창립자인 Sam Altman은 AI의 위협에 대해서 '앞으로 위협은 커녕, 엄청난 기회의 확대가 있을 것' 이라고 이야기하였는데, 모두에게 적용될 수 있는 이야기는 아닌 것 같다. 적어도 지금의 나는 미래에 쉽게 대체될 것 같다.

기본적으로, 웹 엔지니어링에 대한 fundamental을 다지고, 큰 그림을 그릴 수 있도록 (궁극적으로, GPT에게 프롬프트를 써주는 사람이 되도록) 훈련해야겠다는 생각이 들었다.

  • fundamental : JS의 깊은 부분 (비동기 등), 웹브라우저 렌더링, 데이터베이스, 컴퓨터 아케텍쳐 및 OS, 알고리즘(데이터 구조, 시간복잡도, 정렬) 등
  • 개발 이외의 영역 : 기획, UI/UX 디자인, 소통 및 협업 능력 등

0개의 댓글