묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
AcceptEx, ConnectEx 사용에 도움을 받고 싶습니다.
안녕하세요,비동기, 논블록 환경의 IOCP 서버를 구현하고 있습니다.문제는 AcceptEx, ConnectEx 호출 후 GetQueudCompletionStatus 를 호출하면 정상적으로 TRUE 의 값이 출력됩니다.하지만 서버에서 AcceptEx 를 호출하고, 완료 통보를 받았다면 서버가 클라이언트 소켓을 받아야 하는데 정상적으로 처리 되지 않는거 같습니다. 위 문제에 대한 코드에서 어떻게 해결 방안을 받거나 선생님의 도움을 받을 수 있을까요?왜냐하면 AcceptEx -> GetQueudCompletionStatus -> setsockopt 에서 AcceptEx 에 들어오는 소켓의 옵션을 설정해 주어야 한다고 마이크로 소프트 공식 문서에 써져 있는 것을 확인했습니다.하지만 옵션을 바꿔주기 전에 accept 소켓이 연결되어야 하는 상태인데 WSAENOTCONN 의 오류를 반환 받았습니다.하단 링크는 구글 드라이브 공유 링크입니다.문제가 있는 솔루션입니다.참고한 문서들은,소켓 오류 : https://learn.microsoft.com/ko-kr/windows/win32/winsock/windows-sockets-error-codes-2Github C 로 구현한 IOCP 비동기 논블록 서버 : https://github.com/YDYDWang/libiocpsocket/blob/master/sock.c#L335기본적인 IOCP 내용 블로그 : https://narakit.tistory.com/m/category/Computer%20Science%20%EA%B8%B0%EB%B3%B8%20%EC%A7%80%EC%8B%9D/%EC%86%8C%EC%BC%93%20%ED%94%84%EB%A1%9C%EA%B7%B8%EB%9E%98%EB%B0%8DAccpetEx 에 대한 마이크로 공식문서 : https://learn.microsoft.com/en-us/windows/win32/api/mswsock/nf-mswsock-acceptexLink : https://drive.google.com/file/d/1s8na3xe-o5nPPb8W6xuLMdl27XRfNChQ/view?usp=drive_link감사합니다 :)
-
미해결스프링 핵심 원리 - 기본편
[섹션 7 - 옵션 처리] 전체 테스트 중 CoreApplicationTests 클래스의 contextLoads 테스트 실패 질문입니다.
안녕하세요.게시판을 둘러보니 비슷한 오류가 나시는 분들이 계신 것 같은데 해결되신 분이 없는 것 같아 질문드립니다.개발 환경Spring Boot : 3.2.0운영체제 : Mac OS XIDE : IntelliJ IDEA Ultimate 2023.2.5JDK : JDK 17빌드 툴 : Gradle 8.4문제강의를 따라가던 도중 전체 테스트를 진행하는 과정에서 CoreApplicationTests 클래스의 contextLoads 테스트가 NoUniqueBeanDefinitionException 오류를 발생시키며 실패합니다.org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepository특이한점으로 GitHub에 올려놓은 코드를 내려받은 후 실행하면 테스트가 통과하고, 지금까지 했던 프로젝트를 실행하면 테스트가 실패합니다.테스트가 성공한 프로젝트도 아래처럼 컨텍스트를 주입받아 MemberRepository를 getBean으로 받아오는 테스트를 해보면 오류가 납니다.@SpringBootTest class CoreApplicationTests { @Autowired ApplicationContext ac; @Test void contextLoads() { MemberRepository bean = ac.getBean(MemberRepository.class); } }org.springframework.beans.factory.NoUniqueBeanDefinitionException: No qualifying bean of type 'hello.core.member.MemberRepository' available: expected single matching bean but found 2: memoryMemberRepository,memberRepository로그를 살펴보면 아래와 같습니다.expected single matching bean but found 2: memoryMemberRepository,memberRepository컴포넌트 스캔으로 등록한 빈과, AppConfig를 통해 등록한 빈이 겹치는 것 같습니다.아래는 유추한 내용입니다.컴포넌트 스캔이름을 변경해서 확인해봤습니다.다시 테스트를 돌려보면 로그가 아래처럼 찍힙니다.expected single matching bean but found 2: 메모리멤버레포지토리,memberRepository@Bean이름을 변경해서 확인해봤습니다.테스트를 돌려보면 로그가 아래처럼 찍힙니다.expected single matching bean but found 2: 메모리멤버레포지토리,앱콘피그에있는메모리레포지토리컴포넌트 스캔을 이용하여 MemberRepository 빈을 등록했는데 AppConfig 에서 @Bean 어노테이션이 붙은 메서드의 반환 객체도 빈으로 중복 등록 되어 발생한 것으로 생각됩니다.의문점AutoAppConfig 에서 Configuration 어노테이션이 붙은 클래스는 스캔의 대상에서 제외를 했는데 왜 중복해서 등록이 된 것일까요?검증을 위해 스프링 부트 통합 테스트를 진행해보았더니 AppConfig 가 빈으로 등록되어 있습니다.@SpringBootTest class CoreApplicationTests { @Autowired ApplicationContext ac; @Test void contextLoads() { AppConfig bean = ac.getBean(AppConfig.class); System.out.println(bean); } }hello.core.AppConfig$$SpringCGLIB$$0@37df14d1AppConfig 클래스의 코드입니다.@Configuration public class AppConfig { @Bean public MemberService memberService() { System.out.println("Call - AppConfig.memberService"); return new MemberServiceImpl(memberRepository()); } @Bean public MemberRepository memberRepository() { System.out.println("Call - AppConfig.memberRepository"); return new MemoryMemberRepository(); } @Bean public OrderService orderService() { System.out.println("Call - AppConfig.orderService"); return new OrderServiceImpl(memberRepository(), discountPolicy()); } @Bean public DiscountPolicy discountPolicy() { // return new FixDiscountPolicy(); return new RateDiscountPolicy(); } }(+) 컴포넌트 스캔을 CoreApplication 으로 옮겨도 똑같이 오류가 발생합니다.추가 질문만약 위 의문이 해결되어 AppConfig 에서 생성한 객체들이 빈으로 등록되지 않고, 컴포넌트 스캔을 통하여 빈을 등록한다면 MemoryMemberRepository 는 memoryMemberRepository 이름으로 빈으로 등록됩니다. 그렇다면 MemberServiceImpl 에서는 memberRepository 를 주입받아야 하는데, 빈의 이름이 달라 주입이 불가능할 것 같습니다. 이 경우에는 @Component("memberReository") 로 수정해줘야 할까요? 감사합니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
minmaxscaler 사용 문
minmaxscaler 사용에 있어 아래와 같이 코드를 작성했는데 오류가 뜹니다.. 원인 및 해결방법을 알고싶습니다. 키값 길이가 다르다는 것 같은데 잘 모르겠습니다ㅠㅜ에러내용: Columns must be same length as key# Missing keys in columns are represented as -1 c_cols = ['embarked','sex'] X_train[c_cols] = pd.get_dummies(X_train[c_cols]) X_test[c_cols] = pd.get_dummies(X_test[c_cols])
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
Exec exit status not zero. Status [125], unstable 오류
도원님 안녕하세요. 질문이 있어서 글 남깁니다. 강의를 보고 젠킨스에서 빌드 후 조치에 위와 같이 명령어를 입력하니 아래와 같이 오류가 발생합니다. 쉘에서 명령어(docker run -p 8080:8080 --name mytomcat cicd-project:latest)를 입력하면 빌드가 되고 웹페이지에 접속이됩니다. 하지만 젠킨스에서 빌드를 하면 ERROR: Exception when publishing, exception message [Exec exit status not zero. Status [125]]... 오류가 발생하였고 웹페이지에 접속이 되지 않았습니다. 혹시 의심가는 부분이 있는지 알려주시면 제가 다시 해보겠습니다.매번 감사드립니다.^^
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 drop 질문(inplace =True 써야할까요?)
질문 : drop할 때 inplace=True 써야할까요? train.drop('customerID', axis=1, inplace=True)여기서 inplace는 drop할 때 기존의 데이터프레임인 train을 customerID가 drop된 데이터프레임으로 대체할 것인지 판단하는 것으로 알고 있습니다. 수업 때 종종 inplace가 나오긴 하는데, 어떻게 적절히 사용해야할지 잘 모르겠습니다. 시험이 다가오니 사소해 보이는 것도 확인 받고 싶네요 ㅠㅠ 매번 감사드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형 1~3 관련 질문
선생님 안녕하세요! 선생님께서 지금시간 기준으로 지금까지 올려주신 강의를 모두 듣고나서 원래 갖고있던 궁금증이 많이 해소되었습니다!! 감사합니다 ㅎㅎ 그래도 좀더 궁금한것이 있어 여쭤봅니다 😃 만약 작업형1에서 앞에서 몇 프로 데이터 활용이 아닌, 뒤에서 몇 프로 활용이면 어떻게 해야할까요??만약 뒤에서 70%라면, df.iloc[int(len(df) * 0.3):, :]로 하면 될까요?? 그간 앞에서만 나왔는데 뒤에서부터 잘라내는 문제가 나올것을 생각해 여쭤봅니다 기출6 작업형1에서 3번에 연도를 찾는 문제를 만약 datetime형식으로 바꾸게 된다면df['날짜'] = pd.to_datetime(df['날짜'], format='%Y년%m월') 로 해보았는데 에러가 떠서 혹시 date형식으로 바꾸려면 어떻게 해야할지 궁금합니다! 선생님께서 분산분석 때 df.melt() 처리에 대해 말씀해주신 것을 확인했는데요. melt()작업이 필요한 때가 정확히 어떤 경우일까요? 일원분산분석 편처럼 독립,종속변수가 명확히 나와있지 않을 때 하면 될까요?? 분류문제와 회귀문제를 구별하는 것을 지금까지 평가지표로 구별했는데 평가지표가 안나올수도있을까요?? 또는 제출 예시를 보고 0.xxx 등의 확률 등이 아닌 숫자가 크고 다양하게 나온다면 회귀문제로 생각해도 될까요?? 선생님께서 캐글에 올려주신 작업형3을 공부해보고 있는데요! 그중에 포아송분포 관련 질문드립니다!- 하루에 적어도 2명의 고객이 잡지를 구매할 확률 : print(1 - poisson.cdf(1, lambda)) 로 풀이를 적어주셨는데 cdf(1, lambda)인 이유는 적어도 (2명 - 1)을 해서 그런걸까요?? lightgbm을 인코딩 처리 없이 사용할 수 있다고 하셨는데 .astype('category') 사용 없이 인코딩 등의 사전처리를 하고나서 사용하여도 성능에는 문제가 없을까요?? 랜덤포레스트와 해당 모델을 시험에서 사용하고싶어서요! 선생님께서 캐글에 올려주신 작업형1을 풀고 있는데요!result = df['StartTime'].dt.date.value_counts().index[0]print(result.strftime('%Y-%m-%d'))여기서 만약 result값으로 2011-01-01 이라는 답을 알았다면 이제는 이렇게 프린트문으로 하지 않고 바로 답안을 제출해도 될까요?? 그리고 value_counts는 무조건 숫자를 내림차순으로 정렬해서 보여주는지도 여쭤봅니다! 선생님께서 보너스 강의로 작업형3의 C()를 묶는 것에 대해 말씀해주셨는데, 로지스틱회귀와 회귀문제의 경우 문자로된 범주형이거나 숫자로 되어있지만 명시가 되어있거나 누가봐도 범주형인 부분을 묶으라고 하셨는데요! 회귀분석 파트의 범주형 강의에서는 C()를 묶는 등의 과정을 거치지 않고 그냥 적어도 된다고 하신걸로 이해했는데 어떻게 해야 할까요?
-
해결됨이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
언리얼엔진5 crash
LoginId:ebefb15d4a41fcfbd9f0d19329778528EpicAccountId:91a6d7e499ba484bb30b7d42f941c5baFatal error: [File:D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp] [Line: 4332] Bad path name: /Script/Engine.SkeletalMesh'/Game/Characters/Mannequins/Meshes/SKM_Quinn.SKM_Quinn, missing ' or an incorrect formatUnrealEditor_CoreUObject!ConstructorHelpers::StripObjectClass() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectGlobals.cpp:4335]UnrealEditor_ArenaBattle!AABCharacterBase::AABCharacterBase() [D:\ArenaBattle\Source\ArenaBattle\Character\ABCharacterBase.cpp:32]UnrealEditor_CoreUObject!UClass::CreateDefaultObject() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\Class.cpp:4136]UnrealEditor_CoreUObject!UObjectLoadAllCompiledInDefaultProperties() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectBase.cpp:832]UnrealEditor_CoreUObject!ProcessNewlyLoadedUObjects() [D:\build\++UE5\Sync\Engine\Source\Runtime\CoreUObject\Private\UObject\UObjectBase.cpp:917]UnrealEditor_CoreUObject!TBaseStaticDelegateInstance<void __cdecl(FName,bool),FDefaultDelegateUserPolicy>::ExecuteIfSafe() [D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Public\Delegates\DelegateInstancesImpl.h:739]UnrealEditor_Core!TMulticastDelegate<void __cdecl(FName,bool),FDefaultDelegateUserPolicy>::Broadcast() [D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Public\Delegates\DelegateSignatureImpl.inl:975]UnrealEditor_Core!FModuleManager::LoadModuleWithFailureReason() [D:\build\++UE5\Sync\Engine\Source\Runtime\Core\Private\Modules\ModuleManager.cpp:591]UnrealEditor_Projects!FModuleDescriptor::LoadModulesForPhase() [D:\build\++UE5\Sync\Engine\Source\Runtime\Projects\Private\ModuleDescriptor.cpp:696]UnrealEditor_Projects!FProjectManager::LoadModulesForProject() [D:\build\++UE5\Sync\Engine\Source\Runtime\Projects\Private\ProjectManager.cpp:62]UnrealEditor!FEngineLoop::LoadStartupModules() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:4188]UnrealEditor!FEngineLoop::PreInitPostStartupScreen() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\LaunchEngineLoop.cpp:3523]UnrealEditor!GuardedMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Launch.cpp:154]UnrealEditor!GuardedMainWrapper() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:107]UnrealEditor!LaunchWindowsStartup() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:244]UnrealEditor!WinMain() [D:\build\++UE5\Sync\Engine\Source\Runtime\Launch\Private\Windows\LaunchWindows.cpp:282]UnrealEditor!__scrt_common_main_seh() [D:\a\_work\1\s\src\vctools\crt\vcstartup\src\startup\exe_common.inl:288]kernel32ntdll 이러한 오류가 나타나고 있습니다 고치는 방법이 있을까요?
-
미해결이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
UFUNCTION을 붙여주는 이유, 필요한이유?
강의내용에 UFUNCTION에대한 설명은 없는거 같은데.그냥 단순히 함수이름을 검색하기 위해 있는것일까요??
-
해결됨토비의 스프링 부트 - 이해와 원리
스프링 부트 2.x 버전 지원 중단
안녕하세요! 최근에 강의를 수강하게 된 학생입니다.다름이 아니라 강의에서 말씀해주신 SpringBoot 2.7.6 버전을 설치하려고 하는데 start.spring.io에는 3.x버전들 밖에 보이지 않더라고요. 그래서 spring-cli를 사용해서 설치하려고 했으나 Initializr service call failed using 'https://start.spring.io' - service returned Bad Request: 'Invalid Spring Boot version '2.7.6', Spring Boot compatibility range is >=3.1.0'라는 문구와 함께 설치가 되지 않아 공식 깃허브를 찾아보았더니 2.x 버전에 대해서는 지원이 중단되었다고 적혀있었습니다.https://github.com/spring-io/start.spring.io/issues/1357Commercial support에 대해서는 25년까지 가능하다고 되어있는데, Commercial support(유료 지원?)이라는 것이 정확하게 어떤 것인지 이해가 잘 되지 않습니다. 그렇기에 Commercial support와 SpringBoot 3.1.6 버전을 설치하는 것 둘 중에 어떤 것이 더 나을지 질문드립니다ㅠㅠ 감사합니다!
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
최신 프로젝트(spring boot 3버전)로 생성하는 법
프로젝트는 spring initializr를 사용해서 만들어서h2 database, spring data jpa(hibernate)를 추가했습니다.persistence.xml도 jakarta로 수정해서 사용했습니다.
-
미해결[백문이불여일타] 데이터 분석을 위한 고급 SQL
쿼리성능 질문드립니다.
lag function 을이용하여 풀어보았는데요 혹시 lag 를 사용하는것과 조인을 하는것에서 성능차이가 어느정도 발생하는지 궁금합니다 with temp as (SELECT id , num , lag(num, 1) over() as lag1 , lag(num, 2) over() as lag2 from logs ) select DISTINCT(CASE WHEN num= lag1 and lag1 = lag2 then num ELSE Null END) as consecutiveNums from temp having consecutiveNums is not null - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결홍정모의 따라하며 배우는 C++
강의를 들으면서 질문이 생겼습니다.
void doSomething(int num) { cout << (uintptr_t)&num << endl; cout << num << endl; } int main() { int num = 1; cout << (uintptr_t)&num << endl; cout << num << endl; doSomething(num); return 0; } 안녕하세요. 공부하다가 궁금한게 생겨서 질문드립니다.배열 뿐만 아니라 정수를 파라미터로 받을 때도 포인터로 받는 것이고그 포인터에 받은 변수의 주소가 저장이 되어 있는 건가요?예를들어 main 함수의 num 의 주소와값이 1480 - 1이라고 할때 doSomething함수의 num의 주소값은 1436이고 이 주소가 1480 - 1을 담고있는 것일까요??
-
미해결Practical Testing: 실용적인 테스트 가이드
재고 차감 시도 다른 접근법
안녕하세요. 좋은 강의 오늘도 감사히 잘 들었습니다.강사님께서 HashSet 자료구조를 이용하여 중복을 제거하는 방법을 선택하셨지만 전 다른 방법으로 접근해 보았습니다.상품별 counting 한 결과인 productCountingMap 을 이용해보았는데요. 이미 해당 객체는 productNumber 가 중복이 걸러진 상태로 key 값으로 잡혀있고 quantity 가 value 에 정의되어 있어서 이를 그대로 활용해 보았습니다. //상품별 counting Map<String, Long> productCountingMap = createCountingMapBy(stockProductNumbers); //재고 차감 시도 productCountingMap.forEach((key,value)->{ Stock stock = stockMap.get(key); int quantity = value.intValue(); if(stock.isQuantityLessThan(quantity)){ throw new IllegalArgumentException("재고가 부족한 상품이 있습니다."); } stock.deductQuantity(quantity); });감사합니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2 때 전처리 관련하여 category에 대한 질문
질문 : target값을 .astype(category)는 도움이 될까요? 보통 target값(y_train)의 경우 데이터 형식이 object인 경우가 많더라구요. 또, 보통 피처엔지니어링 할 때, (LabelEncoder나 pd.get_dummies할 때는) target값(y_train)을 두고요.그래서 target값(y_train)의 데이터 타입을 카테고리로 바꾸면(.astype(category))로 하면 모델 정확성에 도움이 될까요? 시험이 다가오면서 사소해 보이는 질문도 확인을 받고 싶더라고요. 매번 감사합니다 ㅠㅠ
-
미해결비트코인 선물거래 자동매매 시스템(저자직강)
볼린저 밴드 알고리즘을 돌리다가 오류가 뜹니다.
cancel before timestep-long ask_order_status error msg:ExecuteError [Executing] -1102: Mandatory parameter 'orderid' was not sent, was empty/null, or malformed.이 에러가 뜨는데 cancle 동작 중에 orderId가 반환이 안돼서 그런 것 같은데 바이낸스 api를 잘 몰라서 정확히 뭐가 문제인지 모르겠네요.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
연속부분수열2(Two Pointers Algorithm)
안녕하세요. M = 5let a=[6, 3, 1, 2, 3];혹시 만약 처음부터 배열에 6이 들어가있다면 5보다 큰경우가 될텐데 그럼 rt-lt+1이 때문에 안될꺼같은데 이런경우 어떻게 될까요..?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
대응표본 검정 μd 사용
대응표본검정 (=쌍체표본검정)에서 처음 설명은 μd = (before – after) 로 안내해서 기초 부분 설명하다가 바로 아래에서는 μd = after - before로 바뀌고, 심화 ~ 샤피로 윌크 검정, 그리고 윌콘슨 검정(비모수 검정)에서도 계속 μd = after - before로 작업이 진행되는데 μd 가 after - before 니까 비포 애프터 순서 바꾸는거보단 저대로 하는게 낫다고 강의 중에 말씀하시더라고요. 그럼 그냥 μd = after - before 로 생각하고 저대로 계속 작업하면 되는거 맞죠? 처음에 μd = before - after 는 그냥 개념 설명하기 위해 이야기한건지, 어떻게 이해하고 넘어가는게 좋은지 궁금합니다
-
미해결ChatGPT 영어 상황극 채팅 서비스 만들기 (Feat. 파이썬/장고채널스)
브라우저에서 지원하는 Voices의 종류
「TTS 엔진을 통해 메시지를 음성으로 읽어주기」 파트 수업을 듣던 중, 강사님의 화면과 다르게 20개밖에 조회가 되지 않아서 그 이유가 궁금해 글을 남기게 되었습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
회귀계수, 절편 뜻
회귀계수(coef) 뜻이 독립변수가 종속변수에 미치는 영향의 크기/방향을 의미하고절편(intercept)뜻이 모델이 독립변수들의 영향을 받지 않을 때 예측하는 종속변수의 기본 로즈 오즈라고 알고 있습니다. 각 독립변수들의 coef 값은 이해가 가는데 위의 표에서 intercept의 coef값은 무엇을 의미하는지 궁금합니다! 또 기울기 = 회귀계수 = coef / 절편 = intercept 로 이해하면 되나요!?통계에 대한 기초가 없어서 유형 3이해하는게 어려움이 많습니다ㅠㅠㅠㅠ 감사합니다!!!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
ttest 귀무 가설 관련 문의
ttest에서 밑에 코드의 대립가설이 120보다 작다라는 거는 이해를 했는데귀무 가설은 항상 기준값 여기는 120과 같다인가요? 대립가설이 120보다 작다라면 귀무가설은 120보다 작지 않다가 되어야 하는건 아닌가 궁금해서요