본문 바로가기
[ Project ]/Individual

[ Individual ] 쇼핑몰 프로젝트 후기

by 환이s 2023. 5. 4.


더보기

프로젝트 Github : https://github.com/KiHwanY

 

 

개인프로젝트 후기

 

저는 5개월간의 국비지원 과정을 이수하고, 현재 개인 프로젝트(쇼핑몰)를 진행했습니다.

프로젝트를 진행하면서 제대로 이해를 하지 못하고 넘어간 것들이 많았고, 다른 프로그램, 기술을 사용해보고 싶었지만 부족한 시간으로 인해 사용해보지 못했던 아쉬움이 컸습니다.

 

앞으로 다양한 프로젝트를 경험하면서 후기 글을 작성해서 아쉬움을 채우고자 합니다.

 

 

 

첫 웹개발 프로젝트, 욕심 갖고 시작

 

이론 강의 수강을 마치고 드디어 개인 프로젝트를 하게 되었습니다. 

이론을 배우면서 자습이나 과제 실습도 꾸준히 했지만 채워지지 않는 부분들이 굉장히 많았습니다. 그로 인해 프로젝트 시작하기도 전에 내가 잘할 수 있을지, 불안함을 느끼고 지금까지 배운 이론이 새하얀 백지처럼 처음 시작하는 단계에 느낀 감정을 다시 한번 느껴보는 경험을 했습니다. 하지만 백엔드 개발자가 되고 싶다는 목표를 갖고 지방에서 올라와 준비했던 제 자신을 믿어보자는 자신감을 부여하고 욕심 갖고 개인 프로젝트에서 좋은 성적을 받아서 팀장을 담당할 수 있는 목표를 정하고 준비했습니다.

 

당연한 얘기겠지만, 프로젝트를 진행하면서 자습이나 이론 강의에서 겪어보지 못한 상황이 자주 생겼습니다. 

프로젝트 시작 전에는 무수히 많은 오류를 만날 기회도 상대적으로 적고, 내가 구현하고 싶은 기능에 대해서 깊게 고민에 빠진 시간도 없이 흔히 백지상태에서 주입식 교육 위주로 했기 때문에 기획 단계에서 시간적으로 소모를 많이 했다고 생각합니다. 이러한 점들을 비롯하여 부족했던 부분들이 개인 프로젝트를 하며 많이 채워졌습니다.

 

한마디로, 프로젝트는 "개발자로 성장할 수 있는 좋은 공부 이상의 경험"을 얻을 수 있는 시간이었습니다.

 

한달간의 첫 프로젝트가 끝난 지금 생각해 보면 자유도가 큰 만큼 어려움과 괴로움으로 가득하기도 했지만, 무엇보다 내 의지 스스로 구현하고 싶은 기능을 포기하지 않고, 수많은 에러를 경험하면서 끝내 구현했을 때 그 성취감과 즐거움을 만끽할 수 있었습니다.

 

 

첫 모험

 

개인 프로젝트 끝낸 지금 제일 중요한 요소를 하나를 꼽으라면 스택도 주제도 아닌 "내 자신의 역량"이라고 답할 것 같습니다. 욕심이 많은 성격이고, 성취감을 갈구하는 스타일이라서 팀 프로젝트에서 많은 역할을 담당해서 팀을 이끌고 싶다는 욕심이 있습니다.

 

팀 프로젝트에서는 함께 준비하는 사람이 누구냐에 따라 팀의 역량이 커지기도, 축소되기도 한다고 믿기 때문입니다. 그렇기에 팀의 역량을 높이기 위해 나 자신의 역량을 높여서 팀 프로젝트에 큰 영향력을 줄 수 있는 1인이 되기 위해 역량을 꾸준히 키워 나가야 한다고 생각했습니다.

 

 

 

백엔드로서의 첫단추

 

국비 과정은 커리큘럼에 따라서 배우는 과정이 다르다. 

