본문 바로가기
반응형

전체 글145

[엘레강트 오브젝트] 1.1 -er로 끝나는 이름을 사용하지 마세요 이 내용은 엘레강트 오브젝트 를 읽으면서 정리한 내용을 포함하고 있습니다. 다음 목차로 진행합니다. 클래스 객체를 바라봐야 하는 입장 접미사 -er 클래스 이름을 짓는 적절한 방법 정리 클래스 객체의 팩토리 객체를 만들고, 추적하고, 적절한 시점에 파괴 객체를 인스턴스화한다. new 연산자가 충분히 강력하지 않는 이유 유사한 객체가 존재하거나 재사용 가능한 지를 확인하지 않는다. 객체를 바라봐야 하는 입장 클래스는 객체를 꺼내거나 반환할 수 있는 위치이기 때문에, 클래스를 저장소 또는 웨어하우스라고 불러야 한다는 점 도메인 주도 설계 의 입장으로 도메인이 비즈니스 로직의 주도권을 가지고 개발하는 것 서비스의 많은 로직이 엔티티로 이동 서비스는 엔티티를 호출하는 정도의 얇은 비즈니스 로직 정리해보면, 객체.. 2023. 2. 19.
잘 살아야 잘 쓸 수 있다 글또를 다시 시작하게 되면서 드는 생각들과 글쓰기를 통해 얻고자 하는 것, 앞으로의 계획을 정리하였습니다. 들어가며 유시민의 글쓰기 특강 도서의 이런 내용이 있습니다. ...(생략) 기술은 필요하지만 기술만으로 잘 쓸 수는 없다. 잘 살아야 잘 쓸 수 있다. 살면서 얻는 감정과 생각이 내면에 쌓여 넘쳐흐르면 저절로 글이 된다. 그 감정과 생각이 공감을 얻을 경우 짧은 글로도 사람들의 마음을 움직이고 세상사에 영향을 줄 수 있다. ...(생략) 개발자 블로그는 다른 블로그와 전달하고자 하는 내용이 다르기 때문에 글을 잘 쓰는 부분은 필요 없다고 생각하였습니다. 하지만 개발 블로그라도 전달하고자 하는 내용의 감정과 생각이 공감을 얻어야 이해가 잘 됩니다. 그런 기술 내용을 알기 쉽게 전달하는 글을 잘 작성하.. 2023. 2. 12.
[회고] 2022년 4분기 2022년 12월 마지막날 4분기 회고를 작성합니다. 2022년 세운 목표 중 하나였던 분기별 회고를 작성하는 목표를 세우게 되어서 한편으로 기쁘네요. 각 회고글은 다음을 통해서 확인할 수 있습니다. 1분기 2분기 3분기 4분기 회고 역시 KPT 를 활용해서 진행해보았습니다. 우아한 형제들 - 기술블로그 : 팀 문화의 탄생 그리고 2분기를 회고하면서 3분기 목표를 다음과 같이 설정하였습니다. 목표 다음 분기전까지 목표는 다음과 같습니다. github 잔디 커밋을 놓치지 않기 위해서 알람을 설정해서 놓치지 않도록 챙기자. 출근 시간에 기술서적 독서를 무조건 하자. 단위 테스트 코드 관련해서 기술서적 독서 우선순위를 최우선으로 하자. 회사에서 모르는 개발 키워드는 markdown 문서에 정리하자. 퇴근 후 .. 2023. 1. 1.
[아이템18] 상속보다는 컴포지션을 사용하라 이 내용은 이펙티브 자바 Effective Java 3/E 를 읽으면서 정리한 내용을 포함하고 있습니다. 상속은 코드를 재사용하는 강력한 수단이지만, 항상 최선은 아닙니다. 잘못 사용하면 오류를 내기 쉬운 소프트웨어를 만들게 됩니다. 상위 클래스와 하위 클래스를 모두 같은 프로그래머가 통제하는 패키지 안에서라면 상속도 안전한 방법입니다. 상속의 문제점 메소드 호출과 달리 상속은 캡슐화를 깨뜨리게 됩니다. 상위 클래스가 어떻게 구현되느냐에 따라 하위 클래스의 동작에 이상이 생길 수 있습니다. public class InstrumentedHashSet extends HashSet { // 추가된 원소의 수 private int addCount = 0; public InstrumentedHashSet() { .. 2022. 9. 18.
[아이템17] 변경 가능성을 최소화하라 이 내용은 이펙티브 자바 Effective Java 3/E 를 읽으면서 정리한 내용을 포함하고 있습니다. 불변 클래스란 간단히 말해 그 인스턴스의 내부 값을 수정할 수 없는 클래스입니다. 불변 인스턴스에 간직된 정보는 고정되어 객체가 파괴되는 순간까지 절대 달라지지 않습니다. 불변 클래스 규칙 객체의 상태를 변경하는 메소드(변경자)를 제공하지 않습니다. 클래스를 확장할 수 없도록 합니다. 상속을 막는 대표적인 방법은 클래스를 final로 선언하는 것입니다. 모든 필드를 final로 선언합니다. 시스템이 강제하는 수단을 이용해 설계자의 의도를 명확히 드러내는 방법입니다. 새로 생성된 인스턴스를 동기화 없이 다른 스레드로 건네도 문제없이 동작하게끔 보장하는 데도 필요합니다. 모든 필드를 private으로 선.. 2022. 9. 18.
[아이템16] public 클래스에서는 public 필드가 아닌 접근자 메서드를 사용하라 이 내용은 이펙티브 자바 Effective Java 3/E 를 읽으면서 정리한 내용을 포함하고 있습니다. 인스턴스 필드들만 모아놓은 값 객체를 작성하는 경우가 종종 있습니다. 인스턴스 필드들만 모아놓은 객체 class Point { public double x; public double y; }이런 클래스는 단점은 다음과 같습니다. 데이터 필드에 직접 접근할 수 있으니 캡슐화의 이점을 제공하지 못합니다. API를 수정하지 않고는 내부 표현을 바꿀 수 없습니다. 불변식을 보장할 수 없으며, 외부에서 필드에 접근할 때 부수 작업을 수행할 수도 없습니다. 철저한 객체 지향 개발자는 이런 클래스를 상당히 싫어해서 필드들을 모두 private으로 바꾸고 public 접근자(getter)를 추가합니다. class .. 2022. 9. 18.
반응형