(250121)

mini_bang·2025년 1월 21일
// 실습 코드
// HTTP 모듈을 가져옵니다. 이 모듈은 Node.js에서 기본적으로 제공하며,
// HTTP 서버를 생성하고 요청(request)과 응답(response)을 처리하는 데 사용.
const http = require('http');

// HTTP 서버를 생성합니다.
// 'createSever' 메서드는 요청(req)과 응답(res)을 처리하는 콜백 함수를 받습니다.
const server = http.createServer((req, res) => {
    // 클라이언트에게 보내는 응답의 HTTP 상태 코드를 200(성공)으로 설정하고,
    // Content-Type 헤더를 'text/plain'(일반 텍스트)으로 설정합니다.
    res.writeHead(200, {'Content-Type' : 'text/plain'});

    res.end("Hello World!")

    // 클라이언트에게 'Hello World!'라는 메시지를 응답으로 보냅니다.
});

// 서버를 포트 3000에서 실행하도록 설정합니다.
// 'listen' 메서드는 서버가 요청을 청취(listen)할 포트를 지정합니다.
// 또한, 서버가 시작되었을 때 호출되는 콜백 함수도 전달합니다.
server.listen(3000, () => {
    // 서버가 성공적으로 실행 중일때, 콜솔에 메시지를 출력합니다.
    // 여기서 'Localhost'는 로컬 호스트를 가리키며, 서버가 컴퓨터에서 실행중 임을 의미합니다.
    console.log("서버가 http://localhost:3000에서 실행 중입니다.")
})

// 실습 코드
const readline = require('readline');

// 미리 정의된 질문-응답 데이터
const responses = {
    "안녕": "안녕하세요! 챗봇입니다. 무엇을 도와드릴까요?",
    "이름이 뭐야?": "저는 간단한 챗봇입니다. 이름은 없어요!",
    "시간이 몇 시야?": `지금은 ${new Date().toLocaleTimeString()}입니다.`,
    "잘 가": "안녕히 가세요! 다음에 또 만나요!",
};

// 입력 인터페이스 생성
const r1 = readline.createInterface({
    input: process.stdin,
    output: process.stdout,
});

// 사용자와 챗봇의 대화
const startChat = () => {
    r1.question("사용자: ", (input) => {
        const response = responses[input] || "죄송하지만, 이해하지 못했어요.";
        console.log(`챗봇: ${response}`);
        if (input === "잘 가") {
            r1.close(); // 챗봇 종료
        } else {
            startChat();    // 다시 질문 대기
        }
    });
};

console.log("챗봇과 대화를 시작합니다. (종료하려면 '잘 가'를 입력하세요.)");
startChat();

// 챗봇과 대화를 시작합니다. (종료하려면 '잘 가'를 입력하세요
// 사용자: 안녕
// 챗봇: 안녕하세요! 챗봇입니다. 무엇을 도와드릴까요?
// 사용자: 이름이 뭐야?
// 챗봇: 저는 간단한 챗봇입니다. 이름은 없어요!
// 사용자: 시간이 몇 시야?
// 챗봇: 지금은 오후 12:20:20입니다.
// 사용자: 아아아아아아아아아
// 챗봇: 죄송하지만, 이해하지 못했어요.
// 사용자: 잘 가
// 챗봇: 안녕히 가세요! 다음에 또 만나요!

0개의 댓글