💙 들어가며
나는 프로그래머가 되기 위한 공부를 하고 있는가?
개발자가 되기 위한 공부를 하고 있는가?
어떤 내가 되어야 하는지 명확하게 생각해보자.
✏️ 수업내용 정리
#컴퓨터 프로그램
먼저, 우리가 늘상 말하는 프로그램이란 무엇일까?
프로그램이란 단지 컴퓨터를 위한 용어가 아니다.
교육 프로그램, 행사 프로그램 등... 다양하게 쓰이는 용어이다.
위의 예시를 통해 보았을 때, 보다 정확한 의미를 설명하자면,
프로그램이란 무언가를 진행하기 전에 미리 작성해놓은 것을 말한다.
즉, 미리 작성해 놓은 절차라고 볼 수 있겠다. (마치 식순같은?)
그렇다면 컴퓨터 프로그래밍이란 무엇일까?
컴퓨터를 조작하기 위해 미리 절차를 작성해 놓는 것이라고 볼 수 있겠다‼️
#프로그램 vs 어플리케이션
그럼 우리가 자주 말하는 어플리케이션은 무엇일까?
어플리케이션과 프로그램의 차이는 무엇일까?
일단, 결론부터 말하자면 어플리케이션도 프로그램이다.
그렇다면 두 가지를 굳이 왜 구분지어서 말하는 것일까?
가방을 예로 들어서 생각해보자.
프로그램은 그냥 보통의 모든 가방이라고 생각해 볼 수 있겠다.
A가방 B가방 C가방 네모난 가방 동그란 가방 등등...
각기 약간씩 다른 모양이지만 가방으로서의 역할을 하고 있는 것이 프로그램이다.
그러나 어플리케이션은 사용하는 목적에 따라 용도가 뚜렷해진 가방이다.
전자기기를 담기위해 내부에 충격완화 기능이 추가된 파우치,
장거리 여행도 가능하게 해주는 외관이 튼튼한 캐리어,
각종 카드와 돈, 동전 등을 수납할 수 있게 해주는 지갑 등등...
규모로서 따져보았을 때 아래의 특수한 목적의 가방들도 모두 가방의 범주에 들어가듯이
어플리케이션 < 프로그램과 같은 모습으로 우선 이해할 수 있겠다.
#어플리케이션의 등장
옛날에는 프로그램이라는 개념밖에 없었기 때문에,
단순하게 어떤 문제를 하나 해결하기 위해서 다양한 프로그램이 존재했다.
(궤적을 계산해 주는 프로그램, 어떤 특정한 물리법칙을 이용한 결과를 도출해주는 프로그램 등등..)
그런데 언제부터인지 사용자의 편의성을 위해서 (사용자를 배려하기 시작하면서, 사용자가 주가 되면서)
사람을 도와주는 업무 중심의 프로그래밍이 시작되었다.
그렇다 보니 사용자 친화적인 유저 인터페이스(UI)라는 것이 등장하고,
UI를 통해 구현된 특정한 메뉴를 통해서 다양한 프로그램들을 엮어내기 시작하게 되었다.
이렇게 사용자를 배려해서 필요한 기능들을 연관지어 묶어내기 시작했고,
다양한 프로그램들이 특정한 목적에 따라서 그룹핑되면서 어플리케이션이라는 개념으로 발전하기 시작했다.
즉, 구조를 생각하는 프로그래밍을 시작하게 된 것이다.
#구조를 생각하는 프로그래밍
구조를 생각한다는 것은 곧 건축과 같은 의미를 가지는 것이라고 볼 수 있겠다.
단어를 명료화 하기 위해서 구조를 생각하는 프로그래밍을 개발(Development)이라고 먼저 명시하겠다.
구조를 생각하는 프로그램 즉, 개발이라는 개념은
건축에서 있었던 개념으로, 사용자 친화적인 환경을 반영하며 소프트웨어에 스며들게 되었다.
즉, 소프트웨어에서 단순히 건축(코딩)만을 중요시 생각하는 것이 아니라,
기획 ▶ 설계 ▶ 건축 ▶ 유지관리라는 모든 단계를 생각하는 프로그래밍을 지향하게 된 것이다‼️
따라서 프로그래밍이 아니라 개발을 하기 위해서는
기획 능력, 설계 능력, 구현 능력, 운영관리 능력 모두가 필요하다.
물론 어떤 이는 이 중에서 기획 능력만을.. 어떤 이는 모든 능력을 다 습득한 차이는 있을 수 있겠다.
( 다 가진 자.. 부럽다.)
#프로그래머와 개발자
자, 그렇다면 다시 본론으로 돌아와서 프로그래머와 개발자의 차이는 무엇일까?
얼른 간단하게 정리해보자!
- 프로그래머: 프로그램을 만드는 사람 (무에서 유 창조)
- 개발자: 어플리케이션을 만드는 사람 (Development의 개념이 들어갔다.) (이미 있는 것을 활용)
따라서 프로그래머가 아니라 종합적인 능력을 갖춘 개발자가 되기 위해 공부를 시작해야 한다.
(프로그래머의 능력을 갖고 있으면서 프로그램 개발에 대한 전반적인 능력을 고루 갖춘 사람)
(나에겐 태산같은...)코딩은 기본적으로 가지고 있어야 할 소양으로 삼고,
기획과 설계와 같은 전체적인 구조에 대한 내용도 착실히 배우고 알아두어야 겠다.
프로그래머 ❌
개발자 ⭕
💙 마치며
나는 개발자가 되기 위한 공부를 시작했다👍🏻
코딩실력을 기본 소양으로 키우고,
기획능력, 설계능력, 구현능력, 운영관리능력까지 두루 갖춘 개발자가 되기 위해서
사소한 것도 배워서 습득할 줄 알고, 활용할 줄 아는 사람이 되기 위해 노력해야겠다.