stack — 최근 글
최근
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 : 객체의 정보를 반환하는 쿼리는 상태를 변경할 수 없다. 질문이 답변을 수정해서
EngineeringLinux
Ansible 기본 문법
Loops — Ansible Documentation Using Variables — Ansible Documentation 기본적으로 yml 문법 호출시 ansible.builtin.copy module – Copy files to remote locations — Ansible Documentation ansible.builtin.command module – Execute commands on targets — Ansible Documentation
FundamentalOOP
오브젝트; 디미터 법칙
퍼블릭 인터페이스의 품질에 영향을 미치는 원칙과 기법 디미터 법칙 묻지 말고 시켜라 의도를 드러내는 인터페이스 명령-쿼리 분리 디미터 법칙 낯선 자에게 말하지 마라. 오직 인접한 이웃하고만 말하라. 오직 하나의 도트만 사용하라. 클래스 내부의 메서드가 아래 조건을 만족하는 인스턴스에만 메시지를 전송하도록 프로그래밍해야 한다. this 객체 메서드의 매개변수 this의 속성 this의 속성인 컬렉션의 요소 메서드 내에서 생성된 지역 객체 부끄럼타는 코드 Shy code : 불필요한 어떤 것도 다른 객체에게 보여주지 않으며, 다른 객체
BlogThink
2024 1Q 분기정리
사람 답게 살기 시작함 익숙한 도메인의 깊이가 요구되는 엔지니어링 3개월 수습에서 정직원 전환 완료 하여 이직 최종 확정. 대기업빅테크유니콘 정리해고임금삭감구조조정 시대에 경력이직 성공을 축하하는 부분. 👏 6시 to 2시 생활 그만 두니까 좀비에서 다시 사람 비스무리한 것이 되는 중. 건강한 조직 문화의 제대로된 동료들과 행복한 생활하는 중 OpenStack 2014년에 한번 만났다 잊어버리고, 2017년에 다시 만나고 나서 잊었다가 2024년에 또 만났다 이쯤되면 이것과 나의 관계는 운명의 데스티니, 애증의 츤데레? 그땐 단순
FundamentalOOP
오브젝트; 메시지와 인터페이스
객체지향 프로그래밍에서 어플리케이션이 클래스의 집합으로 구성된다는것은 오해다. 클래스라는 구현 도구에 지나치게 집착하면 경직되고 유연하지 못한 설계에 이를 수 있다. 좋은 객체지향 코드를 얻기 위해서 클래스가 아닌 객체를 지향해야 한다. 이는 곧 협력 안에서 객체가 수행하는 책임에 초점을 맞춰야 한다. 책임은 객체가 수신할 수 있는 메시지의 기반이 된다. 메시지는 객체 사이의 협력을 가능하게 하는 매개체다. 객체가 다른 객체에게 접근할 수 있는 유일한 방법은 메시지를 전송하는 것뿐이다. 협력 안에서 메시지를 전송하는 객체를 클라이언