stack — 최근 글
최근
Java EcoJava programming
Reflection; Public constructor
Java 클래스의 생성자는 제네릭 클래스인 Constructor 의 인스턴스로 나타낸다 이 객체는 클래스 생성자의 모든 정보를 포함하고 있다. 파라미터의 수 파라미터의 타입 클래스에는 여러개의 생성자가 있을 수 있다. Class.getDeclaredConstructos() : 클래스의 모든 생성자를 반환한다. public이거나 아니거나 상관없이 모두 반환한다. Class.getConstructors() : Public 생성자만 반환한다. 특정 생성자 매개변수 유형을 알고 있는 경우 파라미터의 타입을 나타내는 타입 목록을 전달할 수
FundamentalOOP
오브젝트; 의존성과 전이
작고 응집도 높은 객체란 책임의 초점이 명확하고 한가지 일만 잘 하는 객체를 의미한다. 작은 객체들은 단독으로 수행할 수 있는 작업이 거의 없기 때문에 기능을 구현하기 위해 다른 객체와 협력해야 한다. 그러나 과도한 협력은 다른 객체에 대해 의존하게 된다. 객체지향 설계는 의존성을 관리하는 것이다. 또한 객체가 변화를 받아들일 수 있게 의존성을 정리하는 기술이다. 의존성은 실행 시점과 구현 시점에 서로 다른 의미를 가진다. 실행 시점 : 의존하는 객체가 정상적으로 동작하기 위해서는 실행 시에 의존 대상 객체가 반드시 존재해야 한다.
BlogBook Review
켄트 벡의 Tidy First? - 책 소개
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. 원제 : Tidy First?: A Personal Exercise in Empirical Software Design 저자 : Kent Beck 출간 : O'Reilly Media, 2023 / 한빛미디어, 2024 익스트림 프로그래밍 XP 의 창시자이자 애자일 개발론, TDD 를 주장하는 켄트 벡의 새로운 책이다. Tidy First? 는 방법론이나 기술적인 맥락 보다는 리팩토링에 어떻게 손을 대고 무엇부터 시작하면 좋을지에 대한 길라잡이가 될 수 있을
FundamentalOOP
오브젝트; 절차 추상화와 타입 추상화
타입 : 변수에 저장할 수 있는 내용물의 종류와 변수에 적용될 수 있는 연산의 가짓수를 의미. 안타깝게도 프로시저만으로는 충분히 풍부한 추상화의 어휘집을 제공할 수 없다. 이것은 언어 설계에서 가장 중요한 추상 데이터 타입의 개념으로 우리를 인도한다. 추상 데이터 타입은 추상 객체의 클래스를 정의한 것으로 추상 객체에 사용할 수 있는 오퍼레이션을 이용해 규정된다. 이것은 오퍼레이션을 이용해 추상 데이터 타입을 정의할 수 있음을 의미한다. 추상 데이터 객체를 사용할 때 프로그래머는 오직 객체가 외부에 제공하는 행위에만 관심을 가지며
Java EcoJava programming
Reflection; Class Object
JVM 기능 런타임 동안 클래스와 객체 정보를 추출할 수 있음 Reflection API로 접근 가능 JDK에 포함된 클래스 집합 소스 코드를 수정하지 않고 새로운 프로그램 순서를 만들 수 있음. 실행하고 있는 클래스와 객체에 동적으로 코드 삽입. 실제로 사용하는 곳 로깅 프레임워크 ORM Spring Framework JUnit Jackson @Autowired @Configuration @Bean bean을 정의하고 의존성을 주입하는 과정이 reflection을 통해 이뤄짐. Reflection을 사용해 클래스를 확인하고 필드를
FundamentalOOP
오브젝트; 하향식 기능 분해
STM LTM 인지 과부하 추상화 분해 프로시저 추상화 Procedure abstraction : 소프트웨어가 무엇을 해야 하는지 추상화 기능 분해 Functional decomposition 또는 알고리즘 분해 Algorithm decomposition 데이터 추상화 Data abstraction : 소프트웨어가 무엇을 알아야 하는지 추상화 데이터를 중심으로 타입을 추상화 Type abstraction : 추상 데이터 타입 Abstract data type 데이터를 중심으로 프로시저를 추상화 Procedure abstraction
BlogBook Review
함수형 프로그래밍 with 자바 - 책소개
한빛미디어 <나는 리뷰어다> 활동을 위해서 책을 제공받아 작성된 서평입니다. 원제 : A Functional Approach to Java: Augmenting Object-Oriented Java Code with Functional Principles 저자 : Ben Weidig 출간 : O'Reilly Media, 2023 / 한빛미디어, 2024 모던한 언어들의 대세에 따라 함수형 프로그래밍이 떠오르면서 'Java 에서의 함수형 프로그래밍' 에 대해서도 적지 않은 관심이 있다. Java 가 지원하는 함수형 인터페이스와 스트림
FundamentalOOP
오브젝트; 명령-쿼리 분리
퍼블릭 인터페이스에 오퍼레이션을 정의할때 참고할 수 있는 지침을 제공. 루틴 Routine : 어떤 절차를 묶어 호출 가능하도록 이름을 부여한 기능 프로시저 Procedure : 정해진 절차에 따라 내부의 상태를 변경하는 루틴의 종류. 부수효과를 발생시킴 함수 Function : 어떤 절차에 따라 필요한 값을 계산해서 반환하는 루틴의 종류. 부수효과가 없다. 명령 Command : 객체의 상태를 변경하는 명령은 반환값을 가질 수 없다. 쿼리 Query : 객체의 정보를 반환하는 쿼리는 상태를 변경할 수 없다. 질문이 답변을 수정해서