---
# System prepended metadata

title: FE 피드백

---

## FE
- 지금까지 어떻게 구현됐나 (시연)
    - develop/web 기준으로 시연
    - 네이버 아이디 로그인
    - 캘린더
- 구현하면서 특별히 힘준💪 부분이 어딘가
    - 상태 관리와 컴포넌트 재랜더링에 대해 고민하며 코드를 작성하였습니다.
- 앞으로 남은 부분, 계획, 어려운 점/막혀있는 부분은
    - 남은 부분 및 계획
        - css 디자인 통일, 색상 변경 css
        - 메인 페이지, 보드 상세 페이지
    - 어려운 점 / 막힌 부분
        - 상태 관리하는 부분이 어려웠습니다.
        - 로그인이 안 되어있을 때 화면이 깜빡 거리며 로그인 화면으로 전환
        - 리스트, 카드 순서 유지? 변경? 구현방법에 대해서..,,
- 코드 레벨에서 꼭 피드백 받고 싶었던 부분은 어딘가 <- 이건 길어지면 개별 코칭으로 따로 이어가겠습니다.
    - API 호출 시 에러 처리는 어떻게?

## BE
- 지금까지 어떻게 구현됐나 (시연)
    - 전체 보드 조회 API
    - 보드 생성 API
    - 본인 정보 조회 API
    - 일별 카드 개수 조회 API
    - 보드 상세 조회 API
    - 네이버 클라우드 배포
- 구현하면서 특별히 힘준💪 부분이 어딘가
    - 테스트 코드 작성
    - 에러 처리
    - 데이터베이스 접근
- 앞으로 남은 부분, 계획, 어려운 점/막혀있는 부분은 뭔가
    - 남은 부분 및 계획
        - 남은 API...를 테스트 코드와 함께 구현
    - 어려운 점 / 막힌 부분 
        - typeORM으로 복잡한 쿼리를 작성하는 것이 어려웠습니다.
        - 객체지향적으로 개발하기 어려웠습니다.
- 코드 레벨에서 꼭 피드백 받고 싶었던 부분은 어딘가 <- 이건 길어지면 개별 코칭으로 따로 이어가겠습니다.
    - 요청 유효성 검사
    - dto 활용

## iOS
- 지금까지 어떻게 구현됐나 (시연)
- 구현하면서 특별히 힘준 부분이 어딘가
    - 코드 모듈화: 뷰의 속성들을 적용하는 코드를 분리하려고 했습니다.
    - 코드 컨벤션: 주기적으로 페어프로그래밍을 통해 리팩토링하는 시간을 가졌습니다
    - 테스트 가능한 구조로 짜기 위해 노력했습니다.
        1. 의존성 역전 원칙 + 주입
        2. 역할 분리(단일 책임 원칙)
            1. 프레젠테이션 로직은 Coordinator
            2. 비즈니스 로직은 ViewModel
            3. UI 로직은 ViewController
    
- 앞으로 남은 부분, 계획, 어려운 점/막혀있는 부분은 뭔가
    - 계획
        - HIG: accessibility
        - WidgetKit
        - PushKit
        - 오프라인 기능: Realm
    - 어려운 점 / 막혀있는 부분
        - 테스트코드 작성: ViewModel 을 제대로 테스트하는 방법
        - API 호출 시점
            1. 업데이트API를 호출하고 로컬에서만 바꿔주고 detailcard를 나간 후 다시 들어오면 fetch
            2. 업데이트API를 호출하고 detailcard의 viewWillappear에서 다시 fetch



- 코드 레벨에서 꼭 피드백 받고 싶었던 부분은 어딘가
    - view가 CollectionView를 갖는 것에 대해(DataSource, Delegate 포함)
    - DataSource 를 서브클래싱해서 DataSource 의 메소드(numberOfItemsInSection, cellForItemAt) 를 분리하는 것이 좋을까요 ?
    - shadowOffset 쓰면 UI Debugging 할 때 비효율적이라는 경고창이 나오는데 shadowPath 를 쓰는 것이 좋을까요 ?


# FE 피드백
- 같은 기능이 두 개가 존재한다면 혼란을 일으킬 수 있음
- 보드 생성 버튼이 로그아웃 근처에 있음
- UI 깔끔함
- 캘린더 바디에 너무 많은 기능을 담당하고 있음
- row로 묶어 놓을 필요 없음 -> date 단위로
- axios interceptor request, 글로벌 설정이 존재함
- request라는 axios wrapper를 사용하게 되면 부가적인 axios 설정을 사용하지 못함
- document.location vs window.location.href
- Modal 구현 시 dialog (native element로 사용할 수 있음)
- 카드, 리스트 이동 -> integer
- 대기 중일 때 로그인 버튼 disable, 로딩 중 페이지 띄워주기
- API 호출 중이라는 피드백을 사용자에게 줘야 함

# BE 피드백
- 