목록정의 (5)
AiPE
싱글톤 패턴(Singleton Pattern)은 디자인(쉽게, 프로그램 설계라고 보면 된다) 패턴 중 하나로, 어떤 클래스가 최대 한 번의 인스턴스만을 갖도록 보장하는 패턴이다. 이는 클래스의 인스턴스를 하나만 생성하여 전역적으로 접근할 수 있도록 하는 것을 목적으로 한다. "전역적인 접근"은 무엇을 의미하는가? 전역 상태를 유지한다는 것은 프로그램의 어느 곳에서나 접근 가능한 상태를 말한다. 전역 상태를 유지하면 객체 간의 데이터 공유가 용이해지고, 설정값이나 상태 정보의 일관성을 유지할 수 있으므로 여러 곳에서 공유된 데이터나 설정값을 저장할 때 유용하다. 싱글톤 패턴을 사용하면 클래스의 인스턴스가 하나만 존재하므로, 해당 인스턴스의 상태는 어디서든 접근할 수 있게 된다. 싱글톤 패턴을 구현하는 방법..
클래스의 속성에 접근하고 값을 다루기 위한 메서드인 Getter와 Setter에 대해 알아보자. Getter와 Setter는 객체지향 프로그래밍에서 클래스의 속성(필드)에 접근하고 값을 설정하기 위한 메서드이다. 주로 캡슐화(encapsulation)를 구현하는 데 사용된다. 캡슐화(encapsulation)란? 서로 연관된 데이터와 그 데이터를 다루는 메서드들을 하나로 묶는 행위이다. 이를 통해 캡슐 내의 세부적인 처리과정과 데이터를 숨길 수 있게 된다. 1. Getter 메서드 Getter는 클래스의 필드 값을 반환하는 메서드이다. 클래스의 필드 값이란? 클래스 내에 있는 변수를 의미한다. 클래스 A내에 변수 b, c, d .. 가 존재한다면, b는 A의 필드 값 중 하나가 된다. 단, 클래스 A 내..
객체지향의 핵심 개념 중의 하나인 상속(Inheritance)에 대해 알아보자. 1. 상속(Inheritance)이란? Java에서는 하나의 클래스가 존재할 때, 이 클래스의 속성(변수와 메서드)를 다른 클래스에서 그대로 물려받아 사용할 수 있다. 이렇게 하나의 클래스가 다른 클래스에게 자신의 속성을 물려주는 행위 자체를 상속이라고 부른다. 상속을 해주는 클래스를 부모 클래스, 상속을 받는 클래스를 자식 클래스라고 부른다. 부모 클래스가 더 큰 집합이므로, 자식 클래스는 부모 클래스의 모든 속성을 일단 그대로 물려받는다. 단, 자식 클래스는 부모 클래스가 가지지 못하는 속성을 추가하여 사용할 수 있다. 그렇다면 상속이 왜 객체지향의 핵심적인 특성이며, 코드를 효율적으로 해 주는 장치일까? 이를 알아보기 ..
클래스와 객체, 인스턴스의 경우 용어의 정의가 꽤나 헷갈린다. 보통 클래스와 객체를 붕어빵 틀과 붕어빵에 많이들 비유를 하는데, 엄밀히 말하면 이 설명은 오류가 있다. 이 비유를 기반으로 생각을 이어나가다보면 분명 오류를 만나게 되므로, 이 비유는 사용하지 않는 것이 좋다. 따라서 이 포스팅에서는 붕어빵, 붕어빵 틀 대신 다른 적절한 비유를 사용했다. 위 비유가 왜 틀렸는지에 대해서는 이 포스트를 맨 아래로 내려 "3. 참고자료"의 첫번째 글을 참고하자. 다른 분의 포스팅인데, 설명이 명쾌해서 가져와보았다. 또한 객체와 인스턴스의 경우 두 개의 용어를 혼용한다고 알려져 있는데, 엄밀히 말하면 둘은 서로 다르다. 사람들이 제대로 구분할 줄을 모르기 때문에 (혹은 의사소통의 편의상) 혼용하는 것이다. 비슷하..
1. 보수(Complement)의 정의 보수(Complement)의 정의를 먼저 알아보자. 우리가 "a의 N의 보수"라고 부르는 것은 어떠한 숫자 a가 있을 때 a+b=N을 만족하는 수 b를 일컫는 말이다. 예를 들어, 3의 10의 보수는 3+7=10이므로 7이다. 컴퓨터에서는 보수를 음수를 표현하는 데 사용한다. 컴퓨터는 기본적으로 덧셈의 연산만이 가능하기 때문에 뺄셈은 "음수를 더한다"라는 개념으로 접근한다. 컴퓨터는 2진수로 동작하므로 2진수와 관련된 와 만을 다루면 된다. 이진수에서 1과 2의 보수를 구하는 방법은 아래와 같다. 2. 1의 보수를 구하는 방법 1의 보수를 구하는 방법은 굉장히 단순하다. ① 표현하고자 하는 수를 이진수 비트로 나타낸다. Ex. 3을 4비트 이진수로 표현하면 `001..