개발.코딩

코드스테이츠 finalProject 회고

스마트스타일 2021. 12. 20. 09:00
반응형

 10월 중순까지 첫번째 프로젝트를 급히 마무리하고, 주말 2틀쉬고 바로 4주 finalproject를 시작하였다. 코드스테이츠에서 조언 해 주기를 SR에 투자하는 시간에 7~10일정도 사용해도 좋다는 얘기가 있었다. 하지만 firstproject때 너무나 시간 부족 경험을 했어서, 코드치는 시간을 최대한 확보하고 싶었기에 7~10일은 너무 길다고 생각하였다. SR을 아무리 잘했어도, 어느정도 방향이나 내용이 수정될 수 밖에 없다고 생각했기 때문이다. 그래서 시간을 조금이라도 확보하기위해 주말에 2틀 푹쉬기로 하고, 대신 각자 아이디어를 생각해서 프로젝트 첫날에 만나자고 했던 기억이 난다. 처음에 나는 SR에 사용되는 시간은 3~4일정도만 사용하길 바랐는데, 팀원 모두가 SR을 7일주일정도 하고싶다고 해서 7일 동안 SR을 하기로 했다. 그런데 다들 4일차되니까 SR도 거의 끝나고, 남은 3일은 계속 SR검토, 수정을 무한 반복해야 했는데 수정 사항도 거의 안나오고 슬슬 팀원들 공유화면을 보니 사용하고싶은 스택의 코드를 만지작, 만지작 하는것을 발견했다(나도 그러고 있었다ㅋㅋ) 4~5일차 부터 자연스레 코드를 치기 시작했다. am10:00에 만나서 pm10:00까지 게더로 같이 화면공유하고 하루죙일 같이 이야기하고 SR작업을 figma로 공동작업으로 신속하게 처리하는 등 사실상 시간투자는 7~8일 정도 투자한 것과 같았던 것 같다.

 

 본격적으로 개발 시작 하였을 때 개인적으로 몇가지 난관이 있었다.

1.사용해본적 없는 Kakao MapApi를 적용하여 직방앱 처럼 줌아웃, 지도 이동시 현재 화면 매물만 렌더링되도록 새로고침되야 하는기능을 할 수 있는가? 3~4주까지도 구현못할경우 프로젝트는 그냥 실패하는 것이된다. 그래서 2주차에도 구현안되어있으면 SR을 새로 할생각을 해야 한다.

2.https적용을 할 수 있는가? firstproject때 구현 못해서 아쉬웠기 때문에 꼭 성공하고 싶었다.

3.Redux를 사용할 수 밖에 없을 정도로 필요하다고 생각했지만, 코드가 다른 의미로 복잡해지고 처음 사용해보는 것이라 어려웠다. 또한 Redux로 변수를 수정할때 디테일하게 수정하지는 않고 그냥 단순 덮어쓰기만 하고있는데, 제대로 사용하고 있는 것인가에 대한 의문

4.Mobile/PC 반응형 웹을 pc웹만 구현해봤기 때문에 모바일 웹을 구현을 할 수 있을지?

 

첫 번째 문제는 팀의 프로젝트가 성패가 걸린 문제라서 진짜 고민 많았다. 빠르게 구현이 안되면 2주차에 SR을 새로 하게 될지도 모른다는 절박감이 있었다. 아이디어회의시 내가 꺼낸 아이디어가 선정이 되것이기에, 구현에 대한 부담감이 더 있었었다. 이 때 어떻게 구현 할 수 있을지 고민되서, 진짜 화장실가거나 하루 40분정도 러닝하는시간에도 러닝하면서 생각하기도하고 잠자리에 들어서 누워서 생각하다가 잠들었던 기억이 난다. 그러다가 진짜 기초 알고리즘공부할때 쓰던 방식인 수도코드를 써가며 해결했다. Kakap MapApi로 원하는 기능 구현이 되었을때 정말 엄청 기뻤던 기억이 난다.(이 프로젝트에서 두 번째로 기뻣다)

 

