반응형

프레임워크(Framework) 99

[Spring] AOP란 무엇인가? (관점 지향 프로그래밍)

AOP(Aspect Oriented Programming)란? AOP(Aspect Oriented Programming)를 직역하면 관점 지향 프로그래밍으로 해석할 수 있다. OOP(Object Oriented Programming)은 객체 지향 프로그래밍이다. 즉, 객체 간의 관계를 지향하는 프로그래밍 방식이다. 그렇다면 이 관점(Aspect)을 지향하는 프로그래밍은 무엇일까? 위 그림처럼 아이를 키우는 육아 방식이나 교육 방식 등은 부모에 따라 제각각이다. 어떤 부모는 아이의 언어 발달을 위해 책을 읽어줄 것이고, 어떤 부모는 동요나 만화를 들려줄 것이다. 이처럼 아이를 키우는 방식은 다를 수 있지만, 공통되는 부분이 존재한다. 부모의 공통된 관심사는 어떤 방식으로 아이를 키우는 것과는 별개로 아프지..

[Spring] 스프링 IoC와 DI란 무엇인가? (제어의 역전과 의존성 주입)

IoC(Inversion of Control)란? 프레임워크와 라이브러리의 가장 큰 차이는 해당 애플리케이션의 흐름의 제어권(주도권)에 있다. 라이브러리는 애플리케이션 흐름의 주도권이 개발자에게 있고, 프레임워크는 애플리케이션 흐름의 주도권이 프레임워크에 있다. IoC(제어의 역전 또는 제어의 역행)는 애플리케이션 흐름의 주도권이 뒤바뀐 것을 뜻한다. IoC는 개발자가 프레임워크 API를 사용하면서 설정 파일을 통해 객체의 생명주기, 클래스 등을 프레임워크가 직접 제어권을 갖게 되었다. 이처럼 개발자의 제어권이 프레임워크로 넘어가게 되어 제어의 역전이라 부른다. IoC는 제어의 역전 또는 제어의 역행이라 불리며 스프링의 가장 핵심적인 기능으로 객체의 생명주기를 관리하고 의존성 주입(DI)을 통해 각 계층..

[Spring] POJO란 무엇인가?

POJO(Plain Old Java Object) 위 이미지는 Spring 삼각형이라는 유명한 이미지로 Spring의 핵심 개념들을 모두 표현하고 있다. POJO는 IoC/DI, AOP, PSA를 통해서 달성할 수 있다는 것을 의미한다. POJO란 Plain Old Java Object의 약자로, 이를 직역하면 순수한 오래된 자바 객체이다. 즉, Java로 생성하는 순수한 객체를 뜻한다. 이를 해석하면 POJO는 객체 지향적인 원리에 충실하면서 환경과 기술에 종속되지 않고, 필요에 따라 재활용될 수 있는 방식으로 설계된 오브젝트를 의미한다. 이러한 POJO에 애플리케이션의 핵심 로직과 기능을 담아 설계하고 개발하는 방법을 POJO 프로그래밍이라고 한다. POJO 프로그래밍 POJO 프로그래밍은 POJO를..

[Spring] 스프링 프레임워크(Spring Framework)란 무엇인가?

Intro 웹 애플리케이션을 개발하기 위한 프레임워크는 Spring뿐만 아니라 Django, Express, Flask, Lalavel 등 다양한 프레임워크들이 존재한다. 또한, 프레임워크마다 사용하는 언어도 다르고, 개발 방법도 다르다. Spring Framework는 약 20개의 모듈을 통해 다양한 기능을 제공하고 있다. AOP, Aspect, Servelet, Web 등 여러 용어들을 아키텍처에서 확인할 수 있다. 스프링 프레임워크(Spring Framework) 스프링 프레임워크는 자바 플랫폼을 기반으로 하는 오픈 소스 애플리케이션 프레임워크로 엔터프라이즈급 애플리케이션을 개발하기 위한 모든 기능을 종합적으로 제공하는 경량화된 솔루션이다. Java 기반의 웹 애플리케이션 개발을 위한 프레임워크는 ..

