GithubHelp home page GithubHelp logo

airbnb-02's People

Contributors

ehgud0670 avatar godrm avatar seizze avatar sigridjineth avatar wooody92 avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar

airbnb-02's Issues

[iOS] 상단 뷰 커스텀 뷰 - 배지 커스텀 레이블 구현

기능

커스텀 레이블 만들기

  • drawText 메소드를 overriding하여 inset값을 설정해서 텍스트가 테두리에 떨어지고 중앙에 위치하도록 하기
  • intrinsicContentSize를 overriding하여 텍스트가 생략되지 않고 다 보이도록 하기
  • 컬러 설정값과 폰트 설정값은 어디서 설정해야 할지 고민해보기

텍스트 값 상수는 뷰모델에 있어야함을 기억하자

[BE] 2020년 05월 27일 페어 프로그래밍

체크인

  • Sigrid : Stream 어렵지만 결과물은 이뻐서 좋다. 자주 사용하게 될 것 같다. 공군 서류 정상 제출 했다.
  • Henry : 프론트와 iOS 카카오 채용이 부럽다. 나도 카카오 가고싶다..

오늘 할 일

  • 즐겨찾기 요청양식 논의
  • OAuth iOS url scheme 구현
  • 날짜 필터 기능 브랜치 병합
  • 분업 기능 합의
    • Henry : 예약하기 - 취소하기 기능
    • Sigrid : 즐겨찾기 기능

회고

  • Sigrid : iOS scheme의 방식이 신기했다. 이번주에 필요한 기능들을 끝내고, 리팩토링을 하고 싶다.
  • Henry : 분업을 했으니 열심히 하자. JPA공부를 더 해야겠다.

내일 할 일

  • 각자 작업한 분량 코드리뷰하고 서로 머지하기
  • 기획서 6page DTO 의논

[iOS] shadow 레이어 프로토콜 화

shadow 레이어 프로토콜 화

  • 프로토콜만 채택하면 shadow한 레이어가 반영되도록 리팩토링한다.
    이유: shadow 레이어가 서치바에만 있는 줄 알고 재사용을 안했지만 맵 뷰에도 shadow 레이어 쓰인걸 알아서 프로토콜화 할 것이다.

  • 프로토콜 명: Shadow

[BE] 2020년 5월 26일 페어 프로그래밍

체크인

  • Henry: 보통. 어제 Location 필터링하는 것을 쿼리를 활용해서 나누면 좋겠다.
  • Sigrid: 별 생각없다. 공군 서류때문에 마음이 심란하다. 미리미리 준비 잘하자. OOP와 DDD의 차이가 없다고 느껴진다.

오늘 할 일

  • EnumType.STRING 스키마 + 데이터 수정
  • Location 외의 다른 필터링 -> 하다 말았음
  • 분업할 태스크 나누기

회고

  • Henry: 머리 아프다.
  • Sigrid: 어렵다.

내일 할 일

  • Location 외의 다른 필터링 각자 작업해보고, 내일 맞추고 머지하기

[iOS] 불필요한 뷰모델 상수들 제거 및 @IBInspectable 사용

불필요한 뷰모델 상수들 제거 및 @IBInspectable 사용

  • BadgeLabel 뷰모델 제거 및 @IBInspectable 사용
  • GuideLabel 뷰모델 제거 및 @IBInspectable 사용
  • EdgeInset 적용할때 left, right, top, bottom 으로 주지 말고 verticalInset, horizontalInset으로 주기

뷰 - 뷰모델 - 모델 와 같이 객체를 나누는 이유는 SRP를 지키기 위함이고, 느슨한 결합을 하기 위해 하는 것이다.

=> 뷰가 뷰모델 상수값을 내부에서 할당시키는 것은 엄청난 커플링이다. 바로 지워야 한다.
=> 로컬라이즈는 실제로 생기는 경우만 생각하자. 지금은 생각할 필요가 없다.
=> @IBInspectable 을 무조건 사용해야 한다. 코딩표준을 지켜야 한다.

[iOS] BNBsUseCase 구현

