초보 코린이의 성장 일지

프로그래밍의 발전? 본문

개인 공부

프로그래밍의 발전?

코오린이 2022. 12. 29. 20:50

C, C++ 언어들의 과정 및 앞으로 나올 방법론? 기법?

C는 절차지향형 프로그램이기도 하지만 함수지향 프로그래밍이다. 위에서 아래로 내려온다는 설명은 맞지만 사실 C++도 위에서 아래로 내려오는 구조이다. 설명이 너무 단순하게 설명되어 구조를 보는데있어 혼란이 올 수도 있다.

 

기능단위 프로그래밍을 시작으로 발전하던 도중 데이터가 방대하게 쌓이기 시작하면서 한계점을 느끼기 시작했다.

이를 방지하고자 "Class"가 탄생하고 객체지향 프로그래밍이 나오게 되었다.

하지만 객체지향도 단점이 있었다. 그게 "상속"이였다 상속이 많아지니 관리가 힘들어지게 되니 결국 기능만을 모아놓은 "CBD"방법이 나오게 되고. CBD는 추가 기능을 제공해준다.

 

애자일 (Agile) 방법론

1. 소프트웨어는 유동적이고 개방적인 특징을 띄고 있으며, 요구사항이 많아지고 변칙적일수록 그 문제들에 대해 즉각적인 대처를 하기가 어렵다. 

 2. 객체지향 기술이 문제들을 어느정도 대처해 주기는 했으나 이러한 발전이 더 필요한다고 느껴 애자일 개발 방법론이 등장하게 되었다.

3. 애자일 방법론은 제한된 시간과 비용이 있는한 불완전하다고 판단하여 뒤에 이어질 과정에서도 좋지 않은 결과를 가져올 수 있다는 전제를 가지고 있다.

4. 애자일 방법론에는 12가지 원칙이 있다. 나중에 잘 찾아보도록 해야겟다.

 

CBD (Component Based Development) 방법론

1. 객체가 아닌 컴포넌트 기반으로 개발을 한다는 의미이다. (객체와 컴포넌트는 실제로 많이 다르다 같다고 생각한다면 이해하기 어려울 수 있다.)

2. CBD 방법론의 취지는 독립적으로 개발을 하고 서로 다른 컴포넌트 간의 상관관계를 줄이기 위해서이다. 즉 연관관계를 줄이자는 의미를 나타낸다.

3. 최대한 모든것을 모듈화 시키고, 재사용성을 높이며, 유지보수의 큰 장점을 가지고 있다.

 

AOP (Aspect Oriented Programming

1. 약자 그대로 관점 지향 프로그래밍이라 불린다.

2. 어떠한 로직을 기준으로 핵심적인 부분 그 부분을 또 세부적으로 나눠 기 관점을 기준으로 모듈화 시키겠다는 의미를 나타낸다. (모듈화 - 기능을 하나의 단위로 묶어서 사용)

3. 결국 단위로 묶어서 모듈화를 한다는 것은 코드들 또한 부분적으로 나눠 모듈화 시키겠다는 뜻이다.

4. 새로운 관점이 AOP는 사실 OOP를 보완하기 위해 나온 하나의 방법이다.

5. 유지보수에도 장점을 가지고 있다.

'개인 공부' 카테고리의 다른 글

OBB 분리축  (0) 2023.01.06
C++ AMP (Accelerated Massive Parallelism)  (0) 2023.01.04
퀵소트 (Quick Sort)  (0) 2023.01.03
데이터베이스 트리거 (DB Trigger)  (0) 2022.12.31
메모리 구조 정리  (0) 2022.12.29
Comments