DevBoi

잡다한 기술 지식 9 본문

[Computer Science]

잡다한 기술 지식 9

HiSmith 2021. 7. 27. 11:10
반응형

직렬화(serialization)란?

자바에서 입출력을 할때 스트림이라는 통로를 통해, 데이터가 이동한다.

객체는 바이트형이 아니라서 파일에 저장 하거나 네트워크로 전송이 불가하다

따라서 객체를 스트림을 통해 입출력 하려면, 바이트 배열로 변환해야 하는데, 이를 직렬화라고 한다.

반대는 역직렬화

 

박싱과 언박싱이란?

박싱은 기본 자료형을 wrapper class로 바꾸어주는 것을 박싱 반대를 언박싱이라고 한다.

 

 

Synchronized(동기화)란?

동기화는 여러개의 쓰레드가 하나의 자원에 접근하려 할때 주어진 순간에 단 하나의 쓰레드만 접근 가능하도록 하는것이다. 둘 이상의 쓰레드가 공동의 자원을 공유하는 경우, 순서가 잘 맞추어 다른 쓰레드가 자원을 사용하고 있는 동안

한 쓰레드가 절대 자원을 변경 할수 없도록 한다. 여러 쓰레드가 동시에, 한 자원을 수정하면, 문제 발생

Synchronized(동기화)를 하기 위한 방법

synchronized 함수를 만들거나, 블록 사용, 블록은 한 쓰레드가 자원을 사용중일때, 다른 쓰레드가 접근하지 못하도록 막는것

 

객체 지향적 설계 원칙의 종류

SRP : 단일 책임 원칙  =  클래스는 단 하나의 책임을 가져야하며 클래스를 변경하는 이유는 단하나의 이유여야 한다ㅓ.

OCP : 개방 폐쇄 원칙 : 변경에는 닫혀있고, 확장에는 열려있어야 한다.

LSP : 상위 타입의 객체를 하위 타입의 객체로 치환해도, 상위 타입을 사용하는 프로그램은 정상 동작 해야한다.

ISP : 인터페이스는 그 인터페이스를 사용하는 클라이언트 기준으로 분리해야한다.

DIP : 의존 역전 원칙, 고수준 모듈은 저수준 모듈에 의존해서는 안된다.

 

 

반응형