Inner Circle 3기 오픈소스 라이브러리 제작 프로젝트. 3~4주차 과제로 오픈소스 라이브러리를 작성합니다.
- 리더와 본인이 협의한 주제로 라이브러리를 작성한 후 npm에 오픈소스로 퍼블리싱
- 주제는 예시 중 하나를 고르거나 본인이 원하는 주제로 설정 가능합니다.
- 4월 5일 (토) 22시까지
본인이름 - 라이브러리 주제
를 제목으로 한 이슈를 등록 (OSS 프로젝트
템플릿 사용)- 아직 작성이 끝나지 않은 이슈에는
WIP
라벨을 붙여주세요.
- 아직 작성이 끝나지 않은 이슈에는
- 이슈를 통해 리더와 상의 후 프로젝트를 확정하고 진행. 확정된 프로젝트에는 리더가
Go Ahead
라벨을 붙입니다. 이 라벨이 붙은 경우는 바로 진행하시면 됩니다. ⚠️ 개인 계정에 프로젝트 저장소를 만듭니다- 프로젝트 저장소 주소를 이슈 문서에 추가합니다.
- 프로젝트를 진행하면서 PR을 만들고 필요한 기능을 구현합니다.
- 리뷰를 받을 준비가 되면
fe-library
저장소에 있는 본인 프로젝트 이슈에Needs Review
라벨을 붙여 리더에게 리뷰를 요청합니다.- 해당 프로젝트의 오픈되어 있는 가장 최신 PR을 리뷰합니다. 혹시 다른 식으로 리뷰를 해야하면 말씀해주세요.
- 리뷰가 끝나면 리더는 이슈의
Needs Review
라벨을 제거하고Reviewed
라벨을 붙입니다. - 리뷰-피드백 과정이 끝나고 npm 퍼블리싱까지 완료하면
Published
라벨을 붙이며 라이브러리 작성을 종료합니다.
- 한국어도 잘 지원하는 타이핑 효과 React 컴포넌트 / Vue 컴포넌트: 한글을 조합하는 과정도 보여주어야 함
- 데이터를 다운로드하는 라이브러리 / 링크 컴포넌트. 데이터와 파일 이름을 prop으로 전달. Blob URL, download 속성 사용
- 주어진 크기, 색상, 글자로 플레이스 홀더 이미지를 생성하는 라이브러리. 혹은 컴포넌트. Canvas 사용
- 7 segment display - 폰트로 하는 방법도 있지만 CSS, SVG, 캔버스로 그릴 수도 있으니까. 이 중에서는 SVG 추천
- 카운트다운 컴포넌트 - 특정 시기까지 남은 시간을 카운트다운으로 알려줌. 7 segment display와 같이 쓰는 방안도 고려해 볼 수 있음
- 이미지를 선택, 크롭, 리사이즈, 파일 크기에 따른 제한이 가능한 라이브러리 또는 컴포넌트
fetch
를 조금 더 편하게 사용할 수 있는 래퍼:post
,get
등으로 명시.get(url).json<T>()
,post(url).json<T>()
등과 같이 타입을 지원하는 json 메서드.- 본문을 복사할 때 출처 텍스트를 추가하는 React / Vue 컴포넌트
- CSS Highlight API를 사용한 텍스트 강조 API -
span
이나mark
등의 추가 요소가 없어서 리렌더링을 유발하지 않는다(FF 지원은 안되지만 곧 될 예정) - typingchanger처럼 한글 -> 영어, 영어 -> 한글(2벌식 기준) 변환해주는 라이브러리
- 프로젝트는 리더와 상의하고 확정한 후에 진행합니다.
- 기본적으로 개인 과제이나 2~3인이 팀을 이루는 것도 가능합니다. 대신 프로젝트의 범위는 조금 더 커질 수 있습니다.
- 각 개인의 오픈소스 프로젝트라서 독립적으로 진행해야 하므로 이 저장소를 포크하지 않습니다.
이 자리에 작업하신 결과물을 링크합니다. 😃