본문 바로가기

전체 글66

아키텍쳐 패턴(Architecture Pattern) 아키텍쳐 패턴 소프트웨어의 구조를 구성하기 위한 가장 기본적인 토대 각각의 시스템들과 그 역할이 정의 되어 있고, 여러 시스템 사이의 관계와 규칙 등이 포함되어 있다. 검증된 구조로 개발을 진행하기 때문에 안정적인 개발이 가능하다. 아키텍쳐 패턴을 도입할 경우 도메인이 복잡할스록 모델이나 코드를 더 쉽게 변경할 수 있다. 대표적인 아키텍쳐 패턴 저장소 패턴 영속적인 저장소에 대한 추상화 서비스 계층 패턴 유스 케이스(Usecase)의 시작과 끝을 명확하게 정의하기 위한 패턴 작업 단위 패턴 원자적 연산을 제공 애그리게이트 패턴 데이터 정합성을 강화하기 위한 패턴 아키텍쳐 패턴을 도입하기 전 아키텍쳐 패턴이 주는 이익과 비용에 대해 확실한 이유가 있어야 한다. 해당하는 패턴을 채택했을 때 어떤 장단점이 있.. 2022. 12. 10.
도메인(Domain) 도메인 비즈니스 프로세스를 개선하거나 자동화 하기 위해 지원하는 활동 도메인 모델 특정 도메인을 개념적으로 정리한 모델 사용할 개체를 기억하기 쉬운 이름(식별자)을 부여해 대상을 쉽게 공유할 수 있게 한다. 도메인 모델링 엔티티(Entity) 실제 DB 테이블과 연관되어 있는 핵심 클래스, 엔티티를 기준으로 테이블이 생성되고 DB 스키마가 변경된다. 엔티티를 요청(Request)이나 응답값(Response)으로 전달하는 클래스로 사용하면 안된다. sequelize 에서는 모델 자체가 클래스로서 구현이 되어있고, 클래스를 이용해서 실제 데이터베이스에 접근한 형태가 아닌 생성되어있는 모델을 가지고 실제 sequelize 메소드들을 사용하는 형태이다. 모델 속성 내부의 값을 변경하더라도 같은 엔티티에 속해있다.. 2022. 12. 10.
객체지향 프로그래밍(OOP, Object Oriented Programming) 객체지향 프로그래밍 프로그램의 처리단위가 객체인 프로그래밍 방법 현실 세계를 모델링하는 대표적인 프로그래밍 패러다임 데이터와 프로세스가 동일한 모듈 내부에 위치하도록 프로그래밍하는 방식 코드를 추상화해 직관적으로 사고할 수 있다. 현실 세계의 객체를 유연하게 표현할 수 있고 각각의 특성을 가지고 있어 특정 기능을 수행할 수 있다. 예를 들어 자동차는 객체이고 출발, 정지, 운행 등과 같은 기능을 수행할 수 있다. 객체지향 프로그래밍을 사용해야 하는 이유 만약 API 를 만들 때 복사-붙여넣기 방식으로 동일한 코드를 여러 군데 분산 시켜 놓는다면, 해당 로직을 수행할 때 복사한 코드를 일일히 찾아가며 수정을 해야하는 상황이 발생한다. 객체지향 프로그래밍을 사용한다면 코드 변경점이 발생하더라도 최소한의 수정.. 2022. 12. 10.
객체지향(Object-Oriented) 객체지향 소프트웨어의 핵심을 기능이 아닌 객체로 삼으며, 누가 어떤 일을 할 것인가에 초점을 맞춘다. 즉 객체를 도출하고 각각의 역할을 정의하는 것에 초점을 맞춘다. 책임과 권한을 가진 객체들이 서로 메시지를 주고받으며 협력해서 필요한 기능을 수행하도록 시스템을 개발하는 것을 객체 지향이라고 한다. 객체지향 vs 절차지향 객체지향적인 소프트웨어가 절차지향적인 소프트웨어와 다른 점은 캡슐화, 다형성, 클래스 상속을 지원하는지의 여부와 데이터 접근 제한을 걸 수 있는지이다. 캡슐화 캡슐화란 객체 내부의 세부적인 사항을 감추는 것을 말한다. 아이들에게 가루약을 먹일 때 아이들은 가루를 보면 쓸 것이라고 생각하고 잘 먹지 않을 것이다. 하지만 캡슐 안에 가루를 숨겨서 삼키게 하면 아이들 도 잘 먹을 수 있는 것.. 2022. 12. 10.
반응형