Java Framework 6

[Spring] 객체 지향 설계와 스프링

객체 지향 설계와 Spring 연관성💡Spring 애기에 왜 객체 지향 이야기가 나오는가? Spring 은 아래 기술로 객체 지향의 특징인 다형성과 OCP, DIP 를 가능하게 지원한다.DI (Dependency Dependency) : 의존 관계, 의존성 주입DI 컨테이너 제공Java 객체들을 어떤 컨테이너 안에 넣어 놓고 이 안에서 의존 관계를 서로 연결해주고 주입해주는 기능위와 같은 기술을 활용하면, 클라이언트 코드 변경 없이 기능 확장 가능쉽게 부품을 교체하듯이 개발 가능Spring이 없던 시절..어떤 개발자가 좋은 객체 지향 개발을 하려고 OCP, DIP 원칙을 지키며 개발을 해보니, 만들어야할 것들이 너무 많아서 배보다 배꼽이 큰 상황이 되어버렸다.그래서 OCP, DIP 원칙들을 프레임워크로..

[Spring] 좋은 객체 지향 설계의 5가지 원칙 (SOLID)

SOLID💡SOLID 란? '클린코드' 저자 로버트 마틴(Robert Martin)이 정의한 좋은 객체 지향 설계의 5가지 원칙SRP : 단일 책임 원칙(Single Responsibility Principle)OCP : 개방 폐쇄 원칙(Open Closed Principle)LSP : 리스코프 치환 원칙(Liskov substitution Principle)ISP : 인터페이스 분리 원칙(Interface Segregation Principle)DIP : 의존관계 역전 원칙(Dependency Inversion Principle)SRP💡SRP (Single Responsibility Principle, 단일 책임 원칙)하나의 클래스는 하나의 책임만 가져야 한다.여기서의 책임은 문맥과 상황에 따라 다..

[Spring] 좋은 객체 지향 프로그래밍이란?

객체 지향 프로그래밍💡객체 지향 프로그래밍 이란?컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러 개의 독립된 단위즉, “객체”들의 모임으로 파악하고자 하는 것이다.각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. (협력)객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 만들기 때문에 대규모 소프트웨어 개발에 많이 사용된다.💡유연하고 변경이 용이?레고 블럭 조립 하듯 컴포넌트를 쉽고 유연하게 변경하며 개발할 수 있는 방법💡객체 지향 특징 4가지추상화 (Abstraction)캡슐화 (Encapsulation)상속 (Inheritance)다형성 (Polymorphism) : 객체 지향의 핵심다형성 (Polymorphism)💡비유1) 운전자 - 자동차운전자는 운전면허증만..

[Spring] Spring 이란?

Spring 💡Spring 이란?Spring 은 특정한 하나가 아니라 아래 나열된 여러가지 기술들의 모음이라고 볼 수 있다.💡필수Spring Framework : Spring 의 가장 핵심Spring Boot : Spring Framework 를 편리하게 사용할 수 있게 해주는 프레임워크 💡선택Spring Data데이터베이스 CRUD 를 편리하게 사용할 수 있도록 도와주는 기술주로 Spring Data JPA 를 많이 사용Spring Session세셔 기능을 편리하게 사용할 수 있도록 도와주는 기능ex. 세션 만료 시간 통합 관리, 세션 무효화, 사용자별 동시 로그인 제어, Spring Security 와 연동Spring SecuritySpring Framework 로 만든 애플리케이션을 보호하기 ..

[Spring] 스프링 웹 개발 기초

웹 개발 방식웹 개발에는 크게 세 가지 방법이 있다. 정적 컨텐츠, MVC와 템플릿 그리고 API이다.정적 컨텐츠 방식 💡 정적 컨텐츠란? 서버에서 파일을 클라이언트(웹 브라우저)에 그대로 전달해주는 것Spring Boot에서 자동으로 제공하는 기능Link https://docs.spring.io/spring-boot/docs/2.3.1.RELEASE/reference/html/spring-boot-features.html#boot-features-spring-mvc-static-content Spring Boot FeaturesGraceful shutdown is supported with all four embedded web servers (Jetty, Reactor Netty, Tomcat, a..

[Spring] 프로젝트 환경 설정

Spring 프로젝트 생성요즘은 Spring 프로젝트를 Spring Boot 기반으로 만든다고 한다. 설정이 더 단순하기 때문.Spring Boot 프로젝트는 https://start.spring.io 혹은 IntelliJ Ultimate에서 생성 가능하다. https://start.spring.io IntelliJ Ultimate ➡️ Dependencies : 어떤 라이브러리를 사용할 건지 선택Spring Boot 구조 💡 build.gradleplugins { id 'org.springframework.boot' version '2.3.1.RELEASE' id 'io.spring.dependency-management' version '1.0.9.RELEASE' id 'java'}..