개발일지 - polynomeer/sidedish GitHub Wiki
BackEnd💻 |
iOS📱 |
---|---|
August😽 | Aiden🤷♂️ |
Hiro😸 | Bmo🤠 |
- Spring Boot JDBC & MySQL 환경설정 완료
- DB 스키마 설계 완료
- Entity 클래스 정의 완료
- DTO 클래스 정의 완료
Discussed Issue
- 더미 데이터를 수동으로 작성하기가 너무 어렵다. -> 스크립트를 작성하여 주어진 엑셀파일을 변환하도록
- thumb_images는 FE에 필요한 칼럼인 것 같다. -> iOS에서는 필요없는 데이터인 것 같아서 삭제
- detail_section이 상세한 이미지에 대한 배열을 갖고 있다.
- 배열을 MySQL에 어떻게 저장하는가? -> VARCHAR에 통째로 저장 or 별도의 테이블을 구성한 후 JOIN
- 우선은 VARCHAR에 배열형태의 문자열을 통째로 저장하는 방식을 선택
- Xcode 초기 셋팅 완료
- persistence 결정 (Realm)
Discussed Issue
- persistence를 어떤 것을 사용할까? (Realm, CoreData, SQLite) -> 사용하기 번거롭지 않고 문서도 깔끔한 것으로
- TableView와 CollectionView 중 어느 것으로 구현할까? -> 지난 프로젝트에서 TableView를 써보았으니 이번에는 CollectionView
- 협업, 분담 중 어떤 것으로 하는게 나을까? -> 분담도 좋지만, 분담의 경우 타인이 구현한 것을 잘 모르게 된다. 이번에는 협업으로
- Custom CollectionView Cell(xib) 구현
Discussed Issue
- Architecture를 위한 Model 논의 -> 서로 생각은 비슷했으나 의사소통의 문제로 인해 다소 많은 시간이 소요됨.
- Data Format 관련 논의 -> 기본적인 초기 세팅은 정해서 진행하지만 초기부터 확정하기 보다는 진행하면서 변경될 여지를 두고 지속적인 논의를 하기로 함.
- '주문하기'와
OAuth
를 사용한 '로그인' 기능 구현 시작
Discussed Issue
- Aggregate Root가 Category인 상태인데, Order를 또 다른 Root로 하여 OrderRepository를 생성하면 문제 발생
- 우선은 연관관계 맵핑없이 테이블만 따로 만들고 기능만 동작하도록 구현
- 추가적으로 DDD를 따른 설계로 별도의 브랜치에서 구현
- 그런데 그냥 주문하기 기능을 구현하려고 해도 Aggregate Root가 Order가 되면 문제가 발생?
- MockUp Data 가져오기
- Data 관리 객체 생성
- DiffableDataSource 사용
Discussed Issue
- 현재의 구조가 적절한 지에 대한 의논을 많이 함. -> ViewController의 역할이 많은 것 같아 고민이 되지만 일단 진행하고 추후 리팩토링 하자고 합의함.
- CollectionView Header 구분
- Cell의 이미지 불러오기
Discussed Issue
- CollectionView의 Header 구분이 잘 되지 않아서 서로 의견을 주고 받으면서 꽤 오랜 시간 고민을 함. 결국 해결을 하였지만 100% 만족스러운 상태는 아니므로 개선할 수 있는 지 지속적으로 고민하기로 함.
- 서버 api에서 image 관련 정보만 추출해서 Cell의 image로 불러오는 과정에서 어려움이 있음.
- Order 구현 중에 DbAction.Insert관련 에러 발생
- DTO와 엔티티에서 List를 필드로 갖고있어서 발생 -> 우선은 모두 String으로 변경 -> **Entity 클래스에서 List를 필드로 가지려면 각 List에 대한 테이블이 존재해야 함!! -> 따라서 Entity에는 그냥 String 필드를 가지고, DTO에서만 List필드를 가지도록 변경 -> TODO: DTO의 필드를 String -> List로 변경해주는 메소드가 필요
- Category에서 Set으로 갖고 있던 것을 Map<String, Item>으로 변경 -> O(1)만에 Item 탐색 가능
- ItemDto와 DetailItemDto에서 List으로 가지고 있는 필드에 대해 처리 -> DataTypeUtils::toList를 추가하여 배열형태의 String을 파싱하여 List에 담도록 구현
- AWS에 배포 완료
- Upstream에 PR 리뷰 요청 보냄
- TODO: 더미 데이터 data.sql에 작성할 것