[개발] mvc 패턴, gRPC 연결하는 예시를 알아보자.
2023. 12. 11. 16:54
Study
개발 공부를 하게 되면서 가장 당황스러운 게 용어와 개념입니다. java로 개발을 시작하게 되면 생소한 개념들이 아주 많이 있습니다. DAO, DTO, Repository, Entity 와 같은 개념들, MVC 패턴에 관련된 내용들에 대해서 알아보겠습니다. 기본적인 구조는 클라이언트에서 데이터를 요청하면 Controller -> Service -> Repository -> Entity -> DB DB -> Repository -> Service -> Controller -> Browser(클라이언트) 이런 식으로 뿌려주게 됩니다. DTO(데이터 전송 개체) - DTO(데이터 전송 개체) 패턴이 일반적으로 애플리케이션의 여러 부분 간의 데이터 전송을 단순화하는 데 사용됩니다. 다양한 세부정보가 포함된 Us..
[gRPC] 시작에서 운영까지 - 실제로 구현해보자.
2023. 12. 10. 00:47
Study
자바를 사용한 gRPC 서비스 구현. src/main/proto 디렉터리 생성 -> ProductInfo.proto (서비스 정의 파일) 생성. // productInfo.proto syntax = "proto3"; import "google/protobuf/wrappers.proto"; package grpc_test_01; service ProductInfo { rpc addProduct(Product) returns (ProductID); rpc getProduct(ProductID) returns (Product); } message Product { string id = 1; string name = 2; string description = 3; float price = 4; } message..
마샬링(Marshalling)? 직렬화(Serialization)?
2023. 11. 14. 12:20
Study
개요 - 개발자 형님과 대화를 하다보니 직렬화와 마샬링이라는 단어를 계속 사용하셨다. 문맥상 어느정도 유추할 수는 있으나 그게 어떤 뜻인지 정확히 알지 못해서 찾아보게 되었다. 마샬링이란? CS에서 마샬링(Marshalling)은 파일로 저장하거나 네트워크로 전송하기 위해서 객체의 데이터 포맷을 적합한 형태로 변환하여 메모리에 표현하는 과정이다. 일반적으로 컴퓨터 프로그램에서 다른 파트끼리 데이터를 전달하거나 하나의 프로그램에서 다른 프로그램으로 데이터를 전달할 때 사용된다. 마샬링(Marshalling)은 직렬화(Serialization)와 유사하거나 동의어일 수 있습니다. 마샬링은 클라이언트에서 서버에 어떠한 객체를 전달하려는 인텐트나 프로세스로 표현할 수 있다. 인텐트는 하나의 실행중인 프로그램에서..
gRPC를 좀 더 쉽게 정리 해 보자.
2023. 11. 14. 11:55
Study
개요 : gRPC에 대해서 좀 더 깊이 들어가고 싶었으나, 만약 타인에게 설명을 해 주는 상황이라면 기본 개념이 머리속에 잡혀 있어야 되는데 정리를 하면서도 너무 방대한 양이라 이해하기가 어려웠다. 그래서 간단하게 정리 해 보고 기본적인 개념을 잡아보는게 더 좋을 거 같아서 정리를 해보게 되었다. gRPC - Google Remote Procedure Call의 약자로, 확장 가능하고 빠른 API를 만드는 데 사용되는 오픈 소스 RPC 프레임워크이다. 더보기 Procedure(프로시저) 특정한 로직을 처리하기만 하고 결과 값을 반환하지 않는 서브 프로그램 데이터베이스에 대한 일련의 작업을 정리한 절차를 관계형 데이터베이스 관리 시스템이 저장한 것 테이블에서 데이터를 추출, 조작하고 결과를 다른 테이블에 ..
MVC에 대해서 더 자세히 알아보자
2023. 11. 12. 12:16
Study
MVC (Model-View-Controller) 소프트웨어 디자인 패턴 사용자 인터페이스로부터 비즈니스 로직을 분리하여 애플리케이션의 시각적 요소나 비즈니스 로직을 서로 영향 없이 고칠 수 있는 애플리케이션을 만들 수 있다. 애플리케이션의 정보(데이터)를 나타내며 뷰는 사용자 인터페이스 요소, 컨트롤러는 데이터와 비즈니스 로직 사이의 상호동작을 관리한다. 구성요소 Controller : 모델에 명령을 보냄으로써 모델의 상태를 변경할 수 있다. Model : 모델의 상태에 변화가 있을 때 컨트롤러와 뷰에 이를 통보한다. < 뷰는 최신의 결과를 보여주고 컨트롤러는 모델의 변화에 따른 적용 가능한 명령을 추가, 제거, 수정할 수 있다. View : 사용자가 볼 결과물을 생성하기 위해 모델로부터 정보를 가지고..
gRPC
2023. 11. 10. 15:45
Study
gRPC와 REST의 차이점? gRPC와 REST는 API 설계에 사용되는 2가지 방법이다. API는 정의 및 프로토콜 세트를 사용하여 두 소프트웨어 구성 요소가 서로 통신할 수 있게 하는 메커니즘이다. gRPC는 한 구성 요소(해당 클라이언트)가 다른 소프트웨어 구성 요소(해당 서버)의 특정 함수를 직접 또는 간접적으로 호출한다. REST에서는 함수를 직접적으로 호출하는 대신 클라이언트가 서버의 데이터를 요청하거나 업데이트 한다. gRPC(Google Remote Procedure Call) : Google에서 만든 RPC. Cloud Native Comuting Foundation 에서 관리하는 오픈 소스 API 아키텍처 및 시스템이다. 원격 프로시저 호출(RPC) 모델을 기반으로 한다. RPC모델..
[디자인패턴] MVC 패턴
2022. 6. 14. 14:50
Study
1. MVC란? 모델 - 뷰 - 컨트롤러. 소프트웨어 공학에서 사용되는 소프트웨어 디자인 패턴 3개의 영역으로 분할하고 각 구성 요소에 고유한 역할을 부여하는 개발 방식. MVC패턴을 도입하면 도메인(비즈니스 로직) 영역과 UI 영역이 분리되므로 서로 영향을 주지 않고 유지보수가 가능. MVC 패턴 다이어그램 및 웹 애플리케이션에서 사용하는 일반적은 MVC 패턴 1.1 모델(Model) Data. 정보들의 가공을 책임지는 컴포넌트 - 애플리케이션의 정보, 데이터를 나타낸다. - DB, 처음의 정의하는 상수, 초기화 값, 변수 등을 뜻함 - 비즈니스 로직을 처리한 후 모델의 변경사항을 컨트롤러와 뷰에 전달 Model의 규칙 - 사용자가 편집하길 원하는 모든 데이터를 가지고 있어야 한다. - 뷰나 컨트롤러에..
[node js] node js 설치 및 테스트
2021. 9. 7. 20:47
Study
node js를 먼저 설치합니다. 구글 혹은 네이버에서 node js 설치를 쳐보시면 공식 홈페이지가 바로 '짠!' 하고 나타납니다. 자신의 운영체제에 맞게 설치를 해 줍니다. 저는 mac을 사용하기 때문에 mac 버전을 선택하겠습니다. installer를 다운로드하고 실행하시면 node.js 설치 페이지가 뜹니다. 바로 설치해줍니다. 설치가 완료되었으면 제대로 실행이 되는지 확인을 해 줍니다. 1. finder에서 원하는 폴더로 이동 hello world!!라고 적은 test.js 파일을 만들어 줍니다. (visual studio code 이용) 2. 터미널 혹은 iterm2를 실행하시고 test.js 파일이 있는 곳으로 이동하신 후 (cd 명령어 사용) 3. node test.js를 입력하시면 hel..