Spring Framework/스프링 입문을 위한 자바 객체 지향의 원리와 이해
-
6장 - 스프링이 사랑한 디자인 패턴Spring Framework/스프링 입문을 위한 자바 객체 지향의 원리와 이해 2023. 4. 21. 00:01
스프링은 객체 지향의 특성과 설계 원칙을 극한까지 적용한 프레임워크입니다. 스프링을 공부하다 보면 자연스럽게 객체 지향 설계의 베스트 프렉티스, 즉 디자인 패턴을 만날 수 있습니다. 어댑터 패턴 호출당하는 쪽의 메서드를 호출하는 쪽의 코드에 대응하도록 중간에 변환기를 통해 호출하는 패턴입니다. serviceA.runServiceA() serviceB.runServiceB() //위의 코드를 어댑터로 감싼다 class AdapterServiceA{ val sa1= ServiceA() fun runService(){ sa1.runServiceA() } } class AdapterServiceB{ val sb1= ServiceB() fun runService(){ sb1.runServiceB() } } // ..
-
5장 - 객체 지향 설계 5원칙 - SOLIDSpring Framework/스프링 입문을 위한 자바 객체 지향의 원리와 이해 2023. 4. 18. 00:01
SOLID SRP - 단일 책임 원칙 어떤 클래스를 변경해야 하는 이유는 오직 하나여야 한다 만약 if문들이 많이 보인다면 code smell을 고려해보아야 한다. OCP - 개방 폐쇄 원칙 자신의 확장에는 열려있어야 하고, 주변의 변화에는 닫혀있어야 한다. 운전자가 자동차를 타는데 마티즈를 타던 소나타를 타던 운전하는 습관이 바뀌면 안 된다. JDBC를 활용할 때 데이터베이스가 oracle, mysql, ms-sql로 바뀌어도 JDBC 인터페이스라는 완충 장치로 인해 애플리케이션은 변화에 영향을 받지 않는다. 편의점 직원이 판매하는 행위는 손님이 학생인지, 노인인지, 여자인지에 전혀 영향을 받지 않으며, 손님도 편의점 직원이 교대근무를 하더라도 구매라는 행위에 전혀 영향을 받지 않는다. LSP - 리스..
-
4장 - 자바가 확장한 객체 지향Spring Framework/스프링 입문을 위한 자바 객체 지향의 원리와 이해 2023. 4. 17. 00:01
객체 지향 4대 특성을 넘어 자바가 객체 지향을 확장하기 위해 사용하는 키워드와 개념을 알아보는 장입니다. 자바가 객체지향을 위해 사용하는 키워드 abstract 키워드 (추상메서드, 추상클래스) 생성자 static 블록 final 키워드 (변수, 메서드) instanceof 연산자 package 키워드 interface와 implements 키워드 this 키워드 super 키워드 아마 Java를 이미 공부하셨다면 익숙한 키워드들이기 때문에 자세히 다루지는 않고 넘어가겠습니다. 검색을 통해서도 충분히 학습할 수 있을 것 같습니다.
-
3장 - 자바와 객체 지향Spring Framework/스프링 입문을 위한 자바 객체 지향의 원리와 이해 2023. 4. 9. 00:01
객체 지향은 인간 지향이다 프로그래밍 언어의 발전사를 보면 저수준의 기계어로 시작해서 고수준의 자바까지 인간을 배려하기 위해 발전해 왔습니다. 기존의 구조적 프로그래밍 언어에서 중요한 것은 함수로 코드를 논리적인 구조로 분할하여 정복하는 Divide and Conqure 방식을 지향했습니다. 이후에 더 파격적인 제안으로 객체 지향이 등장하게 됩니다. 모든 것은 객체이며 우리가 주변에서 사물을 인지하는 방식대로 프로그래밍을 하자는 것이 객체지향의 출발점입니다. 김종민, 한효주, 김연아 라고 하는 존재는 사람이라는 분류에 속합니다. 그리고 사람이라는 분류 안의 객체(object)들은 나이, 몸무게, 키 등의 속성(property)과 먹다, 자다, 울다 등의 행위(method)를 가지고 있습니다. 객체 지향의..
-
2장 자바와 절차적/구조적 프로그래밍Spring Framework/스프링 입문을 위한 자바 객체 지향의 원리와 이해 2023. 4. 2. 00:01
자바 자바는 객체 지향 언어이며 프로그래밍 언어이다. 객체지향 프로그래밍은 절차적 프로그램의 어깨를 딛고 있습니다. 절차적 프로그래밍을 한마디로 표현하면 goto를 쓰지 말라는 것이며 자바에서는 이미 goto를 예약어로 등록해 두고 사용하지 못하도록 선점해 두었습니다. 자바 공식문서에서 goto가 not used임을 확인할 수 있습니다. goto를 사용하면 프로그램의 실행 순서가 인간이 이해하기에 너무 복잡해질 가능성이 있습니다. 이동이 잦아지면 소스를 이리저리 따라가면서 프로그램을 이해하기 어렵습니다. 자바에 남아있는 절차적/구조적 프로그래밍의 유산 continue for break if switch boolean 등등 프로그램 실행 시 지역변수, 전역변수, 함수와 관련된 stack 책을 보고 잘 이해..
-
1장 - 사람을 사랑한 기술Spring Framework/스프링 입문을 위한 자바 객체 지향의 원리와 이해 2023. 4. 1. 00:01
스프링의 등장 스프링을 비롯해 모든 신기술은 갑자기 나타난 것이 아니다. 이전 기술을 거름 삼아 새로운 철학과 기법을 더해 나가는 것이다. 그러면 스프링을 학습하려면 이전 기술들을 마스터해야 할까? 단지 이전 기술을 빠르게 훑어보면 됩니다. 기계어 -> 어셈블리어 -> C언어 -> C++ -> Java 스프링을 계속 이야기하는 이유는 현존하는 개발 사상과 개발 지원 제품 가운데 스프링이 가장 선봉에 서 있고, 이전 기술들의 어깨를 딛고 정상에 오른 제품이기 때문입니다. 하지만 객체지향을 모르고 스프링을 안다는 것은 어불성설입니다. 스프링의 3대 삼각형 IoC/ ID AOP PSA(Portable Service Abstraction) 잘 만든 인터페이스로 Spring Web Mvc, Spring Trans..