Skip to content

[테크니컬 라이팅] 밀러(정용준) 미션 제출합니다.#1047

Open
oungsi2000 wants to merge 3 commits intowoowacourse:oungsi2000from
oungsi2000:technical-writing
Open

[테크니컬 라이팅] 밀러(정용준) 미션 제출합니다.#1047
oungsi2000 wants to merge 3 commits intowoowacourse:oungsi2000from
oungsi2000:technical-writing

Conversation

@oungsi2000
Copy link

No description provided.


ImageLoader의 설명입니다 ImageRequest에서 설정했던 요청 옵션들을 ImageLoader에서 실행합니다.
요청은 enqueue, execute 두 가지로 나뉘며 enqueue는 메시지 큐 방식의 비동기를 실행하고 execute는 코루틴 기반으로 실행합니다.
하지만 사실 enqueue도 execute와 동일한 내부 메서드를 사용합니다

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

마침표가 빠졌습니다!

Comment on lines +90 to +91
requestService를 바로 사용할 수도 있지만 Delegate를 사용하게 된다면 자동으로 job을 닫고,
액티비티의 생명주기에 따라 재요청을 보낼 수 있습니다. (하위 구현체인 ViewTargetRequestDelegate에서 수행합니다)

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

글을 좀 더 짧게 수정하는 것도 좋아보입니당

Comment on lines +161 to +162
눈여겨볼 점은 interceptor는 여러개가 등록될 수 있다는 점입니다.
커스텀 Interceptor를 등록하여 로깅, 재시도 요청, timeout 기능 등을 구현할 수 있습니다.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

interceptor가 어떤 구조로 여러 개 등록될 수 있는지 설명을 좀 더 자세히 하는 건 어떤가요?

Comment on lines +303 to +304
Coil은 네트워크에 요청 전 메모리 캐시와 디스크 캐시를 조회합니다.
모든 캐시는 전부 synchronized를 사용하며,

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

"모든 캐시는 synchronized로 동기화되어 있으며" 라는 표현도 좋아보입니다!

Copy link

@etama123 etama123 left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

밀러의 꼼꼼함을 엿볼 수 있는 좋은 글이었습니다 !~ 😎

기술적 깊이를 느낄 수 있었지만, 중간중간에 말이 길어지는 부분이 있어 구분선 혹은 문단 구분으로 조금만 구조화하면 조금 더 가독성 좋은 글이 될 거 같습니다 👍

Coil의 내부 동작을 분석한 경험을 공유하며,
Android 환경에서 Coil이 이미지 로딩을 위해 무엇을 고려하는지 실피며 자세한 내부 동작 원리를 알아보자 합니다.

### ImageRequest

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

바로 세부적인 내용으로 들어가기 보다는 coil의 기본 사용법이 선제되면 이해하는데 더 도움이 될 거 같습니당

return imageLoader.enqueue(request)
}
```
흔히 사용하는 ```ImageView.load()```의 최상단 내부 구조입니다.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

코드 블럭이 깨진 부분이 많아서 전반적으로 한 번 확인해주시면 좋을 거 같아요 !!





Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

공식 문서 등 참고 문서가 하단에 있으면 좋을 것 같아요 !~

이 알고리즘의 핵심은 캐시가 지정된 최대 크기에 도달했을 때, 어떤 데이터를 버릴지 결정하는 것입니다.
LruCache는 데이터가 접근된 시간을 기준으로 순서를 관리하며, 캐시 공간이 필요해지면 가장 오랫동안 사용되지 않은(가장 오래된) 데이터를 먼저 제거합니다.
이는 최근에 사용된 데이터는 곧 다시 사용될 가능성이 높다는 시간적 지역성(Temporal Locality) 원칙에 근거합니다.

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

그리고 글을 마무리하는 결론 부분도 추가해야지 더 구조적인 글이 될 것 같아요!
지금은 본론에서 끊긴 것 같습니다ㅜㅜ

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants