[오브젝트 - 기초편] 영화 예매 도메인 - 절차적인 설계로 구현하기
·
ETC
본 게시글은 '오브젝트 - 기초편 강의 | 조영호 - 인프런'을 수강하고 학습한 내용을 정리한 게시글입니다.절차적인 설계로 구현하기절차적(Procedural) 설계란?프로그램을 구성하는 데이터와 프로세스를 개별적인 모듈로 분류해서 구현하는 방식데이터를 먼저 정의하고, 이후 프로세스를 정의함데이터(객체) 구현: 무엇을 저장할 것인가일반적으로 관계형 데이터베이스에 저장=> 데이터베이스에 저장된 데이터를 메모리로 로드하기 위한 클래스 정의필드의 접근 제한자를 private으로 설정다른 클래스가 해당 필드에 직접 접근 불가능 -> 캡슐화간접 접근을 위해 Getter/Setter 추가프로세스(알고리즘) 구현: 어떻게 처리할 것인가절차적인 설계는 알고리즘을 실행 순서대로 클래스 안에 배치영화 예매 프로세스를 위한 ..
[오브젝트 - 기초편] 영화 예매 도메인 예제
·
ETC
본 게시글은 '오브젝트 - 기초편 강의 | 조영호 - 인프런'을 수강하고 학습한 내용을 정리한 게시글입니다.도메인(Domain)도메인: 사용자가 프로그램을 사용하는 주제 영역소프트웨어로 구현해야 하는 요구사항의 범위모든 요구사항을 소프트웨어로 구현하는 것은 현실적으로 불가능 (일정, 인력, 난이도 등의 비용)요구사항 중 현실적으로 구현 가능하다고 판단되는 범위만을 결정하면 해당 범위가 애플리케이션 시스템의 도메인ex) 음식 배달 애플리케이션을 만든다고 가정하면, (메뉴, 주문, 결제) 단계만을 포함하고 실제 (조리, 배달, 식사) 단계는 포함하지 않음도메인(소프트웨어에 포함될 요구사항의 범위)을 정했다면 '요구사항 분석' 필요이 과정에서 도메인 안에 존재하는 중요 개념들(도메인 모델)을 이용해 요구사항을..
[Design Pattern] Structural Pattern
·
ETC
디자인 패턴 시리즈의 마지막으로 구조 패턴(Structural Pattern)에 대해 알아보자. 구조 패턴이란 클래스와 객체를 더 큰 구조로 만들 수 있게 구성을 사용하는 패턴이다. 구조 패턴의 종류는 다음과 같다.프록시 패턴(Proxy Pattern)어댑터 패턴(Adapter Pattern)데코레이터 패턴(Decorator Pattern)파사드 패턴(Facade Pattern)경량 패턴(Flyweight Pattern)복합체 패턴(Composite Pattern)브릿지 패턴(Bridge Pattern)프록시 패턴(Proxy Pattern): 원본 객체를 대리하여 대신 처리하게 함으로써 로직의 흐름을 제어하는 구조 패턴프록시(Proxy): 대리자클라이언트가 대상 객체를 직접 사용하는게 아니라 중간에 프록..
[Design Pattern] Behavioral Pattern(행동 패턴) - 2
·
ETC
저번 포스팅에 이어 디자인 패턴 중 행동 패턴에 대해 계속해서 알아보도록 하자!종류책임 연쇄 패턴(Chain of responsibility Pattern)템플릿 메서드 패턴(Template Method Pattern)전략 패턴(Strategy Pattern)상태 패턴(State Pattern)커맨드 패턴(Command Pattern)인터프리터 패턴(Interpreter Pattern)반복자 패턴(Iterator Pattern)옵저버 패턴(Observer Pattern)방문자 패턴(Visitor Pattern)중재자 패턴(Mediator Pattern)기념품 패턴(Memento Pattern)그럼 인터프리터 패턴부터 시작하겠다!인터프리터 패턴(Interpreter Pattern): 인터프리터 패턴은 문법..
[Design Pattern] Behavioral Pattern(행동 패턴) - 1
·
ETC
행동 패턴(Behavioral Pattern)은 클래스와 객체들이 상호작용하는 방법과 역할을 분담하는 방법을 다루는 패턴이다.종류책임 연쇄 패턴(Chain of responsibility Pattern)템플릿 메서드 패턴(Template Method Pattern)전략 패턴(Strategy Pattern)상태 패턴(State Pattern)커맨드 패턴(Command Pattern)인터프리터 패턴(Interpreter Pattern)반복자 패턴(Iterator Pattern)옵저버 패턴(Observer Pattern)방문자 패턴(Visitor Pattern)중재자 패턴(Mediator Pattern)기념품 패턴(Memento Pattern)이번 포스팅에서는 책임 연쇄 패턴 ~ 커맨드 패턴까지 다뤄보고, 다..
[Design Pattern] Creational Pattern
·
ETC
Creational Pattern(생성 패턴)이란 객체 인스턴스를 생성하는 패턴으로, 클라이언트와 그 클라이언트가 생성해야 하는 객체 인스턴스 사이의 연결을 끊어 주는 패턴이다. 그 종류에는 싱글턴, 추상 팩토리, 팩토리 메소드, 프로토 타입, 빌더가 있다.싱글턴 패턴(Singleton Pattern)특정 클래스에 객체 인스턴스가 하나만 만들어지도록 해주는 패턴싱글턴 패턴을 사용하면 전역 변수를 사용할 때와 마찬가지로 객체 인스턴스를 어디서든지 액세스 할 수 있게 만들 수 있다클래스 인스턴스를 하나만 만들고 그 인스턴스로의 전역 접근을 제공한다보통 싱글턴 클래스가 속성으로 인스턴스를 가지고, getInstance()라는 메서드를 제공하여 접근을 허용한다.요구사항 예제개발 중인 시스템에서 스피커에 접근할 ..
[CS] 문자 인코딩(Character Encoding)
·
ETC
컴퓨터의 데이터 저장 방식컴퓨터는 0과 1로 이루어져 있다는 말을 많이 들었을 것이다. 실제로 컴퓨터의 메모리는 0과 1을 표현할 수 있는 트랜지스터들이 모여 구성되며, 이를 통해 여러 2진수 값을 저장함으로써 데이터를 저장한다. 컴퓨터는 10진수를 이해하지 못하기 때문에 우리가 표현하려는 수를 2진수로 변경해서 저장해야 한다. 2진수로 변경하는 방법은 간단한 수학 공식을 적용하면 되는데, 이에 대해서는 '진법 변환'에 대해 검색해 보길 바란다!오케이, 숫자는 2진수로 변경해서 저장하면 된다는 것을 알았다. 그렇다면 숫자가아닌 문자는 어떻게 메모리에 저장할 수 있을까?그 해답은 문자를 숫자에 매핑시키는 것에 있다. 즉, '문자 집합(Character set)'을 만들고, 각 문자에 숫자를 연결시키는 것이..