묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
sum()함수 질문
안녕하세요.저는 지금까지 실습을 할 때 sum()함수의 괄호 안에 아무것도 넣지 않고 진행을 했습니다.그런데 9회 실기 응시가이드 영상을 보니 괄호 안에 sum(numeric_only=True) 를 넣으라고 하셨는데요.그냥 sum함수를 쓸 때마다 무조건 sum(numeric_only=True)를 넣으면 되는 건가요?아니면 9회 실기 응시가이드 영상에서 보여주신 대로 에러가 발생할 때만 넣어주면 되는 건가요?numeric_only=True를 어떤 상황에서 넣어야 되는건지 정확히 모르겠어서 질문 남깁니다.
-
해결됨RAG를 활용한 LLM Application 개발 (feat. LangChain)
HTML Rag
안녕하세요rag의 최적화 및 성능 향상을 위해 이것저것 알아보다 HTML구조가 Plain Text 보다 훌륭한 결과를 도출할 수 있다는 논문이 있어서 의견을 물어보고 싶습니다.https://arxiv.org/pdf/2411.02959논문에서는 HTML 형식이 일반 텍스트보다 우수한 성능을 보인다고 하고 있습니다. 저의 경우 데이터 수집을 크롤링으로 하고 있는데 만약 HTML이 더 우수하다고 한다면 굳이 html tag를 처리하는 노다가를 하지 않고도 오히려 더 좋은 성능이 나온다고 하니 솔깃한 마음이 있네요 또 강의에서는 표를 이해시키기 위해 마크다운 형식으로 전처리 작업을 했는데 이건 특정 모델마다 (ex openAI, Llama) 편차를 보이는지 궁금합니다
-
미해결[Rookiss University] UE5 Lyra 클론 코딩 (Haker)
솔루션 빌드에 실패합니다
안녕하세요 강사님 강의 잘 보고 있습니다. 올려주신 최종 소스코드 파일을 보면서 강의를 듣고싶은데 올려주신 프로젝트의 솔루션 파일이 계속 빌드에 실패합니다.파일을 받고 바로 빌드하면 문제가 발생합니다.D:\UnrealLyra\Hak\Hak\Engine\Source\Programs\Shared\EpicGames.Build\EpicGames.Build.csproj : warning NU1904: 'System.Drawing.Common' 4.7.0 패키지에 알려진 위험 심각도 취약성인 https://github.com/advisories/GHSA-rxg9-xrhp-64gj이(가) 있습니다. [D:\UnrealLyra\Hak\Hak\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.csproj]D:\UnrealLyra\Hak\Hak\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.csproj : warning NU1904: 'System.Drawing.Common' 4.7.0 패키지에 알려진 위험 심각도 취약성인 https://github.com/advisories/GHSA-rxg9-xrhp-64gj이(가) 있습니다.D:\UnrealLyra\Hak\Hak\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.csproj : warning NU1903: 'System.Text.Json' 6.0.0 패키지에 알려진 높은 심각도 취약성인 https://github.com/advisories/GHSA-8g4q-xg66-9fp4이(가) 있습니다.D:\UnrealLyra\Hak\Hak\Engine\Source\Programs\UnrealBuildTool\UnrealBuildTool.csproj(2,3): error MSB4019: 가져온 프로젝트 "D:\UnrealLyra\Hak\Hak\Engine\Source\Programs\Shared\UnrealEngine.csproj.props"을(를) 찾을 수 없습니다. Import 선언 "..\Shared\UnrealEngine.csproj.props"의 식이 올바르고 디스크에 파일이 있는지 확인하세요.경고 6개, 오류 1개저렇게 해당 파일이 없다고 컴파일에 실패해서 프로젝트 버전을 5.4로 스위치 해서 빌드해봤는데 HakEditor modifies the values of properties: [ bStrictConformanceMode: False != True ]. This is not allowed, as HakEditor has build products in common with UnrealEditor. Remove the modified setting, change HakEditor to use a unique build environment by setting 'BuildEnvironment = TargetBuildEnvironment.Unique;' in the HakEditorTarget constructor, or set bOverrideBuildEnvironment = true to force this setting on.이런 오류가 뜹니다. (5.5버전 스위치도 동일하네요..ㅠ) 이외에 프로젝트 빌드를 위해 많은 시간을 할애해봤지만 제가 아직 강의 초반부를 듣고있어서 따로 해주어야 하는걸 안해줘서 그런건지 궁금합니다. 위의 오류에서 수정하라는대로 수정도 해보고 인터넷에 검색도 많이 해봤는데 잘 해결이 되지않아 질문드립니다.
-
해결됨[UI3 업데이트] 피그마 배리어블을 활용한 디자인 시스템 구축하기
완강 이벤트에 참여 했는데, 자료는 언제쯤 받아 볼 수 있을까요?
안녕하세요, 훌륭한 강의 감사합니다.완강 이벤트에 참여하여 수강 후기와 설문조사를 모두 완료했는데, 아직 노션 자료를 받지 못했습니다. 혹시 누락된 건지, 아니면 언제쯤 받아볼 수 있는지 확인 부탁드립니다.감사합니다.
-
미해결고수가 되는 파이썬 : 동시성과 병렬성 문법 배우기 Feat. 멀티스레딩 vs 멀티프로세싱 (Inflearn Original)
threadpoolexecutor.submit 실행 시 순차 실행
안녕하세요 py_ad_1_5.py 파일 관련 강의 듣다가 질문 드립니다. threading.Thread로 스레드 직접 두 개 만들어서, start()를 했을 때는 두 작업이 병렬적으로 진행되는 것으로 보였는데요 (First, Second에 해당하는 logging이 번갈아 찍혔습니다)하지만, executor.submit으로 실행시에는 First task에 해당하는 logging이 전부 끝난 다음에 Second task에 해당하는 logging이 시작되는 것을 확인했습니다. submit으로 실행시에는 내부에 join이 있다거나 별도의 동작이 있는 걸까요?
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
save() 호출시 키 중복예외로 복구를 시도하는 경우의 대안책
안녕하세요.스프링과 문제해결 - 예외처리, 반복에서 ExTranslatorV1Test.java 소스를 보면repository.save호출시 MyDuplicateKeyException예외가 발생하면random숫자를 더해서 복구를 합니다. 예외를 잘 다루줄 몰랐던 시절, 저는 save전에 findById를 통해 DB에 동일한 값이 있는지 확인하는 코드를 짜왔는데요. 위 두 방법의 장단점이 무엇인지 궁금합니다. 혹시 전자의 방식이 더 올바르다고 말할 수 있나요?
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
액터를 C++로 생성하는 이유
강의를 듣다가 의문이 생겨 글 남깁니다.분수대를 만드는데 BP와 C++을 이용해서 각각 만들어봤는데BP를 통해서 만들때는 너무 쉽고 간단하지만 C++을 사용할때는 복잡하고 초기에 해줘야하는 세팅이 너무 많은것 같아서 굳이 왜 C++을 통해서 액터를 만들어야하는가? 라는 의문이 듭니다.가령 액터를 꾸미는? 작업은 BP로 하고 주요 로직은 C++로 작성하는게 맞지 않나 라는 생각이 드는거죠. 실제 현업에는 어떻게 사용하지는 모르겠지만, 프로그래머가 C++을 통해 맵에 배치할 모든 액터를 작성하지 않을 것 같아서 질문 드립니다.액터를 만들때에는 왜 C++을 사용해야하는지?만약 그렇다고 한다면 일련의 노가다와 같은 초기화 작업을 다 해야하는지?지금까지 강의를 들었을 때 제가 내린 스스로의 해결법?은 C++ A클래스를 만들고 헤더 파일에 UPROPERTY(VisibleAnywhere, BlueprintReadWrite)를 통해 프로퍼티를 열어둔 상태에서 B라는 블루프린트 클래스를 만들어서 A를 상속 받은 후 에디터를 통해 작업하는 것 입니다. 이것도 어떻게 생각하시는지 궁금합니다.
-
해결됨Flutter 앱 개발 실전
강사님 안녕하세요! 수강 기간 연장 문의 드립니다.
해당 강의로 실무에서 상태관리에 큰 도움을 받고 있습니다ㅎㅎ감사합니다.혹시 수강 강의 기간 연장을 요청드려도 될까요?
-
미해결피그마(Figma)를 활용한 UI디자인 입문부터 실전까지 A to Z
컴포넌트들 에셋상에서 폴더값으로 분류하는 법
컴포넌트들 에셋상에서 폴더값으로 분류시키는거요~ 똑같이 컴포넌트명에 폴더명 쓰고 / 처리했는데 왜 에셋상에서 폴더링이 안되는거죠?
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
리눅스 노드 설치시 패키지
build-essential이면 충분한가요?libvips-devopenssl-dev / libssl-dev 위 두개는 필요없나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
로지스틱회귀모형에서 C()
안녕하세요.작업형3 로지스틱회귀모형 캐글 문제를 보니 Pclass에만 C()처리하고, Gender는 object형임에도 C()처리 하지 않으셨더라구요. C()는 범주가 3개 이상일 때만 해당되고 범주가 2개일 때는 처리하지 않아도 된다고 이해하면 될까요?model = logit("Survived ~ C(Pclass) + Gender + SibSp + Parch", data=df).fit()
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
np_exp를 쓸필요가 없나요?
섹션5 모델링 평가(회귀) 파트입니다 # RandomForestRegressor from sklearn.ensemble import RandomForestRegressor model = RandomForestRegressor() model.fit(X_tr, y_tr) pred = model.predict(X_val) rmse(np.exp(y_val), np.exp(pred)) # 4691.498598226366 베이스라인 # 4722.06683465538 스탠다드스켈러 # 4705.862619729388 민맥스 스켈러 # 4627.730520367604 log
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
기출2회 2유형 concat
기출 2회는 특이하게, X_train, y_train , X_test 데이터가 있잔하여,, df = pd.concat([x_train, y_train['reached~~']], axis =1)df 로 합치는 이유가 뭔가요? 어차피 df데이터를 따로 활용하는 것도 아니고,, train_test_split 할때도, X_train, y_train 따로 넣어주잖아요,,, 굳이 해야하는 과정인가요?? 분리되어있으면 target = train.pop(['ddd']) 과정을 굳이 안해도 되는 ,, 상황 아닌가요??
-
해결됨비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)
인덱스 많은 테이블에서 데이터 많아질 수록 insert 속도 증가
-- 테이블 A: 인덱스가 없는 테이블CREATE TABLE test_table_no_index (id INT AUTO_INCREMENT PRIMARY KEY,column1 INT,column2 INT,column3 INT,column4 INT,column5 INT,column6 INT,column7 INT,column8 INT,column9 INT,column10 INT); -- 테이블 B: 인덱스가 많은 테이블CREATE TABLE test_table_many_indexes (id INT AUTO_INCREMENT PRIMARY KEY,column1 INT,column2 INT,column3 INT,column4 INT,column5 INT,column6 INT,column7 INT,column8 INT,column9 INT,column10 INT); -- 각 컬럼에 인덱스를 추가CREATE INDEX idx_column1 ON test_table_many_indexes (column1);CREATE INDEX idx_column2 ON test_table_many_indexes (column2);CREATE INDEX idx_column3 ON test_table_many_indexes (column3);CREATE INDEX idx_column4 ON test_table_many_indexes (column4);CREATE INDEX idx_column5 ON test_table_many_indexes (column5);CREATE INDEX idx_column6 ON test_table_many_indexes (column6);CREATE INDEX idx_column7 ON test_table_many_indexes (column7);CREATE INDEX idx_column8 ON test_table_many_indexes (column8);CREATE INDEX idx_column9 ON test_table_many_indexes (column9);CREATE INDEX idx_column10 ON test_table_many_indexes (column10); -- 높은 재귀(반복) 횟수를 허용하도록 설정-- (아래에서 생성할 더미 데이터의 개수와 맞춰서 작성하면 된다.)SET SESSION cte_max_recursion_depth = 100000; -- 인덱스가 없는 테이블에 데이터 10만개 삽입INSERT INTO test_table_no_index (column1, column2, column3, column4, column5, column6, column7, column8, column9, column10)WITH RECURSIVE cte AS (SELECT 1 AS nUNION ALLSELECT n + 1 FROM cte WHERE n < 100000)SELECTFLOOR(RAND() * 1000),FLOOR(RAND() * 1000),FLOOR(RAND() * 1000),FLOOR(RAND() * 1000),FLOOR(RAND() * 1000),FLOOR(RAND() * 1000),FLOOR(RAND() * 1000),FLOOR(RAND() * 1000),FLOOR(RAND() * 1000),FLOOR(RAND() * 1000)FROM cte; -- 인덱스가 많은 테이블에 데이터 10만개 삽입INSERT INTO test_table_many_indexes (column1, column2, column3, column4, column5, column6, column7, column8, column9, column10)WITH RECURSIVE cte AS (SELECT 1 AS nUNION ALLSELECT n + 1 FROM cte WHERE n < 100000)SELECTFLOOR(RAND() * 1000),FLOOR(RAND() * 1000),FLOOR(RAND() * 1000),FLOOR(RAND() * 1000),FLOOR(RAND() * 1000),FLOOR(RAND() * 1000),FLOOR(RAND() * 1000),FLOOR(RAND() * 1000),FLOOR(RAND() * 1000),FLOOR(RAND() * 1000)FROM cte;를 그대로 사용했는데,index 가 많은 테이블에 데이터가 많아질 수록 insert 시 속도가 느려져야 될 것 같은데 느려지지 않는 것 같습니다. auto commit 모드이고 결과는 1차 : 10만개 삽입시 소요시간 3s2차 : 10만개 삽입시 소요시간 4s3차 : 10만개 삽입시 소요시간 4s4차 : 10만개 삽입시 소요시간 4s5차 : 10만개 삽입시 소요시간 4s6차 : 10만개 삽입시 소요시간 4s입니다. 뭔가 db 환경 문제일까요? db : MariaDBversion: 10.6.15 입니다.
-
미해결FastAPI 완벽 가이드
lifespan 적용 관련 문의
안녕하세요 강사님강의 열심히 잘 듣고 있습니다.덕분에 FastAPI에 대한 재미를 더 많이 가지고 있어 감사할 따름입니다. lifespan 적용하신 강의 관련해서 질문이 있습니다.저는 현재 환경을 강의 내용과 다르게 진행하고있습니다. mysql이 아닌 postgresql로 진행하고 있고,postgresql + asyncpg를 이용하여 비동기 처리를 하고있습니다. lifespan 부분을 적용 시 아래 오류가 발생되고있습니다. Exception terminating connection <AdaptedConnection <asyncpg.connection.Connection object at 0x00000257982897B0>>Traceback (most recent call last): File "D:\personnel\Python\fastapi\fastapi_pguide-main\fastapi_pguide-main\AsyncDB_Handling\.venv\lib\site-packages\sqlalchemy\pool\base.py", line 374, in closeconnection self._dialect.do_terminate(connection) File "D:\personnel\Python\fastapi\fastapi_pguide-main\fastapi_pguide-main\AsyncDB_Handling\.venv\lib\site-packages\sqlalchemy\dialects\postgresql\asyncpg.py", line 1117, in do_terminate dbapi_connection.terminate() File "D:\personnel\Python\fastapi\fastapi_pguide-main\fastapi_pguide-main\AsyncDB_Handling\.venv\lib\site-packages\sqlalchemy\dialects\postgresql\asyncpg.py", line 910, in terminate self._connection.terminate() File "D:\personnel\Python\fastapi\fastapi_pguide-main\fastapi_pguide-main\AsyncDB_Handling\.venv\lib\site-packages\asyncpg\connection.py", line 1515, in terminate self._abort() File "D:\personnel\Python\fastapi\fastapi_pguide-main\fastapi_pguide-main\AsyncDB_Handling\.venv\lib\site-packages\asyncpg\connection.py", line 1567, in _abort self._protocol.abort() File "asyncpg\\protocol\\protocol.pyx", line 608, in asyncpg.protocol.protocol.BaseProtocol.abort File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\asyncio\selector_events.py", line 686, in abort self._force_close(None) File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\asyncio\selector_events.py", line 737, in forceclose self._loop.call_soon(self._call_connection_lost, exc) File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 753, in call_soon self._check_closed() File "C:\Users\user\AppData\Local\Programs\Python\Python310\lib\asyncio\base_events.py", line 515, in checkclosed raise RuntimeError('Event loop is closed')RuntimeError: Event loop is closedThe garbage collector is trying to clean up non-checked-in connection <AdaptedConnection <asyncpg.connection.Connection object at 0x00000257982897B0>>, which will be terminated. Please ensure that SQLAlchemy pooled connections are returned to the pool explicitly, either by calling ``close()`` or by using appropriate context managers to manage their lifecycle.sys:1: SAWarning: The garbage collector is trying to clean up non-checked-in connection <AdaptedConnection <asyncpg.connection.Connection object at 0x00000257982897B0>>, which will be terminated. Please ensure that SQLAlchemy pooled connections are returned to the pool explicitly, either by calling ``close()`` or by using appropriate context managers to manage their lifecycle. 위와 같은 오류가 발생되고 있습니다. 방법을 찾아보려 gpt에게 문의도 해봤지만 강의 내용과 동일하거나 또는 starting, shutting (구 FastAPI)방식을 알려주고 있습니다. 나름 응용을 해보겠다고 진행한 건데.. 번거로운 질문 드려 죄송합니다.ㅜㅜ 제가 구성한 환경은 이와 같이 진행하였습니다. 참고부탁드리겠습니다. python =="^3.10" fastapi == "0.115.4" uvicorn == "0.32.0" python-multipart == "0.0.17" python-dotenv == "1.0.1" jinja2 == "3.1.4" sqlalchemy == "2.0.36" psycopg == {extras = ["binary", "pool"], version = "^3.2.3"} asyncpg == "^0.30.0" aiofiles == "24.1.0"감사합니다.
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
터미널에서 node.js 를 실행했을 경우에 터미널에 나타나지 않아요.
해당 사진과 같이 index.js 가 실행되지 않습니다. node 버전을 확인 했을 경우에는 v22.11.0 로 정상적으로 설치된 것으로 나오는데... 어떤 부분이 문제일까요? 강의시간 5분 28초 입니다.
-
해결됨오브젝트 - 기초편
안녕하세요. 기존의 추상화된 역할에 대해서 새로운 협력자가 필요하게 되는 경우는 어떻게 설계해야할까요??
안녕하세요. 객체지향의 사실과 오해, 오브젝트부터 이어서 강의까지 영호님의 강의를 즐겁게 보고 있습니다.강의를 보면서 궁금한 것이 있습니다.Movie는 DiscountPolicy와 협력하고 있고, DisscountPolicy는 DiscountCondition과 협력하고 있습니다. 여기서 DiscountCondition은 Screen 객체에 의존하여 협력하고 있구요.보통 현업에서는 이렇게 추상화를 하여 책임을 설계해두어도, 어느날 갑자기 새로운 협력자가 필요하게 되어 그 책임을 온전히 수행하기 힘든 상황이 자주 발생하여 추상화가 깨지는 케이스가 많이 있는 것 같다는 생각이 들었는데요.만약에 위 예제에서 "고객이 생일인 경우에는 영화 가격의 10%를 할인해준다." 라는 할인 조건이 추가된다면 DiscountCondition 에 협력자로 Customer가 파라미터로 전달이 되어야할 것 같습니다. 이를 위해 BirthdayDiscountCondition이라는 할인 조건을 만들고, isSatisfiedBy() 메서드에 Customer를 인자로 받아야하게 됩니다. 하지만 SequenceCondition과 PeriodCondition은 필요하지도 않는 Customer 협력자를 의존하게 되는 상황이 되는데요.위 상황에서는 복잡성이 높지 않고, 이 정도의 의존성은 무시해도 된다고 판단되어 그냥 추가할 수도 있지만, 이런식으로 다른 협력자들이 계속해서 추가되어 복잡성이 늘어나면 객체랑은 상관없는 협력자의 추가로 인해 테스트 또한 매번 깨지는 상황도 발생하게 될 것 같습니다.이렇게 기존에 설계된 추상화가 다른 조건의 추가로 인해 깨지는 경우에는 어떻게 설계를 접근하는 것이 좋을까요??
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
쿼리를 데이터베이스에 전송
플러시를 하면 쿼리를 db에 전송하는데 단순히 전송하는것만으로는 db에 반영이 안되나요?커밋을 한 후에 반영이 되는건가요?
-
미해결김영한의 실전 자바 - 기본편
오버라이딩 논리를 다시 설명해주세요.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]저와 비슷한 질문을 남긴 사람들의 글을 읽어보았는데, 명확하게 이해가 가질 않아서 질문을 남깁니다.부모 변수가 자식 인스턴스를 참조하는 상황Parent poly = new Child(); 이 상황은 Parent를 상속받은 Child라는 객체를 생성하여, 현재 Parent,Child 두 객체가 생성된 상황이며, poly를 부모 변수로 선언하였습니다. 부모는 자식에 대해 알 수 없다라는 논리에 따라 Child라는 객체가 있어도 부모 Parent는 Child에 선언된 메서드와 필드를 모른다는 것이 영한님의 설명인 것 같습니다.그런데, 오버라이딩을 하게 되더라도 제 생각에는 여전히, Parent는 Child의 메서드와 필드를 모르는 상황은 여전한데, 어떻게 Parent가 Child 메서드가 오버라이딩을 한 상황을 알고, 오버라이딩된 Child 메서드가 우선권을 갖는지 잘 모르겠습니다. 이는 '부모는 자식에 대해 알 수 없다'라는 논리와 맞지 않는 것 같아서 부가적인 설명을 원합니다.
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
작업형2에서 train, test 합쳐서 인코딩 후 분리하는 부분 질문입니다.
안녕하세요 강사님! [3-4 Feature engineering.ipynb] 파일 복습 중에 # train, test 합쳐서 인코딩 후 분리하기 cols = list(X_train.columns[X_train.dtypes == object]) print(X_train.shape, X_test.shape) all_df = pd.concat([X_train, X_test]) all_df = pd.get_dummies(all_df[cols]) line = int(X_train.shape[0]) X_train = all_df.iloc[:line,:].copy() X_train X_test = all_df.iloc[line:,:].copy() X_test print(X_train.shape, X_test.shape)이부분에서 '원핫인코딩' 대신 '레이블인코딩'을 하면 어떻게 해야될지 의문점이 생겼습니다.레이블 인코딩시에는 train데이터에는 fit_transform() 을 하고 test 데이터에는 transform() 을 하는 것으로 알고 있는데 X_train 데이터와 X_test 데이터를 합쳤을 때는 fit_transform(), transform() 둘 중 어떤 것을 사용하고나서 분리해야되는지 궁금해서 질문 드립니다!아래는 fit_transform()을 이용해서 구현해본 코드입니다.X_train.shape, X_test.shape df = pd.concat([X_train, X_test]) df.select_dtypes(include='O').columns c_cols = ['workclass', 'education', 'marital.status', 'occupation', 'relationship', 'race', 'sex', 'native.country'] df.select_dtypes(exclude='O').columns n_cols = ['age', 'fnlwgt', 'education.num', 'capital.gain', 'capital.loss', 'hours.per.week'] from sklearn.preprocessing import LabelEncoder for col in c_cols: le = LabelEncoder() df[col] = le.fit_transform(df[col]) line = len(X_train) X_train = df.iloc[:line,:].copy() X_test = df.iloc[line:,:].copy() print(X_train.shape, X_test.shape)