Java

    직렬화

    그냥 막연하게만 직렬화가 클래스를 바이트 형태로 바꾸는거다 (역직렬화는 그 반대) 정도로만 알고 있었는데 막상 면접때 말하려니 왜 쓰는지도 모르고 그냥 추상적이게 말하니 허접하게 대답할 수 밖에 없었고 당연히 좋은 결과를 얻을 수도 없었다 그래서 한번 정리를 해보고자 포스팅을 남겼다 - 가상메모리주소공간 운영체제에서 메모리 용량보다 큰 프로세스에 대해서 처리를 할 때 사용하는게 가상 메모리인데, 서로 다른 운영체제 마다 가상메모리를 다르게 갖기 때문에 Object 같은 타입의 참조값(주소값) 데이터는 다른 운영체제에 전달해봐도 그 의미가 없어진다. 그래서 메모리 참조하는게 아니라 Byte 형태로 변환된 데이터를 전달하게 되면, 가상메모리 문제를 신경쓰지 않고 참조형 데이터에 대한 처리를 할 수 있게 된다..

    Design Pattern - Adapter Pattern

    본 포스팅의 내용은 아래의 인프런 강의를 참조하여 작성되었습니다. (www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4/dashboard) - Adapter Pattern : 어댑터 라는 것은, 사전적 으로는 "기계나 기계 따위를 다목적 으로 사용 하기 위한 보조 기구 또는 그것을 부착 하기 위한 보조 기구" 로 해석 된다 일상 생활 에서, 해외여행시에 챙겨가는 볼트 변환기 같은 것을 어댑터라고 표현하기도 한다. 즉, 어댑터라는것은 호환이 되지 않는 무언가를 호환이 되게 만들어주는 보조장치라고 볼 수 있다. 디자인 패턴에서의 어댑터 패턴도 어떤 클래스 에서 제공하지 않는 (사용자가 원하는) 기능을..

    Design Pattern - Strategy Pattern

    본 포스팅의 내용은 아래의 인프런 강의를 참조하여 작성되었습니다 (www.inflearn.com/course/%EC%9E%90%EB%B0%94-%EB%94%94%EC%9E%90%EC%9D%B8-%ED%8C%A8%ED%84%B4/dashboard) - Strategy Pattern (전략 패턴) * 정의 : 객체들이 할 수 있는 행위 각각에 대해 전략 클래스를 생성하고, 유사한 행위들을 캡슐화 하는 인터페이스를 정의하여, 객체의 행위를 동적으로 바꾸고 싶은 경우, 직접행위를 수정하지 않고 전략을 바꿔주기만 함으로써 행위를 유연하게 확장시키는 방법. 즉, 서로 다른 객체가 할 수 있는 행위를 '전략' 이라는 단위로 만들어서, 행위의 수정이 필요할때, 전략만 바꿔서 행위를 수정하는 방식을 전략 패턴 (Stra..

    Design Pattern - Overview

    1. What is Design Pattern 디자인 패턴은 소프트웨어 공학론 안의 좋은 코드를 설계하기 위한 일종의 설계 디자인 방법론이다. 디자인패턴에서 좋은 코드라는것은, "설계적인 관점에서 좋은코드" 를 말한다 확장과 수정이 용이하며, 설계 이후에도 추가적인 유지보수 비용이 적게 들어가는것을 디자인패턴에선 좋은 코드라 부른다 객체지향적인 관점에서 볼 때, 이를 기반으로한 설계 방향성은 "객체간의 응집도는 높이고, 결합도는 낮추며, 요구사항 변경시 코드 변경을 최소화 하도록 설계해야한다" 라고 볼 수 있다. 이에 대해서, 객체지향에서는 SOLID 라는 원칙을 제시한다. 2. SOLID Principle : SOLID 원칙이라는것은 객체지향 5대원칙으로도 불리고, 다음의 5가지 원칙들을 의미한다. 1..