개선 되었으면 하는 점이나 불편한 점 🙁
1. 자동 로그인(ID, PW 저장)
2. 날짜의 세분화 - 기존의 경우 현재 시점을 바탕으로 1일,1주,2주,4주
3. 신청 내역과 승인/미승인 여부 확인
4. 스토어 출시 - expo 어플을 이용하기 때문에 찾기 힘듬
5. 달력 형식으로 신청 및 확인 가능
6. 신청을 해야 한다고 알려줄 수 있는 알림 기능
추가되었으면 하는 기능 🔧
1. ID, PW 저장 및 자동 로그인
2. 신청된 날짜 중복 필터링
3. 달력 형식으로 원하는 날짜만 신청 가능
4. 신청 내역 확인 및 승인/미승인 여부 확인 가능하게
5. 학사 공지, 학과 공지에 대한 크롤링
6. 한 달 이상 신청
7. 생활관 상/벌점 내역 확인 및 합산 계산(홈페이지의 경우 직접 계산해야함)
8. 실제 앱 출시
여기서 달력 형식을 이용해서 신청하는 것은 나 또한 꼭 해보고 싶었던 기능 추가 였기 때문에
이를 중점적으로 하여서 앱을 업그레이드 하기로 마음 먹었다.
[개발 목표 사항]
1. Typescript 도입 - 학습목적
2. Redux, Redux-toolkit, Redux-Saga 도입
persist와 각종 action들의 처리를 redux-toolkit을 이용한 직관적인 이해
[기능 목표 사항]
1. 속도개선 (기존 한달 30초 → 2초 이내)
2. 달력 형식으로 신청하고 싶은 날 선택하여 신청가능
3. 자동 로그인 기능
4. 중복날짜 필터링(신청한 날 신청불가)
5. 날짜 시작일 지정해서 1일, 1주, 2주, 4주 신청가능
6. 외박 승인 및 신청 내역 여부 달력에 표시
7. 상벌점 내역 확인 및 통합 점수 계산
8. 화이트/다크 모드 추가 및 디자인 개선
외박 신청 1일 기준 15초 정도 소요가 되지만 이것도 일반 API call 에서는
납득이 안되는 수준이긴 했다...
크롤링을 이용한 신청 로직이라 웹페이지를 열어 로그인 하는데만 7초,
생활관 페이지까지 이동 2초, 날짜 계산 로직 까지 계산한다면 한 달 기준 30초가
넘아가는 경우가 생겨서 이는 수정이 필요 했다.
(크롤링의 경우 속도개선에 눈에 띄는 해결법은 안보였기에 학교 자체 API를 사용하기로
했다.)
이 부분은 학교 컴퓨터 공학과 학생 분의 도움을 받았다.
[ID, PW 저장]
[자동 로그인]
'날짜' : {스타일 속성}
이여서 이를 프로퍼티를 생성하고 삭제하는 식으로 사용했다.state.day[클릭한 날짜]
의 키 값이 존재 하지 않으면 클릭을 표현하고state.day[클릭한 날짜].selected
속성이 존재하면 onPress
에서 무시하고state.day[클릭한 날짜].delete
속성이 존재 하면 delete
를 이용해서1주, 2주, 한 달
의 경우도 생각해야 하니 이는dayjs
라이브러리를 이용했다. 또한 요일에 대한 개념도 필요했기 때문에 이를 토,일 이라면 주말 외박으로 판단하여 주말 외박에 대한 처리를 하도록 했다.case
문을 이용하여 버튼이 눌리는 key 값을 판하여 각각 1, 7, 14, 28일
동안 for문이 돌도록 처리했다.디자인의 경우 진짜 너무나도 어렵다고 많이 느꼈다.
핸드폰 UI의 경우 화면이 웹에 비해서 작아 그만큼 꽉 찬 화면을 구성하는데 부담감은 줄어들었지만 화이트/다크 모드에서의 색 배치와 이에 따른 버튼 색 구성 또한 화면 구성을 잡는게 너무나도 어려웠던 것 같다. 다크 모드의 경우 가독성을 좀 더 살리기 쉬웠지만 화이트 모드의 경우 rgb hex 값을 조금이라도 이상하게 잡을 경우 가독성과 디자인 모두 잃어버리게 되는 경우가 발생한다.
디자인을 해보면서 얻은 팁은 '#000000'
이나 '#FFFFFF'
와 같은 완전한 하얀색, 검정색은 디자인에 별로 좋지 않다는 점 이다.
버튼들의 경우는 아이콘의 경우가 좀 더 낫고, 여러색을 대입해서 핸드폰이나 모니터로 보면서 직접 원하는 색을 찾아내는게 방법이다.
디자인 참고 사이트는 아래와 같다.
modal component
를 하나 만들어서 넘겨받는 props(text) 오류를 처리하게 했고 Do it 리액트 네이티브 앱 프로그래밍 책을 3주간 공부하면서 이를 마무리하고
직접 배운 것을 바탕으로 미약하게나 앱을 완성 시켜서 에xx타임을 통해서 학생들에게 배포를 하였다.
아무도 반응이 없으면 어쩌지 했는데 생각보다 많은 학생들께서 좋아해주시고 잘 써주시는 것 같아 만들면서 고생했다고 느껴지지 않을 정도로 좋았던거 같다 😃
작년 3학년 겨울방학 부터 해서 1년 남짓 하게 Frontend 개발자를 꿈꾸면서 느리지만 열심히 달려오려고 노력한 것 같다…내가 행복을 찾고자 택한 길인 만큼 앞으로 더 좋은 코드를 써가면서 CS, JS, 디자인 패턴, TDD 등을 공부하며 좋은 주니어 개발자가 위해 더욱 열심히 노력해야 겠다고 생각하는 계기가 된 것 같다 ㅎㅎ
잘 읽고 갑니다 :)