구매 관련 세션 키 이벤트 비율과 사용자 세션 키 이벤트 비율 수동으로 확인할 수 있는 방법 문의 드립니다. 탐색 보고서에서 만들어 보려고 하니 전체 이벤트가 모두 반영 되어, 기본 보고서에서 처럼 이벤트를 선택하여 전환율을 확인할 수 없었습니다. 기본 보고서에서 바로 확인할 수 있는 수치가 아니어, 수동으로 측정 항목 기입하여 계산해야 할 것 같은데요. 분모는 측정항목으로 세션수와 총사용자로 두면 될 것 같은데 분자인 구매 완료 세션수와 구매한 사용자를 어떻게 적용하면 될가요? 별도의 이벤트 세그먼트를 만들어서 보는게 맞을지.. 하여 문의 드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 섹션 7. 컴포넌트 스캔 - 중복 등록과 충돌 강의를 실습하던 중 @Component public class MemoryMemberRepository implements MemberRepository{} @Configuration @ComponentScan( excludeFilters = @Filter(type = FilterType.ANNOTATION, classes = Configuration.class) ) public class AutoAppConfig { @Bean(name = "memoryMemberRepository") public MemberRepository memberRepository(){ return new MemoryMemberRepository(); } } 이러한 경우 자료에서는 "수동 빈 등록이 우선권을 가져서 수동빈이 자동빈을 오버라이딩 해버린다." 라고 나와 있습니다. 근데 제 콘솔 로그에는 09:37:26.010 [main] WARN o.s.c.a.AnnotationConfigApplicationContext --Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.support.BeanDefinitionOverrideException: Invalid bean definition with name 'memoryMemberRepository' defined in class path resource [hello/core/AutoAppConfig.class]: Cannot register bean definition [Root bean: class [null]; scope=; abstract=false; lazyInit=null; autowireMode=3; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=autoAppConfig; factoryMethodName=memberRepository; initMethodNames=null; destroyMethodNames=[(inferred)]; defined in class path resource [hello/core/AutoAppConfig.class]] for bean 'memoryMemberRepository' since there is already [Generic bean: class [hello.core.member.MemoryMemberRepository]; scope=singleton; abstract=false; lazyInit=null; autowireMode=0; dependencyCheck=0; autowireCandidate=true; primary=false; factoryBeanName=null; factoryMethodName=null; initMethodNames=null; destroyMethodNames=null; defined in file [/Users/g.u/logInDev/T.I.L/spring/basic/codebase/core/build/classes/java/main/hello/core/member/MemoryMemberRepository.class]] bound. (...생략....) The bean 'memoryMemberRepository', defined in class path resource [hello/core/AutoAppConfig.class], could not be registered. A bean with that name has already been defined in file [/Users/g.u/logInDev/T.I.L/spring/basic/codebase/core/build/classes/java/main/hello/core/member/MemoryMemberRepository.class] and overriding is disabled. Action: Consider renaming one of the beans or enabling overriding by setting spring.main.allow-bean-definition-overriding=true 오버라이딩을 원하면 추가 옵션을 세팅하라고 나와있습니다. 이 경우에는 오버라이딩이 된게 아니고 스프링이 중단되었다고 판단됩니다. 혹시 강의에서는 추가로 옵션을 세팅한건 지 아니면 제가 잘못 코드를 작성한건 지 궁금합니다.
안녕하세요~ 설명해주신 CSR, SSR 렌더링 강의보고 CSR, SSR 렌더링 방식에 대해 궁금한점 두가지 남겨봅니다! (유사한 질문이 있는지 찾아봤는데 글이 많아서 찾질 못해서 중복 감안하고 올려봅니다🙏🏻) 질문1 CSR은 bundle js 다운로드 레이턴시 만큼 FCP가 느리고 반대로 SSR은 bundle js 다운로드 레이턴시만큼 CSR보다 FCP가 빠르다고 이해했는데요. TTI 기준으로 보면 결국 CSR, SSR모두 차이가 없는게 맞을까요? (gzip압축 해제, js parse, hydration등의 처리에서 드는 비용의 차이가 있겠지만 이런 부분들은 크게 영향을 주진 않을거라고 생각하여 문의드립니다. 혹시 두 방식에 영향을 미치는 큰 요소가 있다면 그 부분도 고려해서 알려주시면 감사하겠습니다.) 질문2 CSR의 장점으로 초기 렌더링이 느리고 이후에 페이지 이동시 빠르게 화면을 그릴 수 있다고 하셨는데요, CSR에서 초기 렌더링의 속도를 높이기 위해 코드 스플리팅 전략을 취할 수 있을거 같습니다. 이렇게 CSR에서 코드 스플리팅 방식을 취한 경우 페이지 이동시 결국 bundle js 다운르드 레이턴시가 또 발생할거 같은데요. prefetch, preload같은 전략을 취하지 않고 코드스플리팅만 적용한 CSR방식은 단점만 남는 렌더링 전략이 맞을까요? 유일한 장점은 CSR이지만 코드 스플리팅을 했기 때문에 초기 FCP가 조금 빠르다정도일거 같은데 이해한게 맞는지 문의드려봅니다.
안녕하세요 강사님! 항상 강의로 재미있게 공부하고 있습니다! 다름이 아니라 ACM으로 SSL 인증서를 적용하면 로드밸런서의 리스너 규칙을 HTTPS 만 허용하고 HTTP 리스너는 404 응답을 보내게 설정해도 되는 걸까요? 로드밸런서 리스너 규칙 HTTPS HTTP 이렇게 하려는 이유는 기존 HTTP 리스너만 있는 상태에서 웹소켓으로 통신을 하려고 하는데, 프론트에서 HTTPS로 웹소켓 연결 요청을 보내게 되면, "Handshake failed due to invalid Upgrade header: null" 이런 에러가 뜨더라고요! 그래서 찾아본 결과 ALB가 리버스 프록시로서 HTTP 요청을 HTTPS로 리다이렉션 하는 과정에서 WebSocket upgrade 헤더 손실이 발생한다고 하더라고요!(이게 맞는 내용일까요..?) 아직 에러를 해결하는 중이라 이게 정답인지 아닌지는 아직 잘 모르겠지만.. 이런 문제로 HTTPS 리스너를 추가해 보려고 합니다! 그리고 하는 김에 보안강화를 위해 HTTP는 404응답, HTTPS 요청만 허용해 보려고 하는데 이렇게 해도 되는 걸까요? + 추가로 이렇게 되면 ALB 보안그룹의 인바운드를 HTTPS를 허용하면 되는 거겠죠?!
안녕하십니까 교수님 다름이 아니고 발행-구독 패턴의 주체인 MyGameInstance의 Student 오브젝트 선언 부분에서 궁금한 점이 생겨서 질문 드립니다. 25:47초 쯤에서 구문 실행시 아래의 오브젝트는 자동 소멸된다고 하셨습니다. 따라서 Outer가 필요 없다고 하셨고, outer가 필요없는 이유는 Student 객체가 주체에서 관리될 이유가 없기 때문이라고 이해했습니다. UStudent* Student1 = NewObject<UStudent>(); UStudent* Student2 = NewObject<UStudent>(); UStudent* Student3 = NewObject<UStudent>(); 근데 '구문 실행'시 자동 소멸이 된다는게 이해가 되지 않습니다. 구문 실행시가 아닌 해당 함수에서의 작업을 모두 마친 후 소멸하는게 아닌가요? 아니면 student객체들이 엔진에 레퍼런스되지 않기 때문에 선언 후 소멸된다는 의미에서 저렇게 말씀하신걸까요? 혹시 제가 오브젝트 관련해서 잘못 이해했거나 부족한 지식이 있는거라면 지적해주신다면 정말 감사합니다.
백엔드 취준생인데 프론트를 좀 할 일이 있어서 강의 듣고 있는데 Next-Auth 부분이 이해가 쉽지 않네요... 몇 가지 질문 드리고자 합니다. 1. session 객체에 어떤게 담기는건지 잘 모르겠습니다. export default async function Home() { const session = await auth() if (session?.user) { redirect('/home') return null } return ( <Main/> ); } export const { handlers: { GET, POST }, auth, signIn, } = NextAuth({ // 개발자가 직접 만든 화면에서 로그인 하도록 진행 pages: { signIn: '/i/flow/login', // 로그인 newUser: '/i/flow/signup' // 회원가입 }, providers: [ CredentialsProvider({ async authorize(credentials) { const authResponse = await fetch(`${process.env.NEXT_PUBLIC_BASE_URL}/api/login`, { method: 'POST', headers: { "Content-Type": "application/json", }, body: JSON.stringify({ id: credentials.usename, password: credentials.password, }) }) if (!authResponse.ok) { return null } const user = await authResponse.json() return { email: user.id, name: user.nickname, image: user.image, ...user } } }) ], }) Home 에서 auth() 를 통해 불러온 session 객체에 CredentialsProvider 가 리턴한 객체가 담기는건가요? 그런데 그렇다고 하기엔 객체에 user 라는 속성이 없어서 아닌 것 같기도 해서 아닌 거 같다는 생각도 듭니다. export default function Login() { const router = useRouter() const { data: session } = useSession(); if (session?.user) { router.replace('/home') return null } router.replace("/i/flow/login") return ( <Main /> ) } 마찬가지로 여기서도 session 에 어떤게 담기는지 잘 모르겠습니다 ㅠㅠ auth() 로 리턴한 세션과 같은 객체가 담기는 것 같긴 한데 도대체 session 에 뭐가 담기는지 파악이 쉽지 않네요 ㅋㅋㅋ 그래서 session 객체의 user 를 클릭해서 들어가보니 다음과 같은 interface 가 나오네요. export interface DefaultSession { user?: User expires: ISODateString } auth/core 에 있는 인터페이스인 것 같은데 이 인터페이스가 어느 시점에 등장(?) 하는 건지 잘 모르겠습니다. 2. 지금 진행하는 로그인 방식은 백엔드에 로그인 관련 API 가 있다고 가정하고 진행하는 것으로 저는 이해를 했는데요 export const handlers = [ http.post(`${baseUrl}/api/login`, () => { console.log('로그인'); return HttpResponse.json(User[1], { headers: { 'Set-Cookie': 'connect.sid=msw-cookie;HttpOnly;Path=/' }, }) }), http.post(`${baseUrl}/api/logout`, () => { console.log('로그아웃'); return new HttpResponse(null, { headers: { 'Set-Cookie': 'connect.sid=;HttpOnly;Path=/;Max-Age=0' } }) }), http.post(`${baseUrl}/api/users`, async ({ request }) => { console.log('회원가입'); // return HttpResponse.text(JSON.stringify('user_exists'), { // status: 403 // }) return HttpResponse.text(JSON.stringify('ok'), { headers: { 'Set-Cookie': 'connect.sid=msw-cookie;HttpOnly;Path=/' }, }); }) ]; 이게 지금 api 를 mocking 한 건데 여기에 요청을 보내고 있으니까요. 그러면 이 API 에서 리턴한 유저(User[1]) 가 세션에 담기는 것인지 궁금하네요. (이것도 1번 질문하고 좀 연관이 되네요) 그러면 만약에 백엔드 API 가 로그인 성공했을 때 http body 에 별도의 객체를 리턴하지 않으면 어떻게 되나? 이런 궁금증도 생깁니다. 3. 그리고 로그아웃을 할 때는 왜 로그아웃 API 에 따로 요청을 보내지 않고 signOut 함수만 사용하는지 궁금합니다. 이것만 사용해도 쿠키가 삭제가 돼서 그런 것인가요? 그러면 백엔드 서버에 별도의 로그아웃 API 를 만들지 않아도 되는 것인지 궁금합니다. 장문의 질문글이 된 거 같은데, 뭔가 Next-Auth 를 처음 접하다보니 사용법이 좀 익숙치가 않네요. AI 에 물어보거나 구글링을 해 봐도 좀 파악이 쉽지 않아 여기에 질문 남겨봅니다. 감사합니다.
self-attention에 등장하는 Wq, Wk, Wv weight matrix들에 대한 학습과정 질문입니다. attention score계산 시 query vector에 대해(예를들어 강의에서 설명하신 student vector) key vector들(am, a, student 벡터)의 attention score가 낮게 나온다면, 그게 loss가 되는건가요? 예를들어, Wq, Wk, Wv weight들이 충분히 학습되지 않았을 때를 생각해보면, "I" vector가 Query vector일 때, "student" key vector의 attention score가 가장 높게 나오지 않고 "am" key vector와 attention score가 가장 높게 나올 경우엔 loss가 발생하고 "student" key vector와의 score가 높게 나오도록 Wq, Wk, Wv가 업데이트 된다고 이해하면 될까요?(I와 student는 word embedding에 의해 유사성이 있다고 판단하고)
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 서비스 계층의 순수성을 위해 체크 예외를 런타임 예외로 변환해서 던지고, 런타임 예외로 변환 시 반드시 기존 체크 예외를 포함하여 던져야 한다. 왜냐하면 예외 발생 시 어떤 예외 때문에 해당 예외가 발생했는지 스택 트레이스를 참고하기 위해서이다. 그러면 차라리 런타임 예외 클래스의 생성자에서 예외를 포함하도록 강제하면 예외를 포함하여 던져야 한다. 는 부분이 해결 될 것 같은데요 강의에서는 다음과 같이 파라미터가 없는 기본 생성자를 만드는 특별한 이유가 있는 것인지 아니면 중요한 주제가 아니라 남기셨는지 궁금합니다. public class MyDbException extends RuntimeException { public class MyDbException() { // 이 부분을 없애고 다음의 생성자만 남김 } public class MyDbException(Throwable cause) { // 이 생성자만 강제하면 반드시 예외를 포함하여 던져야 하므로 문제가 해결됨 } }
docker-compose build가 안되요!ㅠㅠㅠㅠㅠ 도커라 도커컴포즈 삭제하고 다시 까는거는 5시간동안 했는데... 챗gpt가 하라는데로 5시간동안 했는데 해결이 안되네요! Traceback (most recent call last): File "urllib3/ connectionpool.py ", line 677, in urlopen File "urllib3/ connectionpool.py ", line 426, in make request File "<string>", line 3, in raise_from File "urllib3/ connectionpool.py ", line 421, in make request File "http/ client.py ", line 1369, in getresponse File "http/ client.py ", line 310, in begin File "http/ client.py ", line 271, in read status File " socket.py ", line 589, in readinto ConnectionResetError: [Errno 104] Connection reset by peer During handling of the above exception, another exception occurred: Traceback (most recent call last): File "requests/ adapters.py ", line 449, in send File "urllib3/ connectionpool.py ", line 727, in urlopen File "urllib3/util/ retry.py ", line 410, in increment File "urllib3/packages/ six.py ", line 734, in reraise File "urllib3/ connectionpool.py ", line 677, in urlopen File "urllib3/ connectionpool.py ", line 426, in make request File "<string>", line 3, in raise_from File "urllib3/ connectionpool.py ", line 421, in make request File "http/ client.py ", line 1369, in getresponse File "http/ client.py ", line 310, in begin File "http/ client.py ", line 271, in read status File " socket.py ", line 589, in readinto urllib3.exceptions.ProtocolError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "docker/api/ client.py ", line 214, in retrieve server_version File "docker/api/ daemon.py ", line 181, in version File "docker/utils/ decorators.py ", line 46, in inner File "docker/api/ client.py ", line 237, in _get File "requests/ sessions.py ", line 543, in get File "requests/ sessions.py ", line 530, in request File "requests/ sessions.py ", line 643, in send File "requests/ adapters.py ", line 498, in send requests.exceptions.ConnectionError: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) During handling of the above exception, another exception occurred: Traceback (most recent call last): File "docker-compose", line 3, in <module> File "compose/cli/ main.py ", line 81, in main File "compose/cli/ main.py ", line 200, in perform_command File "compose/cli/ command.py ", line 70, in project_from_options File "compose/cli/ command.py ", line 153, in get_project File "compose/cli/docker_ client.py ", line 43, in get_client File "compose/cli/docker_ client.py ", line 170, in docker_client File "docker/api/ client.py ", line 197, in init File "docker/api/ client.py ", line 222, in retrieve server_version docker.errors.DockerException: Error while fetching server API version: ('Connection aborted.', ConnectionResetError(104, 'Connection reset by peer')) [119730] Failed to execute script docker-compose 챗 gpt에 물어보고 똑같이 해봐도 해결이 안됩니다. ㅜㅜㅜㅜㅜ
Type Reason Age From Message ---- ------ ---- ---- ------- Normal Scheduled 16m default-scheduler Successfully assigned default/spring-deployment-6d776f4dc5-5fg5k to ip-172-31-40-146 Normal Pulling 14m (x4 over 16m) kubelet Pulling image " 149536500787.dkr.ecr.ap-northeast-2.amazonaws.com/kube-ecr:1.0 " Warning Failed 14m (x4 over 16m) kubelet Failed to pull image " 149536500787.dkr.ecr.ap-northeast-2.amazonaws.com/kube-ecr:1.0 ": rpc error: code = NotFound desc = failed to pull and unpack image " 149536500787.dkr.ecr.ap-northeast-2.amazonaws.com/kube-ecr:1.0 ": no match for platform in manifest: not found Warning Failed 14m (x4 over 16m) kubelet Error: ErrImagePull Warning Failed 14m (x6 over 16m) kubelet Error: ImagePullBackOff Normal BackOff 62s (x63 over 16m) kubelet Back-off pulling image " 149536500787.dkr.ecr.ap-northeast-2.amazonaws.com/kube-ecr:1.0 " 쿠버네티스로 AWS에 배포하는 과정에서 위와 같은 에러가 발생합니다. 어떻게 해결해야 될까요?