본문 바로가기

분류 전체보기53

[Architecture] Clean Architecture 나만의 언어로 정리하기 이해를 위해 직접 ppt로 그리면서 적어보았습니다 전체적인 흐름 Service를 UseCase라고 생각해주시면 될 것 같습니다. 아래 글에서는 'Service(UseCase)' 이와 같이 표기했습니다. Presentation Layer MVVM View는 뷰를 선언하고 레이아웃을 처리하고 애니메이션 처리 등 UI를 그리는데에만 집중합니다. 사용자에게 들어온 Input 이벤트를 ViewModel에게 전달하고, 변경된 값을 View에 그립니다. 변경된 값을 감지하는 방법으로는 - Observer Pattern을 기반으로 한 RxSwift나 Combine를 통해 ViewModel안에 있는 "화면에 그릴 값"들을 감시하는 방법 - didSet과 closure를 통해서 값이 업데이트가 됐다는 이벤트를 받는 방법 .. 2023. 4. 11.
final 키워드를 왜 사용할까?? 정리 final 키워드를 왜 사용할까? 결론부터 결론부터 말하고 차근차근 하나씩 알아보도록 하겠습니다 ! 만약 결론부분만 보시고 이유가 그냥 떠오른다?? 결론만 읽으시고 다아는내용이네.. 하고 뒤로가셔도 됩니다 ! 그렇지 않다면 같이 하나씩 살펴볼까요??😄 전반적인 구성과 예시는 WWDC21 Understanding Swift Performance를 참고했습니다. Class는 default로 메서드들을 dynamic dispatch(뒤에서 다룰 예정! 모른다면 일단 넘어가자)합니다. 이것 자체로는 static dispatch(이것도 뒤에서 !!)와 크게 다르지 않지만, method chaining같은 경우에 inlining(이것도 뒤에서 static dispatch와 같이 설명할 예정!)같은 최적화를 불가능하.. 2023. 4. 5.
[생각] 추구하는 방향성과 마음가짐. 마음가짐 잘하고 싶고 완벽히하고 싶어하기 때문에 불안하다. 내가 아는 것들이 모두 허영일까 두렵고 불안하다. 불안해하는 것은 당연하다. 오히려 자연스럽게 이를 받아들이면 된다. 하지만 중요한 점은 이걸로 조바심을 가져선 안된다는 것이다. 비교는 과거의 나와만 하면 된다. 다른 누구와도 할 필요가 없다. 어제의 나보다 오늘 하루 성장한 내가 되었다고 생각한다면 그걸로 된 것이다. 공부하면서 버려야할 점 지금껏 우리는 답을 구하는 것에 최적화되어있었다. 하지만 답을 구하는 것은 이제 누구나 할 수 있다. chatGPT는 아무리 똑똑하고 기억력이 좋은 사람보다도 훨씬 똑똑하고 답을 더욱 정확히 찾아낸다. 그렇다면 이제는 답을 찾는 것보다는 질문을 잘하는 것이 더욱 더 가치있는 능력으로 여겨질 것이다. 질문을 .. 2023. 3. 31.
[OS] Processes: Process, Process States, Process API 이전글 https://codingmon.tistory.com/65 [OS] OS Overview (CPU가상화, 메모리 가상화, Concurrency, Persistence) Virtualizing CPU 오늘날 하나의 컴퓨터에서 돌아가는 프로그램은 매우 많습니다. 지금 당장 이 글을 쓰면서 제 노트북에는 Xcode, Chrome, Notion, Discord, 카카오톡 등등 정말 수 많은 프로그램들이 실행되 codingmon.tistory.com Program 소스프로그램에서 컴파일에서 얻은 실행 파일을 말하고, 이것은 HDD, SDD 저장장치에 저장됩니다. 저장장치에 저장되어있던 프로그램이 실행되려면 메인 메모리로 loading되어야합니다. 어째서??? 폰노이만 아키텍쳐이기 때문에 CPU가 메모리에 .. 2023. 3. 27.