목록분류 전체보기 (54)
공부함
[아이템 1] 생성자 대신 정적 팩터리 메서드를 고려하자 정적 팩터리 메서드는 그 클래스의 인스턴스를 반환하는 단순한 정적 메서드다. 장점 1. 이름을 가질 수 있다. 생성자에 넘기는 매개변수와 생성자 자체로는 반환될 객체의 특성을 제대로 설명하지 못한다. 정적 팩터리 메서드는 이름만 잘 지으면 반환될 객체의 특성을 잘 묘사할 수 있다. 2. 호출될 떄마다 인스턴스를 새로 생성하지 않아도 된다. 생성자는 호출될 때마다 인스턴스를 만들어야 하지만, 정적 패터리 메서드는 그렇지 않다. 반복되는 요청에 같은 객체를 반환할 수 있다. 따라서 언제 어느 인스턴스를 살아있게 할지 통제할 수 있다. 이런 클래스를 인스턴스 통제 클래스라 한다. 3. 반환 타입의 하위 타입 객체를 반환할 수 있다. 반환될 객체의 타입을..
네트워크는 복잡한 시스템이고 이것을 계층적으로 나누어 놓았다. 상위 계층일수록 개념적이고 하위 계층일수록 구체적이다. transport layer 까지는 segment가 어떻게(어떤 경로로) 목적지를 향해 가는지는 관심이 없었다. network layer에서는 그 얘기를 해야한다. IP가 그러한 일을 하는 프로토콜이다. 네트워크 계층이 이러한 일을 하므로 라우터에는 phyiscal, link, network 계층까지 존재하는 것이다. nw layer가 하는 일 네트워크 레이어에서는 forwarding과 routing을 진행한다. forwarding은 pkt 헤더의 목적지를 보고, 라우터의 forwarding table에서 그 목적지로 가려면 어느 outgoing link를 선택해야 하는지 보고 그곳으로 ..
http://www.kocw.net/home/cview.do?cid=6166c077e545b736 컴퓨터네트워크 인터넷을 동작시키는 컴퓨터네트워크 프로토폴을 학습한다. www.kocw.net 복습 지금까지 배운 내용을 간단하게 복습한다. persistent http 위와 같은 상황을 가정하고 pipelining 방식을 사용하지 않는다고 해보자. 3way handshake : (k/R+d)*3 (마지막은 http request) http response : (L/R+d) N개의 reference object가 있고, pipelining을 사용하지 않기 때문에 N번의 http response, requeset 필요 : {(k/R+d) +(L/R+d)}*N 위 시간들을 모두 더한 것이다. udp udp는 4개..
http://www.kocw.net/home/cview.do?cid=6166c077e545b736 컴퓨터네트워크 인터넷을 동작시키는 컴퓨터네트워크 프로토폴을 학습한다. www.kocw.net rdt3.0 이용률 Reliable한 Data transfer를 하기 위해서 unreliable한 underline link에서 발생하는 문제점인 packet error, packet loss를 해결해야 한다. 해결하기 위한 rdt에 관해 알아보았다. rdt를 실제로 사용할 수 있을까? rdt를 사용할 수는 있지만 utilization(이용률)이 안좋다. sender는 transmission time (패킷의 모든 비트가 link에 올라타는데 걸리는 시간)동안 일을 하고 패킷이 receiver에게 도착해서 응답이 오..
https://80000coding.oopy.io/21cb57a3-681b-404d-a4ac-8ab0e7289bc0 [JAVA] Sort 사용 (Arrays, Collections) Java’s Sort 80000coding.oopy.io Arrays.sort int[] arr = new int[] {1,5,3,2,4}; Arrays.sort(arr); Integer[] arr2 = new Integer[] {3,4,6,1}; Arrays.sort(arr2); Arrays.sort로 배열을 정렬할 수 있다. 오름차순으로 정렬한다. Integer[] arr2 = new Integer[] {3,4,6,1}; Arrays.sort(arr2,Collections.reverseOrder()); 내림차순으로 정렬하..
http://www.kocw.net/home/cview.do?cid=6166c077e545b736 컴퓨터네트워크 인터넷을 동작시키는 컴퓨터네트워크 프로토폴을 학습한다. www.kocw.net Socket Programming 소켓은 클라이언트 프로세스와 서버 프로세스의 통신을 위한 API다. (OS에서 제공) OS에는 애플리케이션레이어말고도 하위 레이어들이 구현되어있다. 애플리케이션레이어에서는 트랜스포트레이어의 기능을 가져다 사용하고, 따라서 TCP 소켓, UDP 소켓 두 종류 중 하나를 사용하게 된다. 사용하고 싶은 프로토콜에 알맞은 소켓을 사용하면 된다. TCP소켓이 socket_stream, UDP 소켓이 socket_dgram(datagram)이다. 서버 socket : 생성 bind : 소켓을 ..
http://www.kocw.net/home/cview.do?cid=6166c077e545b736 컴퓨터네트워크 인터넷을 동작시키는 컴퓨터네트워크 프로토폴을 학습한다. www.kocw.net 인터넷은 매우 크다. 우리는 그 가장자리 network edge에 있다. 웹 서버 또한 가장자리에 위치한다. 인터넷의 가운데 부분 network core에 위치하는 건 라우터다. 라우터는 메세지를 전달받아서 목적지로 전송하는 일을 한다. 인터넷은 어떤 요소들로 구성되어 있을까? Network Structure network edge 애플리케이션, host network core routers network of networks access networks, physical media communication link..
서론 프로젝트를 진행하며 예외처리에 관해 가은님과 의견차이가 있었다. public enum ErrorCode { INVALID_REQUEST_BODY, SOLUTION_NOT_FOUND, PROBLEM_NOT_FOUND, PROBLEM_LINK_NOT_FOUND, COMMENT_NOT_FOUND, ... 이하생략 } 현재 우리가 사용하는 ErrorCode는 위와 같다. public class SolutionNotFoundException extends NotFoundException { public SolutionNotFoundException() { super(SOLUTION_NOT_FOUND, "풀이를 찾을 수 없습니다."); } } 커스텀한 예외 클래스에서 예외코드를 사용할 때는 위와 같이 예외메세..