객체지향의 등장 배경

장민영·2022년 12월 3일

인스타그램같은 sns를 여러개발자가 만드는걸 상상해보자
sns를 만들려면 필요한 기능, 즉 함수들이 있다.
보통 프로그램은 기능이 많고 복잡하기 때무네 개발자들은 혀벙ㅂ해야한다. 이때 개발자들은 프로그래밍작업들을 어떻게 나눌 수 있을까?
일단 전체 윤곽을 완성하고 그 안에 어떤 함수가 필요한지 분석한다. 그리고 이걸 각자 나눠서 만든다.

각자 기능을 완성하면 하나로 합치고 sns를 완성시킨다.
이렇게 전체를 각 부분으로 나눈뒤 각자 완성해 나가는걸 top down방식으라고 한다. 큰걸 쪼개서 작은걸로 나눈다는 의미다. 하지만 top down방식은 전체를 합쳐야 제대로 동작하는지 알 수있다는 것이다. 10개중 1개라도 마ㅣ완성이면 전체를 실행할 수 없다. 전체 프로그램이 실행되는 과정을 보면 예를 들어 로그인 기능은 아이디,비밀번호 같은 데이터들이 함수 파라미터로 넘어갔다가 리턴돼서 돌아오고 피드 올리기 같은 기능은 사진과 내용이 함수 파라미터로 넘어갔다가 다시 돌아오게 된다 이런방식으로 프로그램이 동작하게 되는데 그래서 하나의 데이터가 여러 함수에서 사용되기도 하고 언제 어떤 데이터가 사용될지 쉽게 예측할수 없다보니 코드 전체가 완성되기 전까지는 동작을 제대로 확인 할 수 없는것이다. 게다가 누군가 함수를 잘못 구현하면 다른함수도 잘못 영향을 받고 결국 전체가 망가지게 된다. 이런방식으로 프로그래밍을 하면 일부수정하기도 힘든데 하나의 기능만 수정하려ㅗㄱ해도 다른 기능들이 데이터가 연결돼있기 때ㅜㅁㄴ에 조금만 고쳐도전체코드를 점검해 봐야하는 그런 상황이 되는것이다 힘으,ㄴ 힘대로 들고 실수 하나가 매우 치명적이다 보니까 매우 비효율적이다. 이런 top down방식의 문제를 해결하기위해 개ㅔ발자들은 접근방식을 바꿔보기로 했다. 프로그램의 일을 나눌때 함수를 기준으로 나누는게 아니라 모든 데이터가 한곳에 모여서 기능이 얽혀있는게 아니라 함수 그러니까 기능이랑 변수, 관련있는 데이터를 하나로 묶어서 좀더 의미있는 단위로 나누기로 했다 이런방식으로 묶은걸 객체 object 라고 한다. 객체지향의 이 객체가 object 인것이다. 이 객체라는 개념을 적용해서 프로그래밍을 한다해서 객체지향 프로그래밍이라고 부르는 것이다. 이렇게 객체별로 코드를 나누게 되면 이해도 직관적이고 직접 한부분을 만들면서 테스트나 실행하기도 편하다 데이터의 변화가 있을대도 모든 코드 모든 함수를 다 확인해보는게 아니라 하나의 객체만 확인해보면 된다 고장이 났을때도 그 부분만 망가지고 나머지는 제대로 동작 하는것이다. (객체지향) 객체를 만들고 객체를 이용해서 큰걸로 만드는것을 bottom up 이라고 한다.

profile
개발새발자

0개의 댓글