묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
Consumer Lag은 어느정도 수치면 정상적인 상황일까요?
안녕하세요, 강의 재밌게 듣고 있습니다 컨슈머 그룹편을 보다가 궁금해졌는데.. 실무하실때 Lag이 어느정도 쌓이면 장애상황이라고 생각하시나요?
-
미해결[React 1부] 만들고 비교하며 학습하는 React
클래스 컴포넌트와 함수형 컴포넌트
우선, 정말 좋은 강의 찍어주셔서 감사합니다.강의가 너무 좋아서 많은 도움이 되었습니다.리액트 컴포넌트 강의 듣고 있습니다.검색 애플리케이션을 클래스 컴포넌트로 짠 이유가 궁금합니다. 제가 처음 리액트를 학습할 때는 상속같은 복잡성 때문에 함수형 컴포넌트로 리액트를 사용해서요.현업에서 클래스 컴포넌트와 함수형 컴포넌트 중 어떤 것을 사용할지 선택하는 기준이 궁금합니다. (어떤 상황에서는 ~)
-
해결됨설계독학맛비's 실전 Verilog HDL Season 2 (AMBA AXI4 완전정복)
설계 Flow에 대한 질문이 있습니다.
안녕하세요 맛비님!너무 좋은 강의 잘 듣고있습니다.. 감사합니다. 강의를 듣다가 코드를 분석해보는 중 궁금한 점이 생겨서요.코드를 짜기 이전까지 어떤 과정이 이루어 지는지가 궁금합니다...예를들어스펙을 확인하고 파라미터 값이나 제약사항을 생각한다.알고리즘을 생각하고 Function을 지정한다.필요한 Register나 module을 생각한다.이에 필요한 Wire를 지정한다.Stage에 맞는 Diagram을 그린다.등등등 ...Verification...이런 과정이 궁금합니다 ㅜㅜ 맛비님 코드를 볼 때 마다 어떤 과정으로 이런 코드가 완성되었을까 너무 궁금해서 여쭤봅니다. 아직은 뉴비지만 플로우를 알게 된다면 설계를 할 때 생각정리에 큰 도움이 될거같아서요 ㅠㅠ
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
캐러셀 arrow 위치 질문
다음 부분과 같이 아주 작게 이상한 위치에 나오는데 이를 옮기는 방법을 알고 싶습니다
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
view 환경설정 8분
model을 입력할때 자꾸 빨간색으로 오류가 뜨네요..어떻게 해야하나요?
-
해결됨[코드캠프] 시작은 프리캠프
잔디 질문입니다.
저는 강사님이 알려주신대로 했는데, git 명령어를 칠 때자동완성이 되지도 않고, 엔터쳐도 밑에 촤라락 펼쳐지는 코드들이 뜨지 않습니다. 그리고 맨 마지막 코드를 입력했을 때는 에러 메세지가 뜨는데 어떻게 해야하나요?
-
미해결스프링 프레임워크는 내 손에 [스프2탄]
강사님 감사 인사 드리러 왔습니다.
강사님 덕분에 잘 취업해서 살고 있습니다.취업해보니 강사님의 원리 위주의 강의를 들은 것이 많은 도움이 되고 있습니다.어려운 기술들 보다 Base되는 원리 하나를 잘 습득하는 게 참 중요하다는 걸 많이 느낍니다.뭐가 잘 안되면 블로그나 검색엔진을 사용하기 보다는 강사님 강의하면서 배운 내용을 다시금 봅니다.왜냐면 그 안에 현업에서 쓰는 기본적인 것들이 많이 담겨져 있기 때문입니다.조금 실력이 몇개월 쌓인 뒤에 보니 어려웠던 내용들도 쉬운건데 어렵다고 생각을 해서 어려웠구나 라는 생각도 하게 되네요특히 요약 파일 띄워놓으시고 마우스로 그리면서 설명해주시는 것이 정말 도움 많이!!! 됐습니다.Spring이 아니라 사물인터넷 mosquitto 들으러 인프런에 잠시 왔는데요예정보다 조금은 시간이 많이 흘렀지만 어떤 종류의 강의든 다음 강의를 기대하고 있습니다.중간중간에 답변도 늦지 않게 잘 해주셨던 기억이 있어서 더더욱 감사드립니다.행복한 하루되시고 누군가에게는 긍정적인 큰 영향을 주셨다는 거 기억해주세요.선생님 아니였으면 취업 준비하다가 포기했을 거 같아요.(진심)좋은 하루 되세요^^-선생님 모든 강의를 다 구독한 1人 올림-
-
미해결초보자를 위한 ChatGPT API 활용법 - API 기본 문법부터 12가지 프로그램 제작 배포까지
ch02 실습 문의 (11/26 기준)
아래 질문해주신 분을 보고 여러모로 따라 해보고 있는데 아래와 같이 에러가 발생합니다.버전정보(ch02) C:\Users\roho\Desktop\inflearn_chatGPT-main\ch02>python -VPython 3.11.6(ch02) C:\Users\roho\Desktop\inflearn_chatGPT-main\ch02>openai -Vopenai 0.28.1 기본질문하기 실행client = openai.OpenAI(api_key = "sk-.......") response = client.chat.completions.create( model="gpt-3.5-turbo", messages=[{"role": "user", "content": "Tell me how to make a pizza"}])에러문구--------------------------------------------------------------------------- AttributeError Traceback (most recent call last) c:\Users\roho\Desktop\inflearn_chatGPT-main\ch02\02_ChatGPT_API_Code_NewVersion.ipynb Cell 4 line 1 ----> 1 client = openai.OpenAI(api_key = "sk-..........") 3 response = client.chat.completions.create( 4 model="gpt-3.5-turbo", 5 messages=[{"role": "user", "content": "Tell me how to make a pizza"}]) AttributeError: module 'openai' has no attribute 'OpenAI' 흠.. openai 에서 OpenAI 모듈을 가지고잇지 않다는거 같은데 워낙 업데이트가 많아서.. 한번 확인 부탁드립니다추가적으로 openai api 리스트나 모듈을 볼수있는 곳도 document 에 따로있나요? 찾질못해서... 추가 문의드립니다
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
로지스틱 회귀 모형 문제에서 질문 드립니다.
예전에 문제를 풀 땐 별 생각이 없었는데 다시 보니 Pclass를 꼭 범주형으로 지정할 이유가 있을까요? 클래스가 등급이면 수치형으로 봐도 되지 않을까요?from statsmodels.formula.api import logitmodel = logit('Survived ~ C(Pclass) + Gender + SibSp + Parch', data=df).fit()model.params['Parch'] 다시 풀어보니 실제 문제에서 저렇게 나온다면 범주형으로 지정해야할지 수치형으로 그대로 둘지 결정하기 애매할 것 같아서 여쭤봅니다.
-
미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
왜 console.log(target)을 했을때 td 클래스가 question이 나오는지 모르겠습니다
function onRightClick(event) { event.preventDefault(); //도구모음 안나오게 const target = event.target; //이벤트 타겟은 내가 진짜 클릭한 대상. current target은 이벤트 리스너가 붙은 대상 console.log(target) //왜 question이 나오는지 const rowIndex = target.parentNode.rowIndex; //tr 태그에는 내부적으로 rowIndex 존재 const cellIndex = target.cellIndex;//td 태그에는 내부적으로 rowIndex 존재 const cellData = data[rowIndex][cellIndex]; if (cellData === CODE.MINE) { // 지뢰면 data[rowIndex][cellIndex] = CODE.QUESTION_MINE; // 물음표 지뢰로 target.className = 'question'; target.textContent = '?'; } else if (cellData === CODE.QUESTION_MINE) { // 물음표 지뢰면 data[rowIndex][cellIndex] = CODE.FLAG_MINE; // 깃발 지뢰로 target.className = 'flag'; target.textContent = '!'; } else if (cellData === CODE.FLAG_MINE) { // 깃발 지뢰면 data[rowIndex][cellIndex] = CODE.MINE; // 지뢰로 target.className = ''; target.textContent = ''; } else if (cellData === CODE.NORMAL) { // 닫힌 칸이면 data[rowIndex][cellIndex] = CODE.QUESTION; // 물음표로 target.className = 'question'; target.textContent = '?'; } else if (cellData === CODE.QUESTION) { // 물음표면 data[rowIndex][cellIndex] = CODE.FLAG; // 깃발으로 target.className = 'flag'; target.textContent = '!'; } else if (cellData === CODE.FLAG) { // 깃발이면 data[rowIndex][cellIndex] = CODE.NORMAL; // 닫힌 칸으로 target.className = ''; target.textContent = ''; } }우클릭을 했을 때 동작하는 함수입니다.상단에 target에 대해서 console.log 출력하는 부분이 있는데지뢰찾기 행수 열수 지뢰수를 입력하고 submit한 순간에는td에 어떠한 클래스도 주어지지 않았다고 생각합니다.그리고 최초로 우클릭을 하는 순간에도 td는 아무 클래스가 없고 우클릭이 이뤄지고 나서 그 다음 현재 cellData의 상황에 따라 target.className이 주어지니까최초 클릭시에는함수 상단 console.log(target)에 td class에는 아무것도 없어야한다 생각합니다. 그런데 왜 우클릭 시에 td class가 question으로 지정되어서 나오는지 이해가 안됩니다 ㅠㅠ
-
미해결모두를 위한 대규모 언어 모델 LLM(Large Language Model) Part 1 - Llama 2 Fine-Tuning 해보기
Llama2 학습시 일반 질문 답변
Llama2 학습시 일반 질문 답변 관련 해서 문의드립니다. 이번강의에서 Llama2를 파인튜닝하는것 으로 알고있는데,기본적으로 학습되어있는 모델을 추가 정보를 넣어준다는 개념으로 알고 있었습니다. 결과 테스트시, 20문장 외엔 어떠한 답변도 못하는것을 확인 했는데, 저희가 사용한 모델(TinyPixel/Llama-2-7B-bf16-sharded)이 정보도 가지고 있지않아서그런건가요? 기본적인 대화가 가능한 모델은 어떤게 있을까요?
-
미해결[핵집] 2025 빅데이터 분석기사(실기)_작업형 1·2·3유형
기출복원문제풀이2 중 보험가입여부 예측문제 풀이 질문
강사님.. 기출복원 풀이2 중 보험가입여부 예측 문제 풀이에서요.. 마지막 모델 fit에 X_train을 입력하는 것은 좀 이상한데요... X_train의 num_cols 데이터들은 scaling을 하지 않은 값들이어서.. 굳이 전체 X_train로 학습하려면 X_tra와 X_val을 pd.concat으로 합친 후 입력해야 하지 않을까요?확인 부탁드려요.. 강사님의 예측결과와 제가 계산한 예측결과의 차이가 심해서요.. 예를 들면, 강사님 예측 / 저의 계산ID 1569 0.03312 / 0.2714ID 1344 0.02612 / 0.9889ID 1429 0.03312 / 0.1047...너무 차이가 심해서요.. 이것도 확인 부탁드려요~~~수고하시고요.
-
미해결Data Engineering Course (1) : 빅데이터 하둡 직접 설치하기
확장팩 필수 유무
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 버추얼머신 깔 때 확장팩 필수인가요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
초초보를 위한 전처리 인코딩 가이드 너무 너무 감사합니다.
시험 앞두고 이런 뽀나스 영상이 정말 큰 힘이 됩니다!! ^^ 감사합니다. 작업형 3유형 ...도 필승전략.. 알려주심 너무나 감사하겠습니다. ㅜㅜ 더 많은 것을 원해서 죄송함돠 ㅠ
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 프론트엔드 코스
훈훈한 자바스크립트_eventListener를 활용한 태그 삭제
아래코드를 입력했는데, newLi dblclick했을때 삭제처리가 되지 않습니다. 문제가 뭘까요? const todoInput = document.querySelector("#todo-input"); const createTodo = function () { const todoList = document.querySelector("#todo-list"); //List자체를 받아오기 const newLi = document.createElement("li"); const newSpan = document.createElement("span"); /** * pseudo: (addEventListner) * 할일이 완료가 된지 안된 일인지 알 수가 없음 -> EventListner를 추가 * 버튼태그와 함께 온클릭 이벤트를 생성 */ //02-addEventListner파트: 버튼태그 추가 및 Event속성(onClick 추가) const newBtn = document.createElement("button"); newBtn.addEventListener("click", () => { //클릭을 했을 때 어떻게 할지에 대한 내용을 익명 함수로 지정 newLi.classList.toggle("complete"); //버튼을 눌렀을 때 새로운 클래스를 추가해준다 }); //02-addEventListner: 당연히 삭제도 되어야할텐데... (더블클릭 -> 삭제) newLi.addEventListener("dblclick", () => { newLi.remove(); }); newSpan.textContent = todoInput.value; newLi.append(newBtn); newLi.appendChild(newSpan); todoList.appendChild(newLi); //왜 굳이 span태그를 만들고 span 태그를 List에 추가한 건지는 알 수가 없으나.. 나중에 알려주겠지.. todoInput.value = " "; console.log(newLi); }; //여기까지만 했을때는 기능상 부족한 부분이 상당히 많음 const keyCodeCheck = function () { if (window.event.keyCode === 13 && todoInput.value) { //만약 키보드값에 대해 enter값이 눌리면 -> createTodo(); } };
-
해결됨배달앱은 어떻게 내 주변의 맛집을 찾을까?
테스트를 실행했을 때 RuntimeError: Event loop is closed 에러가 발생합니다.
질문하실 땐 https://gist.github.com/ 를 사용하시면 코드를 쉽게 공유할 수 있습니다!원하고자 하는 것실제 작성한 코드실행한 결과원하는 결과 이렇게 4가지를 꼭 적어주셔야 도와드릴 수 있습니다 :) test_shop_insert_one() 함수를 추가하여 테스트를 실행했을 때 RuntimeError: Event loop is closed 에러가 발생하여 테스트가 실패합니다. app/tests/entities/collections/shop/test_shop_collection.py F [100%] ============================================================================= FAILURES ============================================================================= _______________________________________________________________________ test_shop_insert_one _______________________________________________________________________ @pytest.mark.asyncio async def test_shop_insert_one() -> None: # Given name = "치킨집" category_codes = [CategoryCode.CHICKEN] delivery_areas = [ ShopDeliveryAreaSubDocument( poly=GeoJsonPolygon(coordinates=[[[0, 0], [0, 10], [10, 10], [10, 0], [0, 0]]]), ) ] # When > shop = await ShopCollection.insert_one(name, category_codes, delivery_areas) app/tests/entities/collections/shop/test_shop_collection.py:21: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ app/entities/collections/shop/shop_collection.py:20: in insert_one result = await cls._collection.insert_one( /PATH/OF/POETRY/CACHE/lib/python3.11/site-packages/motor/metaprogramming.py:73: in method return framework.run_on_executor( /PATH/OF/POETRY/CACHE/lib/python3.11/site-packages/motor/frameworks/asyncio/__init__.py:85: in run_on_executor return loop.run_in_executor(_EXECUTOR, functools.partial(fn, *args, **kwargs)) /PATH/OF/PYTHON/lib/python3.11/asyncio/base_events.py:816: in run_in_executor self._check_closed() _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ self = <_UnixSelectorEventLoop running=False closed=True debug=False> def _check_closed(self): if self._closed: > raise RuntimeError('Event loop is closed') E RuntimeError: Event loop is closed /PATH/OF/PYTHON/lib/python3.11/asyncio/base_events.py:519: RuntimeError ===================================================================== short test summary info ====================================================================== FAILED app/tests/entities/collections/shop/test_shop_collection.py::test_shop_insert_one - RuntimeError: Event loop is closed =================================================================== 1 failed, 1 passed in 0.55s ====================================================================에러로그는 위와 같습니다. --async-mode 를 test로 변경해보면 저 단계까지 가기 전에 에러가 발생하고@pytest.mark.asyncio 어노테이션을 추가해줘도 결과는 같습니다.poetry 를 이용한 환경 구성이 처음이라 해당 지식이 많이 부족하여 이 문제를 어떻게 해결해야하는지 잘 모르겠습니다. 파이썬 버전은 3.11.3poetry 버전은 1.4.2mongodb 버전은 6.0.11 입니다. [tool.poetry.dependencies] fastapi = "^0.95.2" gunicorn = "^20.1.0" httpx = "^0.24.1" motor = "^3.1.2" orjson = "^3.8.14" python = "^3.11" uvicorn = "^0.22.0" [tool.poetry.group.dev.dependencies] black = {extras = ["d"], version = "^23.3.0"} coverage = "^7.2.3" isort = "^5.12.0" mypy = "^1.3.0" pytest = "^7.3.1" pytest-asyncio = "^0.21.0" toml-sort = "^0.23.0" 작성한 코드의 차이점은 db가 로컬에 있지 않고 외부에 있는 관계로def create_mongo_url(host: str = "localhost", port: int = 27017) -> str: return f"mongodb://{host}:{port}" DATABASE_NAME = os.environ.get("MONGO_DATABASE", "yorigin") HOST = os.environ.get("MONGO_HOST", "localhost") PORT = os.environ.get("MONGO_PORT", 27017) client = AsyncIOMotorClient(create_mongo_url(HOST, int(PORT)))이와 같은 코드를 추가하여 지정된 host의 mongodb와 통신할 수 있도록 한 것이 전부입니다. 확인 부탁드릴 수 있을까요?
-
해결됨[Bloc 응용] 실전 앱 만들기 (책 리뷰 앱) : SNS 로그인, Firebase 적용, Bloc 상태 관리, GoRouter
즐겨찾기 기능 질문 요청드립니다..
페이지 처음진입시 즐겨찾기 클릭하면정상적으로 별이 on 으로 바뀌게 되는데" 한번끄고 다시 키면 on으로 바뀌지않고 off 형태의 아이콘이되어있고 다시 뒤로갔다가 들어오면 정상적으로 on 으로 바껴있습니다 !!= 파이어베이스 db 상에는 데이터가 들어오지만상태가 바뀌지않아서 off 상태일때 10번누르면10번이 다 firebase db에 insert 되는현상이 나타납니다 ㅠㅠprofilePageactions: [ GestureDetector( onTap: () { var myUid = context.read<AuthenticationCubit>().state.user!.uid; context.read<UserProfileCubit>().followToggleEvent(myUid!); }, child: Padding( padding: const EdgeInsets.only(right: 20), child: BlocBuilder<UserProfileCubit,UserProfileState>( builder: (context,state) { var myUid = context.read<AuthenticationCubit>().state.user!.uid; var isFollowing = state.userModel?.followers?.contains(myUid) ?? false; return SvgPicture.asset(isFollowing ? 'assets/svg/icons/icon_follow_on.svg' :'assets/svg/icons/icon_follow_off.svg'); } ), ),user profile cubit void followToggleEvent(String myUid) async { if (state.userModel!.followers != null && state.userModel!.followers!.contains(myUid)) { // 즐겨찾기 취소 언팔 var result = await userRepository.followEvent(false,state.userModel!.uid!,myUid); if (result) { await _unfollow(myUid); } } else { // 즐겨 찾기 하기 var result = await userRepository.followEvent(true,state.userModel!.uid!, myUid); if (result) { await _follow(myUid); } } } _unfollow(myUid) async { emit( await state.copyWith( userModel: state.userModel!.copyWith( followers: List.unmodifiable( [...state.userModel!.followers!.where((targetUid) => targetUid != myUid)], ), ), ), ); } _follow(myUid) async { print(state.userModel!.followers); if (state.userModel!.followers == null) { // 최초 팔로워 대상 emit( await state.copyWith( userModel: state.userModel!.copyWith( followers: List.unmodifiable( [myUid], ), ), ), ); } else { // 다른사람이 이미 팔로워 한사람 emit( await state.copyWith( userModel: state.userModel!.copyWith( followers: List.unmodifiable( [ ...state.userModel!.followers!, uid ], ), ), ), ); } } }user-repositoryFuture<bool> followEvent(bool isFollow,String targetUid, String myUid) async { try { // 2 가지 업데이트 ( 트랜잭션 실행 필요 ) final batch = db.batch(); // Type1 . 상대방 팔로워에 내가 들어가는건다.. var targetUserDoc = await db.collection("users").where("uid", isEqualTo: targetUid).get(); UserModel targetUserInfo = UserModel.fromJson(targetUserDoc.docs.first.data()); var followers = targetUserInfo.followers ?? []; // 최초사람 if (isFollow) { followers.add(myUid); } else { followers.remove(myUid); } var targetRef = db.collection("users").doc(targetUserDoc.docs.first.id); batch.update(targetRef, {'followers': followers}); // Type1 . 내 팔로워에 상대방이 들어간다... var myUserDoc = await db.collection("users").where("uid", isEqualTo: myUid).get(); UserModel myUserInfo = UserModel.fromJson(myUserDoc.docs.first.data()); var followings = myUserInfo.followings ?? []; if (isFollow) { followings.add(targetUid); } else { followings.remove(targetUid); } var MyRef = db.collection("users").doc(myUserDoc.docs.first.id); batch.update(MyRef, {'followings': followings}); await batch.commit(); return true; } catch (e) { return false; } }
-
해결됨이득우의 언리얼 프로그래밍 Part1 - 언리얼 C++의 이해
회사에서도 헤더 파일을 수정할 때 엔진을 종료하고 진행하는지 궁금합니다!
안녕하세요. 양질의 강의 정말 잘 듣고 있습니다!언리얼 C++ 과 관련하여 이 강의 만큼 이해하기 좋고, 상세하게 설명해주는 수업이 없다고 생각합니다..!!! 다름이 아니라 '설계의 변경을 위해 헤더 파일을 수정할 땐 엔진을 끈다' 라는 것을 이 강좌에서 처음 알게 되었는데실제로 라이브 서비스 중인 팀에서도 이와 같은 방식으로작업을 하는지 정말 궁금합니다! 유니티 팀의 경우 라이브 서비스 한지 3~4년 쯤 되면 전처리 할 리소스나 플러그인 같은 것도 덕지덕지 붙다보니 엔진을 한 번 껐다 켜는데 10~15분 정도 걸려서 '코드 추가/삭제를 위해 껐다 켠다' 라는 생각이 잘 안 드는데 언리얼 엔진은 프로젝트 폴더 사이즈가 수 십 ~ 백단위 GB 가 넘어가도 껐다 켜면서 작업을 하는데 지장이 없는지 궁금합니다. 물론, 클래스 추가/삭제나 헤더 파일 수정은 빈번하게 일어나는 작업은 아니지만 그럼에도 불구하고 무언가를 수정하는 작업에 있어서 엔진을 껐다 켰다 해야하는 게 꽤나 번거로울 것 같아 보여서요. 😁
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
실험환경 메모장에서 ctrl+f 제컴퓨터에서는 됩니다.
dir 기능 활용 해서 메모장에 담고 ctrl+f 찾아 보니 검색이 됩니다.
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
스프링 이니셜라이저 사용 제보입니다
며칠 전부터 자바 11기반의 2.7.X 버전이 이니셜라이저에 안 뜨길래공식 사이트를 찾아보니 11월 24일 부로 지원이 종료되었다고 뜨네요 이제는 강의 내용처럼 자바 11을 쓰려면build.gradle에 구버전 의존성들을 직접 작성해야 하는 건가요?? 일단은 자바 17, 스프링부트 3.2.0으로 진행 중인 상태입니다