본문 바로가기
  • Hi Hello, Code
🤔Study . Question🔍

[A] Question3. Spring 파트1. About Spring

by 밍구링구링 2023. 7. 27.

본문 바로가기 : [Spring] 0. About Spring + 1. 프로젝트 환경설정 

 

[Spring] 0. About Spring + 1. 프로젝트 환경설정 (ing)

갑자기 Spring을 선택하게 된 이유? 나는 백엔드 개발자가 되고 싶다. 그래서 django를 이용해 웹 서버도 만들어보고, 졸업 프로젝트에서도 웹 개발을 해보고 했지만, 부족하다는 느낌이 들었다. 가

minsllogg.tistory.com

본 게시글은 스터디 시간에 올린 글에 대한 퀴즈로 구성되어 있습니다. 
총 2문제이며, 모두 본문에 나와있는 내용을 토대로 구성하였습니다.
꼭 필요하다고 생각되는 내용들로 문제 출제하였습니다.

 

1. 스프링의 정의는 아래와 같습니다.

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

본문에서는 정의를 하나하나 뜯어서 각가의 의미를 살펴보았는데요. 아래 1)~4)에 대한 설명을 올바른 것끼리 연결해보시오. 설명들 중 올바른 것끼리 연결해보시오. (정답 작성방식: 1-a, 2-b ... )(하)

보기
1) 엔터프라이즈용 Java 애플리케이션 개발을 편하게 할 수 있게 해주는
2) 오픈소스
3) 경량급
4) 애플리케이션 프레임워크
설명
a) 개발에 있어 필요한 모든 업무에 대한 뼈대 제공
b)
애플리케이션의 비즈니스 로직 구현이 가능
c) 불필요하고 복잡한 코드를 제거함
d)
안정성과 개발과 개선이 보장되어있는, 사용자에게 무료로 열린 소스

 

정답 : 1-b, 2-d, 3-c, 4-a
자세한 내용을 보고 싶다면 아래 더보기를 클릭하세요

더보기

엔터프라이즈용 Java 애플리케이션 개발을편하게 할 수 있게 해주는

  • 기업에서 운영하는 웹 서비스에는 비즈니스 로직이 있다.
    • 비즈니스 로직: 기업이 제공하는 서비스를 코드로 구현한 것으로, 사용자의 요구사항을 해결하기 위한 실질적인 코드
  • 스프링 이전에는 비즈니스 로직을 구현하기 위해 기술 자체에 대한 공부를 추가적으로 해야 했음. 비즈니스 로직 구현 기술이 복잡하고 어렵기 때문!
  • 그러나 스프링은 이전 기술에 비해 사용 방법이 덜 복잡함. 따라서, 개발초기에 기본적인 설정과 적용시킬 기술들만 잘 선택해주면, 기술보다 애플리케이션 로직 자체에 더 집중해서 비즈니스 로직 구현 가능

오픈소스

  • 오픈소스 : 사용자에게 무료로 열려있음
    • 장점 : 여러 사람이 프로젝트의 코드를 사용 → 다양한 검증 과정 거칠 수 있음
    • 단점 : 뚜렷하게 정해진 인원이 프로젝트 개발 관리를 맡는 것이 아님 → 프로젝트의 개발과 개선이 안정적이지 못함
    • 즉, 프레임워크의 불안정성이 존재함
  • 스프링의 차별점
    • 스프링도 마찬가지로 오픈소스. 필요하다면 스프링의 코드 일부 수정 가능
    • 다른 오픈소스와 달리, 오픈소스 프레임워크이지만, 안정적인 개발과 개선이 보장됨.
    • WHY?
      • 스프링소스(SpringSource)라는 IT기업에서 관리함
      • 스프링 소스 코드 수정 및 개선 업무는 한정적인 인원만 참여 가능

경량급

  • ‘경량급’이란 의미는 기존에 스프링 대신에 사용하던 기술들과 비교하였을 때, 스프링을 사용하면 개발자가 작성해야 한느 코드가 상대적으로 단순하다는 의미!
  • 스프링 등장하기 이전에는 EJB(Enterpirse JAVA Bean)라는 기술이 주로 사용됨.
    • 많은 기술의 단점을 보완하지만, 여전히 불필요하게 복잡한 코드를 작성해야 했음.
  • 스프링은 불필요한 코드를 걷어내고 코드의 복잡성을 줄어낸 프레임워크