BNBsUseCase 구현

  • BNBRequest를 BNBsUseCase의 멤버클래스로 재선언한다.
  • BNBTask를 BNBsUseCase의 멤버클래스로 재선언한다.
  • requestBNB( from bnbRequest: BNBRequest, with bnbTask: BNBTask, completionHandler: @escaping ([BNB]? ) 를 구현하여 모델데이터를 핸들러로 던지도록 한다.

JSON Format Consideration

슬라이드 페이지 별로 필요한 API

슬라이드 2

  • 전체 숙소 정보를 제공하는 API

슬라이드 3-5

  • 주어진 조건에 따라 예약이 가능한 숙소 정보를 제공하는 API
    • 필터링 조건: 날짜, 가격
    • 아무런 조건도 제공되지 않은 경우, 에러를 리턴한다.
    • 인원은 슬라이드 4를 제외하기로 했으므로 일단 작업하지 않는다.
    • 각각 조건 별로 요청이 들어왔을 때 새롭게 정보를 서버에 요청한다.

[BE] 2020년 5월 21일 페어 프로그래밍

오늘 할 일

  • Spring Data JPA - Schema 연결
  • 전체 데이터 컨트롤러로 뿌려보기 (DTO, Repository 설정

회고

  • Henry: 오늘 시그리드 덕분에 테스트 코드를 많이 도입해보았다. JPA가 참 편하다고 느꼈다. 무한 순환참조 삽질 시간이 다행히 줄었다. 해봤어서..
  • Sigrid: JPA가 편한데 점점 무서워질 것 같다. DDD+JPA를 공부하는 시간이 필요할 것 같다.

내일 할 일

  • DTO 설계 후 DTO로 ResponseEntity 던지기
  • 배포를 위한 AWS RDS/EC2 설정하기

[iOS]맵 버튼 구현

맵 버튼 구현

  • 맵 아이콘을 나타내는 버튼를 구현한다.

요구사항 이미지

지도 서클

[iOS] 하트 커스텀 버튼 구현

터치하여 즐겨찾기에 추가하거나, 즐겨찾기에 추가되었을 경우 하트 색으로 나타낼 수 있는 커스텀 버튼 구현

  • 상태에 따라 하트 색을 표시하는 기능 구현
  • 눌렀을 때 애니메이션 구현

[iOS] Image 처리하는 UseCase 구현

Image 처리하는 UseCase 구현, 캐시정보를 갖는 객체 구현

ImageUseCase

  • ImageRequest 생성
  • ImageRequest를 담을 배열 생성
  • 클로저(handler) 프로퍼티 생성
  • image를 download 하는 메소드 생성
  • image를 캐시 디렉토리에 집어넣는 코드 구현

Cache

[iOS] 리뷰 피드백 반영

메인화면, 필터화면 뷰를 구현한 PR #57 의 피드백 반영

  • 프레임워크에서 이미 정의되었을 가능성이 있는 일반적인 이름(Storyboard)을 좀더 구체적으로 변경
  • override한 메소드에서 상위 클래스의 메서드를 호출하도록 개선

[BE] DDD 개념을 접목하여 리팩토링한다.

기능

  • DDD Start! 도서를 참고하여 DDD 철학을 충실히 따르도록 리팩토링한다.
    • Value Object와 Entity를 나누어 관리한다.
    • 양방향 참조 시 순환참조 문제를 막기 위해 ID 기반 참조를 구현한다.

[iOS] 상단 뷰 - 레이블 만들기

상단 뷰 - 레이블 구현

  • 클래스명을 GuideLabel이라고 짓는다.
  • 해당 뷰에 대해 뷰모델을 구현한다. GuideLabelViewModel
    • 뷰의 텍스트 값을 뷰모델에 상수로 위치시킨다.
    • 뷰의 텍스트 색상 값을 뷰모델에 상수로 위치시킨다.
      • 색상 값은 Assets에 미리 추가한다. (rgb: #707070)
    • 뷰의 폰트 값을 뷰모델에 상수로 위치시킨다.

[BE] 2020년 5월 25일 페어 프로그래밍

체크인

오늘 할 일

  • 오늘 할 일들
  • PR review 바탕으로 리팩토링
  • Room - Location 클래스 나누기 (@Embedded)
  • @Enumerated(EnumType.String) 찾아보기
  • @NotNull package 찾아보기
  • OAuth 기능 추가

회고

Henry: Stream을 공부해서 잘 써야겠다. 굉장히 유용한 듯.

Sigrid: GetMapping Overloading 되는 것이 신기했다. 매주 리뷰를 보내니 피드백 할 수 있어서 좋았다.

내일 할 일

[iOS] 필터 버튼 터치 시 VC 전환 및 Filter VC 구현

날짜, 인원, 가격 버튼 터치 시 화면 전환 구현

  • 협업을 위한 새 스토리보드 파일 추가
  • 헤더, 푸터 XIB 및 커스텀 클래스 추가
  • Filter View Controller 구현
  • 버튼 클릭 시 화면 전환 구현
  • 필터 타입에 맞는 제목 설정

[BE] 2020년 5월 20일 백엔드 페어

체크인

  • Sigrid:
    • 목 데이터 사진 긁어와야 할 것 같은데 크롤링 귀찮을 것 같다
    • 프로젝트 기본 와꾸가 설정되고 뭔가 어떤 것을 같이 나눠서 작업할 지가 정해지기를 기대 중
  • Henry: 오늘은 같이 하면 좋겠다. 데이터 같이 마무리하고 스프링 제품군 결정하고 정하면 기본 개발환경이 될 것 같다.

오늘 할 일

  • Spring Data 제품군 결정하기 -> Spring Data JPA Hibernate
  • 프로젝트 공통 설정하기 (스키마 적용 등)
  • Mock Data 토의 및 데이터 삽입하기
  • 1차 마일스톤 설정

회고

  • Henry: 오늘은 순조롭게 잘 된 것 같다. 생각보다. 저녁에 docker mysql 개발환경 세팅해봐야지. 첫 화면 전체 리스트를 보여줄 때 데이터 갯수가 많아지면 발생 할 수 있는 부분을 페이지 처리 해야 할 것 같다고 생각했다.
  • Sigrid: docker & mysql 한글 설정했음에도 터미널 실행시 일일히 명시적으로 써줘야 하는게 마음에 들지 않았다. 첫 화면에서 페이지관련 내용은 나중에 생각해 보는 것이 좋겠다. csv 파일 사용 시 데이터 내용에 ',' 들어가면 데이터 파싱 시 문제가 되어서 힘들었다.

내일 할 일

  • (팀 전체) 3~5 페이지 JSON Request Body/Response Body 고민해보기
  • 엔티티를 만들어서 삽입한 Data를 Controller에서 뿌려보자.
    • 고민: 스키마와 DB가 있는데 JPA에서 이를 어떻게 활용하는 지 찾아보자.
  • RDS, 서브넷 설정 해보기

[BE] 2020년 5월 22일 페어 프로그래밍

체크인

  • Henry:
    • 어제 JPA를 밤에 공부해보니까 재밌더라. java-qna 때는 그냥 따라했는데, Data JDBC를 하고 나서 다시 JPA를 해보니까 어느 정도 감이 잡히는 것 같다.
    • JUnit 5 @Transactional을 붙여보면 테스트 이후에 DB 롤백을 해준다.
  • Sigrid:
    • 어제 잘 잤다.
    • DDD 형태로 패키지를 빼고 싶어졌다.

오늘 할 일

  • 패키지 구조 리팩토링
  • 슬라이드 2에 대한 API DTO
  • RDS 구축 및 1차 배포

회고

  • 오늘 페어 진행 이후 회고

내일 할 일

[BE] 숙소정보 데이터 필터 기능 구현

기능

  • @RequestParam 사용하여 url 형식 작성
1. 날짜
   - checkin, checkout
2. 인원
   - adults
3. 가격
   - price_min, price_max
4. 위치
   - location
  • 위치정보 필터링 기능
  • 날짜정보 필터링 기능
  • 인원정보 필터링 기능
  • 가격정보 필터링 기능

[iOS] 스토리보드 화면 구성

현재까지 구현된 커스텀 뷰들을 스토리보드에 올리고 레이아웃 지정

  • 스토리보드에 커스텀 뷰 구성 및 레이아웃 지정

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.