본문 바로가기

Node 공부13

계층형 아키텍쳐 형식으로 리팩토링 해보기 authRouter.post('/sign-up', signUpValidator, async (req, res, next) => { try { const { email, password, name } = req.body; const existedUser = await prisma.user.findUnique({ where: { email } }); // 이메일이 중복된 경우 if (existedUser) { return res.status(HTTP_STATUS.CONFLICT).json({ status: HTTP_STATUS.CONFLICT, message: MESSAGES.AUTH.COMMON.EMAIL.DUPLICATED, }); .. 2024. 6. 12.
계층형 아키텍처 패턴 (Layered Architecture Pattern) 계층형 아키텍처 패턴 (Layered Architecture Pattern) - 시스템을 여러 계층으로 분리하여 관리하는 아키텍처 패턴입니다. - 현재 가장 널리 채택되고 있는 아키텍처 패턴중 하나입니다.단순하고 대중적이면서 비용도 적게 들어 사실상 모든 어플리케이션의 표준 아키텍처어떤 아키텍처 패턴을 도입할지 확인이 없을 때에는 계층형 아키텍처 패턴은 좋은 선택지가 될수있음각 계층을 명확하게 분리해서 유지하고, 각 계층이 자신의 바로 아래 계층에만 의존하게 만드는 것이 목표계층화의 핵심은 각 계층이 높은 응집도 를 가지면서, 다른 계층과는 결합도 를 최소화 하는것입니다. 계층형 아키텍처 패턴의 장점관심사를 분리하여 현재 구현하려하는 코드를 명확하게 인지할수 있습니다각 계층은 서로 독립적이며, 의존성이 .. 2024. 6. 11.
아키텍처 패턴 Architecture Pattern 아키텍처 패턴- 아키텍처 패턴은 소프트웨어의 구조를 구성하기 위한 가장 기본적인 토대를 제시합니다아키텍처 패턴은 각각의 시스템들과 그 역활이 정의되어 있고, 여러 시스템 사이의 관계와 규칙등이 포함되어있습니다검증된 구조로 개발을 진행하기 때문에 안정적인 개발이 가능합니다복잡한도메인 문제를 해결할 때, 아키텍처 패턴을 사용하면 모델이나 코드를 더 쉽게 변경할수 있다는측면에서 큰 이익을 얻을 수 있습니다.대표적인 아키텍처 패턴MVC 패턴 (Model View Controller Pattern) 사용자 인터페이스(UI) 가 필요한 어플리케이션에서 많이 사용되는 패턴모델(Model): 데이터와 비지느 로직을 담당뷰(view) : 사용자 인터페이스 (UI)를 담당컨트롤러(Controller): 클라이언트의 요청을.. 2024. 6. 11.
객체 지향 프로그래밍 OOP 프로그래밍 패러다임- 프로그래밍 패러다임은 프로그래밍의 방식이나 관점을 바탕으로 효율적이고 명확한 코드를 작성하는 방법대표적인 3 가지의 프로그래밍 패러다임구조적 프로그래밍( Structured Programming)- 기능 중심적인 개발을 진행- 구조적 프로그래밍은 프로그래밍이라는 기술이 시작되면서 가장 처음으로 적용된 패러다임객체 지향 프로그래밍(Object-Oriented Programming,OOP)- 프로그램의 처리단위가 객체인 프로그래밍- "현실 세계를 프로그램으로 모델링" 하는 가장 대표적인 프로그래밍함수형 프로그래밍 (Functional Programming)-함수를 중심적으로 개발- 3가지의 패러다임 중 가장 초기에 만들어졌지만, 최근들어 주목받기 시작한 패러다임 객체지향 프로그래밍-  .. 2024. 6. 10.
객체 지향 객채 (Object) 란?객체는 현실 세계의 물체나 개념을 소프트웨어 세계로 옮긴 것입니다. 예를 들면, "자동차" 나 "사람" 처럼 생각하면 됩니다. 여기서, 객체는 여러 속성과 행동[메소드] 로 구성됩니다객체는 정보[데이터] 와 그 정보를 처리하는 행동[함수 또는 메서드] 를 가지고 있습니다객체들은 서로 메소드 호출을 통해 메세지를 주고 받아 협력합니다쉽게 생각하면 레고 블록을 하나씩 조립해서 큰 레고 구조물 을 만드는 개념이라고 생각하면 됩니다.객체 지향(Object- Oriented) 이란?객체 지향은 소프트웨어 개발에서 주요 구성 요소를 기능(Function)이 아닌 객체(object) 로 삼으며"어떤 객체가 어떤 일을 할것인가" 에 초점을 맞춥니다.객체를 도출하고 각각의 역활을 명확하게 정의하.. 2024. 6. 10.
MySQL 트랜잭션 Lock 동시성을 제어하기 위해 사용하는 기능데이터를 점유하여 다른 트랜잭션의 접근을 막아 동시성 과 일관성의 균형을 맞추기 위해 사용합니다.하나의 데이터를 여러 사용자들이 동시에 변경하려고 할 때. 락이 존재하지 않다면, 한번에 여러번의 수정이 발생하게 되고, 최종 수정된 결과값을 인지할 수 없게 되는 상황으로 이냏 데이터베이스 의 일관성이 깨지게 됩니다.이런 상황을 방지하기 위해 데이터베이스 에서는 Lock 이라는 기능을 지원하게 되었습니다Lock 의 종류공유 락 (Shared Locks)\읽기 락(Read Locks)다른 트랜잭션이 데이터를 읽는 것은 허용하지만, 수정하는 것을 금지합니다READ 전용 락이라고 불리기도 하며, 해당 락을 사용하는 트랜잭션이 모든 작업을 수행하였다면 공유 락은 해제됩니.. 2024. 6. 9.