전체 글

개발 이야기 모음집
객체 설계 하기객체의 책임을 공개 메서드를 통해서 들어낼수 있다. 객체로 추상화 하기비공개 필드 (데이터), 비공개 로직 (코드)공개 메서드 선언부를 통해 외부세계와 소통각메서드의 기능은 객체의 책임을 드러내는 창구객체의 책임이 나뉨에 따라 객체 간 협력이 발생객체가 제공하는 것절차 지향에서 잘 보이지 않았던 개념을 가시화관심사가 한 군데로 모이기 때문에, 유지보수성이 올라감예시) 객체 내부에서 객체가 가진 데이터의 유효성 검증 책임을 가질 수 있다.여러 객체를 사용하는 입장에서는, 구체적인 구현에 신경 쓰지 않고 보다 높은 추상화 레벨에서 도메인 로직을 다루 수 있다.새로운 객체를 만들 때 주의할 점1개의 관심사로 명확하게 책임이 정의되었는지 확인메서드를 추상화 할때랑 비슷객체를 만듦으로써 외부 세계와..
정적 팩토리 메서드(Static Factory Method)는 객체를 생성할 때, 생성자를 직접 호출하는 대신 클래스의 정적(static) 메서드를 사용하여 객체를 생성하고 반환하는 방식을 의미한다.이 방식은 일반적인 생성자 호출보다 더 유연하고 직관적으로 객체를 생성할 수 있는 장점을 제공한다.정적 팩토리 메서드의 특징정적 메서드를 사용해 객체를 생성클래스의 정적 메서드를 호출해 객체를 생성한다.Cell cell = Cell.of("X");생성자를 은닉할 수 있음정적 팩토리 메서드는 생성자를 private으로 숨기고, 외부에서는 오직 정적 메서드를 통해 객체를 생성하도록 강제한다.유의미한 메서드 이름을 사용할 수 있음생성자와 달리 메서드 이름을 자유롭게 설정할 수 있어, 객체 생성의 목적을 명확히 드러..
Early Return사람의 뇌는 한번에 한가지만 처리할수 있다.멀티 태스킹을 잘한다는것이 여러 업무를 번갈아 가면서 처리할때 다른 업무를 처리할 준비를 할 수 있는 능력이 좋다는것을 의미한다. 코드를 작성할때 도입을 한다면public class ifelse { void elseif() { int score = 70; if (score >= 100) { System.out.println("A"); } else if (score >= 80) { System.out.println("B"); } else if (score >= 50) { System.out.println("C"); }..
출처 : 인프런 - Readable Code : 읽기좋은코드-작성사고법 추상(抽象)추상추상이란 중요한 정보는 가려내어 남기고, 덜 중요한 정보는 생략하여 버리는 것이다. 추상과 구체추상과 구체에서 먼저 봐야할것은 구체인데 구체란 사전적 의미로 사물이 개별적으로 일정한 모습을 갖추고 있다는것을 의미하고 추상은 반대로 구체적인 부분에서 중요한 정보만을 가져온것이다. 흔히 말하는 세줄요약 같은것도 추상이라고 볼수 있는것이다. 이처럼 적절한 추상화는 복잡한 데이터와 복잡한 로직을 단순화 하여 이해하기 쉽도록 도울수 있는데 반대로 적절하지 못한 추상화가 불러오는 문제는 생각보다 클수가 있다. 적절하지 못한 추상화를 한 원인중에는 중요한 정보를 부각시키지 못하였거나, 해석자가 동일하게 공유하는 문맥이 없거나 중요한..
· Docker
도커 이미지: 도커 이미지는 컨테이너를 실행하기 위한 템플릿 역할을 한다. 이미지는 애플리케이션과 그 실행에 필요한 모든 파일, 코드, 라이브러리, 환경 설정 등을 포함합니다. 이미지는 불변(immutable)이며, 이미지 자체는 변경되지 않는다. 도커 컨테이너: 도커 컨테이너는 도커 이미지에서 생성되며, 실제로 실행되고 있는 애플리케이션의 인스턴스이다. 간단히 말해서, 이미지를 실행하면 그것이 바로 컨테이너가 된다. 컨테이너는 시작될 때 이미지의 상태를 그대로 가져오지만, 실행 중에는 독립적으로 상태가 변할 수 있다.
· Docker
도커 컨테이너와 가상 머신(VM)은 모두 애플리케이션을 격리된 환경에서 실행할 수 있게 해주지만, 기본 구조와 효율성에서 큰 차이가 있다. 가상 머신(VM): 가상 머신은 하드웨어 스택을 가상화한다. 각 가상 머신은 완전한 운영 체제를 실행하며, 이로 인해 추가적인 오버헤드가 발생한다. 이는 리소스 사용량이 많고 시작 시간이 더 길다는 것을 의미한다. 도커 컨테이너: 반면, 도커 컨테이너는 운영 체제 수준에서 가상화를 진행하며, 컨테이너는 커널을 공유하고 애플리케이션과 그 종속성만 포함한다. 이는 컨테이너가 가상 머신보다 훨씬 가볍고 빠르게 시작되며, 더 적은 양의 리소스를 사용한다는 것을 의미한다.
Nanseo
금요일개발