본문 바로가기

728x90
반응형

웹 프로그래밍

(30)
[Swagger] Failed to load API definition 문제 단일 모듈 환경에서의 Swagger UI 정상 동작 여부를 확인 후, 멀티 모듈로 변환 후 Swagger UI를 실행 했을 경우 아래와 같은 에러가 발생했습니다. Ambiguous handler methods mapped for '/v3/api-docs' 해결 JSON 형식의 OpenAPI의 문서 경로가 중복되어 발생하는 문제라고 판단하여 application.yml 에 아래와 같은 설정을 추가해주었습니다. springdoc: api-docs: path: /api-docs/network 해당 설정 추가 후 아래와 같이 Swagger UI가 정상적으로 보입니다. OpenAPI의 api-docs의 기본 URL이 /v3/api-docs 여서 발생한 에러였습니다.
[JAVA] Array, 자바 배열 해당 글은 남궁성님의 자바의 정석을 학습 후에 작성되었습니다. 배열이란 배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것 int[] score = new int[5]; 위와 같은 형식으로 배열을 선언하면 저장 공간이 생긴다. 위의 예제에서는 5개의 저장공간이 생기는데 해당 공간에는 자동으로 0부터 번호가 붙는데 그 숫자를 배열의 인덱스 라고 부른다. 배열의 선언과 생성 배열의 선언은 변수의 선언과는 조금 다르다 변수는 선언과 동시에 저장 공간이 만들어지는데, 배열을 선언할 경우 저장 공간이 만들어지는 것이 아닌 참조 변수가 선언 되는 것이다. 배열의 선언 - 배열을 다루기 위한 참조변수의 선언 선언 방법 타입[] 변수이름; int[] score; String[] name; 타입 변수이름[]; i..
[JAVA] break문, continue 문, 이름 붙은 break 문 해당 글은 남궁성님의 자바의 정석을 학습 후에 작성되었습니다. break 문 자신이 포함된 하나의 반복문을 벗어난다 while(true) { if(sum>100){ break; } ++i; sum += i; } System.out.println("i=" + i); System.out.println("sum=" + sum); i=14 sum=105 continue 문 자신이 포함된 반복문의 끝으로 이동 다음 반복으로 넘어간다 전체 반복 중에서 특정 조건시 반복을 건너뛸 때 유용함 for(int i=0;i
[Web] Websocket Websocket이란? Websocket은 웹 브라우저(클라이언트)와 서버 간의 full-duplex(양방향), bi-directional(전이중적), persistent connection(지속적인 연결)의 특징을 갖는 프로토콜입니다. 웹 소켓이 나오기 이전에는 클라이언트의 요청이 없을 경우, 서버로부터 응답을 받을 수 없었습니다. 대부분의 통신은 HTTP를 통해 이루어졌는데, HTTP는 Request/Response 기반의 Stateless protocol로 클라이언트에서 필요할 때 request를 할 때만 서버가 response를 하는 방법으로 통신이 되는 한방향 통신입니다. 웹 소켓은 이러한 단점을 해결하기 위해 나온 서버와 클라이언트 사이에 양방향 통신 채널을 구축할 수 있는 통신 프로토콜입니다..
[JAVA] 반복문 - for문, 중첩 for문, while문, do-while문 해당 글은 남궁성님의 자바의 정석을 학습 후에 작성되었습니다. for문 조건을 만족하는 동안 블럭{}을 반복한다. 반복 횟수를 알 때 적합하다. for(초기화;조건식;증감식){ 수행될 문장 } 초기화 된 변수가 조건식에 부합할 경우 블럭{} 안의 문장을 수행 후 증감식에 따라 초기화 된 변수의 값이 변경된다. example for(int i=0;i 3 정답입니다.
[JAVA] switch문 해당 글은 남궁성님의 자바의 정석을 학습 후에 작성되었습니다. switch문 처리해야 하는 경우의 수가 많을 때 유용한 조건문이다. switch(조건식) { case 값1: // 조건식의 결과가 값1과 같은 경우 수행될 문장 // ... break; case 값2: // 조건식의 결과가 값2와 같은 경우 수행될 문장 // ... break; default: // 조건식의 결과와 일치하는 case문이 없을 때 수행될 문장들 } 동작 과정 조건식을 계산한다. 조건식의 결과와 일치하는 case문으로 이동한다. 이후의 문장들을 수행한다. break문이나 switch문의 끝을 만나면 switch문 전체를 나간다. if-else문보다 switch문이 유용한 경우? 처리해야 하는 경우의 수가 많을 때 유용하다. if..
[JAVA] 연산자 해당 글은 남궁성님의 자바의 정석을 학습 후에 작성되었습니다. 연산자 : 연산을 수행하는 기호 (+, -, *, /) 피연산자 : 연산자의 연산 수행 대상 모든 연산자는 연산 결과를 반환한다. 연산자의 종류 산술 연산자 : 사칙 연산과 나머지 연산 +, -, *, /, %, 비교 연산자 : 크고 작음과 같고 다름을 비교 , =, ==, != 논리 연산자 : 그리고(AND)와 또는(OR)으로 조건을 연결 &&, ||, !, &, |, ^, ~ 대입 연산자 : 우변의 값을 좌변에 저장 = 기타 : 형변환 연산자, 삼항 연산자, instanceof 연산자 (type), ?:, instanceof 연산자의 우선 순위 하나의 식에 연산자가 둘 이상 있을 때, 어떤 연산을 먼저 수행할 지 자동 결정하는 것 먼저 수..
[JAVA] CountDownLatch란? CountDownLatch는 어떤 쓰레드가 다른 쓰레드에서 작업이 완료될 때까지 기다릴 수 있도록 해주는 클래스입니다. 예를 들어, Main thread에서 5개의 쓰레드를 생성하여 어떤 작업을 병렬로 처리되도록 할 수 있습니다. 이때, Main thread는 다른 쓰레드가 종료되는 것을 기다리지 않고 다음 코드를 수행합니다. 여기서 CountDownLatch를 사용하면 다음 코드를 실행하지 않고 기다리도록 만들 수 있습니다. CountDownLatch 사용하기 CountDownLatch를 초기화 할 때 정수값 count를 넣어줍니다. 쓰레드 마지막에서 countDown() 메서드를 호출하면 초기화할 때 넣어준 정수값이 하나 내려갑니다. 즉, 각 쓰레드는 마지막에서 자신이 실행 완료했음을 countDow..

728x90
반응형