개발공부

중간 간단정리

pumaclass 2024. 8. 30. 13:42

1. 객체 지향 프로그래밍이란?

 

객체 지향의 특징은 크게 4가지로 분류 할 수 있다.

캡슐화

캡슐화란 외부에서 해당 클래스를 잘못사용하는것을 방지하기 위해 접근제어자로 필드나 매서드를 숨기는것을 의미한다.

 

상속

부모클래스와 자식클래스를 구분하여 사용하는것을 의미한다.

부모의 매서드를 자식이 물려받아 사용할 수 있다.

 

추상화

객체에서 공통된 부분들을 모아 상위 개념으로 새롭게 정의하는것.

추상화 된 매서드는 반드시 하위 객체에서 구현해야한다.

 

다형성

각각의 고유한 매서드를 상위클래스에서 새롭게 정의하여 여러가지 형태로 재구성하여 사용하는것.

 

2. restful한 API 설계의 장점은?

http 기반으로 제작되며 restful api의 자원은 즉 데이터이다.

restful Api는 crud를 직관적으로 보여줌으로써 가독성이 증가하고 자원을 효율적으로 관리하게 된다.

따라서 가독성이 좋아지고 협업이 쉬워진다.

 

Post

자원을 생성하기 위해 사용한다.

Get

자원을 조회하기 위해 사용한다.

Put

자원을 업데이트하기 위해 사용한다.

Delete

자원을 삭제하기 위해 사용한다.

 

3. 적절한 관심사 분리가 필요한 이유는?

코드의 유지보수성을 위해 하나의 클래스는 하나의 일을 맡겨야 한다.

한가지 클래스가 여러가지 일을 하게 된다면 가독성도 떨어지고 향후 수정이 필요할때 혼란을 겪기 때문이다.

 

4. setter를 무분별하게 사용하면 안되는 이유는?

적절하게 사용한다면 의도에 부합하는 기능을 하지만 setter를 무분별하게 사용하게 되면 클래스의 캡슐화가 깨지게 된다.

이는 public과 다름 없는 상태가 되며 객체의 불변화 원칙도 깨지게 된다.

 

setter를 무분별하게 사용하면 의도치 않은 동작을 하게 될 가능성이 높아지며 불안정해진다.

 

5. RDBMS와 NoSQL이란?

RDBMS는 스키마 기반으로써 테이블 구조로 데이터를 저장하며 데이터의 무결성과 일관성을 보장한다.

테이블 간에 외래키를 통해 관계를 가질 수 있다.

성능을 업그래이드 하기 위해선 해당 서버 자체를 업그레이드 해야하며 서버를 수평적으로 늘리는것에는 한계가 있다.

 

NoSQL은 RDBMS와 상반되는 성격을 지니고 있으며 스키마가 없고 테이블이 없으며 키와 값으로 데이터를 관리한다.

서버를 수평으로 추가하는것에 특화되어있다.