[Spring] 01. 프레임워크와 라이브러리 :: 스프링과 스프링부트 :: IoC와 DI 정리
·
CS
스프링 부트와 스프링의 차이점을 말하기 전, 먼저 확인해야할 개념이 있다. 📍 라이브러리(Library)란? 애플리케이션 개발에 필요한 기능인 클래스, 함수 등을 모아놓은 코드의 모음이다. 프로그래밍 세계에서 라이브러리는 도서관이라는 뜻보다는 책들의 모음이라고 생각하면 된다. 또한 라이브러리는 독립적이기에 라이브러리끼리 영향을 크게 주지 않는다. 예를 들어, 자바의 JDBC 라이브러리를 사용하여 데이터베이스와 연결할 수 있지만, 개발자가 직접 연결을 설정하고 SQL 쿼리를 작성해야 한다. 📍 프레임워크(Framework)란? 소프트웨어 개발을 수월하게 하기 위한 SW 개발 환경이다. fram(틀) + work(일하다)의 합성어로, 일하기 위한 틀을 제공하는 것이다. 즉, 개발자는 그 흐름 안에서 필요..
[Spring] 02. 스프링 빈(Bean)과 스프링 컨테이너
·
CS
⓵   스프링 컨테이너   스프링 컨테이너는 스프링 프레임워크의 핵심으로, @Autowired 같은 애플리케이션에서 사용되는 객체(빈)를 생성하고 관리하는 역할을 한다. 또한 객체의 생명 주기와 의존성을 제어하여, IoC와 DI를 통해 객체 간 결합도를 낮추고 유연성을 높인다. ⓶  빈 (Bean)    빈은 스프링 컨테이너가 생성하고 관리하는 객체로, 애플리케이션에서 필요한 서비스나 구성 요소를 나타낸다. 빈은 컨테이너에 의해 필요할 때 주입되며, 개발자는 이를 통해 객체 생성과 관리 부담을 줄일 수 있다. 참고로 스프링은 빈을 스프링 컨테이너에 등록하기 위해 XML 파일설정, 애너테이션 추가 등의 방법을 제공한다. 즉 빈을 등록하는 방법은 여러가지가 있다는 뜻이다.@Componet // 클래스 MyT..
[Spring] 03. AOP(관점 지향 프로그래밍)과 PSA(서비스 추상화)
·
CS
💡 먼저 이전 글을 읽고 오자!더보기   스프링 프레임워크는 객체 지향 프로그래밍의 장점을 극대화하기 위한 여러 기법을 도입하고 있다. 그 중에서도 AOP(Aspect-Oriented Programming)와 PSA(Portable Service Abstraction)**는 각각 코드의 재사용성을 높이고, 다양한 서비스와의 유연한 통합을 가능하게 하는 핵심 개념이다. 이러한 기법들은 개발자가 비즈니스 로직에 집중하면서도, 시스템의 유지보수성과 확장성을 높일 수 있도록 돕는다. ⓵   AOP(Aspect-Oriented Programming)   관점 지향 프로그래밍이라고 불리는 개념은, 공통 기능을 비즈니스 로직과 분리해주는 개념이다. 예를 들어, 로그 기록이나 보안 체크 같은 기능을 모든 메서드에 추..
[Spring] 05. ORM 개념 및 JPA와 하이버네이트
·
CS
📍 ORM (Object-Relational Mapping) 이란? 객체 지향 프로그래밍 언어에서 데이터베이스와 상호 작용하기 위한 기술이다. ORM은 객체와 데이터베이스 테이블을 매핑하여 SQL 쿼리를 작성하지 않고도 데이터베이스 작업을 수행할 수 있도록 돕는다.즉, ORM을 사용하면 데이터베이스의 테이블을 클래스, 레코드를 객체, 필드를 객체의 속성으로 취급하여 프로그래밍 언어에서 직접 데이터베이스 조작을 수행할 수 있다.► ORM의 장점생산성 향상: SQL을 직접 작성하지 않고 메서드 호출을 통해 데이터 조작이 가능하므로 개발 속도가 빨라진다.유지보수성 향상: 코드와 데이터베이스가 객체 중심으로 통일되어 이해와 수정이 쉽다.보안성 강화: SQL 인젝션과 같은 보안 문제를 줄이는 데 도움이 된다. ..