두 번째 문제는 https인데, https배포의 경우 선택사항이었지만 사실상 필수나 다름없다. 모든 팀들이 https배포를 하고 있고, 개발을 얼마나 잘했던, 못했던 결국 배포라는 결과로 확인 되는 것이기에 완성도에 큰 영향을 미치는 부분이었다. 워드프레스라는 사이트를 사용해본적이 있는데 그 때 SSL적용을 플러그인 클릭 몇번 만으로 적용하였다. 옛날부터 보아왔기 때문에 관심이 가서 꼭 해보고싶었다. 2틀정도 잡았다. 2틀 소요시에도 구현이 안되었으면 팀프로젝트의 진척을 위해 포기하고 aws route53으로 구현예정이었다. 이날 새벽6시30분까지 에러 핸들링하고, 3시간자고 10시에 다시 팀프로젝트를 했던 기억이 난다. nginx이용 ssl를 적용하는 방법을 모두 구글링했어도 모든 방법이 먹히지 않았다. 거의 포기 상태였다. nginx의 default값을 계속 수정하다가 어떻게 하니까 서버의 root엔드포인트에("/") get요청은 되었는데, 다른 엔드포인트로는 요청이 안되는 정말 희안한 문제가 지속되었다. ("/")이곳으로 겟요청을 보내면 겟요청이 잘되는데, ("/2")이라고 만든 테스트엔드포인트로는 겟요청이 안되었다. "안되면 아에 안되고, 될거면 다 되야지" 라고 속으로 생각하며 거의 벽을 느꼈었다. 내가 할 수 있는 영역이 아니구나하고 포기할 뻔 했는데, 마지막의 마지막으로 어떤 값을 수정하면서 극적으로 해결되었고 이날 푹잤다.(프로젝트에서 이 기능 구현 성공시 제일 기뻤다. 클라이언트는 vercel배포이기 때문에 반쪽짜리 배포이긴하다.) 지금 다시 보니까 어디에서 어떤 값을 바꾼 것인지 기억이 안난다. 이 에러 핸들링 중 느끼고, 깨닳았던 내용을 기록했어야 했는데,, 아쉬움이 남는다. 

 

세 번째는 Redux라는 스택을 제대로 사용해본적이 없기 때문에 Redux사용에 불편감을 느끼면서도 막연하게 사용은 해야 한다는 생각을 가지고 있었다. 그 당시 팀분위기도 마찬가지였기 때문에 내가 적극 redux를 적용하길 설득했었다. 최대한 쉽게 사용하기 위해 redux모듈 및 폴더 구조를 간소하게 꾸렸고, 그리고 프로젝트 기간 중 하루를 redux공부하는 시간으로 배정해서 어려움을 극복하려 하였다. 내가 알고 있는 사용방법도 적극적으로 알려주었던 기억이 있다. 그래도 지금은 모두들 redux를 그때보다는 익숙하게 사용하게 되었다고 생각한다. 요즘에 redux를 사용하지 않았던 firstproject를 팀원들과 리팩토링 하고있는데 redux없이 props를 계속 내리고 올리고 하는게 더 헷갈리고, 힘들다고하시며 redux를 사용할때가 좋았던 것 같다는 이야기를 나눌때 속으로 조금 뿌듯해 했다. 사실 이 세번째 문제의 진짜 문제는 redux를 이렇게 사용하는게 과연 맞는가? 하는문제가 진짜 문제다. 간소하게 사용하기위해, redux로 변수에 할당값을 변경시킬때 reacthooks의 useState의 변경함수를 쓰듯이 덮어쓰기만 하도록 사용했다. redux를 이렇게 사용하는것이 과연 맞는것인지 계속 의문이 들지만 피드백을 받을 만한 곳이 없다. 그래도 내가 원하는 기능 구현을 위해 내가 원하는 방식으로 redux를 사용했기 때문에 나는 진심으로 만족하고있다.

 

마지막으로 Mobile/PC 반응형 웹 구현을 위해 media쿼리문법과 flex를 같이 사용해야하는데 css 공부를 거의 해본적이 없다는 것을 알았다. 지금도 사실 css의 세로정렬, 가로정렬은 한번에 말을 듣는적이 별로 없긴하다... 미디어쿼리의 경우 팀전체가 처음 쓰는 것이었기에 마찬가지로 1~2일을 각자 화면만 켜놓고 공부하는 시간을 갖기로 결정해서 해결할 수 있었다.

 

아쉬운점

-socket.io로 메신져 구현에도 1~2일정도 사용했는데 구현되지 못하였다. 이것은 언젠가 꼭 구현하고싶다.

 

느낀점

-2주 프로젝트때의 피로와 지침으로 4주프로젝트 첫째주에 번아웃이 살짝 올뻔 했는데, 그래도 다들 열심히 하는 모습에 자극받아서 금방 다시 열심히 했던 것 같다. 4주 프로젝트가 마치 10일 프로젝트처럼 정말 시간이 삭제 되었다. 힘든 부분도 있었지만, 하나씩 만들어 가는재미, 하나씩 완성되어 가는 모습에 정말 재밌어서 시간이 금방 갔던 것 같다. 부족한점도 있겠지만, 시간이 많이 걸릴수도 있겠지만 내가 만들고 싶은 웹사이트는 내 손으로 a부터 z까지(서버구현, 클라구현, DB구현, 배포, https적용 등등) 만들수 있다는 자신감이 생긴 것 같다!!!

반응형