코드숨

    소프트웨어 개발의 지혜 - 코드숨 리액트편(5기) 후기

    서른다섯의 나이에 코딩을 시작하며 재작년 다니던 직장을 그만두고 호주로 워킹홀리데이를 떠났습니다. 만 서른한 살이 되기 직전에 비자를 신청했고 만 서른두 살이 되기 직전에 비행기를 탔으니까, 워킹홀리데이 행 마지막 열차 중에서도 마지막 칸에 겨우 탑승한 셈이었죠. 그저 관성에 이끌려 살아왔던 저는 변화의 필요성을 통감했습니다. 주변 환경에 작은 변화라도 주고 싶어 택했던 마지막 발악이었을까요. 멜버른에서 평화로운 시간을 보내던 중 팬데믹과 함께 도시가 올 셧다운이 되는 경험을 했습니다. 예정보다 일찍 귀국을 하게 되었지만, 호주에서의 시간 덕분에 조금이나마 마음의 평안과 여유를 얻고 무언가를 다시 시작할 수 있는 용기를 얻을 수 있었던 것 같습니다. 오랫동안 개발자라는 직업을 동경했지만, 제가 할 수 있..

    코드숨_React_11주차_주간회고

    Facts (사실, 객관) 코드숨 최종 프로젝트 3주차 진행 Feelings (느낌, 주관) 프로젝트 기간이 끝나간다. 계획했던 것들을 기간 내에 모두 구현할 수는 없을 것 같았다. 마감 시점과 무관하게 기능을 구현해 나가느냐, 아니면 지금까지 구현한 부분의 완성도를 높이고 디자인을 먼저 적용하느냐의 기로에 섰다. 트레이너님께서 먼저 완성도를 높이고 사람들에게 피드백을 얻어보라고 말씀해주셨다. 조언을 구한 대로 방향을 잡기로 했다. 두 갈래 모두 어차피 해야하는 것이고 순서만 바뀔 뿐이다. CSS-in-JS가 점점 편해지는 것을 느꼈다. 반응형으로 보일 수 있도록 최대한 디자인을 해봤지만, 여전히 디테일이 부족하다. 특정 모바일 환경에서 width가 제대로 잡히지 않는 경우가 있었다. display는 f..

    코드숨_React_10주차_주간회고

    Facts (사실, 객관) 코드숨 프로젝트 2주차 메인 페이지 및 결과 페이지 구현 Feelings (느낌, 주관) 생활 패턴이 엉망이다. 체력과 함께 집중력 저하를 느꼈던 한 주였다. 오래 달리기 위해선 균형을 잡을 필요가 있다. 라우터 basename 속성을 통해 base url을 설정했다. 로컬 환경과는 달리, 배포 페이지에서 빈 화면을 출력했기 때문에 필요한 작업이었다. base url을 문자열이 아닌 환경변수로 넣어주고 싶었는데 결국 실패했다. 깃허브 레포 설정에서 'Environment secrets'이나 'Repository secrets'에 변수를 설정해봤지만 여전히 환경변수를 찾지 못했다. 아직 정확한 방법을 모르겠다. 로컬에서도 환경 변수 설정이 필요하다. React Create App..

    코드숨_React_9주차_주간회고

    Facts (사실, 객관) 코드숨 개인 프로젝트 시작 Feelings (느낌, 주관) 프로젝트의 배포 환경 구축에 시간이 많이 걸렸다. firebase의 호스팅을 고려했다가 더 심플해 보이는 github page를 선택했다. React Create App 없이 개발 환경을 구축하다 보니 gh-pages 라이브러리 활용이 어려웠다. github action을 통한 배포 방법을 찾아서 자동으로 배포되도록 하는데 성공했다. 자동화가 이루어지니 왠지 모르게 기분이 좋았다. 도커를 사용하고 싶었는데 그 방법은 결국 찾지 못했다. 개발 환경 구축은 여전히 어렵다. 작업 단위를 작게 가져가는 것이 쉽지 않다. 중간에 바꿔야 하는 것들이나 생기거나 하고 싶은 것이 생기면 딴 길로 새는 경우가 있다. 계획했던 작업 범위..

    코드숨_React_8주차_주간회고

    Facts (사실, 객관) 코드숨 8주차 강의듣기 - 더 나아가기 코드숨 8주차 과제1: 레스토랑 앱 꾸미기 Feelings (느낌, 주관) 벌써 8주가 흘렀다. 배운 것을 헛되게 하고 싶지 않아서 틈틈이 복습을 하고 있다. 막상 개발자를 목표로 삼고 나니까 코드숨 이전에 잉여롭게 갈등하며 보냈던 세 달정도의 시간이 너무 아깝게 느껴졌다. 해야될 것들이 많다고 느끼고 있는 요즘이다. 시간 분배를 잘해서 하루하루를 성실하게 준비해야 한다. Findings (배운 점) emotion으로 CSS-in-JS를 경험했다. 스타일시트를 별도로 관리하는 것이 더 좋다고 생각했었는데, 여러 컴포넌트가 분리되는 상황에서는 이 방식이 더 적합할 수도 있겠다라는 생각을 했다. 경험을 더 해보면 장단점을 더 느낄 수 있을 것..

    코드숨_React_7주차_주간회고

    Facts (사실, 객관) 코드숨 7주차 강의 듣기 - 로그인 과제 1: 레스토랑 로그인 페이지 및 리뷰 작성 페이지 구현하기 Feelings (느낌, 주관) 벌써 7주차도 끝났다. 모든 내용이 새로웠던 나로서는 배울 것들이 참 많은 시간이었다. 그러나 내 것으로 만들기 위한 충분한 노력을 기울였던가라고 자문해본다면 자신 있게 대답하지는 못할 것 같다. 남은 시간 동안 최종 과제를 진행하며 배운 것을 최대한 적용해봐야겠다. '왜'에 대한 질문이 너무 부족하다고 느낀다. 왜 이 도구를 써야 하는지, 왜 이렇게 코드를 작성하는지, 왜 이 테스트를 작성하는지 등등에 대한 충분한 고려가 없다. 기존 코드를 따라 관성적으로 작성할 때가 많다. 코딩테스트 준비도 해야만 할 것 같아 알고리즘을 풀어봤다. 역시 너무 ..

    코드숨_React_6주차_주간회고

    Facts (사실, 객관) 코드숨 6주차 강의 듣기 - 라우팅 과제 1: 레스토랑 상세 페이지 구현하기 Feelings (느낌, 주관) MemoryRouter를 활용하여 테스트를 작성하는 중에 단순히 코드를 따라 치는 모습을 자각했다. 내가 지금 쓰고 있는 코드가 어떤 의미가 있는 건지, 알고는 있는 건지 먼저 생각하자고 다짐했다. 비교적 이른 시점에 과제의 기능 구현을 모두 끝마쳤다고 생각했지만 e2e테스트를 통과하지 못했다. 처음에는 식당 목록을 클릭할 때 이벤트로서 fetch 하도록 했는데, 생각해보니 주소를 직접 입력하는 경우에는 당연하게도 데이터를 불러오지 않았다. 바보 같은 실수이긴 했지만 테스트의 필요성을 느끼게 되는 경험이었다. 주소창에 id값을 직접 입력하는 경우에 페이지를 불러오지 못하..

    코드숨_React_5주차_주간회고

    Facts (사실, 객관) 코드숨 5주차 강의 듣기 과제1: 레스토랑 조회 구현하기 Feelings (느낌, 주관) 제대로 된 순서로 TDD를 하는 것이 쉽지 않았다. 지난 번에는 너무 이른 시점에 컨테이너를 만들어 분리했는데, 이번에는 처음부터 컴포넌트의 분리없이 모든 기능을 구현하려고 하다 보니, 코드의 구조가 쓸데없이 복잡해진 경향이 있었다. 형태만 먼저 만들어 둔 다음 리팩토링을 통해 기능과 컴포넌트를 점점 추가하는 것이 올바른 방향인 것 같다. 리덕스를 최대한 늦게 사용했다. 두 가지 모두 익숙해지기 위해 useState로 먼저 상태관리를 했는데, 테스트 작성에 큰 어려움이 있었다. fetch는 비동기적으로 이루어지기 때문에 getBy- 매쳐로 원하는 요소를 찾지 못했다. fetching이 끝나..

    코드숨_React _4주차_주간회고

    Facts (사실, 객관) 코드숨 4주차 강의 듣기 과제1: To-do 리스트 Redux를 사용하여 리팩터링 하기 과제2: 레스토랑 정보 확인 및 예약 시스템 구축하기(TDD로 기능 구현) Refactor: 투두리스트 with 바닐라 자바스크립트 Feelings (느낌, 주관) 커리큘럼 구성이 좋다고 느끼고 있다. 리덕스를 활용하여 실습해보니 상태관리에 많은 이점이 있었다. 관심사도 더 잘게 분리되어, 코드의 가독성도 좋아졌다. 3주차에 이어 지금까지 계속 분리될 수 있다는 것이 놀라웠다. 지난 주 작성한 과제에 리덕스를 적용했다. 컴포넌트를 presentational과 container로 분리해주면서 테스트도 더 늘어났다. 리듀서 테스트에서 이벤트 발생에 따라 액션이 생성되고 상태가 변경되는지 테스트하..