묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Java TPC (생각하고, 표현하고, 코딩하고)
문자열 String 에 대해 질문이 있습니다.
문자열 String을 객체 생성하여 String str = new String();과 Strign str = ""; 이렇게 생성하는 방식중에 무엇이 더 적합한지요?그리고 두개방식의 차이점이 무엇인지 궁금합니다. 문자열을 담을 수 있는 변수가 필요할때 어떻게 사용하는게 더 나은것인지에 대한 질문입니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
핸들러 매핑과 핸들러 어댑터 강의 질문 (컨트롤러 호출과정 질문)
안녕하세요 선생님!스프링 입문 강의부터 잘 따라가고 있다가 컨트롤러 인터페이스 부분에서 막혀서 질문 드립니다. 전 강의 '유연한 컨트롤러' 강의를 보면 FrontControllerServletV5에서는 핸들러 매핑정보를 Map<String, Object> handlerMappingMap에 담았고, getHandler메소드를 통해 handlerMappingMap.get(requestURI);로 반환하여 핸들러를 찾았습니다. 제가 이해한 컨트롤러 호출과정은,핸들러 조회 - getHandler(request); =>handlerMappingMap.get(requestURI);으로.핸들러 어댑터 조회 - getHandlerAdapter(handler);핸들러 어댑터 실행 - adapter.handle(request, response, handler);이라고 알고있었습니다. 그런데 이번에 핸들러 매핑과 핸들러 어댑터 강의에서 Controller인터페이스를 사용한 OldController를 보니, 이렇게 설명이 나와있습니다.그렇다면 , 위와 같은 순서가 아니라 핸들러를 찾는 방법 선정이 먼저인적절한 핸들러 매핑방법 찾기 (RequestMappingHandlerMapping 인지, BeanNameUrlHandlerMapping 인지)찾은 핸들러 매핑으로 핸들러 조회핸들러 어댑터 조회핸들러 어댑터 실행이렇게 이해를 했습니다. 질문입니다. 1 . 그러면 V5와의 차이점이 ,V5는 핸들러 매핑방법이 handlerMappingMap.get(requestURI); 이거 하나였는데, Controller인터페이스를 적용한 부분은 핸들러 매핑방법이 RequestMappingHandlerMapping, BeanNameUrlHandlerMapping 이렇게 두개(실제로는 더 많다고 하셨으니 여러개)가 된 것인가요??? 2. 매핑 방법이 두개가 된 이유는 지금까지 스프링을 사용하지 않은 서블릿으로만 사용했기 때문에 컨트롤러를 Map으로만 관리하다가, 이제는 컨트롤러를 @Component를 이용해 스프링 빈으로 등록을 해서, Map이 아닌 스프링빈으로 관리를 해서 그런건가요?? 3. 그렇다면 이 때, 컨트롤러 저장소(?) 모양의 변화는 아래와 같나요?이 모양에서이모양으로 바뀐건가요?그리고 여기서 스프링 빈 저장소의 빈 객체는 OldController인가요? 아니면 null인가요? .. 반환값이 null이어서.. 4. 빈 이름으로 등록하지 않고 @RequestMapping으로 등록한다면 스프링 빈 저장소의 모양은 위의 빈 저장소와 동일한가요? 5. 교재에서 DispacherServlet.doDispatch()의 핸들러 조회 부분인 getHandler메소드가 적혀있지 않은데 일부러 안적으신건가요? 아래의 V5의 getHandler메소드처럼 핸들러 조회할 때 Map을 뒤져서 가져오는걸 바로 파악해서 이해하기 좋았는데doDispatch()에는 위 메소드가 없더라구요ㅠ.. 어떻게 뒤져서 가져오는 지 흐름이 궁금합니다.아니면 스프링이 제공해줘서 메소드가 없는건지? 있다면 메소드 코드를 알려주실 수 있나요? (제가 못찾는건지 인텔리제이 검색이 안나오네요..ㅠ) 더 궁금한 게 많지만 여기 까지 질문 하겠습니다. 혹시 위에서 제가 다르게 이해하고 있는 부분이 있거나, 앞서 들은 강의에서 부족한 개념이 있어 보이시면 알려주시면 감사하겠습니다.그리고 강의 너무 재밌고 좋아요!감사합니다!!
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
EntityManager , JpaReopsitory
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 spring 강의를 듣고 혼자 구글링을 통해 연습을하다가 다시 인강으로 돌아온 수강생입니다! 혼자 연습할 때 리포지토리를 작성할 경우 JpaRepository를 extends 하여 사용하였습니다. 이때 em의 역할까지 자동으로 해주는것같아 엔티티 메니저는 사용하지않았습니다. 구글링을 더 해보니 CrudRepository등도 존재하는 것을 알게 되었습니다.여기서 질문은 보통 어느 방식을 선택하는지 궁금합니다. 상황에 맞는 방법이 있는 것인지 아니면 추세가 변하여 요즘은 어떤 것을 주로 쓴다는 흐름이 있는 것인지 궁금합니다!
-
미해결홍정모의 따라하며 배우는 C++
9:56 getRandomNumber 함수 질문
getRandomNumber 함수를 보면,int getRandomNumber(int min, int max){const double fraction = 1.0/(RAND_MAX +1.0);return min+static_case<int>((max-min+1)*(rand()*fraction));} 으로 구현하셨는데요. 여기서 rand의 seed를 time을 이용해 바꾸지 않았으니 매번 실행할 때마다 같은 seed가 들어가서 같은 결과가 나올테니, getRandomNumber함수도 매번 실행할 때마다 같은 값이 나오게 될 것 같은데 맞나요?
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
mAP 성능결과에 대한 기준이 궁금합니다.
안녕하세요 선생님. Mask-RCNN 을 이용한 프로젝트를 수행하면서 궁금증이 생겨 질문드립니다. 질문에 대한 답이 상대적이고 주관적일 수 있지만 약간의 기준이라도 얻고싶어 질문 남깁니다. 해당 강의를 통해 mAP가 높은 모델일수록 재현율, 정밀도가 함께 좋은 성능을 보이는 균형잡힌 모델이라고 이해를 하였습니다. 이번에 Mask-RCNN을 학습하여 테스트 데이터셋에 적용하였을 때, IOU 0.5 기준 mAP=60.3, 0.75 기준 mAP=47.4 성능의 모델을 만들었는데, 이와 같은 성능을 두고 해당 모델이 사용하기 적합하다 혹은 추가적인 튜닝이 필요하다와 같은 결론을 내리는 과정에서 어려움이 있습니다. 이에 대한 기준이 절대적이지 않겠지만, mAP에 대하여 통상적으로 사용되는 대략적 기준이 있는지 궁금합니다.추가적으로 Mask-RCNN의 경우 BBox에 대한 성능 외에 Segmentation에 대한 mAP 성능이 나오던데, 이는 Masking의 픽셀에 대해서 IOU를 계산한 것인지 궁금합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradle-resources-test:hello-spring.main: java.lang.NoClassDefFoundError:
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요.안녕하세요강의 13분 20초를 실습하는데gradle-resources-test:hello-spring.main: java.lang.NoClassDefFoundError: 에러가 생겼습니다해결시도1.스택오버플로우에서https://stackoverflow.com/questions/27978908/java-lang-noclassdeffounderror-org-apache-tools-ant-util-readerinputstream-vaadTryFile > Invalidate Caches / Restart를 따라했는데, 해결이 되지 않았습니다 해결시도2.https://www.inflearn.com/questions/728870/java-lang-noclassdeffounderror-org-apache-tools-ant-util-readerinputstream이분도 저와 같은 에러가 있어서 프로젝트를 새로 생성하였는데 해결이 되지 않았습니다
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의 11분 코드 19행 exclude group:
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]여기에 질문 내용을 남겨주세요. 강사님 안녕하세요강의 11분 8초에서 19번째 줄 코드에서exclude group: 이라는 코드가 보이는데제 코드에서는 그 코드가 보이지 않습니다그 이유와 이 코드의 역할에 대해서 질문 드리고 싶습니다.
-
미해결나도코딩의 자바 기본편 - 풀코스 (20시간)
퀴즈 3번 질문
제가 수정해서 만든 코드들도 정상적으로 작동하는 데 '나도코딩'님이 예시로 준 코드와 차이점이 뭔가요?제 코드가 메모리를 더 차지해서 이런 방법으로 쓰진 않나요?퀴즈 3번의 예시가 indexOf를 사용할 필요가 없을 정도로 간단해서 쓸 필요가 없는 건가요?public class _Quiz_03 { public static void main(String[] args) { String B01 = "901231-1234569"; //하이픈을 포함한 정수(숫자)들을 문자열로 만들기 위해 변수 String 사용 String B02 = "030708-4567890"; //하이픈을 포함한 정수(숫자)들을 문자열로 만들기 위해 변수 String 사용 // System.out.println("김영희님의 주민번호는 " + B01.substring(B01.indexOf("9"), B01.indexOf("2", 6)) + " 입니다."); System.out.println("김철수님의 주민번호는 " + B02.substring(B02.indexOf("0",0), B02.indexOf( "5", 5)) + " 입니다."); // (내가 처음 만든 방식) 잘 작동은 되지만 코드가 길어서 메모리를 더 잡아 먹는다. //indexOf( "찾을 특정 문자" , "시작할 위치" ) 이런식으로 사용해 주면된다. //"시작할 위치" 같은경우는 생략이 가능하며 생략할 경우 0번째 즉 처음부터 찾기 시작한다. System.out.println(B01.substring(B01.indexOf("9"),B01.indexOf("2", 4))); System.out.println(B02.substring(B02.indexOf("0"), B02.indexOf("5"))); //(수정된 방법) //(나도코딩님 예시) String id = "901231-1234569"; System.out.println(id.substring(0,8)); //0 위칩터 8위치 직전가지 } }
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
실전문제 해설 PDF 부탁드립니다
강사님 안녕하세요좋은 퀄리티 강의 감사드리고 덕분에 AWS 익히는데 큰 도움이 되었습니다.혹시 메일로 실전문제 해설 PDF 파일 받을 수 있을지 문의드립니다.메일주소 : janghb0903@gmail.com감사합니다.
-
해결됨일잘하는 마케터, MD에게 꼭 필요한 파이썬 데이터 분석
에러 질문 드립니다 .
안녕하세요 쓰앵님수정 업로드 해주신 코드로 실습하고 있는데 또 오류가 나왔습니다 ㅠ앞부분은 다 됐는데header = {'User-Agent': ''} driver.implicitly_wait(3) driver.get(ns_address) req = requests.get(ns_address,verify=False) html = req.text soup = BeautifulSoup(html, "html.parser") sleep(2) element=driver.find_element_by_xpath(shoppingmall_review) driver.execute_script("arguments[0].click();", element) sleep(2)====run=====NameError Traceback (most recent call last) <ipython-input-9-8a5c5adbf17a> in <module> 1 header = {'User-Agent': ''} 2 driver.implicitly_wait(3) ----> 3 driver.get(ns_address) 4 req = requests.get(ns_address,verify=False) 5 html = req.text NameError: name 'ns_address' is not defined이름이 정의되지 않았다고 뜹니다.제가 어디서 잘못한 것일까요 ?chatgpt에도 넣어봤는데The error message indicates that the variable 'ns_address' has not been defined in the code. You need to define the 'ns_address' variable before using it in the 'driver.get()' method.이렇게만 나옵니다 알려주세요~
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
타 PC에서 mobaxterm 계정 로그인하는 법
안녕하세요 맛비님! 이번에 리눅스 환경을 처음 써보는 수강자입니다.다름이 아니라, 맛비님께서 season 1에서 알려주신대로 ubuntu와 mobaxterm, 그리고 xilinx for lunux를 설치하여 실습을 따라갔었습니다.다만 그때는 데스크톱에 설치를 하였었는데 이번에는 노트북에도 같은 환경을 구축하고자 위 세가지를 동일하게 설치하였습니다. 혹시 이때, 데스크톱에 설치하고 작업했던 리눅스 계정을 노트북에서도 똑같이 사용할 수 있도록 로그인을 하는 방법이 있을까요? 구글링을 해보았는데 잘 이해를 하지 못해 질문 드립니다!
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
@RequetMapping을 컨트롤러 레벨에 놓은 경우, 오류 발생 관련 질문드립니다.
@Controller @RequestMapping("/springmvc/v1/members/new-form") public class SpringMemberFormControllerV1 { public ModelAndView process() { return new ModelAndView("new-form"); } }궁금해서 @RequestMapping을 클래스 레벨에 작성해보았습니다. 404 오류가 발생했는데, 추측해본 결과는 아래와 같습니다. 제가 추측한 부분이 맞는지 봐주실 수 있을까요?/springmvc/v1/members/new-form 요청이 들어왔다.-> 핸들러 매핑에서 SpringMemberFormControllerV1가 조회되었다.-> SpringMemberFormControllerV1를 처리할 수 있는 핸들러 어댑터로 RequestMappingHandlerAdapter가 선택되었다.-> DispatcherServlet이 핸들러 어댑터를 호출하였다.-> 핸들러 어댑터가 핸들러를 호출하려고 하는데, 이때, 404 오류가 발생한다.또는/springmvc/v1/members/new-form 요청이 들어왔다.-> @RequestMapping가 메서드 레벨이 아닌 클래스 레벨에 있으므로, 핸들러가 조회할 수 없다.(그니까, RequestMappingHandlerMapping은 스프링 빈 중에서, 클래스 레벨에 @RequestMapping 또는 @Controller가 붙은 경우, 매핑 정보로 인식한다. 클래스 레벨에 이 애너테이션이 붙은 클래스는 무수히 많다. 그렇다면, 요청 URL도 참고해서 핸들러를 조회한다는 것인데, @RequestMapping이 메서드 레벨에 존재하지 않기 때문에 핸들러를 조회할 수 없다.)
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
트레비스 ci 에 깃허브 연동이 안되네요.
플랜도 1달러 카드 승인과 구독완료했는데계속 이러네요...
-
해결됨[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
nullptr 자체 구현 과정에 대하여 질문이 있습니다.
안녕하세요.nullptr 수업 중 알려주신"nullptr 자체 구현 과정"에 대하여 질문이 있습니다.#include <iostream> using namespace std; #include <vector> #include <list> #include <deque> #include <map> #include <set> #include <algorithm> void Test(void* ptr) { cout << "Test(*)" << endl; } class NullPrt { public: // 그 어떤 타입의 포인터와도 치환 가능 template<typename T> operator T* ()const { return 0; } // 그 어떤 타입의 멤버 포인터와도 치환 가능 template<typename C, typename T> operator T C::* () const { return 0; } private: void operator&() const; // 주소값 &을 막는다. }; const NullPrt _NullPtr; int main() { Test(_NullPtr); return 0; }위와 같은 코드에서 Test(_NullPtr);를 실행하면,왜 NullPtr의 template<typename T> operator T* ()const { return 0; }로 진입하는 지에 대하여 조금만 더 자세히 설명해주실 수있을까요?Test 함수로 _NullPtr 객체를 보내주는데,왜 operator T* () const로 진입하지는 약간 이해가 되지 않습니다. 혹시 관련하여 참고할만한 구글링 키워드를 알려주셔도 좋습니다. ^^항상 잘 배우고 있습니다.감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링DB 접근기술파트까지 들었는데 못알아들어도 그냥 계속 따라서 치기만 해도 괜찮을까요..?
못알아들어서 머릿속에 안남고 휘몰아쳐서 그냥 후루룩 지나가는 느낌인데 일단 그냥 따라쳐서 완강하고 다음 스프링핵심원리 - 기본편으로 넘어가도 괜찮을까요..?그냥 따라치면서 듣고는 있는데 이게 맞나싶어서요...ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
cmd gradlew 오류
현재 스프링 부트 3.0.x 이상 사용중이라 자바 버전을 17로 하고 기타 설정을 다 17로 맞췄는데 No matching variant of org.springframework.boot:spring-boot-gradle-plugin:3.0.4 was found. The consumer was configured to find a runtime of a library compatible with Java 11, packaged as a jar, and its dependencies declared externally, as well as attribute 'org.gradle.plugin.api-version' with value '7.6.1' but: - Variant 'apiElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.4 declares a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares an API of a component compatible with Java 17 and the consumer needed a runtime of a component compatible with Java 11 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '7.6.1') - Variant 'javadocElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.4 declares a runtime of a component, and its dependencies declared externally: - Incompatible because this component declares documentation and the consumer needed a library - Other compatible attributes: - Doesn't say anything about its target Java version (required compatibility with Java 11) - Doesn't say anything about its elements (required them packaged as a jar) - Doesn't say anything about org.gradle.plugin.api-version (required '7.6.1') - Variant 'mavenOptionalApiElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.0.4 declares a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares an API of a component compatible with Java 17 and the consumer needed a runtime of a component compatible with Java 11 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '7.6.1') - Variant 'mavenOptionalRuntimeElements' capability org.springframework.boot:spring-boot-gradle-plugin-maven-optional:3.0.4 declares a runtime of a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component compatible with Java 17 and the consumer needed a component compatible with Java 11 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '7.6.1') - Variant 'runtimeElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.4 declares a runtime of a library, packaged as a jar, and its dependencies declared externally: - Incompatible because this component declares a component compatible with Java 17 and the consumer needed a component compatible with Java 11 - Other compatible attribute: - Doesn't say anything about org.gradle.plugin.api-version (required '7.6.1') - Variant 'sourcesElements' capability org.springframework.boot:spring-boot-gradle-plugin:3.0.4 declares a runtime of a component, and its dependencies declared externally: - Incompatible because this component declares documentation and the consumer needed a library - Other compatible attributes: - Doesn't say anything about its target Java version (required compatibility with Java 11) - Doesn't say anything about its elements (required them packaged as a jar) - Doesn't say anything about org.gradle.plugin.api-version (required '7.6.1')* Try:> Run with --stacktrace option to get the stack trace.> Run with --info or --debug option to get more log output.> Run with --scan to get full insights.* Get more help at https://help.gradle.orgBUILD FAILED in 3s 이렇게 오류가 뜨면서 빌드가 되지 않습니다.검색결과로 나오는 모든 설정을 17버전을 바꾸었는데 되지 않네요ㅜ 혹시 해결방법을 알려주실수 있는지 여쭤봅니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
중복_회원_예외 fail()에 생기는 빨간줄!
package hello.hellospring.service; import hello.hellospring.domain.Member; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.* ; import static org.junit.jupiter.api.Assertions.*; import static org.junit.jupiter.api.Assertions.fail; class MemberServiceTest { MemberService memberService = new MemberService(); @Test void 회원가입() { Member member = new Member(); member.setName("hello"); Long saveId = memberService.join(member); Member findMemeber = memberService.findOne(saveId).get(); assertThat(member.getName()).isEqualTo(findMemeber.getName()); } @Test public void 중복_회원_예외(){ // given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); memberService.join(member1); try { memberService.join(member2); fail(); }catch (IllegalStateException e){ assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } } }위에는 전체 코드 입니다fail() 메서드에 빨간줄이 생기고 실행하면 아래와 같은 오류가 발생합니다어떻게 고쳐야할까요?(+추가) fail()에 올렸을때 뜨는 메세지 입니다!
-
미해결데이터베이스 중급(Modeling)
데이터를 넣으려고 하면 오류가 발생합니다.
이 테이블을 만들고 나서 데이터를 넣으려고 시도하면 오류가 발생합니다. sqlmysql> insert into 신부(신부명) values("김신부"); 오류 메세지Cannot add or update a child row: a foreign key constraint fails (`test2`.`신부`, CONSTRAINT 신부_FK FOREIGN KEY (`신부ID`) REFERENCES 신랑 (`신랑ID`)) 어떻게 하면 오류없이 데이터를 삽입할 수 있나요??
-
미해결
강의를 처음부터 초기화해서 들을수 있나요?
강의를 처음부터 초기화해서 들을수 있나요?
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
JsonSerializable관련 질문드려요.
코팩님 강의와 동일하게 코드제네레이션을 한 것 같은데, 왜 g.dart파일에서 에러가 나는지 모르겠어요... ㅠㅠ as int하신 것도 동일한데 왜 형변환 에러가 나는지... 답변 기다릴게요 감사합니다...