ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 질문 정리 ( Front-end vs Back-end vs Full stack / 소프트웨어 공학 방법론 )
    면접 준비/소프트웨어공학 2018. 11. 21. 15:28

    1. Front-end vs Back-end vs Full stack


    Front-end

    HTML, CSS, Javascript, Android 등등을 다루는 개발자가 속한다. 사용자가 직접 눈으로 보는 영역을 다루다보니 UI/UX 디자이너, 웹 디자이너도 front-end 를 담당한다고 할 수 있다. 이를 기능적으로 구현해내는 것을 개발자가 담당한다.


    Back-end :

    서버, DB 등을 담당하는 경우를 생각할 수 있다. 서버관리, DB관리, back-end로 보통 나누어 서버 담당자가 서버를 구성하고 관리하고, DB 담당자가 DB 설계하고 관리하면 back-end에서는 코딩을 담당한다.


    Full stack

    쉽게 Front-end와 Back-end가 합쳐진 것을 말한다.


    2. 소프트웨어 공학 방법론


    폭포수 모델 :

    SW공학이 초창기에는 순차적으로 수행할 것을 주장했다. 왜냐하면 대규모 SW 시스템의 개발과정에서 변화가 허용된다면 많은 위험이 따르게 된다는 생각 때문이었다. 그 결과 SW 엔지니어는 설계 시작 전에 시스템에 대한 명세가 완료되어야 하며, 마찬가지로 구현이 시작되기 전에 설계가 완료되어야 한다고 주장하게 되었다. 이러한 개발 방식이 폭포수 모델이다.

    즉, 개발 과정이 한 방향으로만 진행된다는 점에 착안된 이름이다.


    점진적 모델

    SW 시스템은 점진적으로 구축되는데, 먼저 최종 제품의 기능 중 일부만을 갖는 단순화된 버전이 구축된다. 

    이 버전에 대해 테스트를 수행하고 잠재적 사용자의 평가를 거친 다음, 기능만 추가하고 다시 테스트하는 일이 시스템이 완성될 때까지 점진적으로 이루어진다.


    반복형 모델 :

    점진적 모델과 비슷한 부분이 있다. 점진적 모델이 제품의 각 예비 버전을 확장하여 더 큰 버전을 만들어간다고 하면, 반복형 모델은 각 버전을 재구축한다는 개념을 가지고 있다. 현실적으로 점진적 모델은 대개 반복형 과정을 이용하며, 반복형 모델은 종종 점진적 결과를 산출한다.


    점진적 및 반복형 방식의 다른 방식 

    - 프로토타이핑

    점진적 모델과 반복형 모델은 때로 프로토타이핑이라는 방식을 이용하는데, 이 방식에서는 프로토 타입이라는 제안 시스템의 미완성 버전을 구축하고 평가한다. 

    점진적 모델에서는 (진화적 프로토타이핑이)라는 과정을 통해 완성된 최종 시스템으로 발전

    반복형 모델에서는 최종 설계를 구현하면서 프로토타입을 버리는 (폐기형 프로토타이핑) 방식 -> 단기 프로토타이핑 

    - 공개 소스 개발

    예 ) 리눅스 운영체제, 리눅스 토발즈가 먼저 시작하였다. 


    기민성 방법 (Agile method) :

    폭포수 모델과 가장 반대되는 방식으로 변화하는 요구사항에 맞추어 점진적으로 신속한 조기 구현을 제공하며 엄격한 명세와 설계를 강조하지 않는다.


    예 ) XP (extreme programming)

    공통의 공간을 사용하는 10명 이내의 개발자로 이루어진 팀이 자유롭게 생각을 공유하고 개발 프로젝트에서 서로를 돕는 방식으로 소프트웨어를 개발한다. 

    즉, 기민성 방법의 가장 중요한 특성은 유연성이며, 이는 프로그래머와 관리자들이 전체 소프트웨어 개발 업무 중 각자 자신의 맡은 일을 독립적으로 수행하는 폭포수 모델과 대조적이다. 

Designed by Tistory.