인터페이스 5

TypeScript 타입 종류 한 번에 정리

TypeScript는 JavaScript와 비슷한 프로그래밍 언어로, 데이터 유형을 명시적으로 기재하여 코드를 좀 더 안전하고 수월하게 유지보수 할 수 있도록 도와주는 언어입니다. 그렇다면 타입스크립트가 다루는 타입에는 어떤 것들이 있을까요? 이번 글에서는 원자값 타입, 인터섹션 타입, 인터페이스와 타입 앨리어스, 제네릭 타입에 대해 간단히 알아보겠습니다.  1. 원자값 타입 (Primitive Types)원자값 타입은 가장 기본적인 데이터의 종류라고 생각하면 됩니다.이런 타입들은 더 이상 쪼개질 수 없는 단순한 데이터를 의미합니다. string: 글자들로 이루어진 문자열입니다.let name: string = 'Alice'; number: 숫자 값을 나타냅니다.let age: number = 14; b..

Python _ Protocol로 인터페이스 만드는 방법

Python에서 인터페이스를 구현하는 방법에는 여러 가지가 있지만 이번 글에서는 Protocol을 이용한 방법을 소개한다. 인터페이스란? 쉽게 말해 외부와 소통하기 위해 필요한 메서드를 정의한것이다. 하위 모듈들은 해당 인터페이스에 맞춰 기능을 구현한다. Protocol 사용법 아래 코드를 보자. from typing import Protocol class 감정(Protocol): def 기쁘다(self) -> str: ... def 슬프다(self) -> str: ... class 사람: def 기쁘다(self) -> str: return "기뻐!" def 화나다(self) -> str: return "화나!" class 사회생활: def 시작(self, 사람: 감정) -> None: self.사람 =..

저장소 패턴(Repository Pattern) 도입기

*보안상 일부 명칭을 모호하게 표현하였으며 실제 소스코드가 아닌 설명을 위한 샘플 코드를 사용하였습니다. 저장소 패턴 도입 프로젝트 입사 후, 첫 실무 프로젝트로 저장소 패턴(Repository Pattern) 도입 프로젝트를 진행했다. 저장소 패턴이란? 저장소 패턴은 모든 데이터가 메모리상에 존재하는 것처럼 가정하고 이를 추상화하여 데이터 접근과 관련된 구현 사항을 감춘다. 저장소를 제외한 다른 레이어는 더 이상 저장소의 구현에 대해 신경 쓸 필요 없이 인터페이스로만 소통한다. 저장소 패턴을 도입한 이유는 기존 운영하던 ‘A’ 서버(보안상 ‘A’라 지칭)의 레이어가 Controller - Service 로만 구성되어 있었고 이와 관련하여 문제점을 가지고 있었기 때문이다. 기존 문제점 1. 비즈니스 로직..

객체지향의 세 가지 관점(도메인, 인터페이스, 구현)

* 이 글은 책을 읽고 주관적인 생각과 함께 요약 정리한 글입니다.설명을 위한 글이 아니므로 내용이 정확하지 않을 수 있습니다. 제목 : 객체지향의 사실과 오해 저자 : 조영호 범위 : 07 함께 모으기 요약 정리 객체지향의 세 가지 관점 개념 관점(Conceptual Perspective) 도메인 안에 존재하는 개념과 개념들 사이의 관계를 표현 소프트웨어는 도메인에 존재하는 문제를 해결하기 위해 개발된다. 실제 도메인의 규칙과 제약을 최대한 유사하게 반영하는 것이 핵심이다. 명세 관점(Specification Perspective) 도메인을 벗어나 개발자의 영역인 소프트웨어에 집중 객체들의 책임에 초점을 맞추며 객체의 인터페이스를 바라보는 관점이다. 구현 관점(Implementation Perspect..

객체지향의 강력함은 책임을 자율적으로 만드는 것에 달려있다

* 이 글은 책을 읽고 주관적인 생각과 함께 요약 정리한 글입니다. 제목 : 객체지향의 사실과 오해 저자 : 조영호 범위 : 05 책임과 메시지 요약 정리 객체가 행동을 하는 유일한 이유는 다른 객체로부터 요청(메시지)을 수신했기 때문이다. 요청을 처리하기 위해 객체가 수행하는 행동을 책임이라고 한다. 자율적인 책임은 객체가 '어떻게'해야 하는가가 아니라 '무엇'을 해야 하는가를 설명한다. 메서드 - 메시지를 처리하기 위해 내부적으로 선택하는 방법을 메서드라고 한다. 필요한 경우 메시지에는 인자가 함께 전달된다. 다형성 서로 다른 타입에 속하는 객체들이 동일한 메시지를 수신한다. 객체들은 서로 다른 메서드를 이용해 메시지를 처리할 수 있다. 즉, 동일한 메시지를 서로 다른 메서드(처리방법)를 이용해 처리..