전체 글
-
[Design pattern] 행위 패턴Computer Science/Design Pattern 2019. 6. 14. 11:51
행위 패턴 Chain-of-responsibility pattern Command pattern Interpreter pattern Iterator pattern Observe pattern Mediator pattern Memento pattern State pattern Strategy pattern Template method pattern Null object pattern Visitor pattern Chain-of-responsibility pattern 요청을 처리할 수 있는 기회를 하나 이상의 객체에게 부여함으로써 요청하는 객체와 처리하는 객체 사이의 결합도를 없애는 패턴 요청을 해결하는 객체를 만날 때까지 객체 고리를 따라서 요청을 전달한다. 요청을 보낸 쪽하고 받는 쪽을 분리한다. 사슬..
-
[Design pattern] 구조 패턴Computer Science/Design Pattern 2019. 6. 13. 17:44
구조 패턴 Adapter pattern Proxy pattern Decorator pattern Bridge pattern Composite pattern Facade pattern Flyweight pattern Adapter pattern 클래스의 인터페이스를 클라이언트가 원하는대로 변경한다. Adapter는 호환 불가능한 인터페이스 떄문에 협력할 수 없는 클래스들을 협력할 수 있게 한다. 래퍼(Wrapper)로도 불린다. 레거시 시스템을 원하는 인터페이스로 사용 가능케 한다. 어뎁터 패턴 동기 통신 시스템 보안 A 프로토콜 라이브러리 새로운 시스템의 B 프로토콜 구축에 A 라이브러리를 이용 Proxy pattern 특정 객체에 접근을 조절하기 위하여 대리자(프록시)를 둔다. 필요할 때만 비싼 대가의..
-
[Design Pattern] Builder 패턴/Prototype 패턴/Object pool 패턴Computer Science/Design Pattern 2019. 6. 13. 14:04
Builder pattern 생성 인자가 많은 경우 객체 생성 로직을 클래스 밖으로 옮길 필요 서로 연관된 복잡한 생성자를 가지고 있을 때 생성자의 복잡성 비즈니스 룰의 복잡성 한번에 모든 생성 데이터가 없을 때 단계적 생성 package creation.builder; public class NutritionFacts { // TODO private final int servingSize; private final int servings; private final int calories; private final int fat; private final int sodium; public static class Builder { private final int servingSize; private fin..
-
[Design Pattern] Singleton 패턴 / Factory 패턴Computer Science/Design Pattern 2019. 6. 13. 11:55
디자인 패턴이란? 일반적인 설계 문제를 해결하기 위하여 짜여진 상호 협력하는 객체들과 클래스들에 대한 기술 (GoF) 자주 발생하는 설계상의 문제를 해결하기 위한 반복적인 해법 (Smalltalk Companion) 반복되는 구조를 설계할 때 설계를 재활용하는데 초점을 두는데 비하여 프레임워크는 세부 설계와 구현에 초점을 두고 있다. (Coplien & Schmidt) 생성 패턴 Singleton pattern Factory pattern Simple factory pattern Factory method pattern Abstract factory pattern Builder pattern Prototype pattern Object pool pattern Singleton pattern 매우 간단하고..
-
[Java] 람다식Programming Language/Java & Kotlin 2019. 6. 13. 01:05
람다식 (Lambda expression) JDK 1.8 부터 추가 람다식의 도입으로 인해 자바는 객체지향언어인 동시에 함수형 언어가 되었다. 람다식 덕분에 함수형 언어의 장점들을 자바에서도 누릴 수 있게되었다. 람다식이란? 람다식은 메서드를 하나의 식(expression)으로 표현한 것이다. 메서드를 람다식으로 표현하면 메서드의 이름과 반환값이 없어지므로, 람다식을 익명 함수(anonymous function)이라고도 한다. 모든 메서드는 클래스에 포함되어야 하므로 클래스도 새로 만들어야 하고, 객체도 생성해야만 비로소 이 메서드를 호출할 수 있다. 그러나 람다식은 이 모든 과정없이 오직 람다식 자체만으로도 이 메서드의 역할을 대신할 수 있다. 람다식은 메서드의 매개변수로 전달되어지는 것이 가능하고, ..
-
[Git] git config 설정Computer Science/Git 2019. 5. 29. 19:42
git config 설정 (계정 설정하기) Git을 설치하고 나면 Git 의 사용 환경을 적절하게 설정해주어야만 합니다. 한번만 설정하면 설정한 내용은 git을 업그레이드해도 유지됩니다. 언제든지 명령어를 이용하여 설정을 변경할 수 있습니다. git 설정 파일 /etc/gitconfig 파일: 시스템의 모든 사용자와 모든 저장소에 적용되는 설정입니다. 이 파일을 읽고 쓰고 싶으면 git config --system 옵션을 사용합니다. ~/.gitconfig 파일: 특정 사용자에게만 적용되는 설정입니다. 이 파일을 읽고 쓰고 싶으면 git config --global 옵션을 사용합니다. .git /config: 이 파일은 Git 디렉토리에 있고 특정 저장소(혹은 현재 작업 중인 프로젝트)에만 적용됩니다. ..
-
[Git] Git 되돌리기 Reset & RevertComputer Science/Git 2019. 5. 16. 13:41
이미 커밋한 버전을 취소하는 방법 Git Reset SourceTree 에서 되돌리고 싶은 버전을 선택하고 마우스 우클릭을 누른다. Reset current branch to this commit 을 선택한다. Using mode 에서 'Hard - discard all working copy chages'를 선택하고 OK를 누른다. 선택한 버전 이후의 모든 버전이 삭제되고, 현재 커밋하지 않은 내용, stage에 올려놓은 내용 전부 삭제된다. (working copy의 상태도 변경됨) 이 기능은 조심해서 다루어야 한다. 되돌린 버전 이후의 버전들은 삭제하면서, working copy의 상태는 아직 커밋하지 않은 상태로 유지하고 싶다면, 이때도 reset을 사용한다. sourceTree에서 되돌리고 싶은..
-
[React] 배열 데이터 렌더링 및 관리React 2019. 5. 6. 23:53
자식 컴포넌트가 부모한테 값 전달하기 App 컴포넌트 내부에서 handleCreate 라는 메소드를 만든다. 그 메소드를 우리가 만든 자식 컴포넌트에게 props로 전달한다. props로 전달한 함수를 호출시켜서 data 값이 App으로 전달된다. 배열에 데이터 삽입하기 information 배열을 만든다. 리액트에서는 불변성을 중요시하기 때문에 concat을 사용하여 새로운 배열을 만들어 대입한다. JavaScript 배열 내장함수 map map이라는 내장함수는 배열을 특정함수를 사용하여 전체적으로 변환해주고 싶을 때 사용한다. 배열 렌더링, key ['a', 'b', 'c', 'd'] 라는 내용을 가지고 있는 배열이 있다고 가정해보자. '..