Web/spring study28 [Spring] 객체 지향 설계와 스프링 1. 스프링 - 이전 글에서 다형성만으로는 OCP와 DIP를 지킬 수 없다는 내용을 작성하였다. - 스프링은 아래의 기술들로 다형성과 OCP, DIP를 가능하도록 지원해줌 -> DI(Dependency Injection): 의존관계, 의존성 주입 -> DI 컨테이너 제공 - 위 기능들을 활용하면, 클라이언트 코드의 변경 없이, 기능이 확장 가능해진다. (즉, 쉽게 부품을 교체하듯이 개발 가능) 2. 지금까지 내용 정리 - 해당 카테고리의 첫번째 게시물부터 지금까지 내용들을 한번 정리해보자. - 모든 설계에 역할과 구현을 분리하자. - 애플리케이션을 설계할 때, 마치 공연을 설계하듯 배역만 만들어두고, 배우는 언제든지 변경할 수 있도록 유연하게 설계하는 것 -> 이것에 좋은 객체 지향 설계이다. -> 이것.. 2022. 5. 26. [Spring] 좋은 객체 지향 설계 5가지 원칙(SOLID) 0. SOLID란? - 로버트 마틴(클린코드 저자로 유명)이 좋은 객체 지향 설계의 5가지 원칙을 정리함 - SRP: 단일 책임 원칙(single responsibility principle) - OCP: 개방-폐쇄 원칙(open/closed principle) - LSP: 리스코프 치환 원칙(liskov substitution principle) - ISP: 인터페이스 분리 원칙(interface segregation principle) - DIP: 의존관계 역전 원칙(dependency inversion principle) 1. SRP 단일 책임 원칙 (Single Responsibility Principle) - 하나의 클래스는 하나의 책임만 가져야 한다. - 하나의 책임이라고 하면, 기준이 모호해.. 2022. 5. 26. [Spring] 좋은 객체지향 프로그래밍이란? 0. 객체 지향의 특징 - 추상화 - 캡슐화 - 상속 - 다형성 1. 객체 지향 프로그래밍 - 다들 알고있겠지만, 객체 지향 프로그래밍은 프로그램을 명령어의 목록으로 보는 것에서 벗어나, "객체"(독립된 단위)들의 모임으로 파악하는 것이다. - 각각 객체는 서로 메세지를 주고받고, 데이터를 처리하는 등 서로 협력한다. - 객체 지향 프로그래밍은 프로그램을 유연하고, 변경에 용이하도록 만들어 주므로, 대규모 개발에 자주 사용된다. -> 유연하고 변경이 용이하다? -> 마치 레고 블럭을 조립하듯이, 컴포넌트를 유연하게 변경하면서 개발하는 방법 -> 객체 지향의 핵심인, 다형성(Polymorphism) 2. 다향성이 왜 중요한가? - 다향성에 대해 이해해 보기 위해 실생활의 상황을 역할과 구현으로 구분해보자... 2022. 5. 17. [Spring] 스프링이란? 1. 스프링 구성 요소? - 스프링은 하나의 기술이 아닌, 여러가지 기술로 나누어져 있다. - 필수 - 스프링 프레임워크: 스프링의 기본 - 스프링 부트: 스프링 설정을 쉽게 해주는 장치 - 선택 - 스프링 데이터: 데이터(CRUD)를 쉽게 관리할 수 있는 장치, JPA를 많이 씀 - 스프링 세션: 세션 기능을 편하게 사용할 수 있도록 함 - 스프링 시큐리티: 보안 관련 - 스프링 Rest Docs: 스프링의 api를 문서화 시켜 편하게 볼 수 있도록 함 - 스프링 배치: 다량의 데이터중 일부를 가져오고 저장하는 기술이 배치, 이를 스프링 특화되게 함 *이 외에도 많은 기술들이 있다.(링크 참고) https://spring.io/projects Spring | Projects Spring Framewor.. 2022. 4. 19. 이전 1 2 3 4 다음