[Spring] 4-2. 스프링 동적 페이지 만들기 with Gradle (Thymeleaf 동작 구조)

본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 '스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술'내용을 바탕으로 공부하여 정리한 것임을 알려드립니다. Thymeleaf 타임리프(Thymeleaf)는 자바 라이브러리에서 제공하는 뷰 템플릿 엔진(View Template Engine)이다. 뷰 템플릿 엔진을 사용하면 동적 페이지를 개발할 수 있다. 타임리프는 스프링 MVC와 통합되어 모듈을 제공하며, JSP의 모든 기능을 대체할 수 있다. 또한, 순수 HTML의 구조를 유지하여 서버를 열지 않은 상태에서도 브라우저에서 변경 사항을 확인할 수 있는 장점이 있다. 동적 웹 페이지 개발 동적 페이지를 개발하기 위해 https://start.spring.io/에서 Gradle 프..

[Spring] 4-1. 스프링 웹 개발 기초: 시작 페이지와 정적 컨텐츠 with Gradle

본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 '스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술'내용을 바탕으로 공부하여 정리한 것임을 알려드립니다. 스프링 웹 개발 스프링에서 웹 개발하는 것에 있어서 크게 세 가지 방법이 있다. 정적 컨텐츠 : html과 같은 파일을 웹 브라우저에 전달하여 작성한 대로 열어주는 방식 MVC와 템플릿 엔진 : JSP, PHP 등과 같은 템플릿 엔진을 사용하여 서버에서 동적으로 웹 브라우저에 전달하는 방식으로 Model, View, Controller 세 가지 개발 방식으로 작성 API : XML이나 JSON과 같은 데이터 포맷을 클라이언트에 전달하는 방식 시작 페이지(Welcome Page) 시작 페이지는 프로그램을 실행하면 가장 먼저..

[Spring] 3. 스프링 프로젝트 빌드 및 실행하는 방법 with Gradle

본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 '스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술'내용을 바탕으로 공부하여 정리한 것임을 알려드립니다. 시작 페이지(Welcome Page) 시작 페이지는 프로그램을 실행하면 가장 먼저 나타나는 페이지로 프로젝트를 실행시킨 후 인터넷 브라우저를 통해 http://localhost:8080/로 이동하면 바로 나타나는 페이지를 뜻합니다. 프로젝트를 빌드하기 위한 최소환의 환경을 만들기 위해 프로젝트 생성 이후 간단한 시작 페이지를 만들어 봅니다. 스프링 부트에서 시작 페이지를 찾는 방법 static 폴더 내에서 index.html을 찾는다. static에서 index.html을 찾지 못한 경우, templates에서 index..

[Spring] 2. 스프링 Gradle 프로젝트의 라이브러리 살펴보기 with IntelliJ IDEA

본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 '스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술'내용을 바탕으로 공부하여 정리한 것임을 알려드립니다. Gradle 프로젝트를 생성하면 build.gradle 파일에서 전반적인 프로젝트 정보를 확인할 수 있다. build.gradle plugins { id 'org.springframework.boot' version '2.7.1' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'hello-spring' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' repositories {..

[Spring] 1. 스프링 프로젝트 환경 설정 (스프링이란? 특징 및 개발 환경 설정) - Gradle

본 내용은 온라인 강의 사이트 인프런의 김영한 님의 강의 '스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술'내용을 바탕으로 공부하여 정리한 것임을 알려드립니다. 스프링이란? 스프링은 기본적으로 스프링 프레임워크를 지칭하는 것으로 Java 플랫폼을 위한 웹 어플리케이션 개발 프레임워크입니다. 스프링은 Node.js와 Django, Flask 등과 함께 우리나라에서 웹 개발에 널리 사용되고 있는 프레임워크 중 하나입니다. 사실 스프링은 정말 다양한 기능들이 존재합니다. Spring Data, Spring Boot, Spring Security ... 이러한 수많은 기능들 중 제가 다루고자 하는 것은 Spring Framework입니다. 스프링 프레임워크의 특징 1. 의존성 주입(DI..

반응형