일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 | 29 |
30 | 31 |
- CRUD w ReactQuery
- 멀티프로세스
- TypeScript
- 회고
- error
- refactoring
- CS
- Spa
- wanted-preonboarding-course
- 짝선배 짝후배 매칭 웹 개발 회고
- teave
- 멀티스레드
- Today
- Total
목록Programming (25)
깊고 넓은 삽질

웹 서비스를 기획부터 배포, 운영까지 할 기회가 생겨 그 과정을 기록하고자 한다. 좋은 기회를 준 친구에게 감사의 마음을 전한다. 1. 기획 | 짝선배 짝후배 문화 이어가기 친구의 대학교에는 짝선배 짝후배 문화가 있다. 신입생의 학교 적응을 위해 선배와 짝을 지어주는 문화라고 한다. 학생회에서 주최하는 프로그램이었는데 문제는 학생회가 사라지면서 이 문화도 흐지부지 사라질 위기에 처했다. 좋은 문화의 명맥을 이어가기 위해 나와 내 친구 둘이서 웹사이트를 운영해보기로 했다. 웹사이트의 기능은 간단하다. 사용자가 본인의 정보와 원하는 탐색 범위를 제출하면 해당 범위에 적합한 상대를 이어주는 것이다. 개발 일정은 2월 초에 시작해 3월 개학 이전까지 배포를 목표로 잡았다. 원하는 탐색 범위 받기 사용자가 원하는..

장바구니 구현 시 고려할 점 | 수량 변경과 선택 이커머스 사이트에서 중 장바구니 페이지를 구현하고 있다. 장바구니 페이지는 결제 페이지 바로 이전 페이지로, 장바구니에 담긴 물품들 중 체크된 품목만을 결제 페이지로 넘겨준다. 체크나 품목 수량 변경을 할 때 각각의 물품 id와 수량을 알 수 있기 때문에 해당 id로 PATCH api를 보내면 간단하게 구현할 수 있을 거라 생각했지만, 전체 선택을 할 때 어떻게 구현할 지 고민이었다. 각 아이템들의 체크 여부를 확인해 각각의 아이템 id로 아이템 수만큼의 PATCH api를 날려야 하나? 어떤게 효과적일지 프론트엔드 엔지니어의 작은 두뇌로 고민해봤다. api에 대한 best practice는 github를 많이 참고하고 있다. 하지만 github에서는 적..
면접회고 | 멀티스레드, 멀티프로세스, SPA 운 좋게 면접을 볼 기회가 있었다. 기술면접을 보고 바로 인성면접을 봤다. 4시에 면접이 시작됐는데 체감상 각각 15분씩 30분정도 걸린 것 같았다. 끝나고 나와서 시계를 보니 6시였다. 멀티 스레드와 멀티 프로세스 질문이 가물가물한데 맥락은 이러했다. 자바스크립트로 개발 시 멀티 스레드와 멀티 프로세스를 이용한 구현의 비교를 물어보셨다. 내가 알고있는 건 프로세스는 실행되고있는 프로그램이고, 스레드는 프로세스 안에서 실행되는 것 정도였다. 프론트엔드 분야에서 내가 알고있는 프로세스와 스레드는 "자바스크립트는 싱글 스레드 언어,, "로 시작되는 이벤트루프, 테스크큐, 콜스텍과 실행컨텍스트에 대한 설명 뿐이었다. 자바스크립트 멀티스레드, 멀티프로세스라는 키워드..

리팩터링의 전제 조건은 리팩터링 후에 정상 동작하는 것이다. 리팩터링 후 정상적으로 동작하는지 확인하기 위해서는 테스트가 필요한데, 테스트 자동화가 되어있지 않아 많이 불안한 상태였다. 자동화가 되어있지 않으면 사람의 눈으로 확인하기 때문에 정확하지 않을 수 있고 확인하는 데에 시간이 많이든다. 만약 여러 코드가 의존하고 있는 부분을 리팩터링 한다면 그 부분을 의존하고 있는 코드들을 모두 테스트해봐야 정확한 테스트가 가능한데, 이는 사람이 하기엔 너무 많은 일이다. 하여, 늦었지만 지금부터라도 테스트 자동화를 위해 테스트 코드를 짜 보고자 한다. 테스트 자동화 환경 설정 (jest) ⬇ 더보기 yarn add --dev jest jest-environment-jsdom @testing-library/re..

