나를 기록하다
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
[객체지향의 사실과 오해] 6장. 객체 지도
Review/Book 2023. 10. 13. 18:00

[예시] 여행 중 다른 마을로 이동해야 하는데 길을 모를 때 두 가지 방법 첫 번째, 지나가는 사람에게 마을까지 가는 길 묻기 "이 길을 따라 5km 정도 직진하면 강이 나온다. 강둑을 따라 남쪽으로 2km 이동하면 작은 야산이 나온다. 약수터 가는 길을 따라 산을 넘으면 마을이 나온다." 사람들이 올바른 길을 알려주고 지시를 올바르게 따른다면 원하는 마을로 이동 가능 일반적이지 않고 재사용이 불가능 강이나 산과 같은 랜드마크가 없다면 경로 설명에 어려움 설명만으로 경로 찾기 어려움 →기능적이고 해결지향적인 접근법 두 번째, 지도에 표시된 길을 따라가기 지도는 실세계의 지형을 기반으로 만들어진 추상화된 모델 길을 찾는 데 필요한 풍부한 컨텍스트 정보가 함축 길을 찾는 데 필요한 모든 정보가 지도 안에 포..

article thumbnail
[객체지향의 사실과 오해] 5장. 책임과 메시지
Review/Book 2023. 10. 7. 00:30

객체가 어떤 행동을 하는 유일한 이유는 다른 객체로부터 요청을 수신했기 때문이다. 요청을 처리하기 위해 객체가 수행하는 행동을 책임이라고 한다. 따라서 자율적인 객체란 스스로의 의지와 판단에 따라 각자 맡은 책임을 수행하는 객체를 의미한다. 자율적인 책임 책임이 자율적이어야 하는 이유 객체에게 할당되는 책임이 자율적이어야 한다. 책임이 자율적이지 않다면 객체가 아무리 발버둥친다고 하더라도 자율적으로 책임을 수행하기 어렵다. [예시] 첫 번째 협력 모자 장수는 왕에게 증언할 책임은 있지만 증언을 위한 구체적인 방법이나 절차에 대해서는 최대한의 자유를 누린다. 두 번째 협력 상세한 수준의 책임은 증언이라는 협력의 최종 목표는 만족시킬지 몰라도 모자 장수가 누려야 하는 선택의 자유를 훼손한다. 결과적으로 두 ..

profile on loading

Loading...