2016/11
-
마샬링 + 직렬화 + 코드베이스 + 캐시 개념Etc 2016. 11. 17. 13:42
마샬링 - 한 객체의 메모리에서의 표현방식을 저장 또는 전송에 적합한 다른 데이터 형식으로 변환하는 과정이다 - 데이터를 컴퓨터 프로그램의 서로 다른 부분 간에 혹은 한 프로그램에서 다른 프로그램으로 이동해야 할 때도 사용된다. 직렬화 - 직렬화(스트림으로)란 객체를 데이터 스트림으로 만드는 것을 뜻한다. 즉, 객체에 저장된 데이터를 스트림에 쓰기 위해 연속적인 데이터로 변환하는 것을 말한다. 직렬화 적용 분야 직렬화가 적용되는 분야는 구체적으로 다음과 같다. 파일 저장소 (File storage) : 프로그램 실행 중에 생성된 데이터를 영구 저장소(파일 시스템) 등에 저장한 후, 이후에 프로그램이 다시 실행되었을 때 저장된 데이터를 메로리 상에 객체(혹은 구조체) 형태로 복구해 사용한다. 네트워크 통신..
-
켄트 벡의 구현 패턴 - 설계My-Book(History) 2016. 11. 10. 18:53
인터페이스 - 클라이언트에게 제공할 때의 이점은 세부 사항을 가급적 적게 드러낸다. - 클라이언트 클래스가 여러 인터페이스를 동시에 구현할 수 있다. - 여러 개의 연관된 인터페이스를 하나의 클래스에서 구현하는 것은 명확하고 직접적인 커뮤니케이션을 돕는다. 상위클래스 - 상위클래스에 새로운 메소드를 추가해도 호환성에 문제가 발생하지 않는다. - 클라이언트에게 공개되는 상위클래스의 세부 사항은 공용 및 보호 메소드와 필드이다. 하지만 공개되는 내용들은 변화되지 말아야한다. - 가급적 클래스에서 노출하는 세부 사항을 줄여서 인터페이스에서 노출하는 정보 수준에 가깝게 하라 abstract 키워드 - 기본 메소드 구현을 제공해주면 클라이언트가 좀더 쉽게 클래스를 사용할 수 있다. 그러나 상위클래스에 새로운 추상..