Web/Spring15 [Spring] AOP (feat. Proxy Pattern) ✍️ 학습 목표 AOP 이해하기 프록시 패턴이란? 📌 AOP Spring의 핵심 전략 중 하나인 AOP는 Aspect Oriented Programming의 약자이다. AOP은 횡단 관심사의 분리를 허용함으로써 모듈성을 증가시키는 것이 목적인 프로그래밍 패러다임이다. 위키백과에서 가져온 정의는 역시 전혀 와닿지 않는다. 그림으로 이해해보자. 🧷 Before AOP 위 그림을 보면 각 클래스들은 중복되는 부분을 가지고 있다. 이렇게 구현하면 A 클래스에 구현된 주황색 코드를 수정하게 된다면 클래스 B, C에 구현된 모든 코드를 수정해야 한다. 당연히 중복된 모든 코드를 수정하기 힘들 것이고 나아가 유지보수도 힘들 것이다. 🧷 After AOP AOP를 적용하게 된다면 다음과 같이 중복된 코드를 모듈화하여 .. 2022. 9. 21. [Spring] Servlet, 서블릿 ✍️ 학습 목표 Servlet 이해하기 Servlet Container 알아보기 📌 Servlet MVC 패턴에서 사용되는 Controller는 Servlet을 활용한 기술이다. 따라서 MVC 패턴을 준수하는 스프링 공부하기 위해선 Servlet에 대한 이해도 필수적이다. Servlet이란? 클라이언트의 요청을 처리하고, 처리 결과로 반환해주는 Java 기반의 CGI이다. CGI : 웹 서버 상에서 User Program을 동작시키기 위한 조합 ✔️ Servlet의 특징 결국 Servlet은 기존 웹 서버의 문제를 개선하고 동적인 여러 기능을 지원한다. 너무 기계적으로 적어둔 글이 많아서 핵심만 요약했고, 내용은 다음과 같다. 클라이언트의 요청에 대해 정적으로 작동하던 기존의 웹 프로그램의 문제점을 보완.. 2022. 9. 15. [Spring] Spring의 MVC ✍️ 학습 목표 MVC 패턴 이해하기 Spring의 MVC 📌 MVC 패턴 스프링은 MVC 패턴을 준수하는 프레임워크이다. 따라서, 스프링의 MVC 패턴을 이해하기 위해서는 먼저 MVC 패턴이 무엇인지 알아야한다. MVC (Model - View - Controller) 패턴은 소프트웨어 공학에서 사용되는 디자인 패턴이다. 이렇게 각자의 규칙과 역할을 가진 3개의 컴포넌트로 구성된 패턴을 MVC 패턴이라고 한다. ✔️ 모델, Model 애플리케이션의 정보, 데이터, DB 등을 담당하는 컴포넌트이다. 다음과 같은 규칙을 가진다. User가 원하는 모든 데이터를 가지고 있어야한다. View와 Controller에 대한 어떠한 정보도 알지 말아야한다. 변경이 발생하면 변경사항을 처리(수정, 전달 등) 할 수 .. 2022. 9. 14. [Spring] Spring의 DB 접근 기술 ✍️ 학습 목표 JDBC Spring JdbcTemplate JPA Spring Data JPA 📌 JDBC JDBC란? Java Database Connectiviy의 약자로 Java 환경에서 DB에 접근하기 위한 표준 API이다. 스프링과 독립적이며 DBMS의 종류와 상관없이 하나의 JDBC API를 이용해서 데이터베이스 작업을 처리한다. ✔️ 등장 배경 및 특징 JDBC 이전에는 데이터베이스 종류에 따라 다른 SQL문을 사용해야 했다. JDBC가 등장하면서 데이터베이스마다 다른 메서드나 전역 변수 등을 통일하는 문법을 만들어 사용할 수 있게 해주었다. 코드가 길고 쿼리문을 직접 작성해야 하는 번거로움이 있으며 예외 처리를 위한 복잡한 try-catch 문을 사용해서 현재는 많이 사용하지 않는다. 📌.. 2022. 8. 23. [Spring] Spring의 핵심 : IoC, DI (23.05.16 updated) ✍️ 학습 목표 IoC DI 📌 IoC (Inversion of Control) IoC란? Inversion of Control의 약자로 단어 그대로 해석하면 '제어의 역전'이라는 뜻이다. 이전에는 프로그램의 흐름을 개발자가 주도했지만 스프링에서는 이 흐름이 달라진다. 메소드나 객체의 호출을 개발자가 아닌 스프링 컨테이너에서 담당한다. 스프링 컨테이너는 IoC 컨테이너라고도 불린다. ✔️ IoC 컨테이너 IoC 컨테이너란? 객체를 생성, 관리 그리고 의존성을 관리해주는 컨테이너이다. IoC 컨테이너가 관리하는 객체를 Bean이라고 하는데, Bean을 저장해서 BeanFactory라고도 불린다. BeanFactory는 하나의 인터페이스이다. 의존 관계 외에 다양한 기능을 제공하는데 이 BeanFactory.. 2022. 8. 23. [Spring] Spring vs Spring Boot (2) ✍️ 학습 목표 스프링이란? 스프링 부트란? 차이점 📌 스프링 부트란? 스프링의 등장만으로 큰 변화를 가져왔지만 개발자들은 여전히 불편한 점이 있었는데 바로 복잡한 환경 설정이다. 다양한 라이브러리와 기술을 지원하면서 덩달아 개발자가 처리해야 하는 설정도 많아지고 복잡해진 것이다. 스프링 부트는 이 문제를 해결하고자 등장했다. 다음 항목들은 내가 생각하는 가장 중요한 기능이자 스프링과의 차이점이라고 생각한다. Auto Configuration Easy Dependency Management Embedded Server 이 3가지 기능들 외에도 라이브러리 버전 자동 관리, 인메모리 데이터베이스(H2), 테스트 환경 제공 등 스프링에는 없던 다양한 기능들을 추가함으로 더 편한 개발 환경을 제공한다. 즉, 최.. 2022. 8. 23. 이전 1 2 3 다음