22년 05월을 회고해본다.
잘한점
- 아침 7시에 출근하고 7시 이후에 퇴근했다.
- 투자글 역시 꾸준히 올렸다.
- 클린 코드 먼저 읽고 정리를 꾸준히 했다.
- 저녁 샐러드 먹기 시도했다.
- 회사 모니터 설정, 키보드, 마우스, 트랙패드 구매했다.
- 맥 스튜디오 구입했다.
못한점
- 자의적으로 frame 기반으로 요청주신 것을 autolayout으로 처리했다. 모르면 좀더 정확하게 물어보는 습관을 가지자. 왜 굳이 autolayout으로 하는지..? 한번만 더 물어보면 한번에 일할 수 있다.
- 블로그 글을 더 많이 못썼다. 아무래도 글 하나 쓰는데 자료조사가 많아서 그런 듯하다.
- 트위터에 글을 많이 공유하지 못했다. 아침에 조금 귀찮더라도 올리는 습관을 가지자.
- 저녁에 더 자주 샐러드를 먹지 못했다.
- 옷을 사는데 자꾸 잘못된 사이즈를 산다. 왜지?
- 키보드 싸게 사겠다고 중고로 샀다가 키보드가 3개가 되었다. 그냥 처음부터 회사에서 새걸로 살걸. 때로는 새거사는게 좋을 수도 있다.
배운 내용
- 강제 크래시내고 싶은 경우: indexOutOfRange, divisionByZero
- Autolayout이 무조건 적으로 좋은 것은 아니다. computed cost가 들어가기 때문에 frame기반으로 처리하는 것이 더 좋을 수 있다.
- Clean code를 보면서 인수 관련해서 인수가 적을 수록 좋다했는데, 함수형 프로그래밍과 약간은 상충되는 내용이 있는 것 같아 질문했다. 내 생각대로 상태값을 최대한 없애는 방식으로 가는 것이 테스트나 유지보수에 있어 보다 좋다는 결론이 났다. 인수가 여러개라면 따로 struct를 만든다던지, 함수를 쪼개서 처리하는 방식을 만드는 것이 보다 좋겠다.
- Exception의 경우 case로 나누지말고 subclassing을 통해 처리하자.
- factory로 다형성을 관리할 수 있다.
addSubview
시 [view1, view2].forEach { self.view.addSubview($0)
와 같은 방식으로 처리할 수도 있다.
private extension UIButton {
func update(isSelected: Bool) {
self.titleLabel?.text.map {
let textColor = isSelected ? UIColor(rgb: 0x0abe16) : UIColor(rgb: 0x6b707a)
self.setAttributedTitle($0 + TextStyle.body13(weight: .bold).foregroundColor(textColor).center, for: .normal)
}
self.titleLabel?.attributedText.map {
let margin: CGFloat = 12.0
self.frame.size.width = $0.size().width + margin * 2
}
}
}
- 이렇게 map을 사용해서 optional을 벗겨내고 내가 원하는 작업을 하는 방법도 있다.
- extension 사용 방식
- 크기에 따라서? (
UIViewController+Delegate.swift
)
- 아예 의미론적으로 다른 위치에 두는 경우 (Model -> View Structure),
fileprivate
- 진짜 extension의 의미를 가지는 경우 (본 의미보다는 아류느낌)
internal var openedPublisher: AnyPublisher<InfoPublisher, Never> {
self.publisher
.compactMap { $0?.toDisplay(self.stationData) }
.eraseToAnyPublisher()
}
private let publisher = PassthroughSubject<RealtimeAPI.Subways.Station?, Never>()
func someFunction() {
self?.publisher.send(result)
}
- 이런식으로 밖으로 내주는 publisher와 안에서 처리하는 publisher를 분리하여 관리할 수 있다.
다짐
- 다음달에는 허먼밀러 의자를 살 것 같아 금전적으로 준비할 필요가 있다.
- 이번달 지출이 많았다. 바지, 티 등을 구매했다. 다음달은 줄여야 한다.
- 7-19는 지키는 습관으로 가져간다.
- 아침에는 기술 글을 쓰는 습관을 가지자. 클린 코드는 주말에 하자.
- 유튜브 말고 책을 읽는 습관을 가지자. 확실히 읽어보니 책이 정보습득 속도 측면에서 보다 빠르고, 상상하게 되어 더 재미있는 듯 하다.
- 평일에 모든걸 쏟아붓고 주말에 운동하자. 주말에는 꼭해야 한다. 생존 운동이다.
- 내가 나를 있는 그대로 봐주길 바라듯, 남도 그렇게 보자. 항상 그럴 수 있다는 생각을 가지고 살자.
- 내 속마음을 그대로 내비치면 안된다. 인생을 크고 넓게 보자.