본문 바로가기

분류 전체보기11

[재테크] 24년 1월 포스팅 정리 https://m.blog.naver.com/hoddy0604/223351072707 24년 1월 포스팅 정리 경제, 재테크 IRP 계좌? KBIRP 계좌를 만들어야 하는 이유와 개설 방법(연말정산 세액공제) 편한 ... blog.naver.com 24월 1월 포스팅정리 2024. 2. 12.
[스프링 핵심 원리 - 고급편] 6. 프록시 패턴으로 데이터 캐싱하기 [스프링 핵심 원리 - 고급편] 6. 프록시 패턴 프록시 패턴 - 정의 프록시 패턴에 대해 정리하기 전에 프록시(Proxy)라는 개념부터 설명드리겠습니다. 일반적으로 컴퓨터공학, IT, 프로그래밍 분야에서 프록시라는 개념은 대리자 또는 대리인이라는 뜻으로 누군가에게 어떤 일을 시킬 때 중간에 프록시를 통해 대신시키는 것을 말합니다. 위와 같이 일반적으로 Client(요청하는 곳)에서 Server(요청을 받아 처리하는 곳)를 직접 호출하고 처리 결과를 받습니다. 여기에서 클라이언트가 요청한 결과를 서버에 직접 호출하는 것이 아니라 어떤 대리자를 통해 간접적으로 호출하는 경우가 있습니다. 이 경우 대리자 역학을 하는 곳을 프록시라고 합니다. 위의 개념을 Java의 객체에 도입하면 클라이언트는 요청하는 객체이.. 2024. 1. 18.
[스프링 핵심 원리 - 고급편] 5. 템플릿 콜백 패턴 [스프링 핵심 원리 - 고급편] 5. 템플릿 콜백 패턴 템플릿 콜백 패턴 - 정의 템플릿 콜백 패턴은 이전 포스팅에서 설명드린 전략 패턴의 변형된 형태, 혹은 확장된 형태의 패턴입니다. 전략 패턴의 기본적인 구조에 변경되는 코드 부분(전략, 동작)을 매번 클래스로 만들지 않고 익명 내부 클래스로 사용하는 패턴을 말합니다 패턴의 이름이 템플릿 콜백인데 여기서 전략 패턴의 변하지 않는 로직인 컨텍스트가 템플릿 역할을 하고 변경되는 로직인 전략이 콜백으로 넘어오기 때문에 붙여진 이름입니다. 전략 패턴에서 템플릿 콜백 패턴으로 용어를 변경하면 다음과 같습니다. Strategy Pattern → Template Callback Pattern Context → Template Strategy → Callback 프.. 2024. 1. 7.
[스프링 핵심 원리 - 고급편] 4. 전략 패턴으로 유연하게 동작 변경하기 [스프링 핵심 원리 - 고급편] 4. 전략 패턴 전략 패턴 - 정의 다수의 책과 문서에서는 전략 패턴을 다양하게 정의하고 있습니다 1. 행위에 대한 전략 클래스를 각각 생성하고, 유사한 행위들을 캡슐화하는 인터페이스를 정의한다. 객체의 행위를 변경할 때 직접 행위를 수정하지 않고 전략을 변경함으로써 행위를 유연하게 확장하는 방법을 말한다. 2. 변하지 않는 부분을 "Context" 라는 곳에 두고, 변하는 부분은 "Strategy"라는 인터페이스를 만들고 해당 인터페이스를 구현하여 위임으로 문제를 해결하는 것이다. 3. 알고리즘 제품군을 정의하고 각각을 캡슐화하여 상호 교환 가능하게 만들자. 전략을 사용하면 알고리즘을 사용하는 클라이언트와 독립적으로 알고리즘을 변경할 수 있다. 4. 런타임 중에 알고리즘.. 2024. 1. 3.
[스프링 핵심 원리 - 고급편] 3. 템플릿 메서드 패턴으로 중복 코드 제거하기 [스프링 핵심 원리 - 고급편] 3. 템플릿 메서드 패턴 템플릿 메서드 패턴 - 정의 다수의 책과 문서에서는 템플릿 메서드 패턴을 다음과 같이 정의하고 있습니다. 1. 알고리즘의 골격을 정의하고 일부 단계를 하위 클래스로 연기하는 것 2. 부모 클래스에서 알고리즘의 골격을 정의하고 자식 클래스들에서 오버라이드를 이용해 특정 단계를 개발하는 패턴 3. 상속을 통해 슈퍼 클래스의 기능을 확장할 때 사용하는 방법, 변하지 않는 기능은 슈퍼클래스에 만들어 두고 자주 변경되며 확장할 기능은 서브 클래스에서 만드는 패턴 4. 변하지 않는 기능은 슈퍼클래스에 만들어두고 자주 변경되며 확장할 기능은 서브클래스에서 만들도록 하는것 공통적인 내용만 정리하면 변하지 않는 전체 흐름은 부모 클래스에 정의하고 중간에 변경되는 .. 2023. 12. 28.
[Java] 스트림(Stream) [Java] 스트림(Stream) 정의 스트림은 통상적으로는 시내, 물줄기 등을 의미합니다. Java에서 스트림은 "데이터 처리 연산을 위해 데이터소스(컬렉션, 배열)에서 출력된 연속된 요소"라고 할 수 있습니다. Java8에서 추가된 기능으로 순회하는 연산을 복잡한 반복문(for, while 등)대신 간결한 함수형으로 표현할 수 있습니다. 또한 쓰레드를 이용한 병렬처리(Parallel)를 쉽게 구현할 수 있고, 많은 요소를 빠르게 처리할 수 있습니다. 특징 Java의 I/O Stream과 이름은 스트림으로 동일하나 전혀 다른 개념이다. 다양한 자료구조, 데이터소스(Map, Set, Array)를 동일한 방식으로 처리할 수 있다. 데이터를 담는 저장소(컬렉션)가 아닌 데이터 처리 과정을 의미한다. 원본 .. 2023. 1. 30.