본문 바로가기
반응형

전체 글34

이펙티브 자바 - 아이템2. 생성자에 매개변수가 많다면 빌더를 고려하라 이펙티브 자바(Effective java) 를 읽고 정리한 글입니다.  정적 팩터리 메서드, 생성자는 선택적 매개변수가 많을 때 적절한 대응을 하기 어렵다는 제약을 가진다.  물론 점층적 생성자 패턴(telescoping constructor pattern)을 사용할 수 있지만, 매개변수 개수가 증가하면 클라이언트 코드를 작성하거나 읽기 어려워진다. 또한 타입이 같은 매개변수의 순서를 바꾸는 등 개발자가 실수하기 쉽다. 다른 방법으로 setter를 사용하는 자바빈즈 패턴 방식이 있지만, 객체를 생성하기 위해 다수의 메서드를 호출해야 하고, 객체 생성 전까지 일관성이 유지되지 않는다. 즉, 객체의 불변성이 유지되지 않는다. 빌더 패턴(builder pattern)은 점층적 생성자 패턴의 안전성과 자바빈즈 .. 2024. 8. 13.
이펙티브 자바 - 아이템1. 생성자 대신 정적 팩터리 메서드를 고려하라. 이펙티브 자바(Effective java) 를 읽고 정리한 글입니다. 클래스는 생성자와 별도로 정적 팩터리 메서드(static factory method)를 제공할 수 있다. 정적 팩터리 메서드는 단순히 클래스의 인스턴스를 반환하는 정적 메서드이다. 그 예시로 우리가 자주 사용하는 boolean 타입 의 박싱 클래스인 Boolean 의 일부 코드를 보면 쉽게 이해할 수 있다.public static Boolean value0f(boolean b) { return b ? Boolean. TRUE : Boolean. FALSE; } 그럼 이제 정적 팩터리 메서드는 어떤 특징을 가지는지 알아보자.장점정적 팩터리 메서드의 장점은 아래와 같다. 1. 이름을 가질 수 있다.생성자는 그 자체만으로 반환될 객체의 특성.. 2024. 8. 12.
우아한테크코스 5기 백엔드 합격 후기 참고로 블로그를 이전하여 2022년 12월에 작성한 글을 옮겨왔다.  개요우아한테크코스 5기에 합격했다.부족한 점이 많아서 합격보다는 경험하는 것에 의미를 두고 시작했는데 감사하게도 합격하게 됐다.좋은 기회 주셨으니 열심히 해봐야겠다.어쨌든 그 간의 과정을 기록해보려고 한다. 지원 서류Q. 고등학교/대학교 전공을 포함하여 프로그래밍 교육 이력을 작성해 주세요. (200자 이내)참여했던 부트캠프와 기간을 기재 Q. 프로그래밍 학습 과정은? (1000자 이내)전공자가 아니기 때문에 먼저 왜 프로그래밍을 하게 되었는지에 대해 작성했다.그동안 공부한 방법을 적었다.더 잘 이해하기 위해 스터디 개설하고 참여한 것부트캠프에서 기본 개념 배운 것혼자 개발 서적과 강의를 통해 공부한 것전체적으로 왜 그 방법을 썼고, .. 2024. 8. 10.
API 문서화 - RestDocs 와 Swagger 함께 사용하기 개요API 문서화 도구인 RestDocs와 Swagger 는 장단점이 매우 명확하다. Swagger는 어노테이션을 추가해서 빠르게 API 명세를 작성할 수 있고, 웹 UI와 API 테스트를 제공하는 매우 큰 장점이 있다. 하지만 애플리케이션 코드에 API 명세 목적의 코드가 추가되기 때문에 다소 지저분해질 수 있다. RestDocs는 테스트 코드 작성을 통해 API 명세를 작성할 수 있다. 테스트 코드를 강제하고, 애플리케이션 코드 (비지니스 로직) 과 명세 목적의 코드를 분리할 수 있다는 장점이 있다. 하지만 일부 문서를 수동으로 작성해야 한다. 나는 RestDocs가 테스트 기반으로 문서를 생성하기 때문에 신뢰성을 높일 수 있어서 좋았다. 그리고 애플리케이션 코드와 명세 목적 코드가 섞이는 것이 싫어.. 2024. 8. 8.
반응형