목록프로그래밍/JAVA (33)
불로구

인터페이스 분리 원칙 필요하지 않는 요소를 구현하도록 강요하거나 사용하지 않는 요소에 의존하도록 만들면 안된다. 어떤 클래스가 다른 클래스에 종속될 때에는 가능한 최소한의 인터페이스만 사용 인터페이스의 크기를 최소화 한 덩어리의 복잡한 인터페이스를 목적에 따라 구분하여 나눈다 ( 상속 , 위임을 통해) 기존 phone{ call() sms() alarm() } 변경 Call{ call() } Sms{ sms() } Alarm{ alarm() } 의존성 역전 원칙 상위 모듈이 하위 모듈에 종속성을 가져서는 안되며, 양쪽 모두 추상화에 의존해야 한다. 즉, 하위 레벨 모듈의 변경이 상위 레벨 모듈의 변경을 요구하는 구조적 문제에서 발생하는 위계르 끊는 것 실제 사용 관계는 바뀌지 않으며, 추상을 매개로 메시..
SOLID 원칙 소프트웨어를 설계함에 있어 이해하기 쉽고, 유연하며, 유지보수가 편하도록 도와주는 5가지 원칙 단일책임원칙, 개방폐쇄원칙, 리스코프치환원칙, 인터페이스분리원칙, 의존성역전원칙 단일 책임 원칙 ( SRT, Single Responsibility Principle ) 모든 클래스는 단 한가지의 책임을 부여받아, 수정할 이유가 단 한 가지여야 한다. 즉, 클래스에 속해있는 멤버들과 메소드는 모두 공통적으로 하나의 서비스를 위해 필요 적용 방법 각 책임을 각각의 개별 클래스로 분할 분할 후에도 비슷한 책임을 갖고 있다면 부모클래스로 추출 , 필드나 메소드를 옮길 수도 있다. 클래스 이름을 해당 클래스의 책임을 나타낼 수 있도록 작성 SRT 적용 전 class Car{ private String ..
객체지향이란? OOP(Object-Oriented Programming) 컴퓨터 프로그래밍 패러다임 중 하나 필요한 데이터를 추상화 행위를 가진 객체를 만들고, 그 객체들간의 상호작용을 통해 로직 구성을 하는 프로그래밍 방법 객체지향 프로그래밍의 장점? 코드 재사용 : 3rd party Library, 상속을 통해 확장하여 사용 가능! 유지보수 용이 : 수정해야 할 부분이 클래스 내부에 멤버 변수 or 메서드로 있기에 찾기 쉬움 대형 프로젝트 적합성 : 클래스단위로 모듈화 시켜서 개발할 수 있으므로 대형 프로젝트처럼 여러명이 개발하기 좋다 객체지향 프로그래밍의 단점? 처리속도가 상대적으로 느림 : JVM 객체가 많으면 용량이 커진다. 설계시 많은 시간과 노력 필요 객체지향 5가지 키워드 클래스+인스턴스 ..

TCP란? - Server & Client간 신뢰성 있는 연결을 위해 만들어진 프로토콜 - 3 핸드셰이킹을 통한 연결을 통한 연결지향 프로토콜 - 네트워크상에서 데이터가 전달될 때 손실이 발생 시 손실을 검색하고, 재조합 특징 - 신뢰성 : 신뢰성을 위한 적극적 수신 및 통지, 재전송 시스템을 지원 - 흐름제어 : 송신 데이터의 양을 제어하는 매커니즘 구현 - 다중성 : TCP는 한 라우터의 많은 프로세스가 TCP 통신 서비스를 동시에 사용 가능 - 연결지향성 : 3핸드셰이킹을 통한 메시지 교환 - 양방향 : 하나의 전송선로에서 데이터가 동시에 양방향으로 전송 가능 헤더 서버 구현 1. ServerSocket 생성 2. ServerSocket의 accept() 대기 3. 클라이언트의 접속 시도가 있을 경..