분류 전체보기(67)
-
[아이템 5] 자원을 직접 명시하지 말고 의존 객체 주입을 사용하라
자원을 직접 명시하지 말고 의존 객체 주입을 사용하라자원을 직접 명시하지 말고 의존 객체 주입을 사용하라 클래스가 내부적으로 하나 이상의 자원에 의존하고 자원이 클래스 동작에 영향을 준다면 싱글턴과 정적 유틸 클래스는 사용하지 않는 것을 권장 자원에 따라 동작이 달라진다면, 자원의 수만큼 인스턴스를 만들어 동작하게 하는 것이 좋음 자원을 직접명시하지 말고 의존 객체 주입을 사용 권장 Spring 과 같은 프레임워크에서 DI의 개념으로 많이 쓰임 사용하는 자원에 따라 동작이 달라지는 클래스에는 정적 유틸리티 클래스나 싱글턴 방식이 적합하지 않다. 아래의 예제는 사전을 단 하나만 사용한다면 좋은 코드 실전에서는 사전은 굉장히 여러 종류가 있으며 (한국어 사전, 영어 사전, 특수 어휘용 사전 등...) 특수 ..
2021.03.23 -
[디자인 패턴] Strategy Pattern
전략 패턴(Strategy Pattern) 객체가 할 수 있는 행위들 각각을 전략(클래스별로 캡슐화)으로 만들어 놓고, 동적으로 행위의 수정이 필요한 경우 전략을 바꾸는 것(필요시 교체)만으로 행위의 수정이 가능하도록 만든 패턴 행위를 클래스로 캡슐화해 동적으로 행위를 자유롭게 바꿀 수 있게 해주는 패턴 전략을 쉽게 바꿀 수 있도록(시스템이 유연하게 변경되고 확장될 수 있도록) 해주는 디자인 패턴 전략 어떤 목적을 달성하기 위해 일을 수행하는 방식, 비니지스 규칙, 문제를 해결하는 알고리즘 등 전략 패턴 구현 1) 전략 생성 public interface MovingStrategy { boolean movable(); } import java.util.Random; public class RandomMo..
2021.03.16 -
Loader
로더(Loader) 웹팩은 모든 파일을 모듈로 인식(Javascript, css, image, 폰트 등) import 구문을 통해 자바스크립트 코드 안으로 가져올 수 있음 타입스크립트 같은 다른 언어를 자바스크립트 문법으로 변환해주거나 이미지를 data URL 형식의 문자열로 변환 이러한 기능이 가능한 이유는 Loader 의 역할 로더 등록 webpack.config.js module.exports = { ... // 로더는 모듈 객체에 rules 에 추가 가능 module: { rules : [ // 객체 선언 { test: /\.js$/, // 로더가 처리해야할 파일들의 패턴(정규 표현식) use: [ // 사용할 로더 명시 path.resolve('./test-loader.js') ] } ] } }..
2020.07.09 -
Webpack - 기본 환경
환경 요건 웹팩으로 빌드한 자바스크립트 로딩 package.json 생성 npm init package.json - bulid script 추가 { "name": "webpack-test", "version": "1.0.0", "description": "", "main": "index.js", "scripts": { "build": "webpack" }, "author": "", "license": "ISC", "devDependencies": { "webpack": "^4.43.0", "webpack-cli": "^3.3.12" } } webpack, webpack-cli 설치 wepback : Module로 연결된 여러개의 자바스크립트 파일을 하나로 합쳐주는 역할(bundle) webpack-cli..
2020.07.07 -
Module 개념
정의 프로그램을 구성하는 내부의 코드가 기능별로 나뉘어져 있는 형태, 어떤 기준을 통해 코드가 분리되어 있는 상황에서 서로를 참조 재사용성과 프로그램 관리 차원의 장점 Module 표준 Module 시스템이 제공되는 환경은 파일을 하나의 모듈로 인식하고 자신의 코드를 외부에서 참조할 수 있게 하거나 다른 Module 로 부터 특정 기능을 사용할 수 있게 해주는 keyword를 제공할 수 있는 환경 Module 을 사용하는 방법은 Module 이 어떤 표준을 따르냐에 따라 달라짐 Module 시스템은 여러가지 존재 CommonJS(Node.js) ESM(ECMAScript 2015 ~) 1. CommonJS(Node.js) Module Keyword: 가져오기 require (모듈의 경로) Module k..
2020.07.07 -
Webpack 개념
Webpack 개념 Webpack은 프로젝트의 구조를 분석하고 자바스크립트 모듈을 비롯한 관련 리소스들을 찾은 다음 이를 브라우저에서 이용할 수 있도록 하나의 파일로 합쳐주는 모듈 번들러(Module Bundler) Module로 연결된 여러개의 자바스크립트 파일을 하나로 합쳐주는 역할(Bundle) 등장 배경 예전에는 웹페이지에서 페이지를 보여주기 위한 수많은 JS 파일을 서버로 요청 파일이 여러개로 분할 되어 있으면 변수 스코프를 생각해서 개발 필요 브라우저가 이해할 수 있는 코드로 변환 작업 필요 Webpack 의 장점 코드 합축 및 최적화 브라우저가 이해할 수 있는 코드로 변환 작업(Babel 을 통한 코드 변환 작업) 모듈 단위 개발 가능 스코프에 신경 쓰지 않고 개발 가독성과 유지 보수 효율 ..
2020.07.07