공부/기본지식(6)
-
Singleton Pattern
싱글톤 패턴(Singleton Pattern)은 객체지향 디자인 패턴 중 하나로, 어떤 클래스의 인스턴스가 오직 하나만 생성되도록 보장하고, 이에 대한 전역적인 접근점을 제공하는 패턴입니다. ex) public class Singleton { private static Singleton instance; private Singleton() { // private 생성자 } public static Singleton getInstance() { if (instance == null) { instance = new Singleton(); } return instance; } } 싱글톤 패턴은 하나의 인스턴스만 생성되므로, 여러 스레드에서 동시에 접근하면 동기화 문제가 발생할 수 있습니다. 이를 해결하기 위해..
2023.03.16 -
[Java] Garbage Collection
가비지 컬렉터는 프로그램 실행 중에 사용하지 않는 객체를 자동으로 탐지하고 메모리에서 제거하여, 개발자가 직접 메모리를 관리하지 않아도 된다는 장점이 있습니다. 이는 메모리 누수(memory leak)와 같은 버그를 방지할 수 있습니다. 가비지 컬렉터는 JVM(Java Virtual Machine) 내부에서 실행되며, 일반적으로 메모리 할당과 동시에 객체를 추적하고, 객체가 더 이상 필요하지 않을 때 해당 객체의 메모리를 해제합니다. 이 과정에서 성능 저하가 발생할 수 있지만, 최신 JVM은 효율적인 가비지 컬렉션 알고리즘을 적용하여 성능 저하를 최소화하고 있습니다.
2023.03.15 -
[Java] Primitive type & Reference type
원시타입은 값 자체를 복사하기 때문에, 원본 데이터의 값이 바뀌더라도 기존 데이터의 값을 유지한다. let origin = 100; let copy = origin; console.log(copy); // 100 origin = 200; console.log(copy); // 100 참조 타입은 주소 값을 참조하기 때문에, 원본 데이터의 값이 바뀌면 복사한 데이터의 값도 변경된다. let origin = { name: 'Jinny' } let copy = origin; console.log(copy.name); // Jinny origin.name = 'Mr.Lee'; //origin과 copy는 동일한 주소값을 참조하기 때문에 같은 객체를 나타낸다. console.log(copy.name); // Mr..
2023.03.15 -
[Java] Overriding & Overloading
오버라이딩(Overriding)과 오버로딩(Overloading)은 객체지향 프로그래밍에서 중요한 개념 중 하나입니다. 둘 다 메서드의 다형성(polymorphism)을 구현하는 방법 중 하나이지만, 각각의 의미와 사용 방법은 다릅니다. 오버라이딩(Overriding) 오버 라이딩(Overriding)은 부모 클래스에 정의된 매서드를 자식 클래스에서 새로운 구현을 통해 재정의하는 것입니다. 이때, 자식 클래스에서 재정의된 매서드는 부모 클래스에서 정의된 메서드와 같은 이름, 매개변수 리스트, 반환 타입을 가져야 합니다. 오버라이딩을 사용하면 다형성을 구현하면서 코드를 간결하게 유지할 수 있습니다. class Animal { public void makeSound() { System.out.println(..
2023.03.15 -
[Java] Shallow Copy & Deep Copy
Shallow Copy 얕은 복사는 참조 변수가 가리키는 객체의 주소만 복사하고, 객체 자체는 새로 생성하지 않습니다. 이에 따라 원본 객체와 복사본 객체가 같은 객체를 참조하게 되며, 원본 객체나 복사본 객체 중 하나에서 객체 내용을 수정하면 나머지 객체도 함께 수정됩니다. Ex) Shallow Copy public class Person { private String name; private int age; } Person person1 = new Person(); person1.setName("Alice"); person1.setAge(20); Person person2 = person1; // 얕은 복사 person2.setName("Bob"); System.out.println(person1.g..
2023.03.15 -
Singleton Design Pattern 싱글톤 패턴
싱글톤 패턴이란? 싱글톤(Singleton) 패턴의 정의는 단순하다. 객체의 인스턴스가 오직 1개만 생성되는 패턴을 의미한다. 싱글톤 패턴을 사용하는 이유나 주의할 점은 조금 후에 살펴보기로 하고, 어떻게 생겼는지 그 모습을 코드로 먼저 만나보자. 싱글톤 패턴을 구현하는 방법은 여러가지가 있지만, 여기서는 객체를 미리 생성해두고 가져오는 가장 단순하고 안전한 방법을 소개하겠다. public class Singleton { private static Singleton instance = new Singleton(); private Singleton() { // 생성자는 외부에서 호출못하게 private 으로 지정해야 한다. } public static Singleton getInstance() { retu..
2023.01.19