




백엔드 : node.js를 이용한 백엔드 서버 개발(MVC 파일분리)
프론트엔드 : 프론트엔드에서 비동기통신인 Axios사용
DB : MySQL을 활용한 데이터구축, 서버측에선 ORM-Sequelize를 활용
(회원가입 - 중복확인
지도API - async/await를 이용한 promise 사용,
찜하기 기능 - ORM-Sequelize 사용)
=> 개발의 순서도 감이 안서고, 큰 틀을 보기가 어려웠다. 혼자 했다면 여기갔다 저기갔다 너저분한 머릿속과 같이 코드작성도 마찬가지였을텐데 우리 팀 조장님이 차근차근 잘 이끌어주셔서 이런식으로 진행하면 되는구나를 배우게 됐다.
팀 프로젝트이기 때문에 소통이 중요한데 figma 툴을 이용해 현재 진행상태를 파악하고 notion을 이용해 본인의 진행현황을 작성하고 필요한 부분 공유, 협업규칙을 설정해 모두가 이해하기 쉽도록 진행되었다.
또한 API명세서를 활용해 클라언트측 코드와, 서버측 코드에서 헷갈리지 않고 동일하게 연결될 수 있도록 했다.
이런 모든 면이 혼자 깨닫기엔 오래 걸리는데 모든 부분에서 의지가 되는 팀원들과 조장 덕분에 시행착오를 줄이고 협업의 방법을 배울 수 있었다.
=> 백엔드를 맡다보니 프론트엔드쪽 디자인적부분에대해서는 관여를 하나도 안하여 배웠던 CSS를 적용할 기회가 없었다. 내가 맡은 바를 빨리 끝냈다면 CSS도 만져볼 수 있었을텐데 내 부분도 마치기가 어려웠기에 CSS는 따로 만져보는 기회를 가져야겠다는 생각이 들었다. 당장 다음 프로젝트에서 프론트엔드를한다면 크게 좌절하겠다는 생각이 들기 때문이다.
=> 지도 API를 다뤄야 했는데 카카오맵에서 친절히 샘플코드들을 주는데 내가 원하는 기능들을 추가하려면 여러 코드들을 합쳐야 했다. 이 부분에서 작동을 안하게되는 경우가 여럿 발생해 고생했다. 기능 하나 하나를 따로 작성한 후 합칠때는 코드의 위치가 중요함을 배웠고 처리가 길어지는 부분에서는 적절히 비동기처리를 걸어야 함도 직접적으로 경험하는 계기가 되었다.
=> 찜목록 기능을 구현하는데에 있어서 로직의 순서부터가 어려웠다. 그 순서를 정립하는데 꼬박 하루를 쓴 것 같다. 수업때 실습을 하다보면 배운것만 사용하면 되는데 응용을 해야되니 순서에 대한 생각을 처음으로 깊고 오래 해보게 되었다.
ex) 1. 찜하려면 먼저 갤러리를 Findall하라고 요청을 보내고 응답해야됨(서버측&클라이언트측 각각)
exports.heartGallery = (req, res) => {
if (req.session.isAuthenticated == true) {
const u_id = req.session.user;
const g_id = req.query.g_id;
Heart.findAll({
where: {
u_id: u_id,
g_id: g_id,
},
}).then((result) => {
res.send({ data: result });
});
} else {
res.send({ login: false });
}
};
2. 찜한 갤러리테이블에 대한 컬럼정보를 Findall해야함(서버측)
3. 2번에서 찾은 정보를 클라이언트측 화면에 띄워야 함
4. 찜한 데이터를 저장해야됨 create사용 (서버측)
5. 4번에서 찾은 정보를 클라이언트측 화면에 띄워야 함
6. 찜한 데이터를 삭제해야됨 delete사용 (서버측)
7. 6번에서 찾은 정보를 클라이언트측 화면에 띄워야 함
=> HTML, CSS, Javascript, node.js에 대한 수업을 두 달 진행 후 첫 프로젝트를 2주간 진행했다.
무에서 유를 만들어내는건 어려운 일이다.
사실 개발자를 하고자 했을때 생각해뒀던 주제들이 있는데 지금으로선 무리라고 판단을 했고, 첫 번째 프로젝트인만큼 지금까지 배운 기능들을 적용한 간단한 웹을 만들고 싶은게 개인적인 바람이었다.
하지만 이것은 팀 프로젝트다. 개인의 개발실력도 차이가 있었고, 당연히 이루고자하는 바도 달랐다. 나를 제외한 대부분이 프로젝트 경험이 있는 분들이었고 괜찮아보이는 서비스, 기능들도 최대한 넣는 그런 주제가 선택이 되었다. 오히려 실력이 업그레이드 되려면 어려운걸 해내야되기 때문에 좋은 주제가 선택되었다고 생각한다.
민폐를 끼치면 안되기 때문에 내가 맡은 바를 다 해내야지하는 마음이 커 부담이 되었지만 이러한 마음때문에 개발이라는 큰 틀을 배울 수 있었다.
이를 통해 다음 프로젝트에서는 어떻게 진행되어야할지 정립하는데 큰 도움이 될 것 같다.
우리 팀원들을 만난 난 so lucky ★