[Effective Java] Item03. private 생성자나 enum 타입으로 싱글톤임을 보장하라.
·
Java & Kotlin/DesignPattern
🧐 들어가기 전...싱글톤 패턴이란?싱글톤: 클래스가 단 "하나의 인스턴스"만 가지도록 보장 하나의 인스턴스만 가졌을 때의 장점은 "일관성"에서 비롯된다. 예를 들어, 우리나라의 화폐가 발행되는 곳은 중앙은행인 한국은행에서만 발행된다.만약에 화폐를 한국은행에서만이 아닌 여러 곳에서 찍어낸다면 일관성이 깨지게 될 것이다.통화의 흐름을 파악하기가 어렵게 되고, 부정확한 화폐가 유통될 수도 있다. 즉, 하나의 기관에서 모든 것을 관리함으로써 일관성과 신뢰성을 챙길 수 있다. 싱글톤의 대상은 무상태(stateless)객체 혹은 설계상 유일해야 하는 시스템 컴포넌트가 된다. [이팩티브 자바 中] 이처럼, 코드를 짤 때에도 하나의 인스턴스만 가지도록 보장해야하는 경우가 있따른다.이는 여러 인스턴스를 허용하지 않음..
[Effective Java] Item02. 생성자 매개변수가 많은 경우에 빌더 사용을 고려해 볼 것
·
Java & Kotlin/DesignPattern
🧐들어가기전..[!NOTE]클래스가 가지고 있는 필드 변수가 많을 때,선택적인 필드만 초기화하는 생성자를 만들려면 어떻게 해야할까?public class Character { private final String name; private final int faceSize; private final int neckSize; private final int bodySize; private final int armSize; private final int legSize; public Character(String name) { this(name, 0); } ...}만약 정적팩토리를 사용한다면 선택적 매개변수가 많다면 사용하기가 힘들 것이다.따라서 ..
[Effective Java] Item01. 생성자 대신 static 팩토리 메소드를 고려해 볼 것
·
Java & Kotlin/DesignPattern
[!NOTE]이 책에서 성능에 집중하는 부분은 많지 않다.대신 프로그램을 명확하고, 정확하고, 유용하고, 견고하고, 유연하고 관리하기 쉽게 짜는 데 집중한다.✅ Static Factory Method(정적 메소드)🧐들어가기전..java에서 객체를 생성하기 위한 방법으로는 크게 두 가지가 있다. 1. 생성자class Car{ private final String name; // 생성자 public car(String name){ this.name = name; } } 2. 정적 팩토리 메서드class Car{ private final Car INSTANCE = new Car(); private Car(){ } // 정적 팩토리 메서..
우테코의 여정을 마무리 짓다.
·
Java & Kotlin/woowa-precourse-7
여름방학 때부터 준비하던 우테코의 4개월간의 여정이 1차 불합격으로 끝이 났다. #0. 실패에 대한 아픔결과에 대한 큰 기대를 하지 않았지만,막상 결과가 다가올수록 기대하고 긴장되었고,결과가 나오니 아쉬움이 크게 남았던 것 같다. 중학교 때 셔틀런 개수가 미달이 났을 때도,학교 시험을 보고 나서 원하는 점수가 나오지 않았을 때도,언제나 목표치에 도달하지 못한 채 마무리가 된다면 "좀만 더 열심히 할걸"이라는 생각이 들며 후회가 남는 것 같다. 인간의 욕심에서 비롯된 걸까?만족스러운 결과를 받으면 나에게 고생했다며 뿌듯함이 밀려오지만,만족스럽지 못한 결과를 받으면 더 열심히 할 수 있었을 것 같다는 생각이 든다. 사실, 4개월간의 우테코 준비를 하면서 나는 누구보다도 스스로의 부족한 점을 계속해서 바라볼 ..
도커(Docker) 기본 개념 정리 - (컨테이너, 이미지, Dockerfile, Docker Hub)
·
Docker & Kubernetes
1️⃣ 도커란?도커가 어떻게 탄생하였는지, 도커는 무엇인지, 가상환경과의 차이점은 무엇인지에 대해 알아보고자 한다.✅ 도커는 어떻게 탄생했을까?현재 개발자들은 수많은 애플리케이션을 개발하며 협업을 통해 이를 만들어내고 있다.특히 현대의 개발 환경에서는 여러 개발자가 함께 작업하는 협업 과정이 필수적이다.☑️ 개발 환경 문제, 어떻게 해결할 수 있을까? 만약 개발자가 각자 다른 환경에서 작업한다면 어떨까?운영 체제, 라이브러리 버전, 설정 값 등이 조금만 달라도 개발 중인 소프트웨어가 제대로 작동하지 않을 수 있다.이런 환경 차이로 인해 생기는 의존성 문제는 협업뿐만 아니라 배포 과정에서도 골칫거리이다. 예를 들어, 개발 환경에서는 잘 실행되던 코드가 운영 환경에서는 실행되지 않거나 오류가 발생하는 일이 ..
[우테코 프리코스 3주차] java-lotto 코드 설명 [🛠️설계] (팩토리 패턴, 정적 팩토리 메서드, VO 객체)
·
Java & Kotlin/woowa-precourse-7
✏️ 코드 [로또] 김준형 미션 제출합니다. by JHZLO · Pull Request #1145 · woowacourse-precourse/java-lotto-7🎰🎱로또 미션 🤔이런부분을 위주로 리뷰 받고 싶어요 1️⃣ ⭐⭐⭐강한 결합은 무조건 나쁜 것일까? (WinningLotto 생성자, rawBonusNumber 부분)⭐⭐⭐ 2️⃣ ⭐⭐정적 팩토리 메서드, 팩토리 패턴을github.com🎯 코드의 구조1️⃣ 원시값 포장 LottoNumber미션의 요구사항은 다음과 같았다. 2주 차 공통 피드백 영상을 보고 나서 기능 구현 목록 정리하는데에 많은 시간을 쏟는 게 생각보다 중요하다고 느꼈다. 프로젝트에서도 요구사항을 탄탄하게 다져놔야 튼튼하게 개발할 수 있는 것처럼위의 미션도 마찬가지이다. 그..
J_hzlo
J_hzlo