본문 바로가기

Spring

Spring VS Node.js

  • spring 특징
    1. Java를 이용하는 프레임워크
    2. POJO(Plain Old Java Object) 기반의 구성
    3. DI(Dependency Injection, 의존성 주입)을 통한 객체 간의 관계 구성
    4. AOP(Aspect Oriented Programming, 관점 지향 프로그래밍) 지원
    5. 편리한 MVC 구조
    6. WAS에 독립적인 개발환경
  • node.js 특징
    • Chrome V8엔진 위에서 구현된 Javascript 런타임
    • 빠른 프로퍼티 접근(Fast Property Access)
    • 동적인 기계어 코드 생성(Dynamic Machine code Generation)
    -인라인 캐싱 코드(Inline caching code) 기법을 이용하여 바로 기계어로 변환하여 인터프리터가 필요하지 않다
    • 비동기 입출력(Non-Blocking IO)

 

  • 스프링과 노드의 장단점
  • Spring의장점
    • 정량화 된 패턴이 많고 레퍼런스가 많아 안정적이다.
    • 크기와 부하 측면에서도 경량이다
  • Spring 단점
    • 설정이 복잡하다
    node.js의 장점
    • js기반으로 개발자 진입 장벽이 낮음
    • 싱글 스레드, 비동기 io처리에 기반한 빠른 속도를 가진다
    nose.js의 단점
    • cpu사용률이 높은 애플리케이션에는 사용을 권장하지 않음
    • 싱글 스레드이기 때문에 에러가 나면 프로세스가 죽을 수 있다.

 

스프링과 노드의 차이점 

-멀티스레드와 싱글스레드

 

[설명]

  • 스프링

-프레임워크-아키텍처에 해당하는 골격코드로 뼈대역할(뼈대에 살을 붙여 사용한다)

-POJO -Java EE 등의 중량 프레임워크들을 사용하게 되면서 해당 프레임워크에 종속된 "무거운" 객체를 만들게 된 것에 반발해서 사용되게 된 용어

-DI 추가설명 - 의존성 주입의 종류는 '생성자를 통한 주입'과 'set 메서드를 이용한 주입'으로 구분가능

-AOP - 횡단 관심사를 별도 모듈로 분리하는 프로그래밍 패러다임

-횡단 관심사(cross-concern) - 스프링에서는 시스템에서 비즈니스 로직은 아니지만 보안, 로그, 트랜잭션과 같이 반드시 처리가 필요한 부분

-MVC - model(데이터 담당), View(화면담당), Controller(model과 view사이 중재)

-was(Web application Server) -웹 애플리케이션과 서버 환경을 만들어 동작시키는 기능을 제공하는 소프트웨어 프레임워크

web server와 was의 차이점-https://gmlwjd9405.github.io/2018/10/27/webserver-vs-was.html

 

  • 노드

 

-v8 -웹 브라우저를 만드는 데 기반을 제공하는 오픈 소스 자바스크립트 엔진

-런타임- 일련의 구성 요소들로 이루어진 실행 환경

-라이브러리-프로그램을 개발하기 위해 쓰는 공구와 같은 도구들

-프로퍼티 - 일부 객체 지향 프로그래밍 언어에서 필드(데이터 멤버)와 메소드 간 기능의 중간인 클래스 멤버의 특수한 유형

-비동기 입출력(Non-Blocking IO) -처리가 완료되지 않으면 에러를 회신하고, Block 상태로 만들지 않는다.

'Spring' 카테고리의 다른 글

@Autowired  (0) 2021.05.17
페이징처리  (0) 2021.05.10
hibernate란?  (0) 2021.05.09