객체지향

Languege/Java & Spring

[김영한 스프링] 스프링 컨테이너와 빈

스프링 컨테이너 생성 과정 1.스프링 컨테이너 생성 ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext는 스프링 컨테이너라 합니다. 이것은 인터페이스이기 때문에 xml을 기반으로 만들 수도 있고 애노테이션 기반의 자바 설정 클래스로 만들 수 있습니다. AppConfig라는 java 파일을 기반으로 애노테이션 기반의 자바 설정 클래스로 컨테이너를 만들었습니다. 스프링 컨테이너를 부를 때 BeanFactory, ApplicationContext로 구분해서 이야기합니다. 2.스프링 빈 등록 이후 new AnnotationConfigApplicationCon..

Languege/Java & Spring

[김영한 스프링] 스프링 핵심 원리 이해

스프링 핵심 원리 이해에서는 예제를 만들고 객체 지향 원리를 적용하는 방식으로 이루어졌습니다. 첫번째로 private final MemberRepository memberRepository = new MemoryMemberRepository(); 라는 순수한 자바코드를 작성하였고 이에 대한 코드는 인터페이스 뿐만 아니라 구현 객체도 의존하여 OCP, DIP 위반의 문제가 발생합니다. 왜냐하면 변경에는 닫혀있어야 하는 OCP와 구체화에 의존하면 안되는 DIP를 위반하기 때문입니다. 이를 해결하기 위해 private final MemberRepository memberRepository = new MemberRepository(); 라는 인터페이스만을 의존하는 코드를 작성하였고 OCP와 DIP는 해결한 것 ..

Languege/Java & Spring

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

SOLID란 객체 지향 설계에 있어서 5가지 원칙을 말한다. •SRP: 단일책임원칙(single responsibility principle) •OCP: 개방-폐쇄원칙 (Open/closed principle) •LSP: 리스코프치환원칙 (Liskov substitution principle) •ISP: 인터페이스분리원칙 (Interface segregation principle) •DIP: 의존관계역전원칙 (Dependency inversion principle) SRP 단일 책임 원칙 한 클래스는 하나의 책임만 가져야 한다. 하나의 책임이란건 모호하다.(클 수도, 작을 수도 있고 문맥과 상황에 따라 다름) 중요한 기준은 변경인데 변경이 있을때 파급 효과가 적으면 SRP를 잘 따른것 OCP 개방-폐쇄 ..

Languege/Java & Spring

좋은 객체 지향 프로그래밍

김영한님의 스프링 핵심 원리를 듣고 작성하였습니다. 객체 지향 특징 • 추상화 • 캡슐화 • 상속 • 다형성 객체 지향 프로그래밍이란? • 객체 지향 프로그래밍은 컴퓨터 프로그램을 명령어의 목록으로 보는 시각에서 벗어나 여러개의 독립된 단위, 즉 "객체"들의 모임으로 파악하고자 하는 것이다. 각각의 객체는 메시지를 주고받고, 데이터를 처리할 수 있다. (협력) • 객체 지향 프로그래밍은 프로그램을 유연하고 변경이 용이하게 한다. 유연하고, 변경이 용이? • 레고 블럭 조립하듯이 • 키보드, 마우스 갈아 끼우듯이 • 컴퓨터 부품 갈아 끼우듯이 • 컴포넌트를 쉽고 유연하게 변경하면서 개발할 수 있는 방법 다형성을 실세계에 비유하자면 역할과 구분으로 나눌 수 있다. 위 그림에서 운전자(클라이언트)의 역할은 자..

mntdev
'객체지향' 태그의 글 목록