[WIL] Week 14

김주희·2023년 8월 20일
0

WIL

목록 보기
14/17

1. FACTS

  • 심화 프로젝트 마무리 : 협업 도구 만들기
  • 최종 프로젝트 시작 : 추억을 공유하는 커뮤니티 (마이크로 서비스 아키텍처)

2. FEELINGS

  • 최종 프로젝트를 시작하면서 어떤 프레임워크를 쓸지(express vs nest) 팀원과 정하는데 시간이 많이 소요될 것이라 생각했던 것과는 달리, 다른 목표가 주워져서 회의하는데 시간을 많이 보냈던 것 같다. 하지만 이것도 협업의 일종이니, 의견을 맞춰가는 과정을 며칠 동안 밀도 있게 해보는 경험을 하게 되어 좋았다고 할 수 있다.
  • 지금까지 해왔던 개인 프로젝트, 팀 프로젝트와는 다른 아키텍처를 적용할 것이기 때문에 거의 밑바닥부터 시작했다. 멘붕 아닌 멘붕을 팀원 모두가 겪게 되었지만, 프로젝트 시작한지 하루이틀째부터, 완전 초기였기 때문에 빠른 의견 조율을 할 수 있었던 것 같다. 빨리 틀을 잡고 개념을 파악하게 되어 좋았다.

3. FINDINGS

  • 심화 프로젝트 당시 노드 캐시를 사용해서 데이터 캐싱을 했었는데, 다른 API 보다 이 캐싱 구현에 관해서 코드 수정이 제일 많았었다. 이 부분도 초기 설정이 중요했는데, 어느 동작을 할 때,(ex.서버가 켜질 때, 특정 API를 동작했을 때) 데이터 캐싱을 할지 설정하는 것과 캐시 값을 가져오기 위해 설정해두는 캐시키에 파라미터를 넣을지, 넣는다면 어떤 파라미터를 넣을지 설정하는 것이 중요하다는 것을 알았다. 만약 이걸 미리 정해두었다면 코드 수정이 지금만큼 빈번하지는 않았을 것 같단 생각이 든다.
  • 마이크로 서비스 아키텍처는 기능별(서비스별)로 서버가 나누어져 있기 때문에, 로그인 / 게시글 / 댓글 기능이 있다고 했을때, 댓글 기능의 서버가 문제가 생겨도 로그인 / 게시글 기능은 문제없이 이용할 수 있는 이점이 있다. 지금 우리 프로젝트 규모에 적용할 필요가 없는 아키텍처이지만, 새로운 아키텍처를 적용해보고 TCP 서버를 사용해보는 경험을 쌓기 위해 도전해보기로 했다.
  • 현재 임시 뼈대 코드가 프레임워크를 사용하고 있지 않기 때문에 각각 API를 동작하는데 있어 메소드마다 조건을 걸어주어 params나 query, body로 요청되는 데이터들을 어떻게 처리할지 연구가 좀 필요했다. 일단 GET 메소드의 경우, 이전처럼 params나 query로 받아오는 API를 분리할 수 없기 때문에(ex. query로 받아오는 검색 API, params로 받아오는 상세 조회 API를 분리할 수 없기 때문에) query로 받아오는 걸로 통일하고 API를 구현했다.
if (data.uri === '/posts' && data.method === 'GET') {
      const { postId, anuualCategory } = data.params;
      if (postId) {
        responseData = await Posts.findByPk(postId);
        if (responseData) {
          await Posts.update(
            { viewCount: responseData.viewCount + 1 },
            { where: { postId: data.params.postId } },
          );
        }
      } else if (anuualCategory) {
        responseData = await Posts.findAll({
          where: { anuualCategory },
          order: [['createdAt', 'DESC']],
          limit: 10,
          offset: (pageNum - 1) * 10,
        });
      } else {
        responseData = await Posts.findAll({
          order: [['createdAt', 'DESC']],
          limit: 10,
          offset: (pageNum - 1) * 10,
        });
      }
}

4. FUTURE

  • 마이크로 서비스 아키텍처를 적용하기로 결정한 후 뼈대 코드를 이해하는 것과 간단한 CRUD를 하며 코드를 수정하고 작성해보았다. 다행히 팀원 모두 주말까지 시간을 다 쏟아줘서 어느 정도 코드 흐름에 대한 이해도는 초반보다 확실히 엄청나게 늘은 것 같다. 뼈대 코드를 다시 짜고, 실제 프로젝트의 CRUD를 구현하는 것, 그리고 포톨로지 코드 적용에 앞으로도 더 집중!
profile
꾸준히 하자

0개의 댓글