나를 기록하다
article thumbnail
[Effective Java 3/E] 2. 생성자에 매개변수가 많다면 빌더를 고려하라
Review/Book 2023. 10. 24. 19:00

정적 팩토리와 생성자에 선택적 매개변수가 많을 때 적절히 대응하기 어렵다 정적 팩토리 메서드와 생성자의 공통된 제약 → 선택적 매개변수가 많을 때 적절히 대응하기 어려움 [예시] 식품 포장의 영양정보를 표현하는 클래스 영양정보 필수항목: 1회 내용량, 총 n회 제공량, 1회 제공량당 칼로리 등 선택항목: 총 지방, 트랜스지방, 포화지방, 콜레스테롤, 나트륨 등 → 대부분 제품은 이 선택 항목 중 대다수의 값이 0 → 프로그래머들은 이럴 때 점층적 생성자 패턴(telescoping constructor pattern)을 즐겨 사용했다. 점층적 생성자 패턴이란? 필수 매개변수만 받는 생성자, 필수 매개변수와 선택 매개변수 1개를 받는 생성자, 선택 매개변수를 2개까지 받는 생성자, ・・・ 형태로 선택 매개변..

article thumbnail
[테코톡] Stream - 스트림, 알고 쓰자!
Review/Techotalk 2023. 10. 24. 00:30

Stream이란? 정의 모던 자바 인 액션 - 스트림은 데이터처리 연산을 지원하도록 소스에서 추출된 연속된 값 요소이다. 이것이 자바다 - 스트림은 컬렉션의 요소를 하나씩 참조해 람다식으로 처리할 수 있는 반복자이다. → 스트림은 데이터 컬렉션 반복을 멋지게 처리하는 기능이다! Stream을 사용하는 이유 [예시] 연봉이 1억이 넘는 직장인들의 평균 연봉 구하기 BEFORE JAVA 8 int sum = 0; int count = 0; for(Employee emp : emps) { if (emp.getSalary() > 100_000_000) { sum += emp.getSalary(); count++; } } double average = (double) sum / count; 자바 8이 나오기 전에..

article thumbnail
[Effective Java 3/E] 1. 생성자 대신 정적 팩토리 메서드를 고려하라
Review/Book 2023. 10. 23. 18:00

정적 팩토리 메서드(static factory method) public 생성자 - 클라이언트가 클래스의 인스턴스를 얻는 전통적인 수단 클래스는 생성자와 별도로 그 클래스의 인스턴스를 반환하는 정적 팩터리 메서드 제공 가능 [예시] boolean 기본 타입의 박싱 클래스(boxed class)인 Boolean에서 발췌한 간단한 예 기본 타입인 boolean에서 값을 받아 Boolean 객체 참조로 변환 public static Boolean valueOf(boolean b) { return b ? Boolean.TRUE : Boolean.FALSE; } 여기서 나오는 정적 팩토리 메서드는 디자인 패턴에서의 팩토리 메서드(Factory Method)와 다르다. 클래스가 클라이언트에 public 생성자 대신..

article thumbnail
[객체지향의 사실과 오해] 7장. 함께 모으기
Review/Book 2023. 10. 15. 01:30

코드와 모델을 밀접하게 연관시키는 것은 코드에 의미를 부여하고 모델을 적절하게 한다. - 에릭 에반스 객체지향 설계 안에 존재하는 세 가지 상호 연관된 관점 개념 관점(Conceptual Perspective) 설계는 도메인 안에 존재하는 개념과 개념들 사이의 관계를 표현 도메인은 사용자들이 관심을 가지고 있는 특정 분야나 주제를 말하며 소프트웨어는 도메인에 존재하는 문제를 해결하기 위해 개발 사용자가 도메인을 바라보는 관점을 반영 실제 도메인의 규칙과 제약을 최대한 유사하게 반영하는 것이 핵심 명세 관점(Specification Perspective) 사용자의 영역인 도메인의 개념이 아니라 실제로 개발자의 영역인 소프트웨어 안에서 살아 숨쉬는 객체들의 책임에 초점 객체의 인터페이스를 바라보게 됨 프로그..

article thumbnail
[테코톡] MVC 패턴
Review/Techotalk 2023. 10. 14. 21:00

자바 MVC 패턴을 공부하면서 저번에 시청한 적이 있지만 정리를 하지 않았기에 복습 겸 우아한테크 유튜브에 올라와있는 테코톡 MVC 패턴을 시청하고 정리하려 한다. 테코톡엔 양질의 자료가 많으니 CS에 관심이 있다면 듣는 것을 추천한다. MVC는 왜 생겨난걸까? 과거의 프로그래머들은 수많은 프로그램을 만들었다. 코드가 많아질수록 복잡해져 코드가 파악하기 힘들고 기능을 수정할 때마다 대부분의 코드를 갈아엎어야 하는 경우가 많았다. 즉, 유지보수가 어려웠다. 계속 코드를 짜다보니, 특정 코드 구성에서 유지보수의 편리성을 발견했다. 이러한 규칙성을 조금씩 찾고 패턴을 공식처럼 만들어 논문으로 발표하게 됐고, 많은 프로그래머들의 사랑을 받아 오늘날의 MVC 패턴이 생겨나게 되었다. MVC는 유지보수가 편해지는 ..

article thumbnail
[TIL-40/231013] 객체지향의 사실과 오해, 스트림, MVC
TIL 2023. 10. 14. 00:30

오늘의 회고 오늘은 오전에는 병원 관련 서류와 우아한테크코스 지원 서류를 마무리하고 오후에 도서관에서 공부를 했다. 집에서 32인치 모니터와 16인치 보조 모니터를 쓰면서 넓은 화면으로 공부를 하다가 16인치 맥북과 11인치 아이패드만으로 공부를 하면 불편할 것이라 생각을 했는데 오히려 집중이 훨씬 잘 되었다. 이제까지 집에서 하는 것이 최선이라 생각했던 나의 오판이었다. 집에서 나름 열심히 공부한다고 생각해도 좁고, 주방이나 침실이 분리되어 있지 않은 자취방이다보니 꽤 산만했는데 도서관에서 공부를 하니 도서관에 있는 모든 시간 집중이 잘 돼서 너무 만족스럽고, 취업 준비를 하면서 앞으로는 밖에서 공부를 해야겠다고 마음을 먹었다. 현재는 횡문근 융해증이라는 병 때문에 운동을 못하고 있지만 완전히 회복을 ..

profile on loading

Loading...