전체 글(131)
-
좋은 객체 지향 설계의 5가지 원칙 (SOLID)
1. SRP: 단일 책임 원칙(single responsibility principle) 말 그대로 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임에 대한 기준은 모호하고 정의내릴 수 없다. 설계시 응집도는 높게, 결합도는 낮게 설계하면 단일 책임의 원칙을 따를 가능성이 높아진다. 한 클래스에서 다양한 책임을 가지게 되면 그만큼 다른 역할을 수행하는 클래스끼리의 결합될 가능성이 높아지게 되고 이는 곧, 한가지의 변경사항을 위해 여러가지 클래스들을 변경해야할 가능성이 높아져 유지보수에 취약하다. 2. OCP: 개방-폐쇄 원칙 (Open/closed principle) 확장에는 열려 있으나 변경에는 닫혀 있어야 한다 즉, 기능 확장시 기존 소스의 변경없이 확장이 되야한다 이를 위해 인터페이스(역할)와 ..
2021.01.12 -
HTTP 지속연결
1. 비지속 연결 자원 하나 하나 요청건에 대해서 연결을 시도(3 way handshake)하여 요청함. 예를 들어 HTML파일을 하나 요청하여 서버에서 자원을 받았을때, 해당 HTML이 필요로 하는 JS를 다시 요청하기 위해 새로운 연결을 시도하여 JS를 받고, 또 해당 JS가 필요로 하는 이미지를 받기 위해 새로운 연결을 시도하여 이미지를 받고………..계속 자원을 요청할때마다 새로운 연결을 시도하는 방식. 연결시도 횟수가 많아 비효율적. 2. 지속 연결 자원 하나를 요청했을때 이와 묶여있는 모든 자원을 요청하기 위해 연결을 유지한 상태. 클라이언트는 서버에서 응답이 오기전에 자원을 연속적으로 요청할 수 있고 서버는 연속적으로 응답할 수 있다.(파이프라이닝) 연결시도 횟수가 줄어들어 효율적. HTTP ..
2021.01.12 -
STATELESS, STATEFUL
HTTP의 특징중 하나는 STATELESS(무상태)이다. STATELESS — 서버는 클라이언트의 상태를 보존하지 않는다. 장점: 서버 확작성이 높다(스케일 아웃) 단점: 클라이언트의 추가 데이터 전송 STATEFUL 고객(클라이언트) — 아메리카노 주세요. 알바1(서버1) — 아이스로 드릴까요? 따뜻한걸로 드릴까요? 고객(클라이언트) — 아이스로 주세요. 알바1(서버1) — 네 여기 있습니다. 알바1이 고객이 아메리카노를 주문한 사실을 알고 있다. STATEFUL 문제점 — 중간에 서버가 변경되면? 고객(클라이언트) — 아메리카노 주세요. 알바1(서버1) — 아이스로 드릴까요? 따뜻한걸로 드릴까요? 고객(클라이언트) — 아이스로 주세요. 알바2(서버2) — 어떤 음료를 아이스로 드릴까요? 알바2는 고객..
2021.01.12 -
IP, TCP, UDP 간단 정리
TCP/IP 4계층 애플리케이션 계층 — HTTP, FTP 전송 계층 — TCP, UDP 인터넷 계층 — IP 네트워크 엑세스 계층 — Ehternet(이더넷) 1. IP — 인터넷 프로토콜 지정한 IP 주소(IP Address)에 데이터 전달 패킷(Packet)이라는 통신 단위로 데이터 전달 하지만 IP 프로토콜은 패킷의 순서 보장도 할 수 없고 패킷이 중간에 유실되도 이에대한 방안이 없다. 2. TCP — 전송 제어 프로토콜(Transmission Control Protocol) 연결지향 — TCP 3 way handshake (가상 연결) 데이터 전달 보증 순서 보장 신뢰할 수 있는 프로토콜 현재는 대부분 TCP 사용 3. UDP — 사용자 데이터그램 프로토콜(User Datagram Protoco..
2021.01.12 -
자바8 람다식의 사용법과 장단점.
자바8의 람다식이란? 함수형 인터페이스를 구현하는 익명객체를 작성하는 간결해진 작성법. 익명객체를 구현해야하는 하나의 메서드를 간결해진 식으로 표현한다. 람다식 사용법 (매개변수) -> {실행문} 매개변수가 하나일 경우 () 소괄호 생략가능 i -> {i+1} 실행문이 한 줄일 경우 {} 중괄호 생략가능 i -> i+1 매개변수가 두개일 경우 () 소괄호 안에 작성하고 콤마로 구분 (i,j) -> i+j 실행문이 바로 return하는 문장이면 return 생략가능 i -> i+10 람다식의 장점 코드가 간결해짐. 람다식의 단점 단점은 없다.(주관적인 의견) 어떤 사람들은 람다식의 성능상의 문제, 가독성의 문제를 따지는데 성능상의 문제는 정확히 말하면 람다식의 문제가 아니라 람다식으로 표현한 그 실행문의 ..
2021.01.12