카테고리: Develop

0

Java Garbage Collection (1)

GC가 하는일 Heap 내에서 사용되지 않는 Object를 찾는다 해당 메모리를 회수한다 들어가기 전에… 용어정리 STW(Stop The World) : JVM이 GC를 실행하는 Thread를 제외한 나머지 모든 Thread를 멈추는것 Reachable : 어떤 객체 유효한 참조가 있을때 Unreachable : 어떤 객체에 유효한 참조가 없을때 Root

0

Java Garbage Collection (2)

Old GC Serial GC Parallel GC Parallel Old GC CMS GC (Concurrent Mark & Sweep GC) G1 GC (Garbage First GC) Serial GC Young 영역에서는 기본적인 GC 동작방식을 그대로 따름 Old 영역에 대해서 mark-sweep-compact 알고리즘을 이용 해당 G

0

React boilerplate 만들기

React + babel + webpack 으로 boilerplate 생성 정리 프론트 알 못이라… 이번 기회에 각 용어와 셋팅 방법을 정리해보려고 한다 목차 들어가기 전에.. 프로젝트 생성 webpack 설치 bebel 설치 webpack 설정 react webpack plugin 추가 들어가기 전에.. webpack 이란? js 파일을 하나로

0

SpringBoot에 Multi Data Source 적용하기

DataSource 설정123456789101112// application.yml// DB를 나누기 위해, 메모리 디비를 두개 띄운다app.datasource.blue: url: jdbc:h2:mem:blue username: sa password: app.datasource.green: url: jdbc:h2:mem:green username:

0

SOLID - 의존관계 역전 원칙 (DIP)

Dependency inversion principle 상위레벨 모듈이 하위레벨 모듈에 의존하면 안된다. 상위/하위 모듈 모두 추상화에 의존해야 한다. 추상화는 구현체를 의존하면 안된다. 중요한점 OO의 핵심이다. IoC를 통해 상위래밸의 모듈을 하위레벨 모듈로 부터 보호하는 것이다. 이를 통해 OCP를 지키고, 새로운 요구사항을 반영 가능 예제 l

0

SOLID - 인터페이스 분리 원칙 (ISP)

Interface segregation principle 클라이언트는 자신이 사용하는 메서드에만 의존해야 한다. 사용하지 않는 의존성을 갖고 있다면 인터페이스 변경시 재컴파일/빌드/배포가 필요하므로 독립적인 개발/배포 불가능 사용하는 기능만 제공하도록 인터페이스를 분리하여, 사이드이펙트 최소화 클라이언트 입장에서 인터페이스를 분리 흔하디 흔한 스타크래

0

SOLID - 리스코프 치환 원칙 (LSP)

Liskov substitution principle 상위타입 객체를 사용하는 프로그램은 상위타입 대신 하위타입 객체를 사용해도 클라이언트의 수정 없이 정상적으로 동작해야 한다. LSP 위반 사례 명세에 벗어난 값 리턴 명세에 벗어난 익셉션 발생 명세에 벗어난 기능 수행 instanceof / downcasting을 사용한것은 전형적인 LSP 위반 LS

0

SOLID - 개방 폐쇄 원칙 (OCP)

Open-closed principle 확장에는 열려 있고 변경에는 닫혀 있어야 한다. (변화하는 부분을 추상화하여) 기능에 대한 변경/확장이 쉬워야한다. (확장 : 새로운 타입을 추가) 기능을 사용하는 코드는 고정된 추상(abstract, interface)에 의존하므로 소스코드의 수정이 이뤄지면 안된다. OCP를 위배하는 전형적인 특징 다운 캐스팅

0

SOLID - 단일 책임 원칙 (SRP)

Single responsibility principle 클래스는 하나의 책임만 가지며 클래스는 그 책임을 완전히 캡슐화 해야 한다. 여러 책임을 갖고 있는 DataViewer 클래스1234567891011121314151617181920212223// 개발자가 반드시 정복해야 할 객체 지향과 디자인패턴(106page 예제)class DataViewer

0

Design Pattern - 행동패턴 (2)

7.Observer 객체 사이에 1:N 의존관계를 맺고있으며, 한 객체의 상태가 변경되면 의존적인 다른 모든 객체들에게 통지하여 상태를 갱신할 수 있는 패턴 구조{: .center-image} 활용 두개의 추상화 개념이 있고 하나가 다른 하나에 대해 종속적일때, 각각을 별도의 객체로 캡슐화하여 재사용할 수 있음 한 객체에 변경으로 인해 다른 객체를 변경해