현업을 경험해보기 전에는 프로젝트가 비교적 단순했기 때문에 gradle 설정도 간단했고 멀티 프로젝트라는 개념도 눈에 들어오지 않았습니다. 이번에 맡게된 프로젝트를 뜯어보면서도 어떤 구조로 설계되었는지, 어떠한 로직들로 구성되었는지를 파악하는 데에만 집중하였고 application.yml 이나 build.gradle 설정들은 신경쓰지 못했던 것 같습니다. 중요하지만 간과하기 쉬운 부분을 다지는 의미에서 직접 멀티 모듈 프로젝트를 구성해보며 해당 내용을 정리하게 되었습니다. 프로젝트 구성 multi-project(root 프로젝트. 전역 설정을 담당) module-boot(프로젝트 부팅을 담당) module-domain(엔티티) module-controller(컨트롤러) 전역 설정을 담당하는 multi-p..
MSA(Micro Service Architecture) 란? 모놀리식 아키텍처는 하나의 어플리케이션에 모든 비즈니스 로직이 구현되어 있는 거대한 서비스 덩어리라면, 마이크로서비스 아키텍처는 작고 독립적인 어플리케이션들의 집합으로 구현되어 있는 구조입니다. 모놀리식 아키텍처로 구현된 서비스가 점점 거대해지고 서비스 요구 사항이 다양하고 복잡해지면서 하나의 거대한 서비스를 적절하게 쪼개고 분산시켜 마이크로서비스 아키텍처로 나아가는 사례가 많이 있습니다. 제가 이번에 하게 된 프로젝트 역시 거대한 레거시 프로젝트를 MSA 아키텍처로 바꿔야 하는데요. 프로젝트에 대한 이해도를 높이고자 모놀리식 아키텍처에 비해 MSA가 갖는 특징은 무엇이며, 모놀리식으로 구현된 아키텍처를 적절하게 쪼개는 것이 무엇을 의미하는지..
개요 클라이언트와 서버가 어떠한 요청과 응답을 주고받을 때 그 사이사이에서 역할을 하는 기능들이 있습니다. 클라이언트가 요청을 보낼 수 있는 자격이 있는지(인증, 인가) 그리고 그 요청이 적절한 요청인지(유효성 검사) 등의 검사가 필요할 수도 있고, 요청과 응답에 무언가를 추가하거나 데이터를 제어해야 할 수도 있습니다. 이러한 요청과 응답의 전 과정을 생명주기(life cycle) 라고 하는데요! 이러한 라이프사이클에 관여하는 여러 기능들이 nest 공식문서에 소개되어 있습니다. 미들웨어, 필터, 파이프 가드, 인터셉터가 그 기능인데요. 공식문서를 보면 모두 Route Handler 에게 요청이 도달하기 전에(인터셉터는 전후로) 동작하는 무언가인 것 같은데 어떨 때 사용되는 것인지 명확하게 그림이 그려지..
개요 postgreSQL 데이터베이스에 실제로 데이터를 저장하고 꺼내오는 등 데이터 조작을 해볼 예정입니다. 요청이 들어오면 컨트롤러가 받아서 서비스에게 넘겨주고, 서비스는 해당 로직을 처리합니다. 이 때 데이터가 필요하다면 레포지토리를 통해 불러올 것이고 데이터를 저장해야 한다면 이 또한 레포지토리를 통할 것입니다. 레포지토리는 데이터를 알맞는 테이블과 매핑하여 데이터베이스를 조작합니다. 각 단계마다 데이터들은 DTO 객체로 감싸서 통신이 될 것이고 typeORM이 DTO 객체를 클래스 객체로 변환하여 데이터베이스와 통신합니다. 반대로 데이터베이스에서 받아온 데이터를 DTO로 변환해서 응답합니다. DTO 생성 DTO는 Data Transfer Object 의 약자입니다. 말 그대로 데이터를 담고 이동하..
데이터베이스 세팅 이번 연습 프로젝트에서는 비용에서 자유로운 RDBMS 중 하나인 postgreSQL을 사용해보기로 하였습니다. postgreSQL 설치 postgreSQL 다운로드 페이지 다운로드 페이지에서 설치 파일을 다운로드 받은 뒤 진행하다보면 선택적으로 설치할 수 있는 파일 목록이 보이는데요! postgreSQL server: postgreSQL을 사용하기 위한 프로그램 pgAdmin4: 데이터베이스 GUI Stack Builder: 여러 추가 프로그램을 설치할 수 있는 도구 Command Line Tools: 명령어로 데이터베이스를 조작할 수 있는 도구 필요에 따라 선택적으로 설치를 하면 됩니다. 데이터베이스 생성 Add New Server 를 눌러서 서버를 생성해봅시다. 서버 생성 화면 po..
- Total
- Today
- Yesterday
- 자바트리
- DP
- 이분탐색
- 해시맵
- 스프링부트
- 형변환
- dfs
- 프로그래머스
- SQLD
- Nest
- 리액트
- SQL
- Spring
- java
- 자바스크립트
- 자바
- Algorithm
- Queue
- CS
- 타입스크립트
- BFS
- Comparator
- 자바dp
- JavaScript
- 백준
- 스프링
- 정렬
- 자바bfs
- 알고리즘
- JPA
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |