전체 글
-
눈운동 독서법경험치바/독서 2024. 8. 10. 15:27
김익한 교수님께서 추천하는 눈운동 독서법. 유튜브를 보고 정리해본다.1. 눈 운동 > 한 줄을 일정한 속도로 읽는다.사람은 읽을 때 오른쪽으로 갈 수록 눈동자가 점점 올라간다.왼쪽부터 오른쪽까지 한 줄을 정확하게 일정한 속도로 읽는 연습을 한다.한 줄은 대략 1초 이내로, 처음엔 입으로 쭈욱 소리를 내며 연습하면 좋다.이렇게 하면 보통 한 쪽을 1분 이내로 읽을 수 있다.뜻을 파악하려고 노력은 하되 완전히 파악되지 않아도 일단 계속 읽으며 연습한다.한 달 정도 연습한다.2. 뜻 파악 > 한 문단 단위로 생각해보며 읽는다.1. 눈 운동 연습이 됐다면 문장, 문단 단위로 뜻을 파악하려고 노력한다. 이때 단어에 집중하지 않는다. 뜻이 잘 이해되지 않으면 한 문장 위로 올라가서 다시 읽는다.한 문단이 끝나면 어..
-
[Flutter] Column 안에 Widget과 List<Widget>을 함께 쓰고 싶을 때Flutter 2024. 7. 25. 23:34
Column 안에 Text와 List을 함께 보여주고 싶은 경우가 있다.예를 들어 어떤 '지원 목록'을 나타내야 할 때 아래와 같이 쓰고 싶다.Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ const Text('지원 목록'), appliedList.map((applied) => _appliedView(applied)).toList() ]) 하지만 위 코드는 컴파일 에러가 발생한다. children 안에서는 하나의 아이템, 즉 Widget이 와야 하는데 거기에 List를 넣어서 문제라는 거다.The element type 'List' can't be assigned to the list type 'Widget'.da..
-
[도메인 주도 설계 철저 입문] 값 객체독서_dev/DDD 2024. 7. 19. 00:17
값 객체 → 시스템 특유의 ‘값’ 을 표현하는 객체 → 코드 자체가 문서 ㄴ 성질 → 불변 / 교환 / 등가 비교 ㄴ 기준 → 규칙 / 낱개 ㄴ 행동 정의 → 자신만의 규칙을 갖는 도메인 객체 ㄴ 장점 → 표현력 증가 / 무결성 유지 / 오대입 방지 / 로직 분산 방지 2.1 값 객체란 ?값 객체란 시스템 특유의 '값'을 표현하기 위해 정의하는 객체다. 값 객체 역시 값의 성질을 그대로 갖는다. 2.2 값의 성질과 값 객체의 구현값(객체)의 성질- 변하지 않는다.대입은 값이 변하는 것이 아니다. 내용이 변하는 것이지 값 자체가 수정되는 것은 아니다.- 주고받을 수 있다. 교환 가능하다.값 자체 수정이 아닌 내용의 수정, 대입- 등가성을 비교할 수 있다.값끼리 직접 비교. 값 객체라면 일부를 꺼내 비교하..
-
[iOS] OSSignpost > 특정 작업의 duration 측정하기iOS 2024. 7. 1. 20:41
앱의 성능을 측정해 보려고 합니다.그 중에서도 특정 작업이 완료되기까지 시간이 얼마나 걸렸는지를 측정해 보려고 합니다.주로 네트워크 통신이나 이미지 랜더링 같은 작업이 오래 걸리는 시간을 측정해볼 때 유용하게 사용될 수 있을 것 같습니다.# OSSignposterSignposts allow you to record meaningful information about the duration of your app’s tasks using the same subsystems and categories that you use for logging.Signposts는 특정 작업의 응답 시간을 측정하는 도구입니다.아이디어는 시작과 끝에 트리거를 주고 얼마나 걸렸는지 체크하는 것입니다.그리고 이걸 instrument..
-
[RxSwift] RxRelay 그리고 CombineSwift 2024. 6. 25. 13:02
BehaviorSubject를 래핑하는 클래스다.BehaviorRelay는 BehaviorSubject와 마찬가지로 상태값을 갖고 있지만,종료(terminate) 되지 않는다. error도 없고 completed도 없다./// BehaviorRelay is a wrapper for `BehaviorSubject`.////// Unlike `BehaviorSubject` it can't terminate with error or completed.public final class BehaviorRelay: ObservableType { private let subject: BehaviorSubject BehaviorSubject 는 Observable을 상속받아 별다른 처리 없이 바로 사용이 가능하지만Be..
-
[Flutter] Don't use 'BuildContext's across async gapsFlutter 2024. 6. 22. 22:59
아래와 같은 Warning 메시지를 만날 때가 있다.Don't use 'BuildContext's across async gaps. Try rewriting the code to not reference the 'BuildContext'.dartuse_build_context_synchronously 예를 들면 아래와 같은 상황이다.버튼을 눌렀을 때 비동기 동작을 수행할 때 ! 주로 네트워크 통신이 될텐데작업이 성공이면 pop, 실패면 alert을 띄워주고 싶다.이때 context를 사용하게 되는데 비동기 작업 직후에 context 바로 사용하면 안된다고 경고를 주고 있다.ElevatedButton( onPressed: () async { await viewModel.performAsync..
-
[오브젝트] 10. 상속과 코드 재사용독서_dev 2024. 5. 30. 08:19
- 중복 코드는 변경을 방해한다!- 중복된 코드를 제거하는 대표적 방법 : 상속, 합성- 상속은 결합도를 높인다. 쓸 때 매우 주의할 것. 그래도 쓴다면 추상화에 의존하도록 설계(결론: 합성 좋잖아~ 합성 쓰자.) 중복 코드는 왜 문제인가?(우리를 주저하게 만들고 동료들을 의심하게 만든다.)변경을 방해한다.어떤 코드가 중복인지 찾아야 한다.모두 일괄되게 수정해야 한다.모든 중복 코드를 개별적으로 테스트 해야 한다. Don't Repeat Yourself!! (DRY)중복코드를 쓰지 말자. 그럼 어떻게 해야 하는가.타입 코드 사용하지만, 낮은 응집도와 높은 결합도상속편하지만, 개발자의 가정을 이해하기 전에는 코드를 이해하기 어렵다.-> 결합도를 높인다. 상속을 위한 경고상속은 코드 재사용과 관련된 대부분의..
-
아주 작은 습관의 힘경험치바/독서 2024. 5. 28. 22:49
인생을 바꾸는 두 가지 질문.1. 어떤 사람이 되고 싶은가.2. 내가 원하는 결과를 얻은 사람은 어떤 사람인가.이 행동은 내가 바라는 사람이 될 수 있게 하는가?이 습관은 내가 원하는 정체성을 쌓아나가는 한 표가 되는가. 좋은 습관을 만드는 방법1. 분명하게 해라2. 매력적이게 해라3. 쉽게 해라4. 만족스럽게 해라 습관을 지속하는 방법아주 작은 변화가 큰 결과를 가져오진 않는다. 하지만 큰 결과는 매일 작은 습관이 쌓여서 만들어진다. 매일 1% 성장한다면 1년 후 37배가 성장해 있을 것이다.