밀린 리팩터링 조지기 5월쯤 부터 시작한 티 플랫폼 사이트 개설 프로젝트 teave가 어느덧 5개월이 지나고 있다. 그간 나름의 리팩터링을 해왔었지만 최근 한 달동안은 기능 구현에만 초점을 맞췄던 것 같다. 이제 곧 teave 팀에서 나가야 하는데 후임 프론트 엔지니어에게 이 상태로 넘겨 줄수는 없다. 현재 teave의 프론트엔드 코드는 구조가 뒤죽박죽 되어있다. 처음부터 끝까지 나 혼자 짠 코드들이지만 중간중간에 새로운 패턴을 학습해 적용해 여러 패턴이 섞여있다. 이를 하나의 직관적인 패턴으로 통일하는 것이 1차적인 목표다. 2차 목표는 컴포넌트 분리다. 플랫폼 사이트 특성상 비슷한 컴포넌트들이 많다. 그런데 각자 역할과 기능이 조금씩 달라서 새로 만들다 보니 현재 여러 컴포넌트들에서 중복되는 부분이 ..

09.27~ 09.28 검색창 구현 + 검색어 추천 기능 구현 (github repo https://github.com/wanted-team-11/pre-onboarding-assignment-week-5-1-team-11) 이번 과제 난이도는 바로 이전 과제에 비해 평이했다. 그래서 팀원들 각자 개인적으로 구현하고 취합하는 방식으로 진행했다. 검색어 추천 기능 구현 기업 과제 중 api 통신을 이용해 검색어 추천 기능을 구현할 때 겪은 일이다. 검색창에서 사용자가 검색어를 입력하면 실시간으로 입력한 값을 미리 api 쿼리로 날려 검색결과가 있는 검색어를 추천해주는 기능을 구현해야했다. 여기서 중요한 점은 api 호출을 최소화였다. 이를 위한 두 가지 전략이 있는데 api 캐싱과 디바운싱이다. api 캐..

기간 목표 github repository 09.13 ~ 09.15 (약 2일) 특정 깃헙 레파지토리(angular-cli)의 이슈 목록과 상세 내용을 확인하는 웹 사이트 구축 https://github.com/wanted-team-11/assignment4 09.16 ~ 09.18 (약 2일) API 서버와 통신해서 작동하는 댓글 프로젝트를 Redux를 통해 구현 https://github.com/wanted-team-11/pre-onboarding-assignment-week-3-2-team-11 09.20 ~ 09.25 (약 5일) 투자 관리 서비스의 관리자 기능 구현 https://github.com/wanted-team-11/pre-onboarding-assignment-week-4-1-team..

09.02 ~ 09.04 이커머스 사이트 리뉴얼 (github repo https://github.com/wanted-team-11/assignment2) 09.06 ~ 09.08 영화 트레일러 사이트 개발 (github repo https://github.com/wanted-team-11/assignment3) 두번째, 세번째 과제 | 이커머스 사이트 리뉴얼 두번째 과제 :: 과일을 판매하는 이커머스 사이트의 판매 페이지를 리뉴얼하고 판매자 관리 페이지를 개발하는 과제였다. 판매 페이지 리뉴얼은 페이지네이션으로 상품을 보여줘야한다. 판매자 관리 페이지는 제품을 판매하는 판매자가 상품의 정보를 입력, 수정하는 페이지를 구현한다. 세번째 과제 :: 제공받은 API를 이용해 영화 목록들을 보여주고, 영화 선..

풀스택과 풀사이클의 차이점을 알게 되었다. 약간의 뉘앙스 차이라는데, 전자는 모든 과정을 할 줄 아는 것이고 후자는 모든 과정을 경험해 봤다는 의미라고 한다. 풀스택까진 아니더라도 풀사이클 개발자가 되면 개발의 이해도가 높아지지 않을까. 배포에 대해 공부하는 것도 그 일환이라고 생각한다. 본 포스팅은 CI/CD 실습을 위해 간단한 배포 서버인 AWS S3를 이용해 정적 페이지를 배포하고 CI/CD 툴인 Github Action으로 배포 자동화를 하는 과정을 담고있다. CI/CD CI/CD의 목적은 빌드, 테스트, 배포 과정을 자동화하는 것이다. CI (Continuous Integration) : Continuous Integration를 직역해보자면 지속적 통합이다. 여기서 통합은 코드의 변경을 mer..

원티드 프리온보딩 프론트엔드 코스를 참가하면서 배운 점들을 정리하고자 글을 쓴다. 이 코스는 매주마다 주어지는 기업과제를 팀과 함께 해결해나가는 과정이다. 과제와 별개로 매주 프론트엔드와 관련된 강의가 열린다. 참가자 모두 사전 과제로 todo app을 각자 만들었고 임의로 배정된 7~8명이 한 달동안 한 팀이되어 진행한다. 08.30 ~ 09.01 todo app (github repo https://github.com/wanted-team-11/assignment1) 첫 과제 | 협업의 방법 배우기 첫 과제는 팀에서 하나의 todo app을 만드는 것이었다. 과제의 목적은 최선의 결과물이 아닌 협업하는 방법을 공부함에 있었다. 강의 시간 때 배운 협업은 깃 버전관리나 코드포메팅 등 기술적인 부분이었다..