출퇴근 길이나, 자기 전에 가끔 okky나 velog 등등 개발자 커뮤니티를 한번 훑어보며, 오늘은 무슨 재밌는 이야깃거리가 없나 하고 보는 경우가 있다. 그러던 중 객체, 클래스, 인스턴스에 대한 정의가 무엇인지 물어보는 글이 있어서 곰곰이 생각해보다가 한번 정리를 해본다. 기본적으로 프로그래밍은 실세계에서의 문제를 해결하기 위한 목적(?) 또는 방향성을 지니고 있고, 해당 문제를 어느 정도 추상화해서 다룬다. 이때 실세계에 있는 어떠한 것들을 객체지향에서는 객체라고 가리키고 있다고 생각한다. 예로 내가 학생부 프로그램을 만든다고 했을 때, 학생부에 기입되는 학생들은 하나의 객체이고, 학생부 또한 객체이다. 넓은 의미에서 객체는 우리가 인지를 하고 있는(식별 가능한) 유형, 무형 모든 것을 객체라고 생..
Scala는 객체지향의 개념과 함수형의 개념이 섞인 언어이다. 객체지향 개념이 있듯이 Scala에는 당연히 Class가 존재한다. Scala에서의 Class는 Java의 Class와 유사하지만, Scala에서는 Class가 파라미터를 가질 수 있다는 차이점을 갖고 있다. 아래 소스코드는 Scala 코드로 작성한 파라미터를 가지는 Class의 예제이다. class Complex(real: Double, imaginary: Double) { def re() = real def im() = imaginary } 이 Complex Class (복소수 클래스)는 두 개의 인자를 받는다. 하나는 복소수의 실수 부분이고, 또 다른 하나는 복소수의 허수 부분에 해당한다. 이 파라미터는 Complex 클래스의 인스턴스를..