Languege/Java & Spring

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

[JAVA] 자바 Static

Static은 고정된이라는 의미를 가지고 있다. Static 키워드를 사용한다면 메모리에 한번 할당되어 프로그램이 종료될 때 해제되는 것을 말한다. 즉, 수명의 주기가 프로그램과 같아 진다는 것이다. 일반적으로 Class는 Static 영역에 생성되고, new 연산을 통해 생성한 Instance는 Heap 영역에 생성된다. Heap영역의 메모리는 Garbege Collector를 통해서 계속해서 관리된다. 하지만 Static 키워드를 통해 생성이 된다면 Static 영역에 할당된 메모리는 모든 객체가 공유하는 특성을 지니며, 이는 Garbege Collecor를 통해서 관리되는 영역이 아니기 때문에 Static을 자주 사용한다면 시스템 성능이 떨어질 수 있다. Static 변수의 특징 - 즉시 호출 가능..

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

좋은 객체 지향 프로그래밍

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

Languege/Java & Spring

AOP란?

Spring의 특징 중 하나인 AOP란 무엇일까요? AOP는 Aspect Oriented Programming으로 관점지향 프로그램을 뜻합니다. 스프링 어플리케이션은 대부분 특별한 경우를 제외하고는 MVC 웹앱에서 Web Layer, Business Layer, Data Layer로 정의합니다. -Web Layer : Rest API를 제공, Client 중심의 로직 적용 -Business Layer : 내부 정책에 따른 로직을 개발하며, 주로 해당 부분을 개발 -Data Layer : DB 및 외부와 연동을 처리 횡단 관심 A,B,C사에는 각각 기능1을 통하여 인코딩을 하여 보내고 B,C사에는 기능4를 통하여 암호화를 한다던지 등의 공통적이고 반복적인 기능(메소드,반복되는 로직)들을 한곳에 모아서 관리..

mntdev
'Languege/Java & Spring' 카테고리의 글 목록 (3 Page)