본문 바로가기

전체 글48

[기타] 패캠 강의 슈퍼앱 운영을 위한 확장성 높은 앱 아키텍처 구축 iOS를 공부하면서 모바일 아키텍처 관련해서 공부해보고자 패스트캠퍼스에서 '슈퍼앱 운영을 위한 확장성 높은 앱 아키텍처 구축' 이라는 강의를 들었습니다. 강의 주제는 아래와 같고 1. 코드 레벨 아키텍처: 재사용 가능한 코드를 만드는 스킬 2. 모듈 레벨 아키텍처: 유지 보수와 개발 속도를 고려하는 모듈화 3. 자동화 테스팅 4. 확장성 있는 인프라: 코드만으로 해결할 수 없는 문제들 앱을 실제로 구현해보고 리펙토링하는 과정에서 모바일 아키텍처에 대해 공부할 수 있는 강의 였습니다. 간단하게 강의 내용 중 몇가지만 정리하면 RIBs RIBs구조는 Uber에서 만든 아키텍처 패턴으로서 VIPER구조를 개선한 패턴입니다. RIBs는 Router, Interactor, Builder의 약자 입니다. 위 이미지.. 2022. 10. 31.
[기타] 클린 아키텍처 정리 저번달에 클린 코드를 읽고 그 다음으로는 클린 아키텍처를 읽었습니다. 좋은 내용들이 상당히 많았지만 그 중에서 기억에 남는 부분만 정리해보고자 합니다. 설계와 아키텍처 설계란 저수준의 구조 또는 결정사등을 의미하고, 아키텍처는 저수준의 세부사항과는 분리된 고수준의 무언가를 가리킬때 사용됩니다. 소프트웨어 설계에서 저수준의 세부사하과 고수준의 구조는 모두 소프트웨어 전체 설계의 구성요소입니다. 설계 원칙 좋은 아키텍처를 정의하는 원칙이 필요한대 그것은 바로 그 유명한 SOLID 원칙입니다. SOLID 원칙 설명은 워낙 좋은 글이 많아 여기선 패스하겠습니다. 간단하게 어떤 원칙이 있는지만 작성하겠습니다. 1. SRP - 단일 책임 원칙 2. OPC - 개방 폐쇄 원칙 3. LSP - 리스코프 치환 법칙 4... 2022. 10. 31.
[클린 코드] 클린 코드 내용 정리 3 오류처리 오류 코드 보다 예외를 사용하라. 오류가 발생했을 때 예외를 던지는 편이 호출자 코드가 더 깜끔해집니다. 논리가 오류 처리 코드와 뒤섞이지 않기 때문입니다. Try-Catch-Finally문 부터 작성하라 예외가 발생할 것으로 예상되는 코드에서는 try-catch-finally문으로 시작하는 편이 낫습니다. 그러면 try블럭에서 무슨 일이 생기든지 호출자가 기대하는 상태를 정의하가 쉬워집니다. 저자는 강제로 예외를 일으키는 테스트 케이스를 작성한 후 테스트를 통과하게 코드를 작성하는 방법을 권장하고있습니다. 그러면 자연스럽게 try블록의 트랙잭션 범위부터 구현하게 되므로 범위내에서 트랜잭션 본질을 유지하기 쉽기 때문입니다. 예외에 의미를 제공하라 예외를 던질 때 전후 상황을 충분히 덧붙이면 오류.. 2022. 9. 27.
[기타] 인프런 AutoLayout 관련 강의 내용 정리 iOS 개발을 하면서 UI 작성 관련하여 기본기가 부족하다보니 삽질하는 시간이 많아 지더군요, 그래서 이것저것 찾아 보다가 인프런에 "iOS AutoLayout 완벽 가이드 - 실무 프로젝트를 위한 실전강의"를 듣게 되었습니다. 기능 구현같은경우 구글링을 통해 어찌어찌 한다지만 화면 구성하는 경우는 상당히 난해한 경우가 많았습니다. 강의를 통해 상당 부분 해소하여 만족한 강의 였습니다. 간단히 수강 내용을 정리해보면 오토레이아웃 사용할 때 핵심 기능인 Hugging, Compression_resistance, Multiplier 외에 다수 기능들과 계산기 앱을 통해 스택뷰를 다뤄보고 팝업 레이아웃, 테이틀뷰 동적 높이 등등 다양한 예시를 통해 코드와 스토리보드로 강의가 진행됩니다. 가장 헷갈렸던 부분은 .. 2022. 9. 27.
[클린 코드] 클린 코드 내용 정리 2 주석 주석은 나쁜 코드를 보완하지 못한다. 우리가 프로그래밍을 할 때 주석을 다는 일반적인 이유는 코드의 퀄리티가 나쁘기 때문입니다. 코드가 알아보기 힘드니 주석을 통해 보완을 하는 것입니다. 주석을 다는 것 보다 코드를 정리하는게 더 좋지않을까요 ? 코드로 의도를 표현하라. 코드만으로 의도를 설명하기 어려운 경우가 존재합니다. 하지만 밑에 예제의 경우 어느 쪽이 더 나아 보이나요? 1. // 직원에게 복지 혜택을 받을 자격이 있는지 검사한다. if ((employee.flags && HOURLY_FALG) && (employee.agg > 65)) 2. if employee.isEligibleForFullBenefits() 주석없이도 코드로 의도를 표현할 수 있습니다 좋은 주석 저자가 말하는 좋은 주석.. 2022. 9. 5.
[클린 코드] 클린 코드 내용 정리 미루고 미루던 클린 코드를 1회 완독 하였습니다. 한번 읽은 거로는 제대로 이해가 안됐지만 읽으면서 따로 메모해놓은 내용을 블로그에 공유 해보려고 합니다. 빠진 내용도 많고 더 궁금한 내용은 책을 읽어 보시는걸 추천드립니다. 책에서는 다양한 관점에서 클린 코드를 설명하고 있습니다. 함수, 클래스, 이름, 동시성 등등 예시를 사용하여 작성 되어있습니다. 클린 코드? 클린 코드란 무엇일까요, 책에서 여러 인물들이 말하는 클린코드에 대한 의견 중 몇가지면 적어보면 다음과 같습니다. Grady Booch 클린 코드는 간단하고 명료하다. 클린코드는 잘 쓴 문장처럼 읽힌다. 클린 코드는 기획자의 의도를 어지럽히지 않으며, 명쾌한 추상화와 단순한 제어문으로 가득하다. Ward Cunningham 깨끗한 코드로 일을 .. 2022. 8. 29.