강의 내용중에 var
39
작성한 질문수 48
1.강의 내용중에 var를 사용하는 이유가 있을까요?
여러강의를 들었지만 var를 사용을 잘 안하던데~
var가 클래스형을 특정하지 않고 쓰는거라곤 하는데.. 리턴값이 명확치 않은 느낌이라..
JS의 let을 안쓰고 var를 쓰는 느낌과 유사..
궁금하네요.
구축프로젝트에선 var를 써본적이 없어서 질문드립니다.
2. 프로젝트시 PromptRunner 클래스를 공통으로 잘 만들어줘야 할것같은데.. 저거 이외에도 필요한것들이 더 많을 수 있져? 예를 들면 어떤것들이 있을까요?
답변 1
0
안녕하세요, 이도원입니다.
강의에 관심을 가져 주셔서 감사드립니다. 질문하신 내용에 대해 아래에 의견 및 답변 드립니다.
1. 강의에서 var를 사용하는 이유가 있나요?
기존에 타입을 직접 적는 방식에 익숙하시면 var가 낯설게 느껴질 수 있습니다. 😊
Java의 var는 타입을 지정하지 않는 것이 아니라, 오른쪽의 값을 보고 컴파일러가 타입을 결정하는 문법입니다.
String message = "안녕하세요";
var message = "안녕하세요"; // 컴파일러가 String으로 판단두 코드에서 message는 모두 String 타입입니다. var로 선언했더라도 이후에 숫자 등 다른 타입의 값을 넣을 수는 없습니다. 따라서 JavaScript의 var와는 다른 개념으로 보시면 됩니다.
강의 코드에서 var를 사용하면 긴 타입 이름의 반복을 줄이고, 서비스의 처리 흐름에 집중할 수 있다는 장점이 있습니다.
var runner = new PromptRunner();위 코드는 오른쪽만 봐도 PromptRunner 타입임을 알 수 있습니다. 반면 다음 코드는 말씀하신 것처럼 타입이 바로 드러나지 않을 수 있습니다.
var result = service.execute();이런 경우에는 타입을 명시하는 편이 읽기 좋습니다. 무조건 var를 사용하는 것이 좋은 것은 아니며, 타입을 쉽게 알 수 있는 곳에 선택적으로 사용하고 프로젝트의 코딩 규칙에 맞추시면 됩니다.
참고로 Java의 var는 Java 10부터 지원하는 지역 변수 타입 추론 문법이며, 메서드의 반환 타입을 var로 선언할 수는 없습니다. 메서드에 선언된 반환 타입은 그대로 유지됩니다.
var 타입의 장단점을 간략하게 정리하면 아래와 같습니다.
장점:
긴 타입 이름을 생략해 코드가 간결해집니다.
중복되는 타입 표기를 줄일 수 있습니다.
코드의 실제 처리 흐름에 집중하기 좋습니다.
단점:
오른쪽 표현식이 복잡하면 타입을 바로 알기 어렵습니다.
타입 확인을 위해 IDE나 메서드 선언을 확인해야 할 수 있습니다.
과도하게 사용하면 가독성이 오히려 떨어집니다.
참고로, Java의 var는 타입을 직접 명시하는 것과 성능 차이가 없습니다. var 사용 여부는 성능보다 가독성과 팀의 코딩 규칙을 기준으로 결정하시면 됩니다.
2. 실제 프로젝트에서는 PromptRunner 외에도 필요한 것들이 많나요?
네, 맞습니다. 실제 서비스에서는 프롬프트를 실행하는 기능 외에도 여러 기능이 필요해질 수 있습니다. 다만 모든 기능을 PromptRunner 하나에 넣기보다는 역할별로 나누는 편이 유지보수에 좋습니다.
예를 들면 다음과 같습니다.
프롬프트 관리: 프롬프트를 파일이나 템플릿으로 관리하고 변경 이력 추적
모델 호출 설정: 모델 이름, 응답 길이, 타임아웃 등의 설정 관리
예외 처리와 재시도: 호출 실패나 사용량 제한에 대응
응답 변환과 검증: 응답을 DTO로 변환하고 필수 값이나 형식 확인
대화 이력 관리: 사용자별 이전 대화를 저장하고 필요한 내용 전달
문서 검색 연동: 사내 문서를 검색해 답변에 필요한 근거 제공
사용량과 품질 기록: 토큰 사용량, 비용, 응답 시간, 오류 등을 확인
예를 들어 금액 계산 서비스라면 LLM은 질문에서 조건을 추출하고, 실제 계산은 별도의 Java 코드가 수행하도록 구성할 수도 있습니다.
처음부터 모두 만들 필요는 없습니다. 우선 공통 호출·예외 처리·응답 검증부터 구성하고, 서비스 요구사항에 따라 확장하시면 됩니다.
0
형이 명확할땐 var, 형이 명확히 안보이면 원래 리턴 객체로 사용하면 되겠네요. 저도 프로젝트 뛰면서 이소스 저소스 보는데요. var는 잘 못본거 같아서 질문드렸습니다. ㅎㅎ 답변 감사합니다.
수업 ppt 해당 장표 위치
0
13
2
강의자료 링크 열리지 않음.
0
13
2
28강 REVIEW.md 파일이 없습니다.
0
11
0
강의내용중에 CoT 부분
0
44
2
목차랑 내용이 전혀 다른데요
0
60
2
4.2.2 ~ 10.3.2.1 강의 영상 안나옴
0
56
2
강의 교안 예시
0
38
1
햅틱? 백틱?
0
54
1
postgresql 인텔리제이 커뮤니케이션 버전에서는 실행 안되나요?
0
54
2
api응답내용이 한글이 아닌 다른 언어와 섞여서 나옴.
0
50
1
(261004) 현재 상황 공유
0
58
2
(261004) 본 강의 실습에 대한 현재 상황 공유
0
62
2
클로드코드 아이콘 화면 표시
0
38
1
ai 레드티밍 자료 및 강의 누락
0
45
1
수업자료 관련 문의
0
65
3
섹션 2 - 9강. API 관련 질문
0
69
2
5강 녹음 소리 ㅠㅠ
1
72
3
github주소가 안보여요. ㅠ
0
75
2
아웃룩을 사용하지 않고, 개인메일이나 회사메일로 발송하는 방법 문의
0
45
0
강의 자료 요청드립니다.
0
50
1
클로드 코워크와 챗의 통합
0
55
1
Gemini File Search API
0
50
2
녹음 소리
0
126
1
spring으로 RAG 구축인 이유?
0
165
1





