공부하며 작성한 포스트입니다. 틀린 내용이나 부실한 설명이 있다면 알려주세요.😁
스프링 프레임워크의 특징을 설명하고, 장점 및 단점을 포스팅합니다.
프레임워크는 프로그램의 기초를 구축할 수 있는 코드의 집합입니다. 개발자라는 직업은 각 개발자의 능력에 따라 결과물의 완성도가 천차만별이기 때문에, 이를 극복하고자 하여 나온 결과물이 프레임워크입니다. 프레임워크를 사용한다면 프로그램의 기본 뼈대와 틀을 정하고, 모든 팀 구성원들이 이 틀과 뼈대에 맞게 살을 붙이기 위해 코드를 작성합니다.
Java의 Spring, Python의 Django, Flask, Facebook의 React, .NET Framework등이 있습니다.
자바 플랫폼을 위한 오픈 소스 애플리케이션.
스프링은 내부적으로 별도의 API를 사용하지 않고, 일반적인 Java 코드를 이용하여 객체를 구성하는 방식 그대로 사용하고 있습니다. 이것은 코드를 개발할 때, 개발자가 특정한 라이브러리나 컨테이너의 기술에 종속적이지 않다 라는것을 의미합니다.
데이터베이스를 연동하여 사용할 때 반드시 신경써야하는 부분은 트랜잭션 부분입니다. 상황에 따라 여러 코드를 작업해줘야 하는데, 스프링에서는 Annotation이나 XML로 설정할 수 있도록 지원해줍니다.
스프링에서는 'ApplicationContext'라는 존재가 필요한 객체들을 생성하고, 필요한 객체들을 주입하는 역할을 해 주는 구조입니다. 따라서 스프링을 사용하면 객체와 객체를 분리해서 생성하고, 이런 객체들을 엮는 작업을 하게 됩니다.(Wiring)
ApplicationContext가 관리하는 객체들을 Bean
이라고 칭하고, 빈과 빈 사이의 의존 관계를 처리하는 방식으로 XML, Annotation, Java 등 다양한 방식이 사용됩니다.
- 링크로 대체