개념 정리

·2021년 9월 13일
0

Q&A

목록 보기
3/4

Framework

소프트웨어의 설계와 구현에서 재사용이 가능하도록 일련의 협업화된 형태로 클래스 및 인터페이스를 제공하는 것.
ex) 일종의 기본적인 뼈대, 틀

장점 : 효율성 및 생산성, Quality 향상, 유지보수 용이(체계적, 안정적)
단점 : 타인의 코드를 습득하고 이해하는 학습 시간이 길다. 자유도가 비교적 낮다.

Library

자주 사용되는 로직을 재사용이 편리하도록 정리한 일련의 코드들의 집합.
ex) 기능 단위의 부품


Spring

Java 엔터프라이즈 개발을 편리하게 해주는 오픈소스 경량급 애플리케이션 프레임워크.

복잡하고 실수하기 쉬운 Low Level에 많이 신경쓰지 않고, 개발자가 Business Logic 개발에 집중할 수 있도록 한다.

  1. 서비스 추상화(Portable Service Abstraction)
  2. 객체 지향과 DI(Dependency Injection)
  3. AOP(Aspect Oriented Programming)
  4. POJO(Plain Old Java Object)

Java

class 기반의 객체 지향 프로그래밍 언어 (Object-Oriented Programming)

JVM(Java Virtual Machine) 위에서 실행되는데, 따로 소스 파일을 수정하지 않아도 JVM만 있다면 어떤 운영체제에서도 실행 가능하다.
-> 개발환경과 실행환경을 분리시킬 수 있어 분산 환경에 적합하다.

Javascript

prototype 기반의 객체 지향 언어로, 주로 웹 브라우저에서 사용되며 웹의 동작을 구현한다.
또한, 타입을 명시할 필요가 없는 인터프리터 언어이다.
현재 대부분 웹 브라우저에는 자바스크립트 인터프리터가 내장되어 있어, 개발자 도구를 통해 쉽게 실행해볼 수 있다.


Compiler VS Interpreter

Compiler
Runtime 전 소스 코드를 기계어로 변환해주는 방식.
원시 코드 -> 목적 코드(Object Code)
구동 시간이 오래걸리지만, 한 번 구동하면 이후 실행 시 빠르게 동작한다.

Interpreter
Runtime 전 변환 과정을 거치지 않고, 코드를 Row 단위로 해석하며 실행하는 방식.
실제 실행 시간은 느리지만, 실시간 debugging 또는 수정이 가능하다.


Multi thread VS Multi tasking

Multi thread
단일 작업(프로그램, 프로세스 등)의 여러 스레드를 동시에 CPU에서 처리.

** thread
자신이 속한 프로세스의 코드, 데이터, 파일을 공유하는 기본 실행 단위.
(자체 프로그램 카운터, 레지스터 세트, 스택을 가지고 있다.)

Multi tasking
단일 CPU가 여러 작업(프로그램, 프로세스, 태스크, 스레드 등)을 동시에 수행. 여러 사용자가 동시에 시스템을 공유.


Overload VS Override

Overload
같은 이름을 가진 여러 메소드가 매개변수 개수 또는 자료형이 다른 경우.

Override
상위 클래스의 메소드를 하위 클래스에 재정의하는 경우.
@Override annotation 사용.

profile
나그네 개발자

0개의 댓글