현재 제가 배우는 과정에는 프런트엔드도 취업할 수 있을 정도의 강의를 배우고 있습니다. 그로 인 해 처음 교육 시작했을 때 많았던 같은 기수 수강생분들이 프런트엔드의 매력을 느끼고 취업 경로를 바꾸는 분들도 있습니다.

 

그렇다면 왜 프런트엔드는 지망하지 않는가?? 묻는다면 나는 확신에 찬 목소리로 "CSS와는 거리가 멀어서요"라고 말할 수 있습니다.

 

물론 로직을 짜는 일도 하고 설계하는 일도 재미는 있었지만, 프로젝트를 통해서 느낀 바로는 UI나 CSS와는 거리가 먼 사람이었습니다.  무엇보다 백엔드에서 Session , DB, 네트워크를 배울 때의 즐거움이 훨씬 컸기 때문에 백엔드 개발자에 대한 로망이 더욱더 커졌습니다.

 

 

가령 로그인 기능을 논할 때는 로그인 상태를 어떻게 유지할 것인지 계속 떠올리며 고민해 보고, 단순한 기능을 구현하는 것보다는 데이터 플로우의 감을 잡기 위해 해당 기능을 구현하려면 어떤 쿼리를 날려야 할까? 생각하며 진행했습니다. 이러한 고민을 기반으로 사용하게 될 DB 패러다임과 데이터 스키마를 미리 머릿속에 그려놓을 수 있었습니다.

 

물론, 첫 프로젝트였기 때문에 DB 설정도 문제가 많았고, 중복되는 코드도 정말 많았다. 실제로 다양한 에러가 많이 발생했다. 그럴 때마다 해당 에러에 대해서 알아보고, 새로운 에러가 발생했을 때 다음에 동일한 상황이 발생했을 때 캐치하려고 블로그에 기록을 남기면서 에러가 발생한 코드 경로를 찾아가서 문제점을 풀어나갔습니다.

 

기능을 하나씩 추가할 때마다 생각한 부분은 에러가 발생했을 때, 해당 페이지 코드에서 발생했다고 생각하는 것이 아닌, 전체적인 코드 흐름을 봐야 한다고 생각했습니다.

 

그만큼 코딩하기 전 코드의 구조와 설계가 중요하다고 생각했습니다.

 

(실제로 설계가 제대로 되어있는 부분은 코드 흐름이 순조롭게 흘러서 구현 시간이 적었고, 설계가 엉성한 부분은 기능 구현할 때 꽤나 고생했습니다...)

 

이 지점에서 백엔드 개발자로서 간과했던 부분과 순조로웠던 부분이 대표적으로 한 개씩 있습니다.

우선 간과했던 부분은 view단에서 요청마다 DB에서 어떤 데이터를 조회하고 어떻게 활용할지, 서브 테이블을 어떻게 활용할 건지 구체적으로 생각해보지 않았다는 점입니다. 기능마다 GET 또는 POST 요청이 들어와도 구현하고자 하는 기능에 불필요한 이중 삼중 쿼리를 날려 코드가 복잡해지고 성능 또한 낭비하기도 했습니다.

 

다행히 SESSION 처리하는 부분에 있어서는 흐름에 대해서 확실하게 알고 있는 덕에 기능의 완성도를 다소 높일 수 있었습니다. 물론 나중에 생기는 에러들은 디버깅해야 했지만, 최소 예상 소요 시간이 3일 정도였는데 하루 안에 끝낸 것 자체가 탄탄했던 기초 지식덕이라고밖에 할 수 없었습니다.

 

사용자한테 강한 첫인상을 주는 것이 프런트엔드의 역할이라면, 그 인상이 나빠지지 않도록 뒤에서 최선을 다하는 것이 백엔드의 역할이라고 생각합니다. 실무에서 프론트엔드 분들의 좋은 결과물을 허술한 백엔드 개발자가 망치고 싶지는 않습니다. 좋은 서비스를 만들고, 개인으로서도 백엔드 개발을 잘 해내고 싶었기 때문에 가끔은 너무 큰 욕심에 잦은 실수를 하지 않을까 생각합니다.

 

 

 

