14.12.21 릴리 TIL : 결국은 칼퇴를 위한 객체지향

Lily·2021년 12월 14일
0

Today I Learned

목록 보기
29/30

✍🏻 학습 내용

1. 시뮬레이터 캐시 잔존 이슈

앱 테스트를 하다가 아이폰12 시뮬레이터에서 두번째 화면의 네비게이션 바의 백 버튼의 타이틀이 안보이는 버그가 발생했다.


네비게이션 바 버튼의 타이틀을 셋팅해주는 논리의 허점이 있어서 발생한것이라 생각했는데...

시뮬레이터의 버그 였다고 한다.😐

  • 아이폰에서 앱을 실행하니 정상 작동하였고
  • 시뮬레이터의 캐시가 잔존해서 발생하는 버그였다.
  • 그래서 Simulator > Device 탭 > Erase all contents and settings 으로 시뮬레이터의 캐시를 삭제해주니 오류가 해결되었다!
  • Dev Cleaner라는 청소기앱도 있다👍

종종 시뮬레이터가 이상하게 작동한다면, 시뮬레이터 청소를 해주어보자! 🧼


2. setNavigationBarHidden(_:animated: ) 인스턴스 메서드 / isNavigationBarHidden 인스턴스 프로퍼티

isNavigationBarHidden 인스턴스 프로퍼티

네비게이션 바의 가시성을 animation을 지정하지 않고 설정할 수 있음(네비게이션 이동할 때 네비게이션 바 고정됨, 화면 전환이 이루어지기전에 네비게이션 바가 나타나 있다.)
그리고 {get set} 프로퍼티라 상태값도 Bool타입으로 얻을 수 있다.

setNavigationBarHidden(_:animated: ) 인스턴스 메서드
animation 있게 네비게이션 바의 가시성을 설정할 수 있다.
네비게이션 이동할 때 main view와 네비게이션 바 모두 애니메이션이 적용된다. (view와 navigation bar가 한 몸이다)
좀 더 화면전환이 부드러워 보인다.


고민한 내용...

오늘 객체지향의 사실과 오해를 읽고 꽤나 큰 깨달음이 와싸.🌟

결국 객체지향프로그래밍이라는 것도
현업에서 유지보수가 쉽고, 유연하고, 확장가능하고, 안전하고, 재사용가능한!
(칼퇴를 하기위한...?) 효율적인 코드를 작성하기 위한 체계론이고 방법론이란 생각이 들었다.

하나의 기능을 최대한 메서드 단위로 빼주어야하는 것도,
해당 메서드는 항상 같은 기능을 하더라도 내부의 구현은 바꾸어볼 수 있는 유연성을 제공하는 것이고.

객체의 내부와 외부를 분리해주는 것도,
외부에 의한 불미스러운 변화에 의해 코드가 고장나는 걸 방지하는 방법인것이고.

그래서 내가 오늘 내린 결론은...!
유지보수의 용이, 확장가능성, 유연성, 재사용성, 안전성
실현하기 위해 객체지향을 선택적으로 이용하자!

지금 당장 내가 해볼 수 있는 연습들과 실천은

  • 최대한 메서드 단위로 분리 / 한개의 함수는 하나의 일만 한다.
  • 캡슐화!!!💊 (공용인터페이스와 내부구현을 확실하게 구분해주자)
  • 변수보다는 상수를 사용하자.
profile
i🍎S 개발을 합니다

0개의 댓글