몰입하며 나아가는 개발이란

Architecture, Desgin Pattern 8

Exception 처리 방법

Exception 예외 처리 방법 3가지 예외란? 예외는 개발자가 구현한 logic에서 발생하므로 예외는 발생할 상황을 미리 예측하여 처리할 수 있다. 즉, 예외는 개발자가 처리할 수 있기 때문에 예외를 구분하고 그에 따른 처리 방법을 명확히 알고 적용하는 것이 중요하다. 예외 복구 예외 복구의 핵심은 예외가 발생하여도 애플리케이션은 정상적인 흐름으로 진행되는 것이다. 예외가 발생하면 그 예외를 잡아서 일정 시간만큼 대기하고 다시 재시도를 반복하게 된다. 그리고 최대 재시도 횟수를 넘기면 또 다른 예외를 발생 시킨다. int maxretry = MAX_RETRY; while(maxretry --> 0){ try{ // 시도 return; }catch(Exception e){ // 로그출력 및 정해진 시간..

Entity, DTO, VO개념

Entity, DTO, VO Entity 란? Entity Class는 실제 DB테이블과 매핑되는 핵심 클래스로 DB테이블에 존재하는 컬럼들을 필드로 갖는 객체이다. 즉, DataBase Table과 1:1로 Mapping 되어지는 Class 이다. Entity Class는 상속을 받거나 Interface여서는 안되며 DataBase Table에 존재하지 않는 Column을 가져서도 안된다. 따라서 Persistent(영속성) 목적으로 사용되는 객체이므로 Request나 Response 값을 전달하는 객체로써 사용하는것은 옳지 못한 사용방법이다.(Setter 메서드는 최대한 배제하고 Constructor로 사용을 권장 한다.) @Entity @Table(name = "orders") @Getter @Se..

ORM이란?

ORM이란? Object Relational Mapping ORM은 객체-관계 매핑의 줄임말이다. 객체-관계 매핑을 풀어서 설명하자면 우리가 OOP에서 쓰이는 객체라는 개념을 구현한 ㅋ르래스와 RDB 에서 쓰이는 데이터인 테이블을 자동으로 매핑 하는것을 의미한다. 그러나 클래스와 테이블은 서로가 기존부터 호환가능성을 두고 만들어진 것이 아니기 때문에 불일치가 발생하는데, 이를 ORM을 통행 객체간의 관계를 바탕으로 SQL문을 자동으로 생성하여 불일치를 해결한다. 따라서 ORM을 이용하면 따로 SQL문을 짤 필요없이 객체를 통해 간접적으로 데이터베이스를 조작할 수 있게 된다.

도메인 주도 설계란?(DDD)

도메인 주도 설계란?(DDD) Domain-Driven Design 도메인 주도 디자인이란 도메인이 중심이 되는 개발 방식을 말하며, 요구 사항을 모으는 것부터 low_level 디자인까지 소프트웨어 개발의 라이프사이클 전체를 포함하는 방법론 이라고 할 수 있습니다. DDD의 목적은 소프트웨어의 연관된 부분들을 연결하여 계속 해서 진화하는 모델을 만들어 나가 복잡한 어플리케이션을 쉽게 만들어 가는 것에 있습니다. 즉, Loose Coupling과 High Cohesion으로 보다 가벼운 설계로 소프트웨어의 위기와 커뮤니케이션 문제를 해결하기 위해 탄생하였습니다. DDD는 크게 Strategic Design과 Tactical Design으로 단계가 나뉘며, -Strategic Design에서는 Contex..

RESTful이란?

RESTful이란? REST는 Representational State Transfer의 약자로 웹의 장점을 최대한 활용 할 수 있는 아키텍처이다. 최근 서버 프로그램은 다양한 브라우저와 안드로이드폰, 아이폰과 같은 모바일 디바이스에서도 통신을 할 수 있어야 하기때문에 REST 아키텍처는 HypermediaAPI의 기본을 충실히 지키면서 범용성을 갖는다. REST의 특징 1.Uniform(유니폼 인터페이스) Uniform Interface는 URI로 지정한 리소스에 대한 조작을 통일되고 한정적인 인터페이스로 수행하는 아키텍처 스타일을 말한다. 2.Stateless(무상태성) 작업을 위한 상태정보를 따로 저장하고 관리하지 않는다. 세션이나 쿠기등을 별도로 관리하지 않기 때문에 API서버는 들어오는 요청만 ..

Singleton Pattern (싱글톤 패턴)

Singleton Pattern이란 생성자를 최대한 줄이면서 객체 또는 필드값을 주고 받기 위한 클래스이다. Singleton의 생성자는 private로 정의해야하며, Private static 싱글톤클래스명 객체명 = null; 을 필드값으로 둠으로써 주고받을 인스턴스를 필드값으로 정의한 후, 싱글톤클래스 객체가 계속 동일한것을 활용하여 서로다른 여러 클래스에서 각각 싱글톤인스턴스만 호출하여도 여러 클래스의 Communication 이 가능하게 해주는 역할을 한다. Singleton Class public class Singleton { private static Singleton single = null; public int num; // 기본자료형 int를 주고받는을 수 있는 필드값. public ..

Object Oriented Programing(객체 지향 프로그래밍)

객체 지향을 이해하기에 앞서 절차지향을 먼저 이해하고 넘어가는것도 좋다. 절차지향은 순서중심 언어이며, (1.선언부 2.초기화 3.입력부 4.처리 5.결과) 의 과정으로 프로그래밍을 한다. 속도는 상당히 좋은편 이지만 코드의 재사용성으로 접근 했을때, 절차지향은 선언부 부터 결과까지 다시 프로그래밍 해야하는 단점이 있다. 이 절차지향의 문제점을 장점으로 갖고 있는 프로그래밍이 OOP(Object Oriented Programing) 즉, 객체지향 프로그래밍 이다. 절차지향은 순서중심이지만 객체지향은 처리중심이다. Object Oriented Programing(객체 지향 프로그래밍) 객체 지향 프로그래밍 구조 1.은닉성(캡슐화) 2.상속성 3.다형성 class 설계 class 클래스 명 { -- 변수부 ..

Manifesto for Agile Software Development(애자일 소프트웨어 선언문)

Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools Working software over comprehensive documentation Customer collaboration over contract negotiation Responding to change over following a plan That is, while there is value..