generated from muhandojeon/study-template
-
Notifications
You must be signed in to change notification settings - Fork 0
[신승준] 챕터 21: 의존성 관리 #132
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Open
metacode22
wants to merge
1
commit into
main
Choose a base branch
from
챕터21/신승준
base: main
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
The head ref may contain hidden characters: "\uCC55\uD13021/\uC2E0\uC2B9\uC900"
Open
[신승준] 챕터 21: 의존성 관리 #132
Changes from all commits
Commits
File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,39 @@ | ||
| # 의존성 관리 | ||
|
|
||
| 소프트웨어 엔지니어링에서 이해도가 가장 낮고 가장 어려운 주제에 해당한다. | ||
|
|
||
| > 그래서인지 패키지에 문제가 생겼을 때 막상 검색해보면 명확한 해결법을 제시하는 자료가 존재하지 않는 경우가 많았던 것 같아요. | ||
| > 이럴 때 정말 LLM이 있어서 다행이라고 느끼네요. | ||
|
|
||
| ## 임포트 시 고려사항 | ||
|
|
||
| - 여러분이 실행할 수 있는 테스트가 있는 프로젝트인가 | ||
| - 테스트는 모두 통과하는가 | ||
| - 의존성 제공자는 누구인가 | ||
| - 지향하는 호환성 정책은 어떠한가 | ||
| - 인기 있는 프로젝트인가 | ||
| - 파괴적인 변경이 얼마나 빈번하게 행해지고 있는가 | ||
|
|
||
| > 실제로 회사에서 패키지들을 구축하거나 외부 패키지를 도입할 때 한 번쯤 해봤던 생각들이 많네요. | ||
|
|
||
| ## 유의적 버전(Semantic Versioning, SemVer) | ||
|
|
||
| - 메이저: API가 변경되어 의존성을 이용하던 기존 코드를 깨뜨릴 수 있음 | ||
| - 마이너: 순수하게 기능 추가만 있음 | ||
| - 패치: 내부 구현 개선 및 버그 수정 | ||
|
|
||
| ## 유의적 버전의 한계 | ||
|
|
||
| 메이저, 마이너, 패치 등 버전의 숫자들이 호환성을 확실하게 보장해주진 않는다. | ||
|
|
||
| ex. 1.1.4에서 1.2.0으로의 버전업, 즉 마이너 버전업은 API 추가와 버그 수정만 포함되었다는 소리이니 사용하는 측에서의 업그레이드는 안전하다고 보장할 수 있는가? | ||
|
|
||
| ## 의존성 내보내기 | ||
|
|
||
| 공개한 의존성을 안정성 있게 지원한다면, 마음대로 수정하는 것이 어려워진다. 심지어 내부 용도와 맞지 않는 방향을 선택하도록 강요받을 수도 있다. | ||
|
|
||
| > [tkdodo 형이 react-query에 mutationOptions가 추가되는 걸 싫어하던 기억이 나네요.](https://github.com/TanStack/query/discussions/6096) | ||
|
|
||
| > [결국 굴복하시던 게 재밌었어요.](https://github.com/TanStack/query/discussions/6096#discussioncomment-12944553) | ||
|
|
||
| > [그리고 실제로 추가까지 ㄷㄷ](https://github.com/TanStack/query/pull/8960) | ||
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.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ㄷㄷㄷㄷㄷ