No title
인프런
인프콘 2023을 다시 보고 있는데, 선협님의 ‘소프트웨어 설계를 위한 추상적, 구조적 사고’ 세션을 통해 개념을 보다 명확히 정립하게 되었어요. 이전 글에서 추상화
에 대해서 생각을 해보았었는데, 이 세션에서는 더욱 뚜렷한 예시와 명확한 표현, 도식으로 설명해 주셔서 머리가 환해졌습니다! 그리고 구상적 사고
까지 얻어갔죠!
추상
은 사전적 정의와 같이, 공통되는 특성이나 속성을 뽑아내는 것이에요. 지구본과 지도(메르카토르 독법)는 같은 ‘지구’라는 사물의 정보를 나타내었죠. 그런데 지구본은 ‘둥글다’, ‘위도’, ‘경도’라는 요소까지 추출했지만, 지도에서는 ‘둥글다’라는 요소는 빼고 추출했어요. 즉, 현실 세계의 관심사에 따라 특성을 뽑아내어 달리 표현했고, 이를 추상화
라고 할 수 있어요. 그리고 핵심은 사물을 단순화하고 재해석하는 것이죠.
하지만 추상화에는 계층
이 존재하기 때문에 우리는 요구사항에 맞춰 적절한 수준을 설정해야 합니다. 화석을 통해 예상한 공룡의 모습이, 쥬라기파크 때와 현재에 차이가 있는 것처럼 말이죠. 개발에서도 과도한 추상화는 실제 로직을 알 수 없게 만든다는 점을 유의해야 합니다.
그렇다면 구조적 사고
는 무엇일까요? 선협님은, ‘좋은 코드, 나쁜 코드’ 책의 브라우니를 만드는 방법을 예시로 들었습니다. 예시는 레시피에 대해 개행 없이 서술된 빽빽한 10줄의 문장이었어요. 글의 목적이 정보 전달임에도, 전체를 읽기 전에는 내용을 알 수 없다는 점과, 중요한 내용이 나중에 오고 있다는 점에서 읽기 어렵다는 문제 등이 있었죠.
이 글을 ‘구조화’한 예시는 목적을 바로 알 수 있었고, 준비물과 조리 순서로 덩어리를 크게 나누었으며, 중복을 없애고 과정의 순서대로 나열했습니다. 금방 정보를 습득할 수 있게 되었죠. 이를 통해 구조적 사고
란, 어떻게 나누고 채울 것인지를 생각하는 것입니다.
비유들이 너무 흥미로웠습니다! 특히 각각 소프트웨어 설계에 어떻게 적용되는지까지 설명해 주셨기 때문에 더욱 실용적인 지식을 습득할 수 있었어요. 앞으로 코드를 작성할 때 이 사고를 잘 탑재할 일만 남았습니다...!
소프트웨어 설계를 위한 추상적, 구조적 사고 - 이선협 | 인프콘 2023: https://www.inflearn.com/course/lecture?courseSlug=인프콘2023-다시보기&unitId=177911
다음 내용이 궁금하다면?
이미 회원이신가요?
2024년 3월 21일 오후 2:31