원티드 프리온보딩 코스 - 1주차
WANTED가 주최하고 JustCode, Wecode 의 수강생(?)들이 참여하는 프리온보딩 코스.
난 JUSTCODE 수강생으로 참여했고 기업협업과제라니 걱정반 기대반이었다.
총 3주간의 기업협업과제 기간이 예정되어있는데 벌써 1주가 지났네... 1차 과제를 만들고 바로 2차과제를 시작해서 1차 후기도 아직 남기지 못한 상태이지만 ㅠㅠ
일단은 2차 과제 후기 START
기업협업 2차과제는 바딧에서 제공해주셨습니다.
과제 주제 : 감지 센서 관리 프로그램 개발하기..!!!
프론트엔드 5명이 개발한 프로젝트입니다.
개발기간 : 3일
배포 링크⬅️에서 직접 실행해보실 수 있습니다 :)
필터/ 필터 초기화 : 배터리, 카드 넘버를 기준으로 필터링
정렬 : 배터리, 카드 넘버, raw scent 기준으로 정렬
배터리 부족 표시 : 배터리가 20%이하면 붉은색으로 표시
날짜 선택 : 날짜를 선택해 해당하는 날짜의 기온, 습도, 기압 그래프 확인
그래프 확대 축소 : 그래프 확대/축소 버튼을 클릭해 일정 범위 내에서 확대, 축소
그래프 재배치 : 드래그를 통해 기온, 습도, 기압 그래프의 위치를 재배치
데이터 export : export 버튼을 클릭하면 데이터가 csv파일로 변환된 후 저장
각 버튼을 클릭하면 그에 맞는 주소로 이동한다. useNavigate를 사용했다.
공을 많이 들였던 부분
제 3자가 코드를 처음 봤을 때 어떻게 하면 바로 읽히게 할 수 있을까에 대해
고민을 많이했던 기능이다. 사실 완전히 만족스럽게 가독성이 좋진 않다고 생각하지만
그래도 기능작동이 잘 되고, 나름 깔끔하게 작성한 것 같다. 자세한 건 TIL에서...!
select
에서는onChange
이벤트를 써야한다는 것을 확실히 배우게 된 계기 ㅋㅋㅋ
과제 제출 직전까지 해결이 안되다가 마지막에 해결해서 절대 잊지 않을 것 같다.
위 gif에서 보다시피 배터리가 20%이하인 경우에만 빨갛게 표시되는 기능이다.
<td className={sensor.shadow.batLvl <= 20 ? 'low-battery' : ''}>
{sensor.shadow.batLvl}
</td>
처음에는
className={sensor.shadow.batLvl <= 20 && 'low-battery}'
라고 작성했다.
그렇게 하니 화면에 구현은 되지만 콘솔에 className은 false의 boolean값을 가질 수 없다는 워닝이 떴다.
처음에는 클래스네임에 조건부렌더링을 줄 수 없는 건가? 싶어서 useState를 통해 클래스네임을 관리하려고 했다.
그러나 그게 아니라 삼항연산자를 통해sensor.shadow.batLvl <= 20
이false
일 때의 경우도 부여해줘야 하는 것이었다.
이렇게 또 한층 코드에 대한 이해를 높여가는 중...
그간의 프로젝트에서 한번도 해보지 않았던 필터링기능을 처음 구현해봤다.
기완님도 이 부분을 하고싶어하셨는데 이번에는 양보를 해주셔서 감사히 맡음!
필터링이 구현되는 것 자체가 너무 재밌고 신기하다 ㅎㅎ
더 좋은 필터링 코드를 연구해봐야지
과제 규모가 크지 않은만큼 기간도 짧다. 3일이라는 시간이 주어졌는데...
난이도는 저번 클론 프로젝트보다 낮지만 시간이 짧으니 사실 상 비슷한 난이도로 느껴진다.
그래도 일주일동안 팀원분들과 잘 해나간 것 같아서 다행이다.
이제 또 팀이 바뀔텐데 컨벤션 맞출생각에 아찔하면서도 기대된다.
1차 과제 때 깃허브를 이용해서 배포를 하려다 실패해서 결국 netlify로 배포를 했었다.
그 때 사용한 방법은 깃허브 메인브랜치가 업데이트 될 때
자동으로 배포사이트도 업데이트가 되지 않아서 불편했지만
과제 제출을 해야했기에 어쩔 수 없이 배포를 했었다.
이번에는 gh-pages
라는 라이브러리를 이용해서 깃허브 배포를 해보았다.
깃허브에서 서버를 빌려주는 개념이다. 이번에도 배포에 실패할까봐 걱정했는데
팀원들과 메타버스 zep에서 실시간으로 회의를 하며 진행하니 다행히 배포를 할 수 있었다.
깃허브 배포에 굉장히 도움된 블로그 -> 넘치는(하지만 나에겐 맞지 않는) 정보 속 한 줄기 빛이었던 블로그
gh-pages
를 이용해 배포하니 메인브랜치를 업데이트하고 난 후 npm run build
, npm run deploy
만 해주면 자동으로 배포사이트도 업데이트되니 굉장히 편리했다.
이 부분은 다시 블로그로 정리해봐야겠다. 이제 AWS를 다시 시도해볼 차례...!🥲
짧은 시간내에 잘 마무리해서 다행이다 :)
클론 프로젝트도 재밌었지만 여러가지 기능을 구현해볼 수 있어서 기업과제도 참 재밌는 것 같다.