탄탄한 기본기의 중요성

 

저는 백엔드 개발자를 준비하기 전에 기계 전공자로 취업해서 전문직으로 일을 했던 경험이 있습니다. 

이 말을 왜 하는가?? 개발자가 되어야겠다는 다짐을 한 이후 정말 많이 들었던 얘기가 "기본기를 탄탄하게 잡아야 한다"는 말이었습니다. 

 

이 때는 왜 그런가 싶었습니다. 

전공 공부를 했을 땐 취업에 필요한 자격증 취득하고 취업해서 변수가 거의 발생하지 않는 직무 위주로 일을 했기 때문에 중요성에 대해서 경각심이 부족했습니다. 하지만 프로젝트를 하다 보니 기본기가 없으면 꽤나 고생했겠다는 생각이 드는 순간이 정말 많았습니다.

 

개인 프로젝트 주제인 쇼핑몰에 필수인 백엔드 단에서 프런트엔드단에 이미지가 저장된 URL을 전달해야 하는 케이스가 있습니다.

강사님께서 알려주신 방법은 항상 이미지를 복사해서 프로젝트 파일에 저장해서 경로 설정하는 방법으로 하셨지만, 상품 등록 기능에서 문제가 발생했습니다. 

 

 프런트엔드단에서 상품 등록을 하면 사진이 엑박으로 나오면서 경로를 찾지 못하는 상황이 발생해서 당황스러웠던 경험을 했는데, 서버의 기본 특성을 응용해 우리 서버에 올라온 이미지의 위치를 찾아주는 GET 요청을 처리하는 URL 설정하고, 이미지 파일 저장할 수 있는 디렉터리 설정을 만들면 될 것이라는 생각이 들었습니다. 따라서 클라이언트에서 이미지 명을 PATH에 입력해 지정된 디렉토리 URL을 설정하여 이미지를 반환하여 소스를 바로 받아올 수 있게끔 했습니다.

 

매우 간단하고도 기본적인 해결 방법이지만, 구글링을 통해 얻은 자료를 가져다 사용하기만 하는 것이 아닌,  스스로 생각하고 고민해서 적합한 방법을 고안해 낸 좋은 경험이 되었다고 생각합니다. 

프로젝트를 하다 보면 구글링을 해서 해당 코드를 가져다 기능을 구현하고 싶을 때가 생기는데, 이러한 행위가 버릇이 된다면 백엔드 개발자로 성장할 수 없다고 생각하기 때문에 코드에 대한 이해를 하면서 기본적인 지식을 쌓는 것도, 활용하는 것도, 내가 작성하는 코드의 흐름과 원리를 잘 파악하고 있는 것도 전부 좋은 코드의 근원이라는 사실을 체감했습니다.

 

 

 한 달간의 프로젝트 

 

첫 프로젝트를 하면서 짧으면서도 긴 기간인 한달 내내 밤 12시 이후에 잠들고 아침 8시에 에 일어나 9시 반부터 작업하는 일정이 반복되었습니다. 그러다 보니 몸은 정말 힘들었지만 끝나고 결과물을 보면 정말 말로 표현할 수 없을 정도로 즐거웠습니다.

 

아쉬운 점은, 추가로 더 구현하고 싶은 기능들이 많았지만 백엔드 특성상 잘 드러나지 않는 부분이라 즉자적인 피드백을 받기는 다소 어려웠습니다. 그리고 확실히 백엔드는 제대로 알고 적용하기 쉽지 않은 부분이 정말 많아서 단 기간에 시도해보지 못한 것이 많은 것도 아쉽지만, 이러한 경험으로 지금보다 더 많이, 공부해야겠다는 다짐이 생겼습니다.

 


마치며

 

지금까지 국비지원 개인 프로젝트 후기글이었습니다.

다음 포스팅에서 뵙겠습니다.

728x90

'[ Project ] > Individual' 카테고리의 다른 글

[ Individual ] 쇼핑몰 프로젝트 기획  (0) 2023.05.03