본문 바로가기

분류 전체보기179

GraphQL, apollo 서버 (2024.5.11) GraphQL과 Apollo 서버GraphQL은 페이스북에 의해 개발된 데이터 쿼리 언어로, 클라이언트가 필요한 데이터의 구조를 정확히 지정하고 그에 따라 서버로부터 데이터를 받아올 수 있는 방법을 제공합니다. 이는 REST API와 비교했을 때 데이터 오버페칭(더 많은 데이터를 받는 것)과 언더페칭(필요한 데이터를 충분히 받지 못하는 것)을 방지할 수 있습니다.Apollo 서버는 GraphQL 스펙을 구현한 가장 인기 있는 서버 중 하나로, 간편한 설정과 확장성, 성능 등을 이유로 많이 사용됩니다. Node.js 환경에서 Apollo 서버를 설정하고 사용하는 과정은 다음과 같습니다.Apollo 서버 설치프로젝트 초기화: 먼저, Node.js 프로젝트 폴더에서 yarn init 명령을 실행하여 packa.. 2024. 5. 12.
cors(2022.05.11) CORS(Cross-Origin Resource Sharing)는 웹페이지에서 다른 도메인의 자원을 안전하게 요청할 수 있도록 하는 보안 메커니즘입니다. 웹 브라우저는 기본적으로 같은 출처 정책(Same-Origin Policy)을 따르기 때문에, 다른 도메인에서 호스팅되는 API로부터 데이터를 가져오려 할 때 CORS 오류가 발생할 수 있습니다. 이를 해결하기 위해 서버 측에서 적절한 CORS 헤더를 설정해야 합니다.CORS 오류 해결Node.js 환경에서 API를 개발할 때, 클라이언트(예: 웹 브라우저)에서 서버의 리소스를 요청하고 CORS 오류가 발생하면 cors 미들웨어를 사용하여 해결할 수 있습니다. 다음은 이 과정을 구현하는 방법입니다: cors 설치yarn add cors cors 미들웨어.. 2024. 5. 11.
swagger(2024.5.11) Swagger란 무엇인가?Swagger는 RESTful API를 설계, 빌드, 문서화, 사용할 수 있도록 지원하는 오픈 소스 소프트웨어 프레임워크입니다. 이는 API의 전체 수명 주기를 관리하는데 도움을 줍니다. Swagger의 주요 구성 요소는 다음과 같습니다:Swagger Editor: 웹 기반 에디터로, API 설계를 YAML 또는 JSON 형식으로 작성하고 검증할 수 있습니다.Swagger UI: 작성된 Swagger 스펙을 사용하여, 브라우저에서 API의 문서를 보고, 인터랙티브하게 API를 탐색하고, 실제 API 요청을 실행할 수 있는 동적인 API 문서화 도구입니다.Swagger Codegen: API 정의를 기반으로 서버 스텁, 클라이언트 라이브러리, API 문서 등을 자동으로 생성할 수 .. 2024. 5. 11.
node.js(2024.05.10) 1. Early Exit PatternEarly Exit Pattern은 함수 내에서 조건을 만족하지 않는 경우 일찍 반환(early return)하여 불필요한 조걸 중첩을 줄이는 패턴입니다. 이를 통해 코드의 가독성과 유지 보수성이 향상됩니다. 예를 들어, 유효하지 않은 입력값에 대해 함수 시작 부분에서 반환하고, 그 후의 로직을 계속 진행합니다. 2. 퍼사드(Facade) 패턴퍼사드 패턴은 복잡한 시스템에 대한 간단한 인터페이스를 제공하는 디자인 패턴입니다. 이 패턴을 사용하면 시스템의 복잡성을 숨기고, 사용자는 더 간단한 API를 통해 시스템과 상호작용할 수 있습니다. Node.js에서는 라이브러리나 프레임워크가 내부 복잡성을 숨기고 간단한 메소드를 제공할 때 이 패턴을 활용합니다. 3. Templ.. 2024. 5. 10.
DEX, UniswapV2(2024.05.10) DEX (분산형 거래소)정의 및 기능: DEX는 중앙 집중식 서버가 아닌 스마트 계약을 사용하여 운영되는 분산형 거래소입니다. 사용자는 플랫폼을 통해 직접 자산을 교환할 수 있으며, 거래 정보는 블록체인에 기록됩니다.장점: 중앙화된 거래소와 달리, DEX는 자금의 통제권을 사용자에게 남겨두며, 서버나 회사의 간섭 없이 투명한 거래가 가능합니다. 또한 보안이 강화되며, 거래 추적이 어려워 개인 정보 보호가 강화됩니다.Uniswap V2 동작 방식유동성 풀: 토큰 쌍마다 개별 유동성 풀이 있으며, 이 풀은 두 토큰의 예치된 양에 따라 가격이 결정됩니다. 유동성 제공자는 풀에 토큰을 예치하고 LP 토큰을 받습니다.가격 결정: Uniswap은 x * y = k 공식을 사용하여 가격을 결정합니다. 여기서 x와 y.. 2024. 5. 10.
[인터넷프로토콜] Networking Devices 리피터(물리계층) -신호가 너무 약해지거나 손상되어 동일한 네트워크를 통해 신호를 전송할 수 있는 길이를 늘이기 전에 신호를 재생성하는 역할을 한다. -신호를 증폭할 뿐만 아니라 재생도 가능하다. 허브(물리계층) -허브는 기본적으로 다중 포터 리피터이다. 허브는 서로 다른 스테이션을 연결하는 스타 토폴로지의 커넥터와 같이 서로 다른 분기에서 오는 여러 개의 와이어를 연결한다. -허브는 데이터를 필터링할 수 없으므로 데이터 패킷은 연결된 모든 장치로 전송된다.(브로드케스트) 즉, 허브를 통해 연결된 모든 호스트의 충돌 도메인은 하나로 유지된다. 또한 데이터 패킷의 최적 경로를 찾을 수 있는 지능이 없기 때문에 비효율성이 발생한다. 허브 유형(물리계층) -액티브 허브(avtive hub) : 전원 공급 장치.. 2024. 3. 12.