묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨한 입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
onEdit setData 없어도 되는건가요?
안녕하세요 강사님!강의를 따라가는 도중 제가 onEdit 함수에 setData를 하지 않았다는 사실을 알게 되었습니다.하지만 setData를 해주지 않고 data에 map 함수로 변경 해주는 동작만 해도 정상적으로 수행되는데 왜 그런지 알 수 있을까요?useCallback 해주기 전에도 정상 동작한 이유도 궁금하고 강사님께서 알려주신 대로 data에는 컴포넌트가 마운트 됐을때 data 상태인 빈 배열이 들어가 있어야 하는 것이 아닌가요?아래는 제가 짠 onEdit 함수 입니다const editDiary = useCallback((targetId, editedContent) => { data.map((e) => e.id === targetId ? {...e, content: editedContent} : e ) }, [])
-
해결됨파이썬/장고로 웹채팅 서비스 만들기 (Feat. Channels) - 기본편
채팅 로비에서 유저수 노출을 위하여
LobbyMember 모델을 생성해서 index에 들어오면 해당 user를 추가하는 식으로 구성하였습니다.class LobbyMember(models.Model): user = models.ForeignKey(settings.AUTH_USER_MODEL, on_delete=models.CASCADE)consumer에도 따로 LobbyConsumer를 생성하여 접속할 땐 생성하거나 조회하고 채팅방에 접속 시 삭제하도록 하였습니다.class LobbyConsumer(JsonWebsocketConsumer): def __init__(self, *args, **kwargs): super().__init__(*args, **kwargs) self.group_name = "lobby" def connect(self): user = self.scope["user"] if not user.is_authenticated: self.close() else: lobby_user, _ = LobbyMember.objects.get_or_create(user=user) async_to_sync(self.channel_layer.group_add)( self.group_name, self.channel_name ) async_to_sync(self.channel_layer.group_send)( self.group_name, {"type": "lobby"}, ) self.accept() def disconnect(self, code): if self.group_name: async_to_sync(self.channel_layer.group_discard)( self.group_name, self.channel_name ) user = self.scope["user"] lobby_member, _ = LobbyMember.objects.get_or_create(user=user) lobby_member.delete() async_to_sync(self.channel_layer.group_send)( self.group_name, {"type": "lobby"}, ) def lobby(self, message_dict): count = LobbyMember.get_count() self.send_json({"type": "lobby", "count": count})정상적으로 작동하는가 싶더니 2개의 다른 브라우저에서 같은 이용자로 로그인 한 후한 곳에서 로그아웃하면 해당 유저가 삭제되어아직 로그인 되어 있는 쪽에서는 로그인 유저가 0명으로 표시되더라구요.지금처럼 LobbyMember를 생성하지 않고 기존 모델로 사용하는 방법이나 방향이 있을까요? 이렇게 하는건 아닌것 같아서 질문드립니다!
-
미해결딥러닝을 활용한 자연어 처리 (NLP) 과정 (기초부터 ChatGPT/생성 모델까지)
LSTM Decoder 모델에서 train 모델과 inference 모델 관련 질문드립니다.
# decoder 는 [h, c] 를 initial state 로 사용 decoder_inputs_ = Input(shape=(max_len_kor,), name="Decoder_Input") # decoder word embedding 은 pre-trained vector 를 사용 않음 decoder_embedding = Embedding(num_words_kor, EMBEDDING_DIM) decoder_inputs_x = decoder_embedding(decoder_inputs_)Q 1-1. training state에서는 위와 같이 decoder input이 한 문장의 seq를 모두 input으로 넣어주는데, 이는 teacher forcing을 위해 매 step 마다 seq 데이터(한 문장 데이터)를 input으로 모두 사용하기 때문인 것인가요? decoder_inputs_single = Input(shape=(1,), name='Decoder_input') x = decoder_embedding(decoder_inputs_single)Q 1-2. inference state에서는 위와 같이 input size가 1인 이유는, 매번 step마다 하나의 단어(번역할 단어=최초 <sos>, 그 후부터 이전 step의 output)만 input으로 사용하기 때문인가요? Q2. LSTM encoder의 경우 encoder output, h, c를 최종 산출물로 리턴해주는데요. h와 c가 context vector로 decoder의 input으로 입력된다고 이해하였습니다. 그렇다면, 번역 모델에서 encoder output은 어떤 값을 갖고 있으며 어떤 용도로 사용될 수 있을까요? 감사합니다!
-
해결됨부트캠프에서 알려주지 않는 것들 (리액트) 1편
test 코드 작성시 질문
vite를 사용하고 있으며 현재 촐더 구조입니다.현재 jest.setup.ts 파일내용입니다. (챗 gpt에게 물어본 결과 setupTest.ts로 바꿔야한다는 답변을 받았지만 꼭 바꿔야하는지 잘모르겠습니다.)import "@testing-library/jest-dom" import { server } from "./src/mocks/server" beforeAll(() => server.listen()) afterEach(() => server.resetHandlers()) afterAll(() => server.close()) msw를 사용 하기위해 필요한 설정을 해놓았습니다.다음은 테스팅을 위한 컴포넌트 입니다.import axios from "axios" import React, { useEffect, useState } from "react" const Direction: React.FC = () => { const [data, setData] = useState<any>({}) const [isLoading, setIsLoading] = useState(true) useEffect(() => { void (async () => setData(await (await axios("https://jsonplaceholder.typicode.com/todos/1")).data))() setIsLoading(false) }, []) return ( <> {isLoading ? ( <div>loading...</div> ) : ( <ul> <li>{data.id} / </li> <li>{data.title} /</li> <li>{data.userId} /</li> </ul> )} </> ) } export default Direction 보시는 것처럼 데이터를 불러와서 화면에 표시하는 컴포넌트 입니다. 다음은 테스트 케이스 입니다.import { render, screen } from "@testing-library/react" import Direction from "." test("Direction 컴포넌트가 정상적으로 렌더링되는지 테스트", async () => { render(<Direction />) const result = await screen.findAllByRole("listitem") expect(result).toHaveLength(3) })해당 코드를보시면 간단해서 에러없이 깔끔하게 성공합니다.하지만 프로젝트에서 swr을 사용하기로 했는데 여기서 문제가 발생합니다.import React from "react" import useSWR from "swr" const Direction: React.FC = () => { const { isLoading, data } = useSWR("https://jsonplaceholder.typicode.com/todos/1") return ( <> {isLoading ? ( <div>loading...</div> ) : ( <ul> <li>{data.id} / </li> <li>{data.title} /</li> <li>{data.userId} /</li> </ul> )} </> ) } export default Direction 컴포넌트를 swr을 사용하는 방식으로 바꾸고 테스트를 실행해보면 findAllByRole에서 listitem을 찾을수 없다는 에러가 발생합니다.swr의 특성인거같긴한데 도무지 해결방안이 떠오르지 않습니다.react-query나 swr같은 캐싱라이브러리를 사용하면서 msw를 사용하여 테스트를 하고 싶은데 따로 설정해야하는 것들이나 권장되는 코드 작성 방식이 따로 있나요?그것이아니라면 어떤부분을 수정해야 제대로 작동할까요?
-
미해결스프링 핵심 원리 - 기본편
롬복 동기화 오류
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.롬복 코드 복붙 후에 동기화 시켜도 계속 실패가 뜨고 실패 로그는 안뜨는데 어떤 문제 인걸까요? 플러그인에 롬복은 있습니다 외부 라이브러리에는 없어요
-
미해결스프링 시큐리티
ConcurrentSessionFilter 매 요청 시 만료 여부 판단
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.ConcurrentSessionFilter는 매 요청 시 세션 만료 여부 즉 session.isExpired를 판단한다고 하셨습니다. 이 Filter를 설명해주실 때 사용자1, 2를 나눠서 설명해주셨는데 사용자1이 Logout 처리가 된 이후 사용자2가 요청을 보낼 때에도 사용자2의 세션 만료 여부를 체크하는지 궁금합니다.
-
미해결실습으로 배우는 프로메테우스 - {{ x86-64, arm64 }}
scrape interval
질문 답변을 제공하지만, 강의 비용에는 Q&A는 포함되어 있지 않습니다. 다만 실습이 안되거나, 잘못된 내용의 경우는 알려주시면 가능한 빠르게 조치하겠습니다![질문 하기]scrape interval을 15초로 설정하였는데,각 node에서 발생되는 Data를 15초 마다 수집한다고 생각하면 되는걸까요?scrape interval의 최소 수치는 얼마까지 가능한 걸까요?대량의 node를 대상으로 scrape interval을 1초로 할 경우Prometheus Server의 어떤 Resource를 얼마 만큼 증가하면 되는 건가요?
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강 기간 부족하여 늘려주시면 감사하겠습니다.
다른 공부로 인해 수강이 늦어져서 기간이 얼마 남지않아서 늘려주시면 감사하겠습니다.
-
미해결실전! Querydsl
entity onetomany로 가져온 데이터 delete 안되는 문제
예를 들어 Team, Member 엔티티가 있고 일대다 매핑을 했습니다.Team에는 Memberlist라는 필드를 넣어주고 onetomany어노테이션을 달아주고 지연로딩, cascadeAll을 달아줬습니다.질문은 team을 find해서 가져오고 team.getmemgerList로 멤버리스트를 가져온다음에 memger.getId를 해서 id 값을 가져온다음MemgerRepository.deleteById 메서드를 호출해서 멤버를 삭제하려 하였습니다. 그런데 이렇게 하니까 delete문이 나가지 않는 문제가 발생했습니다. 에러는 나지 않는데 말이죠.그렇게 한참 헤메다가 id 값으로 member를 find하고 그 다음 delete하니까 삭제가 되었습니다. 이 문제에 대해서 알고싶습니다 감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2 - R
마지막 값 출력 때 '\n'을 빼먹고 안해서 1시간 정도 헤맸습니다... 문제에서 요구한 사항이 아닌 거 같아서 딱히 하진 않았는데 다른 문제를 풀 때에도 명시돼 있지 않더라도 혹시 모르니 하는 것이 나을까요??또한 문제에 명시돼 있진 않으나 이진트리라고 가정하고 풀긴 했는데 이런 것도 혹시 문제의 예시를 보고 추정하면 될까요??
-
미해결홍정모의 따라하며 배우는 C++
11분 코드 질문
안녕하세요 하기 코드 질문드립니다int sumTo(int sumto){ if (sumto <= 0) return 0; else if (sumto <= 1) return 1; else return sumTo(sumto - 1) + sumto; }에서 굵게 표시한if(sumto < = 1) return 1; 이 굳이 필요한 부분인가요?~return 0은 재귀함수 중단을 위해 꼭 필요한 것이란 걸 알겠습니다만~return 1은 어떤 이유에서 추가하셨는지 궁금해서 여쭤봅니다. 미리 답변 감사드립니다.
-
해결됨모던 안드로이드 - Jetpack Compose 입문
mutableStateOf에 초기값을 안 넣을 수는 없을까요?
강사님 강의 덕분에 쉽고 빠르게 Compose를 학습하고 있습니다. 강의를 레퍼런스 삼아서 Compose로만 앱을 제작하고 있는데요 ViewModel에서 State를 사용해서 여러 작업을 하는 도중초기값이 필요 없는 경우가 생겼습니다. 하지만 State에 초기값을 넣어주지 않으면 에러가 발생해 private val allItem = mutableStateOf<List<ItemEntity>?>(null) val allItem: State<List<ItemEntity>?> = allItem이렇게 null을 넣어서 사용 중인데이러다 보니 매번 null 체크를 해줘야하는 번거로움이 발생하고 코틀린의 장점을 잘 활용 못하고 있다는 생각이 들었습니다. 당연히 State에 초기값을 안 넣어주고 사용하는 법도 찾아봤는데 일단 원하는 답은 찾지 못했습니다. 혹시 어떻게 하면 좋을까요?
-
해결됨[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
Package 선택 어떻게 알아요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다! ===================================프로젝트를 만들때 어떤 종류의 pub.dev package 들이 사용되는지 어떻게 알 수 있나요? 구글링인가요?
-
미해결[무료]정혜경 판타스틱 자료구조 입문 (in C)
동적할당 관련 질문드립니다!
안녕하세요 강사님, 혹시 해당 코드를 짤 때 검색함수나 삭제 함수에서 작업 노드로 사용되는 curp나 delp노드에는 동적할당으로 메모리를 할당하면 안되는 건가요? 자료구조 수업의 '단일 연결리스트' 내용 중 '검색 및 삭제 기능함수 구현 강의'에서의 질문입니다!
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part7: MMO 컨텐츠 구현 (Unity + C# 서버 연동 기초)
처음 등장했을때 죽지 않는 경우가 발생합니다.
https://blog.naver.com/we5046/223172915438강사님께서 진행하신대로이동할때 Map에게 모든 정보를 넘기므로 충돌을 관리하는데, EnterGame 부분에 Map.ApplyMove를 추가하여 플레이어가 아무 이동을 하지 않고 0,0 좌표에 있을때 화살 타격이 불가능하여 추가 할 경우 타격을 입게 될 것임이 분명한데 해당 영상을 보시면 Unity에서 실행 하는 Player는 타격을 입고, 그뒤 추가로 생성하는 Player또한 타격을 입는데, 맨 처음 같이 생성된 Player들중 한명을 움직이지 않고 냅두면 화살을 피하는 문제가 발생합니다.이러한 오류가 발생하는 이유가 무엇인지 궁금합니다. 해당 오류가 왜 발생하는지 생각해보니, 처음 실행된 Player1에게는 새로 등장한 Player2의 정보가 Player1의 맵으로 전달이 되지않은 것인가 라는 문제 점을 생각해보게 되었습니다.그래서 기존 EnterGame에서 해당 플레이어의 등장을 타인한테 정보전송하는 부분에 해당 플레이어의 위치를 Map에 전파하도록 작성하니 정상적으로 작동하게 되었습니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
섹션2 13강 서블릿에서
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. webapp 카테고리에index.htmlbasic.html 만든 후 ServletApplication 실행하면 ClassNotFoundException 에러가 발생합니다."C:\Program Files\Java\jdk-20\bin\java.exe" "-javaagent:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 232.7754.73\lib\idea_rt.jar=62663:C:\Program Files\JetBrains\IntelliJ IDEA Community Edition 232.7754.73\bin" -Dfile.encoding=UTF-8 -Dsun.stdout.encoding=UTF-8 -Dsun.stderr.encoding=UTF-8 -classpath C:\Users\USER\Desktop\servlet\out\production\classes;C:\Users\USER\Desktop\servlet\out\production\resources;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-web\3.1.2\30b824817e764a5a5a1e9fb46e7ace40bcfa3185\spring-boot-starter-web-3.1.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-json\3.1.2\c48d521879dbbcebe1a99f47257612968e022f5b\spring-boot-starter-json-3.1.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter\3.1.2\c09a48df6fbc2b07b7aef1256b45260a3478b49f\spring-boot-starter-3.1.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-webmvc\6.0.11\892b4a63b5d930c2c43058c6db0c2c65401fb078\spring-webmvc-6.0.11.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-web\6.0.11\c32a7bf6b88b83bac6aa63866fcf208892640446\spring-web-6.0.11.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jsr310\2.15.2\30d16ec2aef6d8094c5e2dce1d95034ca8b6cb42\jackson-datatype-jsr310-2.15.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.module\jackson-module-parameter-names\2.15.2\75f8d2788db20f6c587c7a19e94fb6248c314241\jackson-module-parameter-names-2.15.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.datatype\jackson-datatype-jdk8\2.15.2\66a50e089cfd2f93896b9b6f7a734cea7bcf2f31\jackson-datatype-jdk8-2.15.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-databind\2.15.2\9353b021f10c307c00328f52090de2bdb4b6ff9c\jackson-databind-2.15.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-autoconfigure\3.1.2\ea294976f925441fc1d5a5414d5d31717f06aa3c\spring-boot-autoconfigure-3.1.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot\3.1.2\3cf070561716277ec91ebadc07362dd0b4a9f63f\spring-boot-3.1.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework.boot\spring-boot-starter-logging\3.1.2\4e47bd132fdd0d60ad57d70bdc99198b182166ee\spring-boot-starter-logging-3.1.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-core\6.0.11\87834b5cf95c6fa28f5bdf8a85e0daf0bff918a8\spring-core-6.0.11.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.yaml\snakeyaml\1.33\2cd0a87ff7df953f810c344bdf2fe3340b954c69\snakeyaml-1.33.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-context\6.0.11\a7b10f3d3c1492bfc4e6d7c966cd2e21f4d441f5\spring-context-6.0.11.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-aop\6.0.11\15b85c825558fadb85e3c77779d7225ce7e4a7bc\spring-aop-6.0.11.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-beans\6.0.11\8513efc6e94b407b5cd85f69eeec511f1ef34164\spring-beans-6.0.11.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-expression\6.0.11\1d0940120a275719c3988c592068f4acf807fe59\spring-expression-6.0.11.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\io.micrometer\micrometer-observation\1.11.2\704e145c4801320b4c7abf6c1a5b000155b069db\micrometer-observation-1.11.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-annotations\2.15.2\4724a65ac8e8d156a24898d50fd5dbd3642870b8\jackson-annotations-2.15.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\com.fasterxml.jackson.core\jackson-core\2.15.2\a6fe1836469a69b3ff66037c324d75fc66ef137c\jackson-core-2.15.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-classic\1.4.8\f00ba91d993e4d14301b11968d3cacc3be7ef3e1\logback-classic-1.4.8.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-to-slf4j\2.20.0\d37f81f8978e2672bc32c82712ab4b3f66624adc\log4j-to-slf4j-2.20.0.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.slf4j\jul-to-slf4j\2.0.7\a48f44aeaa8a5ddc347007298a28173ac1fbbd8b\jul-to-slf4j-2.0.7.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.springframework\spring-jcl\6.0.11\c9b16cdb6d4874ba4118fcdd4b0335f6278b378\spring-jcl-6.0.11.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\io.micrometer\micrometer-commons\1.11.2\f03f87bd7eacf79b00aa89907c6e30e0ec86b4\micrometer-commons-1.11.2.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\ch.qos.logback\logback-core\1.4.8\3fba9c105e0efc5ffdcda701379687917d5286f7\logback-core-1.4.8.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.slf4j\slf4j-api\2.0.7\41eb7184ea9d556f23e18b5cb99cad1f8581fc00\slf4j-api-2.0.7.jar;C:\Users\USER\.gradle\caches\modules-2\files-2.1\org.apache.logging.log4j\log4j-api\2.20.0\1fe6082e660daf07c689a89c94dc0f49c26b44bb\log4j-api-2.20.0.jar hello.servlet.ServletApplication . ____ _ /\\ / ___'_ __ (_)_ _ \ \ \ \( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \ \\/ ___)| |_)| | | | | || (_| | ) ) ) ) ' |____| .__|_| |_|_| |_\__, | / / / / =========|_|==============|___/=/_/_/_/ :: Spring Boot :: (v3.1.2)2023-08-02T16:17:15.220+09:00 INFO 14084 --- [ main] hello.servlet.ServletApplication : Starting ServletApplication using Java 20.0.1 with PID 14084 (C:\Users\USER\Desktop\servlet\out\production\classes started by USER in C:\Users\USER\Desktop\servlet)2023-08-02T16:17:15.223+09:00 INFO 14084 --- [ main] hello.servlet.ServletApplication : No active profile set, falling back to 1 default profile: "default"2023-08-02T16:17:15.575+09:00 WARN 14084 --- [ main] s.c.a.AnnotationConfigApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Instantiation of supplied bean failed2023-08-02T16:17:15.590+09:00 INFO 14084 --- [ main] .s.b.a.l.ConditionEvaluationReportLogger : Error starting ApplicationContext. To display the condition evaluation report re-run your application with 'debug' enabled.2023-08-02T16:17:15.608+09:00 ERROR 14084 --- [ main] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'servletComponentRegisteringPostProcessor': Instantiation of supplied bean failed at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1220) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1158) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:560) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:520) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:326) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:324) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:199) ~[spring-context-6.0.11.jar:6.0.11] at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:771) ~[spring-context-6.0.11.jar:6.0.11] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:589) ~[spring-context-6.0.11.jar:6.0.11] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:734) ~[spring-boot-3.1.2.jar:3.1.2] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:436) ~[spring-boot-3.1.2.jar:3.1.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:312) ~[spring-boot-3.1.2.jar:3.1.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1306) ~[spring-boot-3.1.2.jar:3.1.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1295) ~[spring-boot-3.1.2.jar:3.1.2] at hello.servlet.ServletApplication.main(ServletApplication.java:12) ~[classes/:na]Caused by: java.lang.NoClassDefFoundError: jakarta/servlet/annotation/WebServlet at org.springframework.boot.web.servlet.WebServletHandler.<init>(WebServletHandler.java:39) ~[spring-boot-3.1.2.jar:3.1.2] at org.springframework.boot.web.servlet.ServletComponentRegisteringPostProcessor.<clinit>(ServletComponentRegisteringPostProcessor.java:49) ~[spring-boot-3.1.2.jar:3.1.2] at org.springframework.boot.web.servlet.ServletComponentScanRegistrar$ServletComponentRegisteringPostProcessorBeanDefinition.lambda$getInstanceSupplier$0(ServletComponentScanRegistrar.java:96) ~[spring-boot-3.1.2.jar:3.1.2] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainInstanceFromSupplier(AbstractAutowireCapableBeanFactory.java:1254) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support.DefaultListableBeanFactory.obtainInstanceFromSupplier(DefaultListableBeanFactory.java:949) ~[spring-beans-6.0.11.jar:6.0.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.obtainFromSupplier(AbstractAutowireCapableBeanFactory.java:1214) ~[spring-beans-6.0.11.jar:6.0.11] ... 16 common frames omittedCaused by: java.lang.ClassNotFoundException: jakarta.servlet.annotation.WebServlet at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java:641) ~[na:na] at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java:188) ~[na:na] at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java:521) ~[na:na] ... 22 common frames omittedProcess finished with exit code 1
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
ansible 서버 접근 실패 unreachable => ssh: connect to host 172.17.0.4 port 22: Connection refused
비슷한 에러나 구글링해도 해결을 못해서 질문 남깁니다.평소에 잘 됐는데 갑자기 4번 ansible서버에서 4번으로 들어오는 접속을 다 거절합니다.playbook-sample2,playbook-sample3에서 172.17.0.4(ansible 서버) 호스트에 대한 명령어에 대해서는 전부 아래와 같은 에러가 발생합니다.fatal: [172.17.0.4]: UNREACHABLE! => {"changed": false, "msg": "Failed to connect to the host via ssh: ssh: connect to host 172.17.0.4 port 22: Connection refused", "unreachable": true}m1사용 중이고 계속 접속 거절된다길래 몇 가지 테스트를 해보긴 했습니다.mac local -> 172.17.0.4은 정상적으로 접속이 됩니다.172.17.0.4 -> 172.17.0.2172.17.0.4 -> 172.17.0.4에 대해서는 전부 ssh: connect to host 172.17.0.4 port 22: Connection refused라고 나오네요.어떻게 해결 할 수 있나요??
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Junit의 test 클래스의 의존관계에 대한 궁금증
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 아니오2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]여기에 질문 내용을 남겨주세요.Junit 관련 질문입니다. Junit에서 test시 객체가 생성되어야 되는데 따로 컨테이너를 관리하지 않는데 어느범위까지 미리 싱글톤 인스턴스를 만들어서 정상작동되는건가요?본 강의의 test 클래스에서 싱글톤 객체를 그냥 getInstance()메서드(# 객체 자체 인스턴스를 가져오는 메서드)를 통해서 사용을하는데 언듯 생각하기엔 독립된 test 내에 해당 객체를 사용하기 위해선 선언을 먼저해주거나 컨테이너에서 관리가 되어야 될것 같아서 어떤 로직인지 궁금해 질문드립니다.
-
해결됨[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
20강에서 Article create 부분
안녕하세요 강사님 강의 잘 듣고 있습니다20강에서 19강때 했던 코드들을 리팩토링 하는 것을 알려주는 강의잖아요그런데 19강에서 했던 코드와 20강 리팩토링하기 전 코드가 달라서 문의 드립니다.19강에서는 코드가 이건데요20강 코드에서는 (8분 55초)이렇게 달라서 그냥 20강 코드를 따라가면 되나요?알려주시면 감사하겠습니다
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
자동완성
너무 기초적인 질문이라 죄송합니다.강의 초반부에 StatelessWidget을 만드시는데 단축키를 사용하시는지 갑지가 몇글자 안치셨는데 비어있는 코드가 쭉 생기던데요.단축키인가요....???- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.코드팩토리 디스코드https://bit.ly/3HzRzUMFlutter 강의를 구매하시면 코드팩토리 디스코드 서버 플러터 프리미엄 채널에 들어오실 수 있습니다! 디스코드 서버에 들어오시고 저에게 메세지로 강의를 구매하신 이메일을 보내주시면 프리미엄 채널에 등록해드려요! 프리미엄 채널에 들어오시면 모든 질의응답 최우선으로 답변해드립니다!