✔️공부할 때 목적의식을 갖고 공부하기
✔️키워드 매칭되는 한/영 단어 둘 다 많이 알고 있기
*역할
- 컴퓨터 : 기계
- 프로그램 : 기계를 사용하기 위한 설명서
- 프로그래밍 언어 : 설명서를 쓰기 위한 언어
*프로그래밍 언어 분류 기준
1. 객체 지향(Object-Oriented) 프로그래밍 ⭐️
- 기능(함수) + 데이터를 하나로 묶은 객체
- 절차 지향이었던 기존 방식의 단점을 보완하면서 나온 방식
#절차 지향
: top-down 방식으로 큰 기능을 각자 나눠서 담당
- 장점 : 혼자 만들거나 실행 속도를 높이고 싶을 때 활용할 수 있다.
- 단점 : 하나라도 완성이 안되면 전체가 동작이 안되므로 하나의 실수가 매우 치명적이다. 하나를 수정하면 전체를 수정해야 하는 번거로움이 있다.
- 활용 범위 : 속도가 빨라야 하거나 저장장치나 성능이 제한적인 곳 ex)임베디드(스마트워치, 스마트 냉장고)
#객체 지향
:bottom-up 방식 기능과 데이터를 객체로 묶어 담당
- 장점 : 효율적으로 수정할 수 있고, 가독성이 좋으며 재사용, 테스트에 유리하다.
- 단점 : 하지만 코드설계의 난이도가 높으며 설계에 시간이 많이 투자되어야 한다. 실행속도가 느리고 저장공간을 많이 차지한다.
- 활용 범위 : 많은 데이터를 사용하는 규모가 큰 프로젝트인 경우
2. 변수의 데이터 타입
- Dynamic typing (변수의 데이터 타입 지정 - 자료형)
: 필요 시점에 갖다 쓰는 방식 (변수의 데이터 타입을 지정하지 않아도 데이터에 따라 타입이 정해짐)
-> 파이썬, 루비, JS, PHP
- 코드의 간편함과 편리함을 추구하는 방식으로 컴퓨터적 구조를 생략함으로써 코드의 길이가 짧은 반면 그만큼 오류가능성이 높다. (사람을 위해 만들어진 방식)
- Static typing (변수의 데이터 타입 지정x)
: 미리 만들어 놓은 것을 쓰는 방식 (변수의 데이터 타입을 직접 입력하여 지정)
-> C, C++, Java
- 안정성을 추구하는 방식으로 체계적으로 컴퓨터적 구조가 잘 보여 코드를 짜는데에 고민의 시간이 더 걸리고 불편할 수 있지만 오류의 가능성을 낮춰준다. (컴퓨터를 위한 방식)
(임베디드, 실시간투자, 인공지능-코어에서 사용됨)
'개발 공부 > 기초 이론' 카테고리의 다른 글
[기초] 5일차 - 소프트웨어 이해하기 (0) | 2023.10.26 |
---|---|
[기초] 4일차 - 프로그래밍 언어 Overview (0) | 2023.10.25 |
[기초] 2일차 - 프로그래밍의 동작원리와 구현방법 (0) | 2023.10.24 |