전체 글 (160) 썸네일형 리스트형 디자인 패턴 1 - 디자인 패턴이란? 디자인 패턴 이란 ? 자주 사용하는 설계 패턴을 정형화 해서 이를 유형별로 가장 최적의 방법으로 개발을 할 수 있도록 정해둔 설계 알고리즘과 유사 하지만 , 명확하게 정답이 있는 형태는 아니며 , 프로젝트의 상황에 맞추어 적용 가능 하다 . Gof 디자인 패턴 소프트웨어를 설계 할 때는 기존에 경험이 매우 중요하다 . 그러나 모든 사람들이 다양한 경험을 가지고 있을 수는 없다 . 이러한 지식을 공유하기 위해 나온 것이 GOF(Gang of Four)의 디자인 패턴이다. 객체 지향 개념에 따른 설계 중 재사용할 경우 유용한 설꼐를 디자인 패턴으로 정리 해둔 것이다. Gof의 디자인 패턴은 총 23개이며 ,이를 잘 이해하고 활용한다면 , 경험이 부족하더라도 좋은 소프트웨어 설계가 가능하다. 디자인 패턴의 장.. 객체지향 이란? 4 - POJO POJO (Plain Old Java Object)란? 순수한 자바 오브젝트를 뜻한다 POJO의 특징 1.특정 규약에 종속 되지 않는다 . 특정 Library, Module 에서 정의된 클래스를 상속 받아서 구현하지 않아도 된다. POJO가 되기 위해서는 외부의 의존성을 두지 않고 , 순사한 JAVA 로 구성이 가능해야 한다. 2.특정 환경에 종속되지 않는다. 만일 특정 비지니스 로직을 처리 하는 부분에 외부 종속적인 http request , session 등 POJO 를 위배한 것으로 간주 한다 . 또한 많이 사용하고는 있지만 @Annotation 기반으로 설정하는 부분도 엄연히는 POJO 라고 볼 수 없다. 하나의 서비스를 개발하기 위해서는 , 시스템의 복잡함(네트워크 통신 , 데이터베이스 트랜젝션.. 객체지향 이란? 3 - 객체지향 설계 5원칙 SOLID 응집도와 결합도 좋은 소프트웨어 설계를 위해서는 결합도 (coupling)은 낮추고 응집도(cohesion)은 높여야 한다. 결합도 모듈(클래스) 간의 상호 의존 정도를 나타내는 지표로 결합도가 낮으면 모듈간의 상호 의존성이 줄어 객체의 재사용 및 유지 보수가 유리하다 . 응집도 하나의 모듈 내부에 존재하는 구성 요소들의 기능적 관련성으로 응집도가 높은 모듈은 하나의 책임에 집중하고 독립성이 높아져 ,재사용 및 유지보수가 용이하다. 1, SPR(Single Responsibility Priciple) 단일 책임 원칙 어떠한 클래스는 변경해야 하는 이유는 한가지 뿐 이여야 한다. 각각의 클래스는 자신의 기능에 책임을 집중한다 . 2.OCP(Open Closed Principle) 개방 폐쇄 원칙 자신의 확.. 객체지향 이란 ? 2 - 객체지향의 4가지 특성 1. 캡슐화 캡슐화는 객체의 속성(Variable)을 보호하기 위해서 사용 된다. 객체의 캡슐화는 현실 세계에서도 볼 수 있다. 컴퓨터 본체 안에 수 많은 부품이 있지만 ,전원을 켜기 위해서는 메인보드에 전기 신호를 직접 주는 것이 아닌, 외부 케이스에 있는 전원 버튼을 통해서 상태 속성을 On/Off 하도록 변경 한다. Method 설계 - 속성이 선언되었으나 , 이의 상태를 변경하는 Method 가 없다면 ,잘못 선언된 속성이다. 즉 , 자신이 가지고 있는 속성에 대해서는 해당 상태를 변경하는 기능을 제공해야 한다. - 실물 객체가 가진 기능을 모두 제공해야 한다. 예를들면 자동차의 렌탈, 반납, 주행거리 계산등 - 각각의 Method는 서로 관련성이 있어야 한다. 차량의 렌탈. 반납, 자동차 등록증.. 객체지향이란? 1. 객체지향의 등장 1970년대에 들어서 용어가 나왔다. 이전에는 c언어 처럼 실행하고자 하는 순서대로 명령어를 입력해서 실행되는 "절차 지향"이 주를 이뤘다, 이러한 방법으로 코딩 하는 언어들을 "절차지향 언어" 라고 한다. 이 때에는 프로그램의 단위가 크지 않았으며 , 대체적으로 간단한 Logic을 순차적으로 처리하여 결과를 얻는데 그쳤지만, 점점 컴퓨터의 발전과 이로 인하여 프로그램의 복잡도가 증가하며 이에 들어가는 유지보수 , 개발기간 등 다양한 부분에서 비 효율이 발생 했다. 이런 어려움을 해결하기 위해 선택한 방법이 " 효과적인 개발방식" 을 채택하게 되었고, 이는 이전에 사용하던 흐름에 따른 개발 방식에서 벗어나, 객체지향의 특성인 추상화 ,상속, 정보 은닉 ,재사용 , 인터페이스 등 여러.. 자료구조 1. 배열 - 동일한 자료형의 순차적 자료구조 - 인덱스 연산자[]를 이용하여 빠른 참조가 가능 - 물리적 위치와 논리적 위치가 동일 - 배열의 순서는 0부터 시작 - 자바에서는 객체 배열을 구현한 ArrayList를 많이 사용 객체 배열 선언과 구현 기본 자료형 배열은 선언과 동시에 배열의 크기만큼 메모리가 할당되지만 , 객체 배열의 경우엔 요소가 되는 객체의 주소가 들어갈 메모리만 할당되고 각 요소 객체는 생성하여 저장해야한다. 객체 배열의 복사 System.arrayCopy(src , srcPos, dest, destPos, length)를 사용하면 만들어진 객체를 복사할 수 있다 . 파라미터는 복사의 기준이 되는 배열 src , src의 시작점 , 복사의 목적지가되는 배열 dest , dest의 .. Spring core 스터디 4 - 어노테이션을 활용한 DI (@Autowired) 어노테이션은 코드의 메타데이터를 설정해주는 자바의 기능이다 xml을 사용하는 방식에서 더 쉽게 DI를 적용하기 위해 어노테이션을 활용하여 DI를 구현하게 되었고 @Autowired를 사용한다. @Autowired Xml 파일로 DI 를 지시할 떄 사용했던 를 대신한다. 의존객체의 setter 메서드에 명시해놓으면 에 적어놓지 않아도 스프링이 알아서 의존객체를 찾아 주입해준다. xml namespace에 context를 체크하고 아래의 코드를 추가 해줘야 한다. Autowired를 사용한 DI public class GridExamConsole implements ExamConsole { private Exam exam; public GridExamConsole(Exam exam) { this.exam =.. Spring core 스터디 3 - IoC 컨테이너 와 Application context dependency들을 부품이라고 한다면 xml 혹은 annotation은 그 부품에 대한 주문서 , IoC 컨테이너는 그 부품들이 조립되는 컨테이너라고 할 수 있다 . 스프링은 xml/annotation에 입력되 있는 내용대로 객체를 생성하고 그 객체들을 담아 관리하는 것이 IoC 컨테이너의 역할이다 그렇다면 IoC란 무슨 뜻일까 . 이전의 DI에서 설명했던 일체형과 조립형을 다시보자 A->B->C->D A,B,C,D는 생성될 때 순서대로 다음 객체를 dependency로 갖게 된다고 가정하면 B를 부품으로 갖는 A를 만들면 B -> C-> D -> 순으로 객체가 생성된다. 일체형 프로그램의 구조이다 D->C->B->A 반면에 외부에서 의존객체를 주입하는 조립형 프로그램은 위와 같이 반대로 생성된다. .. 이전 1 ··· 11 12 13 14 15 16 17 ··· 20 다음 목록 더보기