{"id":18841404,"url":"https://github.com/soozynn/github-issue-list_fastlane","last_synced_at":"2025-08-25T18:34:42.657Z","repository":{"id":50352302,"uuid":"518838706","full_name":"soozynn/github-issue-list_fastlane","owner":"soozynn","description":null,"archived":false,"fork":false,"pushed_at":"2022-08-01T04:34:49.000Z","size":4524,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-05-22T22:11:32.749Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/soozynn.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2022-07-28T12:32:34.000Z","updated_at":"2022-07-28T13:52:40.000Z","dependencies_parsed_at":"2022-09-07T08:40:57.354Z","dependency_job_id":null,"html_url":"https://github.com/soozynn/github-issue-list_fastlane","commit_stats":null,"previous_names":[],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/soozynn/github-issue-list_fastlane","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soozynn%2Fgithub-issue-list_fastlane","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soozynn%2Fgithub-issue-list_fastlane/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soozynn%2Fgithub-issue-list_fastlane/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soozynn%2Fgithub-issue-list_fastlane/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/soozynn","download_url":"https://codeload.github.com/soozynn/github-issue-list_fastlane/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/soozynn%2Fgithub-issue-list_fastlane/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":272114858,"owners_count":24876089,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-08-25T02:00:12.092Z","response_time":1107,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-08T02:51:05.973Z","updated_at":"2025-08-25T18:34:42.602Z","avatar_url":"https://github.com/soozynn.png","language":"TypeScript","readme":"## 실행방법\n\n```\ngit clone https://github.com/soozynn/github-issue-list_fastlane.git\n```\n\n```\nnpm install\n```\n\n설치 후,\n\n```\nnpm start\n```\n\nhttp://localhost:3000/ 을 실행시켜주세요.\n\n## 최종 결과\n\n\u003cimg src=\"./asset/result.gif\" alt=\"result\" /\u003e\n\n## 사용한 기술과 선택한 이유\n\n```\n  \"@reduxjs/toolkit\": \"^1.8.3\",\n  \"prop-types\": \"^15.8.1\",\n  \"react\": \"^18.2.0\",\n  \"react-dom\": \"^18.2.0\",\n  \"react-router-dom\": \"^6.3.0\",\n  \"react-redux\": \"^8.0.2\",\n  \"styled-components\": \"^5.3.5\",\n  \"typescript\": \"^4.7.4\",\n```\n\n- @reduxjs/toolkit\u003cbr /\u003e\n  스토어 설정, 리듀서 생성, 불변성 업데이트 로직 등 단순화하는 유틸리티가 포함되어 있어 사용하기 간단하고, 더 적은 코드로 더 많은 작업 수행 가능한 점, 또 이전과 달리 mutable 로직을 작성할 수 있으며 전체 슬라이스 상태의 생성도 자동으로 수행할 수 있는 여러 장점에 의해 상태 라이브러리로 채택하게 되었습니다.\n\n- styled-components\u003cbr /\u003e\n  props를 사용하여 style을 컴포넌트에 맞춰 유동적이게 적용할 수 있는 점을 좋아하기에 선택하게 되었습니다. 자체 스타일을 포함하기에 작은 컴포넌트를 잘 만들어 놓는다면 이외의 여러 프로젝트에서도 쉽게 재사용할 수 있는 이점과 이 외에도 글로벌 스타일을 주어 전체적으로 통일된 스타일 또한 적용할 수 있는 이점이 있어 해당 기술을 선택하게 되었습니다.\n\n## Challenge\n\n- TypeScript\u003cbr /\u003e\n  이번 과제를 통해 처음 TypeScript를 사용해보게 되었습니다. 사용을 해보면서 타입을 지정하여 제어해주는 점이 좋다는 생각이 들었고, 정적타입을 지원하여 컴파일단계에서 오류를 포착하여 개발자의 의도를 명확하게 코드로 기술할 수 있는 점이 코드의 가독성을 높이고 예측할 수 있게 하며 디버깅을 쉽게 해준다고 생각이 들었습니다. 아쉬웠던 점은 완벽하게 적용하기엔 시간이 부족했다고 생각이 들어 과제를 제출한 후에도 작성한 코드에 대해 더 개선해보도록 하겠습니다!\n\n- Observer 적용하기\u003cbr /\u003e\n  요구사항 이외에 또 다른 시도로 무얼 해볼 수 있을까 생각을 해보다 데이터가 더 많다는 가정으로 Intersection Observer API를 사용하여 인피니트 스크롤을 구현해보는 것 또한 재밌겠다라는 생각이 들어 만들어보게 되었습니다. 한 번에 이슈 카드가 보여지는 것도 나쁘지 않겠지만 스크롤이 특정 포지션을 지나갔을 때 아이템을 추가로 로드하는 인피니트 스크롤을 구현하는 것이 사용자 측면에서 더 자연스러운 흐름일 거 같다는 생각이 들었습니다.\n\n## About\n\n현재 추가해보고 싶은 기능 중 IntersectionObserver가 미완성이어서 계속해서 접근해보고 있습니다. 참고해주시면 감사합니다!\n\n## 배포 사이트\n\nhttps://stellar-tulumba-56de81.netlify.app\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoozynn%2Fgithub-issue-list_fastlane","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fsoozynn%2Fgithub-issue-list_fastlane","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fsoozynn%2Fgithub-issue-list_fastlane/lists"}