객체지향 7

[도서/스프링 입문] #7 스프링 삼각형과 설정 정보

✔️ 이 글은 [스프링 입문을 위한 자바 객체 지향의 원리와 이해 - 김종민] 도서를 바탕으로 정리한 글입니다. IoC/DI - 제어의 역전/의존성 주입 프로그래밍에서 의존성이란? A가 B를 의존한다는 건 의존대상B가 변하면 A에 영향을 미친다는 의미이다. 결론적으로 전체가 부분에 의존한다고 할 수 있다. 더 깊이 들어가면 전체와 부분인 객체 사이에 집합 관계(Aggregation)와 구성 관계(Composition)로 구분할 수 있다. 집합 관계 : 부분이 전체와 다른 생명 주기를 가질 수 있다. ex) 집과 냉장고 구성 관계 : 부분이 전체와 같은 생명 주기를 가진다. ex) 사람과 심장 앞으로 들 예시 Dirver : 운전자 클래스 Car : 자동차 클래스 Tire : 타이어 인터페이스 KoreaT..

[도서/스프링 입문] #6 스프링이 사랑한 디자인 패턴

✔️ 이 글은 [스프링 입문을 위한 자바 객체 지향의 원리와 이해 - 김종민] 도서를 바탕으로 정리한 글입니다. 스프링 프레임워크를 설명하는 공식적인 정의는 "자바 엔터프라이즈 개발을 편하게 해주는 오픈소스 경량급 애플리케이션 프레임워크"이다. 각기 다른 소프트웨어 모듈이나 기능을 가진 다양한 응용 소프트웨어 시스템들을 개발할 때 서로 간에 공통되는 설계 문제가 존재하며 이를 처리하는 해결 사이에도 공통점이 있는데 이러한 유사점을 패턴이라 한다. 디자인 패턴은 23개로 나뉘는데 크게 생성(Creational), 구조(structural), 행위(Behavioral) 3가지로 분류된다. 이를 GoF(Gang of Four) 디자인 패턴이라 부른다. 각 분류 별 패턴 더보기 생성 패턴 : 객체 생성에 관련된..

[도서/스프링 입문] #5 객체 지향 설계 5원칙 - SOLID

✔️ 이 글은 [스프링 입문을 위한 자바 객체 지향의 원리와 이해 - 김종민] 도서를 바탕으로 정리한 글입니다. 객체 지향 설계 5원칙 SOLID는 응집도는 높이고(High Cohesion), 결합도는 낮추라(Low Coupling)는 고전 원칙을 객체 지향의 관점에서 재정립한 것으로 유지보수성을 극대화해주는 원칙이다. 응집도 : 하나의 모듈 내부에 존재하는 구성 요소들의 기능적 관련성으로, 응집도가 높은 모듈은 하나의 책임에 집중하고, 독립성이 높아져 재사용이나 기능의 수정, 유지보수가 용이 응집도가 높으면 변경 대상과 범위가 명확해짐 결합도 : 모듈간의 상호 의존 정도로서 결합도가 낮으면 모듈 간의 상호 의존성이 줄어들어 객체의 재사용성이나 수정, 유지보수가 용이 결합도가 낮으면 검토해야 되는 소스의..

[도서/스프링 입문] #4 자바가 확장한 객체 지향

✔️ 이 글은 [스프링 입문을 위한 자바 객체 지향의 원리와 이해 - 김종민] 도서를 바탕으로 정리한 글입니다. abstract 키워드 - 추상 메소드와 추상 클래스 추상 메소드는 선언부는 있는데 구현부가 없는 메소드를 의미하고, 추상 메소드를 하나라도 갖고 있는 클래스는 반드시 추상 클래스로 선언해야 한다. 추상 클래스는 인스턴스를 만들 수 없고, 하위 클래스에게 메소드 오버라이딩을 강제한다. 생성자 생성자를 따로 만들어주지 않으면 자바에서 인자가 없는 기본 생성자를 자동으로 만들어 준다. 인자가 있는 생성자를 하나라도 만든다면 자바는 기본 생성자를 만들어 주지 않는다. 클래스 생성 시의 실행 블록, static 블록 static 블록은 클래스가 스태틱 영역에 배치될 때 실행되는 코드 블록으로 한번만 ..

[도서/스프링 입문] #3 자바와 객체 지향

✔️ 이 글은 [스프링 입문을 위한 자바 객체 지향의 원리와 이해 - 김종민] 도서를 바탕으로 정리한 글입니다. 객체 지향은 인간 지향이다 객체 지향은 사람이 주변에서 사물을 인지 하는 방식대로 프로그래밍하기 위해 탄생한 개념이다. 객체 지향의 4대 특성 - 캡! 상추다 캡슐화(Encapsulation) : 정보 은닉 (information hiding) 상속(Inheritance) : 재사용 추상화(Abstraction) : 모델링 다형성(Polymorphism) : 사용 편의 클래스 vs. 객체 클래스는 같은 속성과 기능을 가진 객체를 총칭하는 집합의 개념이고, 객체는 세상에 존재하는 유일무이한 사물을 의미하고 객체는 클래스의 인스턴스라는 표현을 사용한다. 추상화 : 모델링 추상화는 모델링이다 객체 ..

[도서/스프링 입문] #1 사람을 사랑한 기술

✔️ 이 글은 [스프링 입문을 위한 자바 객체 지향의 원리와 이해 - 김종민] 도서를 바탕으로 정리한 글입니다. 신기술은 이전 기술의 어깨를 딛고 스프링을 이해 하기 전 필요한 개념 SOA(서비스 지향 아키텍처) CBD(컴포넌트 기반 개발) OOP(객체 지향 프로그램) 절차적/구조적 프로그래밍 기계어나 어셈블리어 기계어에서 객체 지향 프로그래밍 언어로 어셈블리어 - 0과 1의 행진을 벗어나 인간 지향으로 / 기계어 니모닉 어셈블리 : 니모닉(Mnemonic)과 기계어의 일대일 매칭 코드표 어셈블리어(Assembly Language) : 니모닉과 기계어의 일대일 매칭 언어, CPU 별로 각자의 어셈블리어가 달랐음 어셈블러(Assembler) : 어셈블리어를 기계어로 번역해주는 소프트웨어 니모닉(Mnemon..

[도서/자바의 신] #3 자바를 제대로 알려면 객체가 무엇인지를 알아야 해요

✔️이 글은 [자바의 신 - 이상민 지음] 도서를 바탕으로 정리한 글입니다. 자바의 객체지향 언어라고 해요 이 세상의 모든 사물들은 각각의 객체로 나눌 수 있고, "상태"와 "행위"를 갖는다. 이러한 객체들을 클래스로 나타낸다. 생성자 (constructor) : 클래스 이름과 같은 이름을 갖는 메소드로 new라는 키워드 뒤에 생성자 메소드를 사용해 객체를 생성해줌 기본 생성자 (default constructor) : 매개 변수가 없는 생성자로 클래스를 컴파일할 때 javac를 실행하면 클래스 파일 안에 자동으로 만들어짐 클래스와 객체는 구분하셔야 해요 클래스는 객체를 만들어내는 '틀'같은 거라고 생각하면 되고, 객체는 각각의 실제 사물을 위한 것으로 "인스턴스 (instance)"라고도 한다. 자동차..

728x90