본문 바로가기

전체 글

[이펙티브 자바][아이템 3] private 생성자나 열거타입으로 싱글턴임을 보증하라 - 컴도리돌이 싱글턴 패턴은 일반적으로 자원의 효율적인 사용과 프로그램의 일관성을 유지하기 위해 사용돼요. 예를 들어, 애플리케이션에서 로깅, 캐시, 설정 정보와 같은 클래스는 인스턴스가 여러 개일 필요가 있을까요?? 당연히 없겠죠? 만약 이런 클래스의 인스턴스가 여러 개라면 상태가 서로 달라질 수 있고, 이는 예기치 않은 버그를 유발할 수 있어요 😔그렇기 때문에 이런 클래스를 싱글톤으로 구현하여, 프로그램 내에서 단 하나의 인스턴스만 존재하도록 하는 것이 중요합니다. 🛠️ private 생성자와 싱글톤 보증자바에서는 싱글톤 패턴을 구현할 때 가장 많이 사용되는 방법 중 하나는 private 생성자를 활용하는 것입니다. 이 방식은 클래스의 인스턴스를 외부에서 생성할 수 없도로 막아줘요.public class Sin.. 더보기
[이펙티브 자바][아이템 2] 생성자에 매개변수가 많을 때는 빌더를 고려하라 - 컴도리돌이 개발을 하다 보면 객체를 생성해야 할 때가 당연히 있습니다. 그런데 그 객체를 생성하기 위해 생성자를 사용했는데, 매개변수가 한두 개가 아니라 다섯 개, 여섯 개, 열 개가 넘어갈 때가 있지 않나요? 🤔 예를 들어 영양 정보를 담는 NutritionFacts 클래스를 가지고 가정해 볼까요?  public class NutritionFacts { private final int servingSize; // 필수 private final int servings; // 필수 private final int calories; // 선택 private final int fat; // 선택 private final int sodium; // 선.. 더보기
[Design Pattern] 브릿지 패턴(Bridge Pattern)에 대해서 - 컴도리돌이 class Circle { void drawWithRedColor() { // 빨간색 원 그리기 } void drawWithBlueColor() { // 파란색 원 그리기 }}class Square { void drawWithRedColor() { // 빨간색 사각형 그리기 } void drawWithBlueColor() { // 파란색 사각형 그리기 }} 이 코드에서 Circle과 Square 클래스는 각각 빨간색과 파란색으로 도형을 그리는 메서드를 가지고 있어요. 지금은 두 가지 도형과 색상만 다루고 있죠.그런데 여기서 도형의 종류가 더 늘어나면 어떻게 될까요? 또는 색상이나 그리기 방식이 더 다양해지면 어떨.. 더보기
[이펙티브 자바][아이템 1] 생성자 대신 정적 팩토리를 고려해라 - 컴도리돌이 자바에서 객체를 생성하는 전통적인 방법은 'new' 키워드를 사용하는 생성자 호출이에요. 그러나 이번 주제에서는 생성자 대신 정적 팩토리 메서드(static factory methods)를 고려할 것을 권장하는 것을 다뤄보려고 합니다.  1. 명명된 생성자를 통한 가독성 향상자바에서 객체를 생성할 때, 일반적으로 사용하는 방법은 'new' 키워드를 사용하여 생성자를 호출합니다. 근데 이런 방식은 추후에 다른 개발자가 해당 코드를 사용할 때, 조금 많이 힘든 경우가 있어요 🥲 생성자는 클래스 이름과 동일해야 하며, 여러 인자를 받는 경우에도 생성자 자체에 이름을 지정할 수 없죠. 이로 인해 생성자의 목적이나 인자들이 무엇을 의미하는지 명확하지 않을 수 있어요.  public class User { .. 더보기
[Design Pattern] 플라이웨이트 패턴(Flyweight Pattern)에 대해서 - 컴도리돌이 다수의 유사한 객체를 생성하면 메모리 사용량이 급격히 증가할 수 있어요. 😓이러한 문제를 해결하기 위해 플라이 웨이트 패턴은 동일한 객체를 공유하여 메모리 낭비를 줄이고 성능을 향상하는 방법을 제시해 줍니다. 예를 들어, 수천 개의 동일한 글꼴을 사용하는 텍스트 객체가 있다고 가정해 볼게요. 이러한 텍스트 객체는 동일한 스타일과 크기를 공유하지만, 위치나 색상과 같은 상태만 다르죠. 각 테스트 객체가 개별적으로 메모리를 차지한다면 비효율적일 수 있어요. 플라이웨이트 패턴은 이러한 공통된 속성을 공유하여 메모리 사용을 최소화합니다. class Flyweight { private final String sharedState; public Flyweight(String sharedState) { .. 더보기
[Design Pattern] 싱글톤 패턴(Singleton Pattern)에 대해서 - 컴도리돌이 싱글톤 패턴은 하나의 클래스에 대해 단 하나의 인스턴스만 생성하고, 이를 전역적으로 접근할 수 있도록 하는 디자인 패턴이에요. 싱글톤 패턴을 구현하는 방법은 여러 가지가 있지만, 가장 쉬운 방법부터 확인해 볼까요? 싱글톤 패턴(Singleton Pattern)다음은 자바에서 기본적인 싱글톤 패턴 구현 방법입니다. public class Singleton { // static 변수로 인스턴스 선언 private static Singleton instance; // private 생성자, 외부에서 직접 인스턴스를 생성할 수 없음 private Singleton() {} // public static 메서드로 인스턴스에 접근 public static Singleton getIn.. 더보기
[Apache] 아파치에서 가상호스팅 설정하는 방법 - 컴도리돌이 여러 개의 도메인이 같은 IP 주소를 공유하고, 각 도메인이 특정 포트로 연결되도록 설정하려는 경우가 존재합니다. 이는 아파치 웹 서버에서 가상 호스팅(Virtual Hosting)을 사용하여 구현할 수 있으며, 이번 포스팅에서는 가상 호스팅에 짧은 개념과 설정 방법에 대해 적어 나가려고 합니다. 가상호스팅 (Virtual Hosting)가상 호스팅은 하나의 웹 서버에서 여러 도메인을 호스팅 할 수 있게 해주는 방법으로 두 가지 주요 방식이 존재합니다. 첫 번째는 이름 기반 가상호스팅이고, 두 번째는 IP 기반 가상 호스팅입니다. 이번 포스팅에서는 하나의 IP 주소에서 여러 도메인을 포트별로 구분하여 호스팅 하는 방법을 설명합니다. 이를 포트 기반 가상 호스팅이라고 할 수 있습니다. 아파치 설정 파일 수.. 더보기
[AWS][Route 53] DNS 레코드에 대해서 - 컴도리돌이 새로운 프로젝트에 대한 개발 인프라를 구축해야 하는 일이 생겼습니다. 🤔🤔인프라 작업 계획서를 작성하고 컨펌받으면서 모르는 부분이 너무 많아서, 이번 기회에 해당 내용들을 차근차근 정리하려고 해요. 😊사실 레코드 만드는 건 어렵지 않아요. 서브도메인 이름 알맞게 넣고, 기본 유형에 인스턴스 ip, 그리고 기존에 존재하는 다른 레코드의 ttl를 따라 하거나, 적정한 값에서 조절하면 되고 라우팅 정책도 다른 레코드와 유사하게 아니면 기본적인 값을 집어넣으면 돼요. 😎 짜잔 10초 만에 레코드를 생성할 수 있답니다. 😆😆  하지만 저는 각 항목에 대한 이해가 부족하기 때문에 이번 포스팅에서는 각각 어떤 의미를 갖고, 어떤 역할을 하는지 포스팅하려고 해요.  AWS Route 53에서 레코드를 생성할.. 더보기

728x90