본문 바로가기

CS(Computer Science)

(18)
구조 패턴(Structual patterns) 어댑터 패턴(Adapter Pattern) 어댑터 패턴 : 연관성 없는 두 객체 묶어 사용하는 패턴 (알고리즘을 요구사항에 맞춰 사용할 수 있음) ex) 한 객체의 함수를 다른 객체에서 원하는 형태로 쓸 수 있게 Adapter에서 그에 맞게 변경해서 보내줌 ex - A객체 interface를 B가 호출하는 interface에 맞게 adapter에서 변경해줌 브릿지 패턴(Bridge Pattern) 브릿지 패턴 : 기능과 구현을 따로 만들고 이들을 연결 시키는 것이 목적 (Adapter 처럼 연결 시켜주는 역할이지만 bridge pattern 은 미리 독립적인 진화를 고려한 상태로 만든 것이고 Adapter는 이미 존재하는 두 인터페이스의 불일치를 해결하려는 것이다. (기억 ex-모스부호 - 소리 문자 등..
생성 패턴(Creational patterns) 싱글톤(Singleton) 싱글톤 : 클래스에서 하나의 인스턴스만 생성하도록 구현 하는 것 public class singleton { private static singleton instance; private singleton() {} public static singleton getInstance() { if(instance==null) { instance=new singleton(); } return instance; } } - 기본생성자를 private으로 정의 -> 다른 class에서 생성을 못함. 내부에서만 가능 - 외부에서 생성자가 아니라 함수로 생성하게 함, instance없으면 만들어서 반환하고 이미 있으면 그대로 반환 - getInstance함수는 외부에서 인스턴스화 없이 바로 사용해..
안드로이드 스튜디오(Android Studio) View : 화면에 보이는 각각의 것들, layout, control 이나 위젯(버튼 ,text view 등)등이라 불리는 UI구성 요소 View Group : 뷰들을 포함하는 것(ex - constraint layout) drawble폴더 : 이미지 주로 drawble에 저장 (drawble xml 파일로 이미지 만들거나 상태에 따른 이미지 설정 가능) scrollView -> layout을 넣어서 활용가능 레이아웃 인플레이션 : XML 레이아웃에 정의된 내용이 메모리에 객체화되는 과정(setContentView()) (부분화면 inflation은 직접 LAYOUT_INFLATER_SERVICE를 이용) ex) ( inflater.inflate(R.layout a,container,true) -> a ..
4. Link Layer(링크 계층) Link Layer는 홉에서 홉까지 사이에서 발생하는 전송 층이라고 생각하면 된다. [MAC(multiple access protocol)] 홉 사이, subnet 안에서는 기본적으로 broadcast medium을 통해 신호가 퍼지기 때문에 충돌이 나지 않게 전송해주는 프로토콜이 필요하다. 그것이 MAC이다. 1. channel partitioning (절대 충돌은 발생하지 않음) TDMA(time division multiple access) : 시간을 나누어 본인의 시간에만 전송하는 방법(한 사람만 전송하는 경우 비효율) FDMA(frequency division multiple access) : 주파수를 나누어 본인의 주파수로 전송한는 방법(안 쓰이는 주파수 낭비) 2. random access(..
3. Network Layer(네트워크 계층) Transport Layer까지는 단말끝에서 발생하는 상황만 생각하면 되었다. 하지만 Network Layer부터는 이제 라우터로 인해 패킷이 전송되는 과정을 알 수 있다. 즉 모든 라우터는 Network Layer의 기능을 보유하고 있다. 라우터들은 ip를 확인하여 목적지까지 패킷들을 전송해야하기 때문에 Network Layer의 기능을 가지고 있다. forwarding -> forwarding table를 보고 패킷을 다음 라우터로 전송하는 과정 routing -> routing algorithm을 이용해 forwarding table를 만드는 과정 - 현재 ip주소는 ipv4를 사용하고 총 32bit이다. - ip주소에는 network주소와 host주소로 표기되며 subnet mask를 이용하여 n..
2. Transport Layer(전송 계층) 기능 multiplexing -> 여러 소켓의 메시지를 하나의 통로로 내려보냄 demultiplexing ->메시지를 분류해서 해당 소켓으로 올려줌(port 넘버 이용) (udp는 destination port 번호만 보고 demultiplexing진행) checksum -> 오류있는지 확인 , 오류 있으면 drop 주요 기능 - reliable data transfer(유실 없이 순서대로 전송)(buffer에 순서대로 저장) -> 재전송, sequence number , timer 등 - flow control -> 상대방의 능력에 맞게 제어 - congestion control -> 네트워크 상태에 따라 제어 - udp기능 모두 포함 -> 단 tcp의 demultiplexing 경우 source ip..
1. Application Layer(어플리케이션 계층) - http 통신은 단방향 연결 , socket 통신은 연결을 지속하는 양방향 연결 Socket : 네트워크에 연결된 장치간의 프로세스끼리 데이터를 송수신 할 수 있게 우체통 역할을 한다. (OS에서 제공하는 인터페이스, system call) -tcp 전용 소켓, udp 전용 소켓이 있음. 1. socket() -> 소켓을 연다, udp 혹은 tcp 선택. 2. bind() -> (주소와 )포트번호를 할당. 3. listen() -> 서버 전용 명시 4. accept() -> 외부로 부터의 메시지를 기다림. 5. read() , write() -> 데이터를 읽거나 씀. 1. socket() 2. connect() -> 상대방의 소켓과 연결,(상대방 ip주소와 port number를 매개변수로) 3. r..
(시작 전에) 네트워크 기본 - 출발지부터 목적지 까지 전용회선을 예약해서 데이터를 보냄 (전용회선으로 데이터 송수신)(ex -전화) - 전용회선 역할이라 다른 사용자가 동시에 사용할 수 없음. -packet이라는 데이터로 쪼개서 데이터를 보냄. -한 선을 여러사용자가 이용할 수 있음. processing delay - 라우터가 패킷을 분류하는 시간 -> 라우터 성능 향상을 통해 개선 가능 queuing delay - 먼저 도착한 패킷들이 빠질 때까지를 기다리는 시간 -> 군중심리에 따라 변해서 개선 힘듦 transmission delay - 데이터가 처음부터 마지막 비트까지 뿜어져 나가기까지 걸리는 시간 -> bandwidth를 늘려 개선 propagation delay - 데이터가 선을 지나가는 데 걸리는 시간(한 라우터에서 다..