본문 바로가기

전체 글39

[API] Middleware에 대해서 1. Middleware 란? API는 요청이 들어올 때부터 응답으로 내보내기까지 전 과정을 처리합니다. 그 안에서 여러 함수들을 차례대로 거치게 되는데 그 함수 하나를 middleware라고 합니다. middleware에서 다음 기능으로 통과시킬지 말지 결정할 수 있으며 이를 이용해 여러 기능 실행 전 수행해야 할 기능을 만들 수 있습니다. 2. Middleware 용도 1️⃣ req.body 추가(app.use(express.json());) Postman 사용 시 raw - json으로 body 값을 보냅니다. 하지만 http 특성상 모든 값을 string으로 전송하게 되어 원래는 string을 json 형태로 변경해 req.body안에 넣는 기능을 따로 구현해야 했습니다. 그러나 이런 기능은 모든.. 2023. 11. 15.
[API] Path Parameter & Query Parameter에 대해서 1. Path Parameter란 ? URL로는 고유한 자원(resource, data)을 지칭할 수 있다. http://naver.com/stocks http://google.com/mail 등을 보면 알 수 있다. 그러나 특정 자원을 가리키는 url 경로에 가변적인 부분이 있다면 http://naver.com/stocks/kakao 라는 주소는 직관적으로 카카오사의 주식 정보를 나타냄을 알 수 있습니다. 이 상황에 회사의 이름 부분은 다른 회사에 대한 정보를 요청할 때에는 언제든 바뀔 수 있는 가변적 자리입니다. 즉, 변수로 지정해 둘 수 있다는 의미가 되며 이 변수의 이름을 Path Parameter라고 부릅니다. 아래 예시와 같이 특정 path parameter가 변경되며 백엔드 서버에서는 htt.. 2023. 11. 15.
[API] RESTful API란? 1. REST API에 대해 1️⃣ REST API란? REST API란 REST하게 API를 서술하는 방법을 부르는 용어입니다. 여기서 REST 하다는 것은 무슨 의미일까요? REST API = Representational State Transfer API REST의 약자인 Representational State Transfer은 상태(State)를 전달(Transfer)하는 것을 나타내는(Representational) 방법으로 소개 됩니다. 자원을 이름으로 구분해 해당 자원의 상태(정보)를 주고 받는 것을 의미합니다. 통신을 한다는 것은 '특정 자원(데이터)을 어떤 방식으로 전달하는 것'으로 간주하고, 이를 표현하는 방식을 통일해 개발자들 사이에서 의사소통을 원활히 하고자 했습니다. Client.. 2023. 11. 15.
Git Rebase란? Git Merge와 Git Rebase의 차이점 📌 Git Flow에 대해서 Git Flow는 Vincent Driessen이 제안한 Git 브랜칭 모델 중 하나로, 큰 규모의 프로젝트에서 협업을 보다 효율적으로 관리하기 위한 전략입니다. Git Flow는 다양한 브랜치를 사용해 코드의 품질을 유지하고 안정성을 확보하며 기능을 효과적으로 개발하는 데 도움을 줍니다. Git Flow의 주요 브랜치 1. Master 브랜치: 제품으로 출시될 수 있는 안정된 코드가 있는 브랜치입니다. 2. Develop 브랜치: 다음 릴리스를 위한 개발이 진행되는 브랜치로 새로운 기능, 버그 수정과 같은 작업이 해당 브랜치에서 파생됩니다. Git Flow의 다양한 보조 브랜치 1. feature 브랜치: 새로운 기능을 개발하기 위한 브랜치로 develop 브랜치에서 생성되.. 2023. 11. 14.
[Node] Layered Pattern 1. Layered Pattern 이란? 코드의 구조를 구상할 때 고려할 점은 여러가지입니다. 코드 구조의 하나하나 모두 중요해 매번 좋은 코드의 구조를 생각해 내기는 쉽지 않습니다. 다행히 "코드의 구조를 어떻게 구성하고 관리해야 하는가"에 대한 문제는 이미 많은 개발자들이 다루던 문제며, 이에 관해 정석같은 패턴이 굉장히 많이 나와 있습니다. 레이어드(layered)패턴은 백엔드 API 코드에 가장 널리 적용되는 패턴 가운데 하나입니다. Multi-tier 아키텍처 패턴이라고도 하는 이 Layered 아키텍처는 코드를 논리적인 부분 혹은 역할에 따라 독립된 모듈로 나누어 구성하는 패턴입니다. 각 모듈이 서로의 의존도에 따라 층층이 쌓듯이 연결되어 전체의 시스템을 구현하는 구조입니다. 그래서 마치 레이.. 2023. 11. 13.
API Architecture에 대해 1. 코드 구조의 중요성 하나의 파일에 모든 코드를 구현하는 방법의 장점은 간단하다는 것입니다. 한 파일에서 확인할 수 있으므로 신경 써야 할 파일 개수가 줄어들며, 개발이 전체적으로 더욱 간단해집니다. 하지만 한 파일에 코드의 양이 조금만 많아져도 이런 간단함의 장점은 잃어버리고 코드의 유지 보수가 어려워집니다. 실제 기업 시스템에서 하나의 파일에 모든 코드를 넣은 경우는 거의 없습니다. 실제로 논리적으로 또는 기능적으로 영역을 구분하여 개별 코드를 관리하는 것이 좋습니다. 이런 코드의 구조를 더 체계적으로 그리고 효율적으로 구현해 놓은 것을 코드의 아키텍쳐(architecture)라고 합니다. 이제 어떤 코드를 어떤 기준으로 나누어 구조화해야 하는지 알아봅시다. 1️⃣ 확장성 모든 코드는 처음 조금한.. 2023. 11. 12.