전체 글 46

Proxy Pattern

Proxy ? Proxy는 우리말로 대리자, 대변인 이라는 뜻. 구체적으로 인터페이스를 사용하고 실행시킬 클래스에 대한 객체가 들어갈 자리에 대리자 객체를 대신 투입해 클라이언트 쪽에서 실제 실행시킬 클래스에 대한객체를 통해 메서드를 호출하고 반환 값을 받는지, 대리자 객체를 통해 메서드를 호출하고 반환 값을 받는지 전혀 모르게 처리하는 것입니다. 프록시는 흐름제어만 할 뿐 결과값을 조작하거나 변경시키면 안됩니다. Proxy Pattern 특정 객체에 대한 접근을 제어하거나 기능을 추가할 수 있는 패턴 초기화 지연, 접근 제어, 로깅, 캐싱 등을 다양하게 응용해 사용 할 수 있다. 장점 기존 코드를 변경하지 않고 새로운 기능을 추가할 수 있다. 기존 코드가 해야 하는 일만 유지할 수 있다. 기능 추가 및..

호이스팅, var 과 let 차이

호이스팅 JavaScript 에서 호이스팅 ( hoisting ) 이란, 인터프리터가 변수와 함수의 메모리 공간을 선언 전에 미리 할당하는 것을 의미. var 로 선언한 변수의 경우 호이스팅시 undefined 로 변수를 초기화 한다. 반면, let 과 const 로 선언한 변수의 경우 호이스팅시 변수를 초기화하지 않습니다. function catName(name) { console.log("제 고양이의 이름은 " + name + "입니다"); } catName("호랑이"); /* 결과: "제 고양이의 이름은 호랑이입니다" */ 기술 예제 : 일반적은 코드 사용 예제 catName("클로이"); function catName(name) { console.log("제 고양이의 이름은 " + name + "..

간단용어 2022.01.01

동작 파라미터화 코드 전달하기

동작 파라미터 ( behavior parameterization ) 동작 파라미터를 이용하면 자주 바뀌는 요구 사항에 효과적으로 대응할 수 있다. 동작 파라미터화란 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록을 의미한다. 동작 파라미터화란 아직은 어떻게 실행할 것인지 결정하지 않은 코드 블록을 의미한다. 예를 들어 나중에 실행될 메서드의 인수로 코드 블록을 전달할 수 있다. 결과적으로 코드 블록에 따라 메서드의 동작이 파라미터화된다. 예를 들어 컬렉션을 처리할 때 다음과 같은 메서드를 구현하고자 가정하자. 리스트의 모든 요소에 대해서 '어떤 동작을 '을 수행할 수 있음 리스트 관련 작업을 끝낸 다음에 '어떤 다른 동작'을 수행할 수 있음 에러가 발생하면 '정해진 어떤 다른 동작'을 수행할 수 있음

EFFECTIVE JAVA 2021.10.19

stream()

살펴볼 내용 생성하기 배열 / 컬렌션 / 빈 스트림 Stream.builder() / Stream.generate() / Stream.iterate() 기본 타입형 / String / 파일 스트림 병렬 스트림 / 스트림 연결하기 가공하기 Filtering Mapping Sorting Iterating 결과 만들기 Calculating Reduction Collecting Matching Iterating 스트림 ( Streams ) 자바8 에서 추가된 스트림(Streams) 은 람다를 활용할 수 있는 기술 중 하나입니다. 자바8 이전에는 배열 또는 컬렉션 인스턴스를 다루는 방법은 for 또는 for-each 문을 돌면서 요소 하나씩을 꺼내서 다루는 방법이었습니다. 로직이 복잡해 질수록 코드의 양이 많아져..

JAVA 2021.07.21

6 주차 - 패키지

학습 내용 package 키워드 import 키워드 접근제어자 클래스패스 CLASSPATH 환경변수 -classpath 옵션 패키지 클래스를 구분짓는 폴더 개념 자바는 패키지의 가장 상위 디렉토리 ( root ) 에서 실행해야한다는 약속이 있기 때문에 해당 패키지로 가서 컴파일 하지 않는다. 소스에 가장 첫 줄에 있어야하고, 패키지 선언은 소스 하나에 하나만 있어야 한다. 패키지 이름과 위치한 폴더의 이름이 같아야 한다. 패키지 이름을 java 로 시작하면 안된다. 모든 클래스에는 정의된 클래스 이름과 패키지 이름이 있다. 이 둘을 합쳐야 완전하게 한 클래스를 표현한다고 할 수 있으며, FQCN ( Fully Qualified Class Name ) 이라고 한다. 패키지 이름 명명 규칙 패키지 이름은 모..

Live-Study 2021.06.21

4 주차 - 클래스 ( Class )

클래스와 객체 클래스는 객체지향 프로그래밍 ( Objec - oriented programming ) 에서 객체를 생성하기 위해 상태 ( State ) 와 행동 ( Behavior ) 을 정의하는 일종의 설계도이다. 여기서 객체란 어플리케이션의 기능을 구현하기 위해 서로 협력하는 개별적인 실체로써 물리적일 수도 있고 개념적일 수도 있다. 객체지향의 4대 특성 ( 추상화, 캡슐화, 상속, 다형성 ) 을 통해 프로그램 개발 및 유지보수를 더욱 쉽고 빠르게 할 수 있을 것이다. 클래스 선언 클래스 이름은 다른 클래스와 식별할 수 있어야해서 다음과 같은 자바 식별자 규칙에 따라 만들어야 한다. 1) 클래스명은 자바 메소드명과 다르게 첫글자를 대문자로 표현한다. 여러 단어가 혼합되면 CamelCase 를 따른다...

Live-Study 2021.04.27

[1] Spring Framework

- 자바 플랫폼을 위한 오픈소스 애플리케이션 프레임워크로서 스프링(Spring)이라고 불린다. 1. 스프링이란 ? 흔히 스프링이라 부르지만 '스프링 프레임워크 ( Spring Framework ) '라고 하는 것이 정확한 표현이다. 자바( JAVA ) 엔터프라이즈 개발을 위한 '오픈소스 ( Open Source )' 애플리케이션 프레임워크 - Open Source : 소프트웨어 혹은 하드웨어 제작자의 권리를 지키면서 원시 코드를 누구나 열람할 수 있도록 한 소프트웨어, 오픈 소스 라이선스에 준하는 모든 통칭을 일컫는다. - Framework : 개발할 때 설계 기본이 되는 뼈대나 구조 / 환경 종속 객체를 생성해주고, 조립할 수 있는 프레임 워크 자바 SE로 된 자바 객체(POJO)를 자바 EE에 의존적..

JAVA/Spring 2021.04.20

스택(Stack), 큐(Queue)

스택(STACK) 스택은(stack) 이란 쌓아 올린다는 것을 의미. 따라서 스택 자료구조라는 것은 책을 쌓는 것처럼 차곡차곡 쌓아 올린 형태의 자료 구조를 말한다. * 특징 스택은 위의 사진처럼 같은 구조와 크기의 자료를 정해진 방향으로만 쌓을 수 있고, TOP 으로 정한 곳을 통해서만 접근할 수 있다. 스택은 시간 순서에 따라 자료가 쌓여서 가장 마지막에 추가된 자료가 가장 먼저 삭제된다는 구조적 특징을 가지고 있다. 이러한 스택의 구조를 후입선출 ( Last - In , First - Out ) 구조라고 한다. 큐 ( QUEUE ) queue 의 사전적 의미는 줄, 혹은 줄을 서서 기다리는 것을 의미한다. 놀이동산에서 줄을 서서 기다리듯, 은행에서 먼저 온 사람의 업무를 차욱에서 처리하는 것과 같이..

간단용어 2021.03.28

HashSet

HashSet HashSet 은 Set 인터페이스의 구현 클래스 입니다. 그렇기에 Set의 성질을 그대로 상속받습니다. Set은 객체를 중복해서 저장할 수 없고 하나의 Null 값만 저장할 수 있습니다. 또한 저장 순서가 유지되지 않습니다. 만약 요소의 저장 순서를 유지해야 한다면ㄴLinkedHashSet 클래스를 사용해야 한다. Set 인터페이스를 구현한 클래스로는 HashSet 과 TreeSet 이 있는데, HashSet의 경우 정렬을 해주지 않고 TreeSet 의 경우 자동정렬을 해준다는 차이가 있다. Set의 가장 큰 장점은 중복을 자동으로 제거해준다는 점입니다. Set은 비선형 구조이기에 순서가 없으며 그렇기에 인덱스도 존재하지 않습니다. 그렇기에 값을 추가하거나 삭제할 때에는 내가 추가 혹은 ..

간단용어 2021.03.28