1. 무한 루프에 빠진 개발자 논쟁 시리즈:
2편 추상화의 허와 실
알도개(알고 보면 도움되는 개발 이야기)
이미지 출처: https://www.flickr.com/photos/75409276@N06/29379427975
CC BY-NC-SA 2.0
2. 추상화의허와실
주기적으로 찾아오는 떡밥
“직접 해보라는 강령(Hands-On
imperative)” - 진짜 개발자라면 처음부
터(from the scratch) 모든 것을 만들 줄
알아야 하며 또 그렇게 해야 마땅하다
“거인의 어깨 위에 올라선 난쟁이는 거
인보다 더 멀리 본다.” - 잘 정의된 라이
브리리와 프레임워크를 활용해 현실의
문제 해결에 집중하자
5. 추상화의허와실
스킨 인 더 게임
누구라도 현실(문제)에 참여할 때는 그 결과에 대한 책임도 함께 져야 한다
실제 경험과 지식은 다르다. → 추상화가 실제 작업을 회피하기 위한 목적으로
오용되면 문제가 커짐
6. 추상화의허와실
언제 추상화에 집중해야 하나?
• 현실의 문제를 해결하는 과정에서 세부 사항에 휩쓸려 핵심을
놓치지 않아야 할 때
• 데이비드 파나스의 정보은닉:
• 소프트웨어 개발자가 프로그램의 나머지 부분에서 한 곳에 숨기는 설
계와 구현에 대한 의사 결정
• 변경될 부분과 그렇지 않은 부분을 분리하기 위한 기준을 제시
• 컴퓨터 분야에서의 추상화
• 한 곳의 변경 사항이 다른 곳에 영향을 미쳐서는 안 된다 POINT
7. 추상화의허와실
언제 추상화의 이면으로 파고들어야 하나?
• 추상화를 선택하고 평가하거나 추상화를 활용하는 과정에서
문제에 봉착할 때
• 조엘 스폴스키의 허술한 추상화의 법칙:
• 모든 추상화에는 구멍이 있고, 실패할 수도 있다
• “추상화는 일하는 시간을 절약해주지만, 배우는 시간을 절약해주지
는 못합니다“
• 한 발은 땅을 디디고 있어야 한다
• 추상화의 하부 동작 원리와 추상화 대상을 배워야 한다
POINT
8. 추상화의허와실
결론
• 현실의 문제를 효과적으로 풀기 위해서는 다양한 층위의 추
상화에 대해 인식하고 있어야 한다
• 문제를 풀기위한 도구와 방법을 직접 만든다면? 추상화 수
준을 낮춰야 한다
• 문제를 정의하고 이를 풀기 위한 틀을 기획한다면? 추상화
수준을 높여야 한다
• 뛰어난 아키텍트와 개발자들은 본능적으로 추상화 수준을
오르내리며 작업을 하기 마련이다
9. 발표자 소개
기술 배경
전문 검색 엔진, 임베디드 시스템(리눅스 커널 디바이스 드라이버), 빅데이터/인공지능 연구 개발,
고성능 고가용성 데이터베이스
주요활동
IT 전문서 번역 (클린 코드, 피플웨어, 해커: 광기의 랩소디, 게임 엔진 블랙 북 등)
개발강의 (삼성전자, SK C&C, 삼성SDC, 현대자동차 기술 세미나와 교육)
활동채널
블로그: https://jhrogue.blogspot.com
슬라이드 셰어: https://www.slideshare.net/jrogue/presentations
유튜브: https://www.youtube.com/c/박재호dev
문의 jrogue@gmail.com
박재호