전체 글53 API 명세서 자동화 - swagger (feat. express.js) Swagger의 주요 특징자동화된 API 명세서 생성코드 주석을 통해 API 명세서를자동으로 생성할 수 있다사용자 친화적인 UI누구나 API 명세서를시각적으로 이해할 수 있다API 테스트 기능직접 API를 호출하고테스트할 수 있는 기능을 제공 swagger 관련 패키지 설치npm install swagger-jsdoc swagger-ui-express swagger 설정 파일 생성const swaggerJsDoc = require('swagger-jsdoc');const swaggerUi = require('swagger-ui-express');const swaggerOptions = { swaggerDefinition: { openapi: '3.0.0', info: { title.. 2024. 10. 10. [결제 기능] #1 결제 기능 도입 (feat. 토스페이먼츠) 토이 프로젝트(Flutter & Node.js)로여행 상품 추천 앱을 개발하던 중예약 관련 프로세스에 부족함이 느껴졌다 평소 결제 관련 기술에 관심이 많았던 터라이 기회를 활용해 실무적인 경험을 쌓아보기로 결심! 이참에 평소 관심있던 결제 기능을 도입해볼까? 대표적으로 포트원, 토스페이먼츠가 시중에서 레퍼런스도 많고API 모듈도 잘 구현되어있어 비교적 쉽게 연동할 수 있다는 장점 Flutter에 대한 시장 규모가 React에 비해서다소 작은 편이라 고민 중 토스페이먼츠로 결정 토스페이먼츠 개발자센터 해당 링크에 접속해서 회원가입을 진행하면사업자번호 없이 테스트할 수 있는 테스트 연동 키를 조회할 수 있다 다음 글에선 API와 SDK를 살펴보자... [결제 기능] #2 토스페이먼츠 API와 SD.. 2024. 9. 26. [자료구조][스택] - 연결 리스트 스택 연결 리스트 스택 구조스택의 최상단은 연결 리스트의 첫 번째 노드삽입 / 삭제 연산은 스택의 최상단에서 이루어짐연결 리스트 스택 장점배열과 다르게 동적이므로효율적인 메모리 사용 가능연결 리스트 스택 단점데이터 이외에 다음 노드를 위한포인터를 위한 메모리가 추가 필요하므로작은 데이터셋에서는 오버헤드 발생 우려연결 리스트 스택 구현 (Java)class Node { int data; Node next; public Node(int data) { this.data = data; this.next = null; }}class LinkedListStack { private Node top; public LinkedListStack(.. 2024. 3. 21. [자료구조][스택] - 재귀 스택 재귀 함수란?자신을 다시 호출하는 함수재귀 함수 예시 int factorial(int n) { if (n == 1) { // 종료 조건 return 1; } return n * factorial(n - 1); // 재귀 호출 } System.out.println(factorial(5)); // 5 * 4 * 3 * 2 * 1 = 120 재귀 함수는 매번 자기 자신을 호출할 때마다현재 함수의 상태가 스택에 저장됨 하지만 재귀 호출이 너무 깊어지면Stack Overflow 가 발생할 수도 있음 해당 문제를 해결하기 위해재귀를 명시적 스택을 사용하여반복문으로 대체할 수 있다명시적 재귀 스택 예시 int factor.. 2024. 3. 17. API 응답 구조화 (feat... 유틸 클래스) API 서버를 개발할 때클라이언트와 원활한 소통을 위해일관된 응답 구조 방식을 채택할 수 있다 API 엔드포인트에서성공 여부와 에러를 전달할 때일정한 포멧으로 응답을 주고 받으면클라이언트에서 예측 가능한 처리가 가능하다 유틸 클래스의 필요성API의 갯수가 많아질수록 동일한 형태의성공 / 실패 응답을 자주 사용하게 될 가능성이 높다이는 자연스래 중복된 코드로 이어지고유지보수 또한 까다로워진다 동일한 엔드포인트에서성공 / 실패 여부에 따른 응답을위와 같이 설정할 수 있다성공 시 응답 데이터{ "result": true, "errNum": null, "data": { "message": "Registration Success" }} 실패 시 응답 데이터{ "result": false, "err.. 2024. 3. 8. [자료구조][스택] - 모노톤(단조) 스택 모노톤 스택이란?스택에 데이터를 삽입할 때데이터가 단조 증가 / 감소하는 스택 모노톤 스택 예시 (Java) public int[] nextGreaterElement(int[] nums) { int[] result = new int[nums.length]; // 결과 저장 배열 Stack stack = new Stack(); // 스택 선언 for (int i = nums.length - 1; i >= 0; i--) { // 역순으로 순회 while (!stack.isEmpty() && stack.peek() 2024. 2. 22. [자료구조][스택] - 스택 스택이란?마지막에 삽입된 데이터가 가장 먼저 제거되는LIFO(Last In, First Out) 원칙을 따르는 자료구조 스택의 사용 방법 스택의 장점 스택의 단점 스택의 예시 (java) Stack stack = new Stack(); // 스택 생성 // Push: 스택에 요소 추가 stack.push(10); // 스택: [10] stack.push(20); // 스택: [10, 20] stack.push(30); // 스택: [10, 20, 30] // Peek: 스택의 맨 위 요소 확인 (제거하지 않음) System.out.println("Top element: " + stack.peek()); // 30 .. 2024. 2. 20. [알고리즘][정렬] - 쉘 정렬 쉘 정렬이란? 배열을 부분적으로 정렬된 여러 개의 서브 배열로 나누고 각 서브 배열에 대해 삽입 정렬을 수행함으로써 전체 배열을 점진적으로 정렬하여 삽입 정렬을 개선한 정렬 알고리즘 (삽입 정렬에 대한 설명 보러 가기) 작동 원리 1. 배열의 전체 길이에 따라 초기 간격(gap)을 설정한다 (보통 전체 길이의 절반이며, 홀수 권장) 2. 설정된 간격만큼 떨어진 요소들을 담은 부분 리스트를 생성한다 (부분 리스트의 개수는 간격과 같다) 3. 부분 리스트의 요소들을 비교하여 각각 삽입 정렬한다 4. 정렬 후, 간격을 절반으로 축소한다 (축소할 때마다 하나의 부분 리스트에 속한 값들은 증가) 5. 간격이 1 에 도달하면 전체 리스트를 삽입 정렬한다 작동 예시 쉘 정렬 메소드 예시 public void shel.. 2024. 2. 16. 이전 1 2 3 4 ··· 7 다음 728x90 반응형