Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
PR #186 에서 제가 스터디 2기 모집을 위해서 Steps 섹션에 있는 스터디 신청 URL을 수정했었는데요. 알고보니 Footer에도 스터디 신청 링크가 있었는데 제가 실수록 수정을 빼먹었더라고요. 2기 신청자 분께서 알려주셔서 뒤늦게 발견하게 되었습니다.
예전에 디스코드 URL도 그렇고 저는 비슷한 문제가 계속 반복되고 있는 이유가 HTML 마크업 안에 데이터를 하드코딩해놔서 그런 것 같습니다. 근본적인 해결책은 이렇게 여러 곳에 위치하는데 주기적으로 갱신이 되야하는 데이터는 한 곳에서 관리하는 것(Single Source of Truth)이라고 생각합니다.
우리 프로젝트는 백앤드나 데이터베이스가 없기 때문에
data.js
파일에 스터디 신청 URL을 저장해놓고 import를 하려고 했는데요. 뜻밖에 걸림돌에 부딪히게 되었습니다. 다음 두 개의 컴포넌트의 API 설계가 일관적이지 않기 때문입니다.<ds-steps-section>
요소는 slot을 통해서 외부에서 내용을 넘기도록 되어 있습니다.<footer-link-list>
요소는 slot을 받지 않고 내부적으로 내용을 랜더링하도록 되어 있습니다.<footer-link-list>
요소의 내용은 자바스크립트 파일(footer-link-list.js)에 있기 때문에, 스터디 신청 URL을 import하는데 아무 문제가 없었습니다. 하지만<ds-steps-section>
요소는 내용은 index.html 파일에 있기 때문에, 스터디 신청 URL을 어떻게 주입해야 할지 고민이 되었습니다.그래서 임시 방편으로 index.html 파일에 있는
<ds-steps-section>
요소는 내용을step-section.js
파일로 옮겨서 이 문제를 해결하였는데, 이러한 설계 변경에 대해서 어떻게 생각하시는지 다른 분들의 의견을 듣고 싶습니다.디스코드 URL도 같이
data.js
파일에 저장하려고 했더니, 비슷한 문제에 부딪히게 되었습니다.<ds-header>
요소는 내주적으로 내용을 랜더링하는데,<ds-intro-section>
요소는 index.html에서 내용을 작성하여 slot을 통해 넘기도록 설계되어 있습니다.우리 예전에 이 부분에 대해서 잠깐 논의했던 것 같은데, 컴포넌트 API를 설계할 때 언제 slot을 써야하고, 언제 쓰지 말아야 할지에 대해서 좀 더 깊이 생각해보면 어떨까요? 웹 컴포넌트가 아니라 React 컴포넌트였더라도 동일하게 API 설계을 하셨을지 생각해보시면 좋을 것 같습니다.
Checklist before merging