목록Tech (20)
포도가게의 개발일지
chap 1. 1. 객체 설계 모듈이란? - 크기와 상관없이 클래스 형태, 패키지 형태, 라이브러리 형태로 프로그램을 구성하는 임의의 요소 - 모듈은 세가지 목적이 있으며 첫번째 : 정상 작동 되어야 한다. 두번째 : 변경을 위해 존재 -> 쉽게 변하기 위해서는 객체가 자율적이어야 한다. -> 책임을 각자 가진다. 세번째 : 의사소통이 가능하여야 한다. -> 코드가 직관적(? 상식적 or 일반적)이어야 한다. 객체지향의 목표는? - 서로 의존하면서 협력하는 객체들의 공통체를 구축하는 것 -> 의존성을 없애는게 아니라 불필요한 의존성을 없애는것이다! - 때문에 변경이 쉽기 위해서 최소한의 의존만 남기고 불필요한 의존성을 버려야 한다. - 의사소통이 쉽다는거는 직관적(? 상식적)이어야 한다는 것이다. -> ..
toBe vs toEqual vs toStrictEqual toBe - 비교 대상이 기본형(primitive type)이라면 두 원시 값이 같은지 비교하고, 오브젝트(object type)라면 같은 오브젝트에 대한 참조(동일한 메모리)인지를 비교(Shallow compare)한다. toEqual - 기본형인 경우 toBe와 같이 두 값이 같은지 비교하지만, 대상이 오브젝트인 경우 재귀적으로 프로퍼티를 비교하며 깊은 비교(Deep compare, 내용물 확인)를 수행한다. toStrictEqual - 깊은 비교를 하는 것은 toEqual과 동일하지만, undefined인 프로퍼티까지 비교한다. Jest CLI detectOpenHandles - 열려있는 리소스를 모두 닫아줍니다 forceExit - 테스트..
Docker? - 도커는 컨테이너 기반의 오픈소스 가상화 플랫폼입니다. 컨테이너? 배에 실는 네모난 화물 수송용 박스, 각각의 컨테이너 안에는 다양한 내용물을 넣을 수 있고 규격화되어 컨테이너선이나 트레일러등 다양한 운송수단으로 쉽게 옮길 수 있습니다. 서버에 입장에서 프로그램, 런타임 환경을 컨테이너로 추상화하여 어디서든 실행 가능하게 만들어준다. why? - 이미지는 컨테이너 실행에 필요한 파일과 설정값등을 포함하고 있는 것으로 immutable 하다. 컨테이너는 즉 이미지를 실행한 상태이며 추가되거나 변하는 값은 컨테이너에 저장됩니다. 같은 이미지에서 여러개의 컨테이너를 생성(실행)할 수 있고 컨테이너의 상태가 바뀌거나 컨테이너가 삭제되더라도 이미지는 변하지 않고 그대로 남아있습니다. 즉 우리가 다..
레디스(Redis)는 Remote Dictionary Server의 약자로 Key/Value 형식의 in-memory 데이터베이스로 비관계형 데이터베이스인 NoSQL에 속한다. 디스크가 아닌 메모리에 데이터를 저장하므로 빠른 Read와 Write 속도를 보장해준다. 레디스의 다른 장점으로는 다른 in-memory 데이터베이스인 Memcached와는 다르게 String, List, Set, Sorted Set, Hash 등 다양한 자료구조를 지원한다. Why? 디스크가 아닌 메모리에 데이터를 저장하므로 빠른 Read와 Write 속도를 보장해준다. 자주접근하고 덜 자주 바뀌는 데이터를 메모리에 저장하여 더 빠르게 데이터를 얻기 위해(서버가 여러 대인경우 서로 다른 데이터를 가지게 될 수 도있기에 이용한다...