일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 혼자서공부하는얄팍한코딩지식
- 사이드이펙
- 혼공학습단11기
- 혼공학습단
- 혼공네트
- user flow
- HTTP와HTTPS차이점
- HTTP
- 한빛미디어
- 혼자공부하는얄팍한코딩지식
- 제이콥닐슨 사용성평가기준
- 혼자공부하는
- UI
- 혼자서공부하는
- https
- 2024년회고
- 네트워크
- 혼자공부하는네트워크
- 자바스크립트문자열출력하기
- GUI
- column grid system
- 혼공네트워크
- 혼공시리즈
- 프로그래머스문자열출력하기
- HTTP메시지구조
- 혼자서공부하는네트워크
- 피터모빌의벌집모형
- 이더넷허브
- UX
- 혼공얄코
- Today
- Total
호기심으로 시작한 Frontend 꾸준함으로 채워나가는 Developer
[혼공얄코] Chapter 03-3 프로그래밍 언어 분류 본문
번역되는 언어와 통역되는 언어 컴파일 언어, 인터프리터 언어
컴파일 언어
- 배포되기 전 다른 형태로 변환되는
- 소스 코드를 다른 언어나 형태로 번역해주는 프로그램
- 컴파일에 많은 시간을 소모하기도 함
- 빌드 과정이 번거롭지만 한 번 배포된 후에는 빠르게 실행된다는 것도 컴파일 언어의 장점
- 소스 코드를 작성할 때 변수마다 자료형을 고정 => 정적 타입
인터프리터 언어
- 작성된 그대로 실행되는
- 프로그래밍과 배포, 오류 수정이 수월
- 프로그램 실행 속도는 컴파일 언어에 비해 느림
- 프로그래밍 과정에서 오류가 잘 발견되지 않는 것도 단점
- 통합 개발 환경(IDE) 의 발달로 보완된 편
- 런타임 시 자료형이 부여되기 때문에 변수의 자료형이 바뀔 수 있음 => 동적 타입
컴파일
- 코드를 실행하기 전에 기계어나 다른 코드로 먼저 '번역'하는 것
프로그래밍의 흐름 차이 절차 지향, 객체지향 프로그래밍
절차지향 프로그래밍
- 소스 코드를 순차적으로 실행하기 때문에 소스 코드의 순서가 굉장히 중요하며, 프로그램 전체가 유기적으로 연결되어 있음
- 사소한 문제가 생겨도 시스템 전체가 돌아가지 않음
- 실행 순서가 정해져 있기 때문에 소스 코드와 순서가 바뀌면 결과가 달라짐
객체지향 프로그래밍
- 코드를 작성할 때 구성 요소를 객체라는 단위로 묶어서 이들의 조합으로 프로그램을 만드는 것
- 프로그램을 다수의 객체로 만들고 이 객체끼리 서로 상호작용하는 방법
- 유지 보수도 쉽고 생산성도 좋음
* 객체: 프로그램에서 어떤 역할을 수행하는 요소를 데이터와 기능으로 묶은 단위
단점
- 모든 객체의 역할과 기능을 이해해야 하기 때문에 설계에 많은 시간이 걸림
- 처리 속도가 절차지향보다 느림
- 객체지향 언어는 대체로 난도가 높은 편
객체의 설계도 : 클래스
객체를 만들기 위해서는 먼저 각 종류의 객체가 어떤 정보를 가지고 있고 어떤 기능을 수행할지 등의 스펙을 정의해야 합니다. 스펙을 정의하는 명세서를 "클래스"라고 함
공유되는 스펙 물려주기: 상속
객체지향 프로그래밍에서 button이 가진 기본 속성을 '물려받고', 그 위에 각 버튼만의 기능을 추가하는 방법으로 중복을 줄인 코드르 작성할 수 있고 이를 "상속"이라고 함
- 객체지향 프로그래밍을 제대로 공부하고 나면 간결하고 유연하면서도 높은 안정성과 가독성을 갖춘 프로그램을 설계 할 수 있음
객체지향 특징 정리: https://tistory-justgoforit.tistory.com/31
변수는 위험해! 함수형 프로그래밍
- 함수형 기능들을 활용해서 변수의 사용을 최소화하는 프로그래밍 방식
메모리, 직접 관리하시게요? 매니지드 언어, 언매니지드 언어
메모리 관리
- 요리 탁자 위의 공간을 관리하는 것과 같음
- 프로그램은 해당 프로세스에 할다된 메인 메모리에 소스 코드, 함수, 변수, 인자 등과 같은 값을 올려 놓고 작업, 그리고 프로그램을 실행하는 과정에서 더 이사 앗용되지 않는 데이터는 바로 치워서 요리 탁자의 공간을 확보
매니지드 언어
- 메모리를 프로그래밍 언어가 직접 관리
-
언매니지드 언어
- 개발자가 직접 관리
- C와 C++, 어셈블리어
- C언어의 포인터를 능숙하게 잘 다룰 수 있으면 메모리 공간을 원하는 대로 직접 조작해서 매니지드 언어로 작성한 것보다 빠르고, 효율적으로 동작하는 프로그램 만들 수 있음
확인문제
1. 다음 중 틀린 것을 고르세요
3
2. 다음 중 문장에 들어갈 알맞은 단어를 보기에서 찾아 써 보세요
- 함수형 프로그래밍을 사용하려면 (스레드)가 많이 사용되는 환경에서 변수 문제로부터 안전한 코드를 작성할 수 있습니다.
- 객체지향 프로그래밍에서는 (상속)을 사용해서, 기본이 되는 부모 클래스로부터 추가 속성이나 기능이 있는 자식 클래스를 파생할 수 있습니다.
3. 다음 중 프로그래밍 언어와 가장 연관이 깊은 개념을 이어 보세요.
1. 자바 ㄷJVM
2. C언어 ㄱ포인터
3. 스칼라 ㄴ함수형프로그래밍 (스칼라, 하스켈, 클로저, F# 등)
4. 자바스크립트 ㄹ인터프리터 언어
4. 다음 중 A, B, C, D에 알맞은 언어를 보기에서 찾아 써 보세요
1. C언어
2. C++
3. 자바
4. 자바스크립트
'혼공 시리즈 > 혼공얄코' 카테고리의 다른 글
[혼공얄코] Chapter 03-5 개발에 필요한 여러 가지 도구 (1) | 2024.02.12 |
---|---|
[혼공얄코] Chapter 03-4 오류라는 위험에 대비하기 (0) | 2024.02.02 |
[혼공얄코] Chapter 03-2 바이트는 뭐고 자료형은 왜 쓰나요? (0) | 2024.01.30 |
[혼공얄코] Chapter 03-1 개발자의 길로 들어서기: 프로그래밍 용어 알기 (2) | 2024.01.29 |
[혼공얄코] Chapter 02-8 개발자들은 왜 리눅스를 좋아하나요? (1) | 2024.01.25 |