📝오늘 공부한 것
- 객체지향 프로그래밍
- 대용량 트래픽 발생 시 대응방법
알게 된 점❗
✔ 객체지향 프로그래밍(Object-Oriented Programming, OOP) :
- 프로그래밍에서 필요한 데이터를 추상화시켜 상태와 행위를 가진 객체를 만들고 그 객체들 간의 유기적인 상호작용을 통해 로직을 구성하는 프로그래밍 방법
객체지향 프로그래밍의 특징은 캡슐화, 상속, 다형성, 추상화이다.
캡슐화 :
- 속성(필드)와 기능(메서드)를 하나로 묶어 객체로 만든 후 실제 내부 구현 내용은 외부에서 알 수 없게 감추는 것을 의미한다.
- 외부 객체에서는 캡슐화된 객체의 내부 구조를 알 수 없기 때문에 노출시켜 준 필드 혹은 메서드를 통해 접근할 수 있다.
- 필드와 메서드를 캡슐화 하여 숨기는 이유는 외부 객체에서 해당 필드와 메서드를 잘못 사용하여 객체가 변화하지 않게 하는데 있다.
- Java에서는 캡슐화된 객체의 필드와 메서드를 노출시킬지 감출지 결정하기 위해 접근제어자를 사용한다.
상속 :
- 객체지향 프로그래밍에는 부모 객체와 자식 객체가 존재한다.
- 부모 객체는 가지고 있는 필드와 메서드를 자식 객체에 물려주어 자식 객체가 이를 사용할 수 있도록 만들 수 있다.
이 같은 행위를 상속이라고 할 수 있는데 상속을 하는 이유는 다음과 같다.
- 각각의 객체들을 상속 관계로 묶음으로써 객체 간의 구조를 파악하기 쉬워진다.
- 필드와 메서드를 변경하는 경우 부모 객체에 있는 것만 수정하게 되면 자식 객체는 전부 반영이 되기 때문에 일관성을 유지하기 좋다.
- 자식 객체가 부모 객체의 필드와 메서드를 물려받아 사용할 수 있기 때문에 코드의 중복이 줄어들며 코드의 재사용성이 증가된다.
다형성 :
- 객체가 연산을 수행할 때 하나의 행위에 대해 각 객체가 가지고 있는 고유한 특성에 따라 다른 여러가지 형태로 재구성되는 것을 의미한다.
추상화 :
- 객체에서 공통된 부분들을 모다 상위 개념으로 새롭게 선언하는 것을 추상화하고 한다.
장점 :
- 클래스 단위로 모듈화시켜서 개발하기 때문에 업무 분담이 편리하고 대규모 소프트웨어 개발에 적합하다.
- 각자 독립적인 역할을 가지기 때문에 코드의 변경을 최소화하고 유지보수를 하는데 편리하다.
- 코드의 재사용을 위해 반복적인 코드를 최소화하고, 코드를 최대한 간결하게 표현할 수 있다.
단점 :
- 처리속도가 상대적으로 느리다.
- 객체의 수가 많아짐에 따라 용량이 커질 수 있다.
- 설계시 많은 시간과 노력이 필요하게 될 수 있다.
https://jeong-pro.tistory.com/95
✔ 대용량 트래픽 발생 시 대응 방법
Load Balancing(로드밸런싱) :
- 로드밸런서를 사용하여 트래픽을 여러 서버로 분산시킨다. 이를 통해 부하를 고르게 분산처리하여 서버 과부화를 방지한다.
- 로드밸런싱을 해주는 소프트웨어 혹은 하드웨어 장비를 로드밸런서라고 한다.
Scale Up :
- 고성능 CPU, 메모리 확장, SSD 등 서버의 스펙을 높이는 수직 확장 방식
CDN(콘텐츠 전송 네트워크) :
- 데이터 사용량이 많은 애플리케이션의 웹 페이지 로드 속도를 높이는 상호 연결된 서버 네트워크이다. CDN은 클라이언트와 웹 사이트 서버간에 중간 서버를 두어 효율성을 높인다. 이로인해 페이지 로드 시간 단축, 대역폭 비용 절감, 콘텐츠 가용성 제고, 웹 사이트 보안 강화 등의 이점이 있다.
비동기 처리 :
요청 처리를 동기적이 아닌 비동기적으로 처리하여 응답 시간을 단축시킬 수 있다. 큐잉 시스템을 활용하여 작업을 비동기적으로 처리할 수 있다.
이외에도 코드 리펙토링, 샤딩 등이 있다.
https://aws.amazon.com/ko/what-is/cdn/
'TIL(Today I Learned)' 카테고리의 다른 글
TIL-230812(항해99 실전 프로젝트-행동대장(9)) (0) | 2023.08.12 |
---|---|
TIL-230811(항해99 실전 프로젝트-행동대장(8)) (0) | 2023.08.11 |
TIL-230809(항해99 실전 프로젝트-행동대장(7)) (0) | 2023.08.09 |
TIL-230808(HTTP, HTTPS) (0) | 2023.08.08 |
TIL-230807(항해99 실전 프로젝트-행동대장(6)) (0) | 2023.08.07 |