2. 프로그래밍 언어 이해하기
by 노실언니컴퓨터개론Course
Topic 2. 프로그래밍 언어 이해하기
⑴ PL 분류
프로그래밍을 할 때에는 바로 코드작성을 할 게 아니라 사전작업이 필요하다.
그 사전작업 중, 조건에 맞는 PL(Programming Language)선택이 있다.
다양한 PL들을 분류하여, 어떤 조건에 어떤 언어가 맞는지 알아보자.
분류기준① Object-oriented 지원여부
객체지향○ PL: Java, Python, C++, Ruby, Swift
객체지향× PL: Assembly, C
배경지식요구 : Object-oriented가 무엇인가 → 탄생배경 알아보기
객체의 탄생배경 : Top-down의 단점보완
- Top-Down : from the general to the specific '분해'
추상→구체화
- Bottom-Up : from the specific to the general '조각모음' *more difficult for human
구체→추상화(Object)
<Top-down단점>→해결책:Bottom-Up
- 전체를 완성하기 전까지 부분적 test불가능
- 일부 기능 수정시에도 전체 코드 점검필요
- 일부 오류발생시에도 전체에 치명적인 영향을 끼칠 수 있음
左 TOP-down : 프로그램을 통Data & Function단위로 <분해>하여 협업 및 제작을 했음
右 Bottom-Up : 쪼개놓은 함수와 데이터들을 객체에 <모음>
Object-oriented programming은 프로그램을 객체단위로 파악하는 패러다임이다.
Object-oriented language는 이 패러다임을 실현할 수 있는 기능을 지원하는 언어이다.
즉, 객체지향언어는 다 좋은데
추상화 3단계인만큼 속도, 자원 등 컴퓨터의 관점에서 효율이 떨어진다는 단점이 존재한다.
분류기준② Typing 자료형
Static typing PL: C, C++, Java, Swift
Dynamic typing PL: Python, Ruby
분류기준③ Level 친화방향
저↔고수준은 절대적 상대적이다.
세 분류기준 Object-oriented, Typing, Level은 발전과정으로 보았을 때, 연관성이 있다.
분류기준④ 범용/특수
현재까지 거론된 언어들은 모두 범용 General purpose language
<Domain specific language>
- R : 통계&시각화
- SQL : 데이터베이스
- HTML구조, CSS표현 : Web (+Javascript동작)
- Matlab : 공학시뮬레이션
- CSound : 음악
- Scratch : 교육용
⑵ PL 제대로 사용하기
①좋은 코드란?
가독성UP, 적절적당한 Comment, 협업&수정에 용이
잘 짜인 구조화, 최적화
∴Style Guide를 숙지하고, 좋은/유명 코드들을 분석하자
②문제 발생시
Design Pattern참고 : 고질적 문제들에 대한 권장해결책
③라이브러리&프레임워크
Library : [주도적] 이미 만들어져있는 코드블럭조각 *참고할만한 좋은 코드
Framework : [수동적] '넌 그냥 나만 따라오면 돼' *수정이 많이 어려워 전문성이 요구됨
이 둘을 적절히 사용하자
[Keyword]
#PL분류기준4 #좋은코딩 #문제발생
#라이브러리&프레임워크
- PL분류기준4 : 객체지향, Typing, Level, 범용/특수
- 좋은코딩 : 가독성 코멘트 구조화 최적화 스타일가이드
- 문제발생 : 디자인패턴 참조
- Lib&FW : 주도VS수동
[Remark]
#단어익숙하게 #객체지향은 대체 무엇인가(2)
'Computer science : 컴퓨터과학 > Student story at 혼긱' 카테고리의 다른 글
컴퓨터개론 Computer basics 총정리 (0) | 2021.04.06 |
---|---|
4. 소프트웨어 이해하기 (0) | 2021.03.27 |
3. 프로그래머의 세계 이해하기 (0) | 2021.03.23 |
1. 프로그래밍 시작하기 in Python (0) | 2021.03.17 |
프로그래밍 독학 시작 (0) | 2021.03.16 |
블로그의 정보
노력하는 실버티어
노실언니