애플리케이션 프레임워크

  • 웹 개발에 있어 프레임워크 :
    • 어떠한 목적을 쉽게 달성할 수 있도록 해당 목적과 관련된 코드의 뼈대를 미리 만들어둔 것
    • 특정 업무 분야 혹은 하나의 기술의 목적을 편리하게 달성할 수 있기 위해 만들어짐
  • 애플리케이션 프레임워크 :
    • 특정 업무 분야 및 특정 기술이 아니라, 애플리케이션 개발이 필요한 모든 과정에 집중함

개발하는데 있어 필요한 모든 업무 분야 및 모든 기술과 관련된 코드의 뼈대를 제공함

 

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

이러한 스프링의 정의를 토대로 스프링은,

  • 애플리케이션의 비즈니스 로직 구현이 가능
  • 안정성과 개발과 개선이 보장된 오픈소스
  • 불필요하고 복잡한 코드를 제거함
  • 개발에 있어 필요한 모든 업무에 대한 뼈대 제공

이렇게 정리할 수 있겠다.


2. 다음은 스프링(Spring)과 장고(Django)를 비교한 표입니다. 빈칸에 알맞은 단어를 아래 보기에서 고르시오. (중)

보기
Python, Java, C, C++, Javascript, 배터리 포함, POJO,  배터리 미포함, 쉬움, 어려움, 대규모, 소규모, 분산, 동시성,  라이브러리, 멀티스레딩, 인터페이스, 캐싱 서버, 데이터베이스 서버, 라이브러리
  Django Spring
언어 Python
러닝커브 스택개발을 위해 즉시 사용할 수 있는 모든 것을 제공함 ⇒ 배우기 ____ 추상적인 구성 요소 제공함
⇒ 배우기 __③__
확장성 ____응용 프로그램에 적합한 것은 아님
⇒  설계된 방식에 따라 다양한 수준에서 확장 가능
____ 및 ____에 강함
⇒ 애플리케이션이 확장되어도, 복잡한 응용프로그램을 실행했을 때 Django에 비해 성능이 좋아짐
외부 인터페이스 사용 ____로 생산성 높음 ____ 기반 
 특정 인터페이스에 종속되지 않아 테스트하기에 용이

 

정답

  Django Spring
언어 Python ①Java
러닝커브 스택개발을 위해 즉시 사용할 수 있는 모든 것을 제공함 ⇒ 배우기 쉬움 추상적인 구성 요소 제공함
⇒ 배우기 어려움
확장성 ④대규모 응용 프로그램에 적합한 것은 아님
⇒  설계된 방식에 따라 다양한 수준에서 확장 가능
⑤동시성멀티스레딩에 강함
⇒ 애플리케이션이 확장되어도, 복잡한 응용프로그램을 실행했을 때 Django에 비해 성능이 좋아짐
외부 인터페이스 사용  라이브러리로 생산성 높음 POJO 기반
⇒ 특정 인터페이스에 종속되지 않아 테스트하기에 용이

 

자세한 내용을 보고 싶다면 아래 더보기를 클릭하세요

더보기

✔ 비교 1) Learning Curve

Django Spring
Python 기반 ⇒ 비즈니스 로직 레이어를 작성할 때 훨씬 이점 Java 기반
스택 개발을 위해 즉시 사용할 수 있는 모든 것을 제공함 (”배터리 포함”프레임워크라고도 함) ⇒ 배우기 쉬움 추상적인 구성 요소 제공함 ⇒ 배우기 어려움,
여러 구성 요소와 라이브러리를 포함해야 하는 대규모 응용프로그램에서 번거로움  
“배우기 쉬움” “배우기 어려움”

 

✔ 비교 2) 확장성 및 애플리케이션 성능

Django Spring
대규모 응용 프로그램에서 적합하지 않은 것은 아님. 동시성 및 멀티스레딩에 강함
Django가 설계된 방식에 따라 데이터베이스 서버, 
애플리케이션 서버 또는 캐싱 서버와 같은 다양한 수준에서 하드웨어를 추가할 수 있음
⇒ 애플리케이션이 확장됨에 따라,
분산 컴퓨팅을 위해 여러 서버에서 복잡한 응용 프로그램을 실행할 때 Django에 비해 성능이 좋아짐.

 

사용성

DjangoSpring

파이썬 라이브러리로 생산성 높음 POJO 기반!
⇒ 특정 인터페이스에 종속되지 않아 테스트를 하기에 용이함
풀스택 프레임워크에서 빛을 발함  

 

 

 

고생하셨습니다(・ัᗜ・ั)و

 
반응형