bluepebble25 / phoca-review Goto Github PK
View Code? Open in Web Editor NEW포카리뷰, 책이나 영화에 대한 감상문을 포토카드 한 장에 남겨보세요. Make movie and book reviews in the form of photocards, and view in the form of album
포카리뷰, 책이나 영화에 대한 감상문을 포토카드 한 장에 남겨보세요. Make movie and book reviews in the form of photocards, and view in the form of album
카드 정보를 submit 하기 위한 data object를 만들 때 코드가 너무 길고 매번 붙여넣기를 하다보면 실수를 할 위험이 있다.
Card 클래스를 만들어 필드와 타입을 관리하고, 메소드로 데이터 만드는 과정을 추상화해서 세부 사항을 일일이 신경쓰지 않아도 되게 하자.
카드 에디터에서 특정한 경우에 의도한 대로 작동하지 않는 UI나 기능 개선한다.
카드 에디터 화면을 줄이거나 늘이면 그에 맞게 변하도록 반응형 디자인으로 개선한다.
카드 편집 기능의 세부 기능을 구현한다.
메인 페이지와 좌우로 넘길 수 있는 책을 구현한다.
API만 연동하면 바로 앨범의 카드 이미지가 보일 수 있을 정도로 만들어놓는다.
반복되는 코드를 줄이고 가독성을 높인다.
반복되는 코드는 최소단위의 함수로 분리해 재사용성을 높인다.
에러처리를 해준다.
메소드 명이란
각 동작을 잘 설명할 수 있도록 요약한 단어를 의미한다.
서버에서 컨트롤러 이름으로 쓰이거나 클라이언트에서 API 호출을 간편하게 하기 위해 URI와 매핑하여 사용할 예정이다.
API 호출 메소드명과 컨트롤러명은 동일하게 사용해서 혼돈이 없게 한다.
사용자 경험(UX) 향상.
SPA로 구현했기 때문에 현재는 페이지 이동이 너무 갑작스러워보인다. 의도적으로 약간의 지연을 주면 좋을 것 같다.
페이지가 전환될 때 사용자가 자연스러움을 느낄 수 있도록 페이지 전환 애니메이션을 부여한다.
카드 에디터 화면을 마크업하고 구성요소를 컴포넌트화한다.
카드 편집 미리보기의 핵심 기능을 붙인다.
카드 에디터 화면에서 뒤로가기를 누르면 현재 저장사항을 모두 잃을 수 있는데 돌아가겠냐고 확인하는 Confirm 창을 띄운다.
카드 수정 페이지를 만들고 저장된 카드 정보를 불러와 화면에 보여준다. 카드 수정 페이지는 기존 카드 생성 페이지를 재사용한다.
이미지 파일 선택 -> 단색/그라디언트 배경을 선택 -> 다시 이미지 파일 선택
을 하면 file input 부분에 onChange가 발생하지 않아서 카드 미리보기에 선택한 이미지가 보이지 않는 문제가 발생한다.+) 원인은 file input의 value가 초기화되지 않았기 때문에 onChange로 감지되지 않는 것이었다. 이것도 해결하고 state의 file 값까지 비우면 더 좋다.
ref.current.value = 0
카드 GET API와 화면을 연동해서 카드의 정보를 조회할 수 있게 하기.
카드 배경으로는 어떤 옵션을 골랐는지, 폰트 색은 무엇을 골랐는지 사용자가 알 수 있게 표시해주는 것이 목적이다.
선택된 칩은 회색 오퍼시티가 옅게 깔리고 체크 아이콘이 가운데에 떠서 선택된 것임을 알 수 있게 한다.
/cards/:id
형식으로 변하면서 카드 상세정보를 담은 모달창이 뜨게 한다./cards/:id
path를 부여한다.<Link/>
를 연결한다.원래/나중 | (X, X) | (X, O) | (O, X) | (O, O) |
---|---|---|---|---|
(X, X) | ||||
(X, O) | ||||
(O, X) | ||||
(O, O) |
책을 넘길 때 마지막 페이지에서는 더 이상 못 넘기도록 총 페이지 수를 계산해야 한다. 이를 위해 카드 목록 GET 요청을 보내면 서버에 존재하는 카드의 총 개수를 X-Total-Count
라는 헤더로 보내주도록 한다.
X-Total-Count
헤더에 카드의 총 개수를 실어 보낸다.모달창의 바깥을 클릭하면 창이 닫히고 이전 페이지인 BookPage로 돌아간다.
position: absolute
로 카드 컴포넌트 중앙에 위치시킨다.프론트를 만들 때 도움이 되는 정도로 토대만 만들면 되기 때문에 완벽하지 않아도 된다.
프론트를 만들며 조금씩 기능을 수정할 것이다.
예외처리와 테스트는 나중에 API 문서를 만들면서 할 예정
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.