TIL
-
20221210 TIL 좌충우돌 배포하기TIL 2022. 12. 10. 20:52
어제부터 배포를 하고 있었는데, 해결되지 않은 문제가 꽤 많았고, (SPA를 github pages에 배포하기, CORS에러 해결하기, 등등) 그 어느 것도 해결된 것이 없이 시간이 흐르고 있어서 여러 가지를 동시에 진행하며 조금씩 조금씩 나아가고 있었는데, 여러 번의 실패 실패 실패 후에 결국 오늘 정오 쯤에 SPA 리액트 앱 github pages에 배포를 성공했다! SPA는 기존에 정적인 페이지들을 github pages로 배포했던 것과 달리 라우팅 관련 처리를 해줘야 했다. CRA를 사용해서 배포한 후기가 많았는데, 나는 parcel을 쓰고 있기 때문에 적용할 수 없었고, CRA없이 만든 SPA github pages 배포 관련 문서를 찾기가 힘들었는데, https://github.com/rafg..
-
20221209 TIL 배포를 하면 고려하지 못했던 점들을 확인할 수 있다TIL 2022. 12. 9. 23:09
오늘 배포를 약 3~4시간 정도면 끝낼 수 있을 줄 알았는데, 예상치 못한 부분들이 마구마구 튀어나왔다. 그래서 아직도 배포를 진행 중이다. 배포를 하면서 고려하게 된 점들이 있었다. 1. 로컬에서 서버와 클라이언트를 함께 띄울 때보다 서버 응답 속도가 현저히 느려진다. 이로 인해 나타난 문제가 크게 두 가지 있었다. 첫 번째로 리스트 크기가 0일 때 상품이 존재하지 않습니다 메시지를 보여주게 코드를 작성해 두었는데, 로딩이 매우 빠르게 되는 경우 거의 보이지 않아서 큰 문제가 없었지만, 배포를 하면서 서버 응답 속도가 현저히 느려져서 상품이 존재함에도 API응답 속도가 느려서 상품이 존재하지 않습니다 메시지가 먼저 보이게 된다. 따라서 로딩 중인 상태를 반드시 분리를 해야겠다는 생각을 하게되었다. 두 ..
-
20221208 TIL 리팩토링을 조금 더 편하게TIL 2022. 12. 8. 23:02
2주에 걸쳐 과제 구현을 완료했다! 과제를 완료했기 때문에 어제 작업했던 페이지네이션 컴포넌트 리팩토링을 진행하였다. 이때까지 리팩토링을 할 때 리팩토링을 원래 파일에서 하다보면 혼란스러웠던 경우가 많았다. 그리고 기존 파일에서 작업할 때 작업을 하는데도 어려움이 느껴졌었기 때문에 리팩토링을 제대로 하는 경우에 다른 방식으로 접근을 해야겠다는 생각을 했었고, 예전에 홀맨님께 조언을 구했었다. 그런데 그동안 리팩토링을 제대로 할 일이 많지 않았기 때문에 그 방식을 한동안 까먹고 있었다. 오늘은 어제 작성한 무지막지한 페이지네이션 컴포넌트 코드를 제대로 리팩토링을 해야됐는데, 어떻게 하면 조금 편하게 리팩토링을 할 수 있을까 고민하는 중에 홀맨님이 말씀해주신 방식이 떠올랐다. 바로 기존 파일을 복사해서 복사..
-
20221207 TIL 트렌디한 페이지네이션 구현하기TIL 2022. 12. 7. 22:57
상품 목록과 주문 목록을 보여줄 때 페이지네이션을 해야한다. 페이지네이션을 처음에는 과거의 게시판들의 페이지네이션처럼 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 페이지가 있고 > 버튼을 누르면 11, 12, 13, 14, 15, 16, 17, 18, 19, 20의 페이지가 보여지는 방식으로 진행을 하려고 했다. 그런데 디자인을 입히기 위해 찾아보다가 요즘 스타일의 페이지네이션을 보게 되었다. 티스토리 블로그도 글 목록 페이지네이션이 위와 같은 방식으로 구현이 되어 있었다. 그래서 이 방식으로 페이지네이션을 하기로 결정을 하였다. 이 로직을 구현하기 위해 처음에는 매우 단순하지만 방대한 코드로 시도를 해보았다. 1. 먼저 총 페이지 수가 7페이지 이하라면 다 보여준다. 2. 만약 총 페이지 수가..
-
20221206 TIL 평정심 유지하기TIL 2022. 12. 6. 18:28
아직 속단하기는 이르지만 슬럼프를 잘 떠나보내고 있는 것 같다. 평정심을 어느정도 유지하고 있고, 스트레스 지수도 많이 높지 않고, 집중도도 괜찮다. 그리고 어제 약 10시간 정도 순수하게 코딩을 했음에도 오늘 일과시간 중에 쉬려고하지 않고 열심히 보냈다. 요 근래들어 가장 평정심을 많이 갖게 된 듯한 느낌이 든다. 평정심을 유지할 수 있었던 가장 큰 이유 중 하나는 나 자신을 객관화하여 바라볼 수 있었기 때문이었던 것 같다. 슬럼프에 대한 영상을 찾아보다가 슬럼프가 오게 되는 촉매가 있다는 얘기를 듣고 곰곰이 뭐가 나의 슬럼프의 시작일까를 고민해보았다. 처음에는 나는 그런게 없는 것 같은데 라는 생각이 들었지만 어느 순간 문득 슬럼프가 찾아올 때의 촉매가 떠올랐다. 내 슬럼프의 시작이 밥을 안 먹기 시..
-
20221205 TIL DTO in DTOTIL 2022. 12. 5. 13:38
주문 내역에는 상품 정보가 들어있다. 따라서 주문 내역을 출력하는 과정에서 받아와야 하는 값이 너무 많았다. 보기만해도 무언가 문제가 있다고 느껴졌고, 하나라도 순서가 틀리면 안되는데, 일단 만들어두었지만 매우 불안한 코드였다. 마침 비슷한 고민을 담고 있는 질문에 아샬님의 답변이 달렸다. 이 답변을 바탕으로 OrderDto가 ProductDto를 담고있는 방식으로 리팩토링을 해보았다. Product와 관련된 내용은 묶여있어 훨씬 보기도 좋고, 관심사에 따라 묶여 있어 좋고, 순서도 훨씬 덜 헷갈리게 바꿀 수 있었다. DTO안에 DTO를 사용하면 이렇게 product는 관련된 것들이 묶인 형태의 JSON을 응답받을 수 있게 된다. 추가로, 만약 반환받는 JSON의 key값을 바꾸고 싶다면 DTO gett..
-
20221204 TIL 포기하지 않고 조금씩 앞으로 나아가자TIL 2022. 12. 4. 22:20
수료가 가까워짐에 따라 고민도 늘고, 나의 실력에 대한 회의감이 들고, 약간의 슬럼프가 온 것 같다. 어느 정도 마음을 다잡고 몰입이 엄청 잘 되는 날이 하루 지나면 그 다음날부터 컨디션이 살짝 안좋은 날들로 이뤄진 주기가 반복이 되고 있다. 작업량이 불규칙하면 작업 계획을 세우기가 매우 어렵다. 따라서 작업량을 어느정도 일정하게 유지할 수 있도록 만드는 것이 다음 주의 나의 중요한 미션이다. 너무 몰입이 잘 되는 날이더라도 마감 직전이 아니라면 9시 정도에 마무리를 하는 것이 그 다음날 컨디션에 영향을 덜 줄 것 같다. 그래도 내 자신을 칭찬해준다면, 컨디션이 많이 안좋은 날에도 코딩을 많이 하지는 않았지만 쉬지는 않았다는 점이다. 최대한 어제의 나보다 조금이라도 발전한 오늘의 나가 되도록 하루를 보내..
-
20221203 TIL 테스트의 독립성을 어떻게 보장하면 좋을까?TIL 2022. 12. 3. 17:41
메가테라 과정을 수강하면서 가장 신기했던 부분은 프론트에서 (전역) 상태 관리를 다른 어떠한 외부 라이브러리 없이 구현을 했다는 점이었다. 구독 형식으로 listener를 등록해두고, store에서 상태를 바꾼 뒤에 publish를 하면 구독하고 있는 컴포넌트들이 리렌더링되면서 바뀐 상태가 반영되는 방식이다. 이를 활용하면 객체지향적으로 상태 관리를 할 수 있다는 장점이 있는데, 사용을 하다가 테스트가 조금 이상하게 동작하는 것을 발견하게 되어서 분석을 해봤더니 이 방식을 사용하면서 테스트를 독립적으로 돌리기 위해 고려할 점이 있다는 것을 알게 되었다. 일관적인 상태 관리를 위해 모든 컴포넌트가 동일한 store를 사용해야하기 때문에 싱글톤 방식으로 동작하고 있는데, 이 싱글톤 방식으로 동작한다는 것이 ..