🧐궁금점과 부족한 내용
오늘따라 공부하다가 유독 용어가 헷갈리는 게 많았다.
요것들은 나중에 따로 포스팅 해둘 필요가 있을 듯
절차적 프로그래밍(PP) vs 객체지향 프로그래밍(OOP)
절차적 프로그래밍(Procedural Programming)
객체지향 프로그래밍(Object-Oriented Programming)
정적언어 vs 동적언어
정적언어 = TypeScript
작성자가 소스 코드를 보고 변수 타입을 직접 작성하는 언어이다. 정적타입 언어에는 C, C#, C++, Java 등의 언어가 있고, 이들 언어는 변수에 들어갈 값의 형태에 따라 자료형을 지정해주어야 한다. 컴파일 시에 자료형에 맞지 않은 값이 들어있으면 컴파일 에러가 발생한다
동적언어 = JavaScript
코드를 실행할 때 알아서 변수 타입을 판단해 주는 언어이다. = 런타임시 변수의 타입이 결정
동적타입 언어에는 요즘 많이 쓰이는 JavaScript, Ruby, Python 등의 언어가 있다. 이 언어들은 컴파일 시 자료형을 정하는 것이 아니고 실행 시에 작성자가 직접 결정하여 작성한다.
함수 vs 메서드
함수와 메서드의 차이점은 호출 방식에 따라 다르다.
함수를 호출하는 객체가 있는 경우 메서드라고 말하며, 함수를 호출하는 객체가 없는 경우 함수라고 말한다.
let obj = {
show1: function() {
console.log('show1() 메서드 호출');
}
}
function show2() {
console.log('show2() 함수 호출');
}
obj.show1(); // 메서드
show2(); // 함수
위 예제에서 show1() 함수는 객체 obj의 프로퍼티이며, obj 객체를 통해 호출했으므로 메서드
반면에 show2() 함수는 객체를 생성하지 않고 직접 호출했으므로 함수
함수와 메서드의 차이점 정리를 알기쉽게 정리해놓은 것이 있어 가져왔다.
함수(Function) | 메서드(Method) |
함수는 특정 작업을 수행하기 위해 설계된 기능입니다. | 메서드는 객체의 프로퍼티가 함수인 경우입니다. |
함수는 직접 호출할 수 있습니다. | 메서드는 점 표기법 또는 대괄호 표기법을 사용하여 호출할 수 있습니다. |
재사용 가능합니다. | 함수에 비해 재사용하기 어렵습니다. |
함수는 자체적으로 존재합니다. | 메서드는 객체와 연결되어 있습니다. |
Parameter vs Property vs 인자 vs 생성자
Parameter 와 인자
// a, b는 add 함수의 파라미터
function add(a: number, b: number): number {
return a + b;
}
function main(): number {
// 100, 200은 add() 함수의 인자
return add(100, 200);
}
파라미터는 함수나 클래스의 선언부에 있는 변수를 의미하고,
그것들을 호출할 때 인자를 파라미터로 전달하여 사용하는 것
Property
클래스(Class)나 객체(Object)의 속성을 나타내는 변수나 상수를 의미
// name과 age는 Person 클래스의 프로퍼티입니다.
class Person {
name: string = "홍길동";
age: number = 20;
}
생성자
생성자는 클래스에서 사용하는 개념
class Person {
constructor(public name: string, public age: number) {
// 생략
}
}
function main() {
const person = new Person("홍길동", 20);
}
Person 클래스는 name과 age라는 두 개의 프로퍼티를 가지고 있고, name과 age라는 프로퍼티를 생성자의 파라미터로 선언하고 있다.
때문에 Person 클래스의 인스턴스를 생성할 때 반드시 name과 age에 해당하는 인자를 전달해야 한다.
📋레퍼런스
절차적 프로그래밍(PP) vs 객체지향 프로그래밍(OOP)
[JavaScript]함수와 메서드(Function and Method)
'내일배움캠프 > Today I Learned' 카테고리의 다른 글
[TIL 2023.07.31] 타입스크립트 generic (0) | 2023.07.31 |
---|---|
[TIL 2023.07.28] 타입스크립트 객체 지향 프로그래밍 (0) | 2023.07.31 |
[TIL 2023.07.26] 타입스크립트 enum과 object literal의 차이점 / 주요 유틸리티 타입 (0) | 2023.07.26 |
[TIL 2023.07.25] 타입스크립트 입문 / 기본 타입 (0) | 2023.07.25 |
[TIL 2023.07.24] 아웃소싱 프로젝트 마무리 (0) | 2023.07.24 |