백엔드 Backend/기본 개념

백엔드/웹 개발을 하다보면 controller, service, dao 등을 다루면서 프로젝트의 구조에 대한 고민을 하게 됩니다.개인 프로젝트를 진행하면서 모듈을 고민하다보니, 기본 개념이 부족한 것 같아 부족했던 지식들을 보충해야겠다는 생각이 들었습니다. 시스템에 대한 이해서비스는 독립적으로 실행 가능한 어플리케이션을 의미합니다.시스템은 이 서비스가 1개 이상, 공유 인프라까지 합쳐서 일컫는 단어입니다. 레이어드 아키텍처일반적인 개발자에게 익숙한 그림으로서, 보통 많은 프로젝트가 이 레이어드 아키텍처에 따라 프로젝트 구조를 구성합니다.이 개념을 바탕으로 웹 프로젝트를 구성하고자 하면, 다음과 같은 모듈을 구성해볼 수 있습니다.저의 경우에는 백엔드 프로젝트만 구성하기때문에 User Interface 계층..
1. 모놀리식 아키텍처1) 단일 모듈 멀티 프로젝트일반적으로 익숙한 하나의 서비스에서 api, admin, batch, web, db 등이 관리되는 구조로, 여러개의 서비스 프로젝트가 레이어드 아키텍처 구조를 갖고 있는 형태입니다.  batchapi 처럼 요청받은 데이터를 실시간으로 처리하는 것이 아닌, 모아뒀다가 특정 시간에 일괄적으로 처리하는 것(대용량)입니다.사용자에게 빠른 응답이 필요하지 않습니다.대용량 비즈니스/로깅/추적/통계/트랜잭션관리 등이 해당됩니다. 2) 멀티 모듈 단일 프로젝트멀티모듈은 기존의 모놀리식과 MSA구조의 중간 단계라고 할 수 있습니다.앞선 멀티 프로젝트의 중복을 줄이기 위해서 만들어졌습니다. ✔️ 중복 코드에 대한 처리앞서 말한 단일 모듈인 API 프로젝트와 batch 프로..
보통 웹 기반 API를 만들 때, Http를 통해 데이터를 전송하고 응답하게 됩니다.이 때 일반적으로 사용하는 데이터를 요청방식을 알아보겠습니다.Json보통 RestAPI에서 데이터를 주고받는을 때 많이 쓰이는 데이터 형식입니다.POST /login HTTP/1.1Content-Type: application/json{ "id" : "dallae", "pwd" : "dallae1234!@#$"}클라이언트는 위처럼 Http Body에 application/json타입으로 서버에 데이터를 전달합니다.이 때, 서버는 요청된 Http Body를 읽어서 데이터를 가져와야 하므로 @RequestBody를 통해 읽어올 수 있습니다. Http ParameterParameter 방식은 URL에 그대로 노출하여 데이..