요청 파라미터 설정 방법

PathVariable

의미 : uri 경로에 포함된 값을 변수로 맵핑
사용처 : RESTful 스타일 API에서 특정 리소스를 식별할 때

@GetMapping("/users/{id}")
public String getUser(@PathVariable("id") Long id){
    return "User id: " + id;
}

특징 :

  • URL 경로의 일부(.../users/10)를 그대로 변수 id=10에 바인딩
  • 주로 리소스 식별자(ID 등) 전달

RequestParam

의미: URL 쿼리 파라미터나 form-data의 key-value를 매핑
사용처: 검색 조건, 페이징 옵션 등 선택적 파라미터 전달할 때

@GetMapping("/users)
public String searchUser(@RequestParam String name,
                        @RequestParam(defaultValue="1") int page) {
    return "Name: " + name + ", Page: " + page;                        
}

특징 :

  • key=value 형태의 데이터와 매핑
  • defaultValue 지정 가능
  • 선택적으로 사용할 수 있으며, 주로 옵션성 데이터 전달

RequestBody
의미 : HTTP 요청의 Body(JSON, XML 등)를 객체로 역직렬화
사용처 : POST/PUT/PATCH 요청 시 대량의 구조화된 데이터(DTO, JSON 등) 전달할 때

@PostMapping("/users")
public String createUser(@RequestBody UserDto user){
    return "Created user: " + user.getName();
}

특징 :

  • 주로 application/json과 함께 사용
  • Jackson 같은 메시지 컨버터가 JSON -> 객체 변환 수행
  • 대규모 데이터 교환, 복잡한 구조 데이터를 처리할 때 적합

1. pip install --user -r requirements.txt
2. python main.py

 requirements.txt

gTTS==2.3.2
elevenlabs==0.2.24

 

main.py (gTTS 버전)

from gtts import gTTS
import os

def text_to_speech():
    try:
        # input.txt 파일 읽기
        with open('input.txt', 'r', encoding='utf-8') as file:
            text = file.read()
        
        # gTTS를 사용하여 텍스트를 음성으로 변환
        tts = gTTS(text=text, lang='ko')
        
        # 음성을 output.wav 파일로 저장
        tts.save('output.wav')
        print("음성 변환이 완료되었습니다. output.wav 파일을 확인해주세요.")
        
    except FileNotFoundError:
        print("input.txt 파일을 찾을 수 없습니다.")
    except Exception as e:
        print(f"오류가 발생했습니다: {str(e)}")

if __name__ == "__main__":
    text_to_speech()

 

main.py (elevenlabs 버전)

from elevenlabs import generate, save, set_api_key
import os

# ElevenLabs API 키 설정
set_api_key(<API KEY>)

def text_to_speech():
    try:
        # input.txt 파일 읽기
        with open('input.txt', 'r', encoding='utf-8') as file:
            text = file.read()
        
        # ElevenLabs API를 사용하여 텍스트를 음성으로 변환
        # 기본 음성은 'Rachel'을 사용합니다
        audio = generate(
            text=text,
            voice="Rachel",
            model="eleven_multilingual_v2"
        )
        
        # 음성을 output.wav 파일로 저장
        save(audio, "output.wav")
        print("음성 변환이 완료되었습니다. output.wav 파일을 확인해주세요.")
        
    except FileNotFoundError:
        print("input.txt 파일을 찾을 수 없습니다.")
    except Exception as e:
        print(f"오류가 발생했습니다: {str(e)}")

if __name__ == "__main__":
    text_to_speech()

'#개발' 카테고리의 다른 글

코스피 지수 추출하는 웹 크롤러  (0) 2025.06.07

+ Recent posts