[잡담] iOS 에서 기본이 중요하다는데 그 기본이 무엇일까?

Uno·2021년 8월 10일
0

잡담

목록 보기
2/4

iOS 관련 강의나 블로그 글들을 보면,

유명하신 강사분들이나 블로거분들이 공통적으로 하시는 말씀이 있습니다.

기본이 중요하다. 특정 프레임워크나 기술에 집착하지 말고, 기본기를 쌓아라!

전 이런 말을 듣거나 글을 읽으면, 마음속에 작은 반항심이 섞인 질문이 매번 떠오릅니다.

기본이 뭔데...

그래서 제가 생각하는 기본이 무엇인지 작성해볼까 합니다.

기본의 구성요소


시니어급되시는 분들이 기본을 강조하시는 이유가 무엇일지, 그분들의 상황에서 생각해봤습니다.

시니어)
신입이 들어왔네?
(신입에게 무언가 지시한다.)

신입) ??? 그게 뭔가요?

시니어) 이걸 왜몰라... 알았어 알려줄게. A = B = C ... = Z 야.
그러니까 A = Z 니까 Z 를 하면된단다.

신입) 네? A가 왜 B인데 Z 죠?

시니어들은 위와 같은 상황에 있을 것 같습니다.

친절하게 신입에게 알려주는데, 신입은 그 단어 뜻조차 모르는 상황이죠.

그러니까 피드백을 해서 가이드를 해주고 싶은데, 지금 그 상황조차 안되는 (신입입장에서 눈물나는)상황...

그래서 생각한 기본의 첫 번째 요소는 "용어" 입니다.

1. 용어


용어를 알아야하는 거죠.

용어를 안다 ⇒ 문법을 안다. ⇒ 최소한 피드백을 들었을 때, 어떤 걸 지칭하는지는 알게된다.

이건 프로그래밍분야 뿐만 아니라 다른 분야도 똑같다고 봅니다.

농구를 한다고 쳤을 때,

야 누가 백도어 컷할 때, 니가 스위치하고 동시에 너는 박스아웃하고 앞에 너는 하이포스트까지만 있으면서 드랍백 수비해!

이렇게 말했다고 가정합시다.

여기서 모르는 단어가 많으면 이 문장을 해석할수 없겠죠.

프로그래밍에서도

지금 UI가 업데이트 안되니까, drawingCycle이 다시 돌 때, 그릴 수 있도록 드로잉 관련 메소드 추가하고,
그 메소드가 호출되는건 프로퍼티 옵저버로 처리해.

다음과 같이 될 수 있지 않을까 생각합니다.

어째든 "용어"를 알면 기본 중 하나를 갖춘 것입니다!

2. 원리


용어는 "명사" 입니다.

그러면 용어를 움직이게 하는건 "동사" 이죠.

그 동사가 "원리" 라고 생각됩니다.

예를들면,

MVC 패턴에 대한 용어는 공부했습니다.

그리고 이것의 구동원리를 파악하는 거죠.

모델은 데이터모델을 뜻하고, 뷰에 보여줄 데이터를 구성하고, 뷰는 컨트롤러에게 전달하고 모델은 어쩌고 이런 것들이죠.

3. 학습능력


1, 2 번보다 중요한게 저는 3 번인 "학습능력" 이라고 생각합니다.

왜냐하면, "지속가능한 성장" 의 시작점이 "학습능력" 이라고 생각하기 때문입니다.

반대로 지속 불가능한 성장은 다음과 같은 사고방식 일겁니다.

개념을 모두 다 배웠다!

어떤 특정 개념을 배웠다고 하더라도

그 개념을 마스터 했다!

만약 그렇다고 말한다면, 그건 상당히 프레질한 사고방식일 수 있습니다.(특히 프로그래밍 분야에서는요)

개념은 계속 나오고, 새로운 문제해결방식은 계속 나옵니다.

그런데 한 번 배우고 마스터했다거나 모두 배웠다고 착각을 한다면, 특정 시점까지만 발전하고 점점 도태될 확률이 높습니다.

그러므로

현재 내가 알고있는 것 혹은 과거까지 공부한 것으로 반복재생산만 가능한 것 보다

앞으로 나올 개념과 지식에 대해서 지속적으로 발전가능한 "학습능력이" 중요하다고 봅니다.

결론


<기본의 구성요소>

  1. 용어
  2. (구동)원리
  3. 학습능력

용어를 공부하는 방법은 문법을 공부하고 정의를 파악한다.

원리를 공부하는 방법은 해당 개념이 어떻게 동작하는지 파악한다.

학습능력을 향상시키는 방법은 해당 문제(혹은 분야)의 매개변수를 정확히 파악하고 매개변수를 조정하는 방법을 익힌다.

제가 생각하는 기본에 자세한 건 추후 글로 작성해보겠습니다^^

profile
iOS & Flutter

0개의 댓글