Skip to content
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

fix: DependencyMacro 도입 후 컴파일 충둘문제 수정 #138

Merged
merged 1 commit into from
Oct 6, 2024

Conversation

ShapeKim98
Copy link
Contributor

#️⃣연관된 이슈

ex) #이슈번호, #이슈번호
#137

📝작업 내용

이번 PR에서 작업한 내용을 간략히 설명해주세요(이미지 첨부 가능)

  • DependencyMacro 도입 후 컴파일 충둘문제 수정

스크린샷 (선택)

스크린샷 2024-10-06 16 48 08

💬리뷰 요구사항(선택)

리뷰어가 특별히 봐주었으면 하는 부분이 있다면 작성해주세요

SwiftSoupClientpreviewValue를 제거하였습니다

  • 저는 보통 저렇게 긴 에러로그는 GPT한테 해석시키는데, GPT가 SwiftSoupClientDependencyKey 관련 오류라고 언급을 해주었습니다.
  • 그래서 코드를 보니 아래와 같은 코드에서 오류가 난것으로 보였습니다.
public static let previewValue = liveValue
  • 제 생각에는 TestDependencyKey 프로토콜 채용 부분에 liveValue를 바로 호출한게 문제가 된거 같은데, 기존에는 문제 없다가 DependencyMacro를 도입하면서 문제가 발생한 원인을 모르겠습니다. 원인을 알고 계시다면 설명 부탁드리겠습니다!
  • 혹시나 작업하시는데 문제 없었으면 DependencyMacro와 xcode 16의 콜라보라 추측이 됩니다...(실제로 CI/CD 워크플로우의 xcode를 16으로 올렸더니 동일한 문제가 발생했음)

close #137

@ShapeKim98 ShapeKim98 added the Bug 🔫 현재 발견된 버그를 수정하기 위함 label Oct 6, 2024
@ShapeKim98 ShapeKim98 requested a review from stealmh October 6, 2024 08:13
@ShapeKim98 ShapeKim98 self-assigned this Oct 6, 2024
@stealmh
Copy link
Member

stealmh commented Oct 6, 2024

우선 이는 매크로 도입과 관련이 없습니다.
회사맥북으로밖에 테스트를 진행해보지 않아서 (v.15.4) 집 노트북으로 확인해본결과 (v.16) 오류가 드디어 나오네요! 버전업과 무슨 관련이 있는지는 저도 관련한 내용을 좀 더 찾아봐야 할 것 같습니다.

기존에는 DepedencyKey 프로토콜을 받아 한 파일 내에서 liveValue, previewValue를 구성했던 것으로 기억합니다.
DependencyKey에는 또한 prviewValue가 이미 기본구성 되어있습니다.

extension DependencyKey {
    public static var previewValue: Value { Self.liveValue }
}

기존 코드에서 previewValue = liveValue로 썼던 것 기억하시나요? 이는 불필요한 코드였습니다.

정리: DependencyKey에서 liveValue를 끌어쓰는 것은 아무 문제없었다 (기존)

문제는 현재입니다. live, test를 분리하여 파일을 구성하다보니 기존에 체크하지 못한 previewValue가 따라들어온 것으로 확인했습니다.
TestDependencyKey 또한 previewValue를 직접 작성하지 않아도 사용가능합니다.

extension TestDependencyKey {
    public static var previewValue: Value { Self.testValue }
}

그런데 저희는 previewValue에 liveValue를 넣다보니 이는 당연하게도 오류를 내뱉습니다.
즉 테스트 환경에서 기본값을 사용하지 않도록 문서에서는 경고하고 있었네요.

수정하신 코드는 previewValue를 지움으로써 previewValue는 testValue 기본 구성을 따라가게 되고 잘 작동하게 되었다 의 흐름으로 이해해주시면 될 것 같습니다.

@ShapeKim98
Copy link
Contributor Author

우선 이는 매크로 도입과 관련이 없습니다. 회사맥북으로밖에 테스트를 진행해보지 않아서 (v.15.4) 집 노트북으로 확인해본결과 (v.16) 오류가 드디어 나오네요! 버전업과 무슨 관련이 있는지는 저도 관련한 내용을 좀 더 찾아봐야 할 것 같습니다.

기존에는 DepedencyKey 프로토콜을 받아 한 파일 내에서 liveValue, previewValue를 구성했던 것으로 기억합니다. DependencyKey에는 또한 prviewValue가 이미 기본구성 되어있습니다.

extension DependencyKey {
    public static var previewValue: Value { Self.liveValue }
}

기존 코드에서 previewValue = liveValue로 썼던 것 기억하시나요? 이는 불필요한 코드였습니다.

정리: DependencyKey에서 liveValue를 끌어쓰는 것은 아무 문제없었다 (기존)

문제는 현재입니다. live, test를 분리하여 파일을 구성하다보니 기존에 체크하지 못한 previewValue가 따라들어온 것으로 확인했습니다. TestDependencyKey 또한 previewValue를 직접 작성하지 않아도 사용가능합니다.

extension TestDependencyKey {
    public static var previewValue: Value { Self.testValue }
}

그런데 저희는 previewValue에 liveValue를 넣다보니 이는 당연하게도 오류를 내뱉습니다. 즉 테스트 환경에서 기본값을 사용하지 않도록 문서에서는 경고하고 있었네요.

수정하신 코드는 previewValue를 지움으로써 previewValue는 testValue 기본 구성을 따라가게 되고 잘 작동하게 되었다 의 흐름으로 이해해주시면 될 것 같습니다.

감사합니다! 앞으론 주의해야겠어요..ㅎㅎㅎ

@ShapeKim98 ShapeKim98 merged commit d9704db into develop Oct 6, 2024
1 check passed
@stealmh stealmh linked an issue Oct 29, 2024 that may be closed by this pull request
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Bug 🔫 현재 발견된 버그를 수정하기 위함
Projects
None yet
Development

Successfully merging this pull request may close these issues.

DependencyMacro 도입 후 컴파일 충둘문제
2 participants