[도서] 아는 만큼 보이는 백엔드 개발 - Ch3.백엔드 개발 언어와 프레임워크

곽동현·2024년 2월 23일
0

Chapter3 : 백엔드 개발 언어와 프레임워크

📌목차

3-1) 프로그래밍 패러다임

3-2) 백엔드 개발 언어

3-3) 백엔드 프레임워크

3-4) 백엔드 개발 언어와 프레임워크 선택 방법



✅ 내용정리

프로그래밍 패러다임의 종류에 대해 설명해주세요.

먼저 프로그래밍 패러다임이란, 프로그래밍에 있어서 문제를 해결하는 데 사용하는 기본적인 철학이나 접근방식을 말한다.
다양한 방법론들이 나온 가운데, 대표적으로는 아래 4가지가 있다.

  • 명령형 프로그래밍
  • 절차지향 프로그래밍 : 위에서 아래로 흐르는 것 처럼 모든 코드가 정해진 순서대로 실행된다.
    • 장점 : 실행속도가 빠르다.
    • 단점 : 유지보수 , 디버깅이 어렵다. (10만 줄짜리 코드에 새로운 기능을 추가하려면 하나씩 추적해야함..!)
    • 언어 : C
  • 객체지향 프로그래밍 : 실세계를 모델링하여 프로그램을 개발하는 방법론. 사물의 본질을 속성기능으로 정의한다.
    • 장점 : 재사용성 / 생산성 향상 / 유지보수 쉬움 / 자연적 모델링
    • 단점 : 개발속도 더딤 / 실행속도 느림 / 코딩난이도 상승
    • 언어 : JAVA / Python / C++ / C# 등
  • 함수형 프로그래밍 : 요즘 하드웨어의 발전에 따라, 떠오르는 방법론이다.

객체지향 프로그래밍의 주요 특징을 설명해주세요.

주요 특징은 크게 아래 4가지다.

  • 추상화 : 공통적인 속성기능을 추출하여 이름을 붙이는 과정이다.
  • 캡슐화 : 속성기능을 하나의 캡슐로 묶는 것을 의미하며, 외부로의 노출을 제어하기 위함이다.
    즉 필요한 인터페이스만 노출시키는 것을 의미한다.(정보 은닉)
  • 상속 : 기존 상위 클래스의 속성과 기능을 가져다가 하위 클래스에서 재사용하는 것을 의미한다.
  • 다형성 : 상속과 연관이 있는 개념으로 한 객체가 다른 여러형태(객체)로 재구성 되는 것을 말한다.

인터프리터 방식와 컴파일 방식의 차이점은 무엇인가요?

소스 코드를 기계어로 변환하여 실행하는 방식에는 인터프리터, 컴파일 2가지 방식이 존재한다.
인터프리터 방식은 소스코드를 한 줄씩 읽고 그 즉시 기계어로 변환하여 실행하고,
컴파일 방식은 소스 코드를 한꺼번에 읽고 한번에 변환시켜 실행파일을 따로 저장해서 실행한다.

자바의 특징을 설명해주세요.

크게 4가지가 특징이 될 수 있다.
1. 자바 가상 머신인 JVM을 통해서 실행된다. -> 다양한 운영체제 환경에서 실행가능하다.
2. 대부분의 데이터를 객체로 구성한다.
3. 모든 메모리의 접근을 자바 시스템이 관리하고 제한한다. -> 가바지컬렉션
4. 멀티스레드를 쉽게 구현 가능하다.

라이브러리와 프레임워크의 차이점은 무엇인거요?

먼저 라이브러리는 개발하는데 필요한 기능을 미리 구현해놓은 코드의 모음이라 볼 수 있으며,
프레임워크는 이름그대로 뼈대를 의미하며, 개발에 필요한 뼈대와 같은 일정한 형태와 기능을 제공하는 틀을 의미한다.
둘이 비슷해보이지만 프로그래밍 작성 방식에 차이를 두고있다.

  • 라이브러리 : 개발자가 코드의 흐름을 직접 제어 가능하다. (개발자가 직접 틀을 구성하고 필요한 기능 호출)
  • 프레임워크 : 개발자가 주어진 코드의 흐름속에서 프로그래밍 가능하다. (이미 짜여진 틀 안에서 활동)

각 프레임워크의 기반 언어를 설명해주세요.

  • Express.js : JavaScript+node.js
  • NestJS : TypeScript
  • Spring / Spring Boot : JAVA
  • Django / Flask / FastAPI : Python

IDE와 소스 코드 편집기를 비교해주세요.

IDE(Integrated Development Environment)는 통합 개발 환경을 뜻하며 IDE는 소스 코드 편집기를 내포하고 있다. 즉 IDE에는 소스 코드 편집기 / 빌드 자동화 도구 / 디버거등이 포함되어있다.

profile
실패의 경험들을 채워나가기!

0개의 댓글