묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 시큐리티
로그인 후 로그인 페이지 접속
로그인 후 로그인 페이지에 접속되는데 이건 제어하는 방법이 없나요?
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
스트림 방식에서 read와 write 사용법 차이
제로초님 안녕하세요. 혼자서 코드를 실습해보다가 스트림 방식으로 createReadStream을 사용할 때와 createWriteStream을 사용법의 차이가 궁금해서 질문 드립니다! 혼자서 수업 코드를 작성해볼 때는 createReadStream처럼 createWriteStream도 writeStream.on('write', () => {}) 같은 이벤트 리스너 형식으로 코드를 작성해야한다고 생각했는데, 수업에서는 writeStream.write()로 작성하시더라구요! 왜 이렇게 사용 방식이 다른지 궁금합니다. 수업 중에 전자 같이 작성한 코드를 이벤트 리스너라고 하셨는데, 왜 read에는 이벤트 리스너 형식으로 작성하고 write에는 메서드로 작성하는 건가요? 그냥 외워야 하는 문법인건지 알고 싶습니다.
-
미해결구글 스프레드시트로 배우는 업무 자동화(직장인 코딩)
안녕하세요 onEdit 이쪽부분에서 오류가 나서 질문드립니다.
let ws=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("명렬표"); let ref=SpreadsheetApp.getActiveSpreadsheet().getSheetByName("이름"); let options=ref.getRange(2,1,ref.getLastRow()-1,2).getValues() function onEdit(e){ const activerange=e.range; const row=activerange.getRow() const col=activerange.getColumn() const val=activerange.getValue() if (col===1){ const filteredoptions=options.filter(r=>r[0]===val) const listofName=filteredoptions.map(r=>r[1]) const cell=ws.getRange(row,2) setValidation(listofName,cell) } } function setValidation(list,cell){ const rule=SpreadsheetApp.newDataValidation().requireValueInList(list).build() ws.getRange(cell).setDataValidation(rule) TypeError: Cannot read property 'range' of undefined } 여기서 e.range 이부분에서 오류가 지속발생합니다. ㅠㅠ 부탁드립니다. typeError
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
알고리즘교안 잘못된 거 있는 거 같습니다.
59페이지에 에라토스테네스의 체 소수구할때 입니다. #include<bits/stdc++.h> bool check(int n) { if (n <= 1 || n % 2 == 0) { return 0; } for (int i = 2; i * i <= n; i++) { if (n % i == 0) return 0; } 만약 n에 2가 들어간다면 2도 소수인걸로 아는데, false가 되어버리네요 ㅠㅠ
-
미해결프로그래밍 시작하기 : 웹 입문 (Inflearn Original)
버튼을 눌렀을때 케러셀의 이동
버튼을 눌렀을때 한칸씩 가지 않고 두칸씩 이동하는 이유는 어느부분 에서 있을끼요???? window.addEventListener('load', function() { var carousels = document.getElementsByClassName('carousel'); //dom문법을 쓴다는건 객체를 의미한다 //케러셀 이벤트를 등록하는 로직 //캐러셀 랭스: for(var i = 0; i < carousels.length; i++) { addEventToCarousel(carousels[i]); // 현재해당하는 carousels 가져옴(배열) } }); //carouselELem에는 carousels[i]가 들어가짐 function addEventToCarousel(carouselElem) { var ulElem = carouselElem.querySelector('ul'); var liElems = ulElem.querySelectorAll('li'); //너비값 조정 var liWidth = liElems[0].clientWidth; //현재 li의 너비값 : 600px이옴 var adjustedWidth = liElems.length * liWidth; //이미지 갯수 * 너비 ulElem.style.width = adjustedWidth + 'px';//2400px이 됌 //슬라이더 버튼 이벤트 등록 , 슬라이드에 대한 객체 정보 다빼옴 var slideButtons = carouselElem.querySelectorAll('.slide'); //슬라이드 버튼 갯수만큼 반복 for (var i=0; i < slideButtons.length; i++) { //왼쪽버튼 오른쪽버튼 총 2번을 반복한다. slideButtons[i].addEventListener('click', createListenerSlide(carouselElem)); } } //슬라이드 버트을 누를때 이벤트를 클로저로 사용하기위해 //클로저로 해서 캐러셀을 이벤트가 호출될때 바뀌지 않고 사용하기 위해 //버튼이 담겨잇는 케러셀만 가져올수있도록 클로저를 이용 function createListenerSlide(carouselElem) { return function(event) { //event는 매개변수고 이 블록안에서 사용가능 var clickedButton = event.currentTarget;//현재 클릭한 버튼 가져오기 //클릭이라는 이벤트가 발동됐을때 return함수가 호출이된다. // 값 가져오기 var liElems = carouselElem.querySelectorAll('li'); var liCount = liElems.length; //길이는 4야 var currentIndex = carouselElem.attributes.data.value; //currentIndex : 현재 보고있는 이미지의 순번 //carouselElem의 모든 속성을 가져오고 데이터를 가져오겠다 //슬라이드 버튼 체크 right값을 포함하는지 //-1해주는이유는 4개일경우 마지막은 3이 마지막이기때문 if(clickedButton.className.includes('right') && currentIndex < liCount - 1) { currentIndex ++; scrollDiv(carouselElem, currentIndex); //위에서 3이라면 ++되므로 4번의 위치로 스크롤을 조정해주는 역할 } else if(clickedButton.className.includes('left') && currentIndex > 0) { currentIndex --; //0이면 왼쪽으로 못넘김 scrollDiv(carouselElem, currentIndex); } //인디케이터 업데이트 updateIndicator(carouselElem, currentIndex); //슬라이드 버튼 보여줌 여부 업데이트 updateSlideButtonvisible(carouselElem, currentIndex, liCount); //새롭게 보여지는 이미지 인덱스 값을 현재 data 값으로 업데이트 carouselElem.attributes.data.value = currentIndex; //만약 currentIndex가 2라면 1에서 2로 바뀌는것 } } //다음으로 이동할 매개변수로 nextIndex 이용 //여기서 왜 2칸씩 가게될까 function scrollDiv(carouselElem, nextIndex) { var scrollable = carouselElem.querySelector('div');//오버플로 히든되는 var liWidth = scrollable.clientWidth;//div의 사이즈 600이라 600이올거임 var newLeft = liWidth * nextIndex; //2번을 하야된다 하면 1200px이 움직일것 scrollable.scrollTo({left: newLeft, behavior: 'smooth'}); } //querySelectorAll 이기 때문에 배열로 받아온다 function updateIndicator(carouselElem, currentIndex) { var indicators = carouselElem.querySelectorAll('footer > div'); for (var i = 0; i < indicators.length; i++) { if (currentIndex == i) { indicators[i].className = 'active';//객체이므로 .className을 쓰는거지 } else { indicators[i].className = ''; } } } function updateSlideButtonvisible(carouselElem, currentIndex, liCount) { var left = carouselElem.querySelector('.slide-left'); var right = carouselElem.querySelector('.slide-right'); if (currentIndex > 0) { left.style.display = 'block'; } else { left.style.display = 'none'; } if(currentIndex < liCount - 1) { right.style.display = 'block'; } else { right.style.display = 'none'; } }
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
YOLO v3-320, YOLO v3-416, YOLO v3-608 링크 관련
안녕하세요. 매번 좋은 강의해주셔서 감사드립니다. 질문이 한 가지 있습니다. 다크넷 욜로 사이트에 , YOLO v3-320, YOLO v3-416, YOLO v3-608의 weight와 config 링크가 모두 같습니다. 세 모델의 차이는 입력 이미지 크기인데, 입력 이미지 크기를 서로 달리해서 사전 훈련을 했는데도 가중치와 config가 모두 똑같은 것인가요? 아울러, 모델에 입력 이미지를 전달할 때 다음과 같이 했습니다. cv_net_yolo.setInput(cv2.dnn.blobFromImage(img, scalefactor=1/255.0, size=(416, 416), swapRB=True, crop=False)) 이떄 size=(416, 416)으로 했는데요, YOLO v3-320, YOLO v3-416, YOLO v3-608의 weight와 config가 모두 같다면(그래서 결국 같은 모델을 불러오는 것이라면), setInput()을 호출할 때 size 파라미터에 (416, 416)을 전달하든 (320, 320) 혹은 (608, 608)을 전달하든 상관 없는 것인가요? 감사합니다 ^^
-
해결됨스프링 시큐리티
로그인 후 로그인 페이지 접속
스프링 시큐리티에서 별도로 로그인 후에 로그인 페이지 접속을 제한하는것은 없는건가요? 로그인 컨트롤러에서 principal을 통해 리다이렉트하는 방법 밖에 없는걸까요?
-
미해결실무에서 바로 쓰는 영어 이메일
강의 자료 요청 드립니다.
안녕하세요. 강의 잘 듣고 있습니다. 강의 자료 공유 요청드립니다. 감사합니다. youngjun.han@halla.com
-
미해결
Digital marketing packages India
We Provide Digital Marketing and SMO Packages to grow your business and offering Digital Marketing Packages that are designed to increase traffic and leads on your site, drive more sales for your business, save you time and money. We offer Full-Service digital marketing pricing in New Delhi for SMO Services in India that are different from the cost of other countries. For better deliverables at low prices, our team of search engine optimization professionals works relentlessly to make sure your website climbs up in the Google rankings without any extra charges. KEY MARKETING is one of the best digital marketing company in Delhi NCR and overall the WORLD. We have digital marketing Packages in India that are designed to increase traffic and leads on your site, drive more sales for your business, save you time and money. For better deliverables at low prices, our team of search engine optimization professionals works relentlessly to make sure your website climbs up in the Google rankings without any extra charges.
-
미해결[입문] UX 면접 사례로 본 UX 디자인과 UX 리서치
안녕하세요 전민수 강사 :) UX기획분야에 관심있는 취업준비생입니다.
안녕하세요 전민수 강사님! 저는 현재 UX기획에 관심있는 취업준비생입니다. 최근 인프런을 통해 강사님의 무료강의를 수강하고, 후기도 작성했는데 혹시 기억하시려나요? 😁 강의를 듣다가 궁금한 점이 생겨서 문의를 드립니다. 답변해주시면 정말 큰 유익함이 될 것 같습니다 :) UX커리어를 쌓고 싶어 정보를 검색하다가 웹/모바일 ux보다 좀 더 physical한 ux를 하고 싶다고 생각하게 되었습니다.(사용자의 물리적인 제품 상 경험을 디자인하고 싶다는 마음, 이미 모바일 시장은 다양한 앱서비스로 가득해서 굳이 내가 개입하지 않아도 되겠다는 생각, 좀 더 미래 유망분야를 공부하고 싶다는 막연함 등이 이유입니다) 이 때 1)AI UX, IoT, AR, VR(크게 관심있는 키워드로 추려봤습니다)에 관심있는 저는, 기성 시장에 존재하는 다양한 앱/웹 UX에 대한 방법론(주로 패캠, 인프런, 탈잉 등에서 다루는 UX)을 공부해야 하는건 피차 마찬가지인가요? 2)위 키워드와 관련된 ux는 어떤 ux라고 업계에서 칭하나요? (하드웨어 ux라고 하는지, 피지컬ux라고 하는지, 스마트기술 ux라고 하는지.. 궁금합니다) 구글링을 해봐도 ux는 전반적으로 '앱/웹'을 다루지, 다른 것은 잘 나오지 않더라구요. 제 정보검색의 한계인지, 다른 키워드가 있는지 궁금합니다. 3)저는 신문방송학 전공자로, UX에 대한 직접적 경험이 전무한 상태입니다 (그러나 개발자 친구들과 모바일웹서비스를 기획한 경험은 있습니다). 이런 제가 하드웨어ux로 뛰어들려면 어떤 루트를 거쳐야 하는지 궁금합니다. UX에 대한 실속을 갖추고 싶은 저에게, 여러 강의 사이트(패스트캠퍼스 등)에서 ux design process 등을 공부하는 것이 효과적일까요? 4)UX에 대한 강의사이트(패캠, 인프런 등)를 보면, 전반적으로 다루는 내용을 크게 *ux design process *product thinking방법론 *visual craft(gui디자인을 말하는 것 같습니다)로 정리할 수 있었습니다. 각 부분에 대한 독학 및 포트폴리오를 만들어 취업준비를 해야겠다고 생각했는데, 위 3가지 과정이면 하드웨어 ux기획자로서 '기본기를 다지기에 충분'한지, 혹은 '가감할 요소'가 있는지 궁금합니다. 더 많은 질문들이 있지만 먼저 이 부분에 대한 답변이 해결되면 다음 단계의 계획을 세우기에 충분할 것 같다는 생각이 듭니다. 인프런에 나온 강사님의 프로필을 보면 '스마트기기 UX&UI디자인 직무분석 위원'이라는 소개가 나와있어서 저의 궁금증을 해결해주시기에 더욱 적합하시지 않을까 싶어 고민 끝에 연락을 드립니다. 요새 UX에 대한 붐(?)아닌 붐이 일어 바쁘시겠지만, 꼭 답변주시면 정말 감사하겠습니다!
-
미해결웹 게임을 만들며 배우는 React
winner 메시지 초기화
win 메시지를 테이블이 초기화 될때 <div>{winner}님의 승리</div> 여기 div 내용이 초기화되도록 하려고 하는데요 혹시 all 변수를 true일 때만 보이게 했는데 아래처럼요{winner && <div>{winner}님의 승리</div>} 이걸 {all&& <div>{winner}님의 승리</div>}이렇게 해도 해결이 되지 않아서 질문합니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
Condition Variable 에서의 lock 문제
안녕하세요 Rookiss 님 좋은 강의 감사합니다. 다름이 아닌 condition variable 에서 producer ( ) 코드 에서 { { unique_lock<mutex> guard(m); q.push(100); } //생략 } 이렇게 unique_lock 을 걸어주게 되고, Consumer 측에서는 { while (true) { unique_lock<mutex> lock(m); // 생략 } } 여기서 궁금한게, thread1(producer) , thread2(consumer) 시, thread1 에서 mutex m 을 unique_lock 으로 잠가주게 되고, thread2 에서 mutex m 을 또 unique_lock 으로 잠가주게 되어, 재귀적으로 lock 이 일어나게 되는데, 왜 오류가 일어나지 않는지 궁금합니다. ps ) unique_lock 으로 인자를 주어, 처음부터 lock을 안걸어줄 수도 있는데, 그냥 mutex m 만 인자로 넘길시 , 바로 생성자에서 lock 을 걸어버린다고 찾아보았습니다. 헌데, 여기서는 재귀 lock 이 일어난것 처럼 보여서, 제가 잘 이해하지 못한 부분이 있는지 여쭤봅니다.
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
괄호 그리고 큰따옴표 자동입력 해제하는 방법이 있나요?
print 입력후 ( 를 입력하면 자동으로 ) 도 같이 입력되고, 큰따옴표 하나를 입력하면 자동으로 두개가 입력되는데 자동해제 하는 방법이 따로 있을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
어떻게 해야 할까요
이건 코드에 오류가 있는건 아닌것 같은데 어떻게 해야 하나요 오류 MSB3021 "C:\Users\파일이름\파일이름\파일이름\파일이름\TEXTRPG2\obj\Debug\net5.0\apphost.exe" 파일을 "bin\Debug\net5.0\TEXTRPG2.exe"(으)로 복사할 수 없습니다. 'bin\Debug\net5.0\TEXTRPG2.exe' 파일은 다른 프로세스에서 사용 중이므로 프로세스에서 액세스할 수 없습니다. TAEBAL_TEXT_RPG2 C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\MSBuild\Current\Bin\Microsoft.Common.CurrentVersion.targets 4968
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
영속성 전이 질문
다음은 강의와 실습을 통해 얻은 지식입니다. - 부모위주로 개발을 진행하고 싶을 때 영속성전이 사용 - @ManyToOne 또는 @OneToMany 의 속성에 Cascade 속성을 넣는다고 해서 DB 테이블생성쿼리에 별도의 설정이 추가되는 것은 아님 - 즉, 어플리케이션측 설정이라 설정 덕분에 연관된 자식 엔티티에 대한 저장, 삭제쿼리가 추가적으로 질의됨(부모엔티티에 대한 쿼리와 함께). 질문1. FK 생성시 on update/delete 옵션이 있습니다.(https://h5bak.tistory.com/125 ) 영속성전이를 공부하면서 jpa의 cascade속성명과 유사한 TABLE FK의 on update/delete 옵션기능을 알게됐습니다. 1 2 3 4 5 6 7 8 9 10 11 12 13 CREATE TABLE `member` ( `member_id` BIGINT(20) NOT NULL, `username` VARCHAR(255) NULL DEFAULT NULL COLLATE 'utf8mb3_general_ci', `team_id` BIGINT(20) NULL DEFAULT NULL, PRIMARY KEY (`member_id`) USING BTREE, INDEX `FKcjte2jn9pvo9ud2hyfgwcja0k` (`team_id`) USING BTREE, CONSTRAINT `FKcjte2jn9pvo9ud2hyfgwcja0k` FOREIGN KEY (`team_id`) REFERENCES `AAA`.`team` (`team_id`) ON UPDATE RESTRICT ON DELETE RESTRICT ) ; Colored by Color Scripter cs ON UPDATE / ON DELETE 외래키 옵션으로는 restrict / cascade / set null / no action 이 있습니다. 위 옵션들은 외래키를 갖는 다쪽(자식쪽)에 설정할 수 있는 옵션입니다. 위 4가지 옵션을 JPA 어노테이션으로 셋팅이 가능한지 궁금합니다. 질문2. 책과 강의에서는 영속성전이에 대해서 @OneToMany위주로 설명이 진행됐습니다. 저는 책 p.173상단표에 있듯 @ManyToOne에 cascade속성을 이용해보는 방식도 궁금해졌습니다. 하지만 이내 "특정 자식객체A를 삭제했다고 부모객체를 삭제하면 같은 부모를 둔 다른 자식객체B,C,D 입장에서 말이 안되는 상황" 이라고 생각이 들었습니다. @OneToMany의 cascade속성을 실습하려면 자식, 부모의 상황을 어떻게 고려해야하는지 조언을 구하고 싶습니다.
-
미해결홍정모의 따라하며 배우는 C언어
공부를 진행하는데 딜레마에 빠집니다.
강의를 정말 열심히 보고있습니다. 다른 분들은 다들 어떻게 진행되는지는 모르겠지만... 매 연습문제마다 제대로 풀어본적이 없는 것 같습니다. 정답을 본 후 혼자 한글파일에 따로 정리해서 분석도 해보고 왜 이렇게 나왔을까에 대한 고찰도 해보고 하는데 점점 낯설게 느껴지는 것같아서 음... 박탈감? 이 조금 드는 것 같습니다. 커뮤니티 보면 다들 코드도 잘짜시고 이해도 잘하시는거 같은데 제가 어려워 하는건지... 스스로 코드를 짜봐도 안되는게 당연한건지.. 참 어렵습니다. 변수선언 부터 프로토타입 쓰는것도 낯설기만하는데 이대로 계속 진행하는게 맞을까요? 아니면.. 다시 뒤로 돌아가서 강의를 한번 더듣는게 나을까요 ㅠ.ㅠ 참 어렵습니다.
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
then(javaMailSender) 에서 import가 되지 않습니다.
11분 40초 쯤에서 then(javaMailSender).should().send(any(SimpleMailMessage.class)); 이 부분에서 then이 임포트가 되지 않습니다..org.mockito.core 를 따로 쳐서 임포트 해보려 했지만 뜨지 않습니다. 전체코드입니다. package com.wook.demo.account; import static org.junit.jupiter.api.Assertions.assertTrue; import static org.mockito.ArgumentMatchers.any; import org.mockito.configuration.*; import static org.springframework.security.test.web.servlet.request.SecurityMockMvcRequestPostProcessors.csrf; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.*; import static org.springframework.test.web.servlet.result.MockMvcResultHandlers.print; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.model; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.view; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.mockito.BDDMockito.Then; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.boot.test.mock.mockito.MockBean; import org.springframework.mail.SimpleMailMessage; import org.springframework.mail.javamail.JavaMailSender; import org.springframework.test.web.servlet.MockMvc; @SpringBootTest @AutoConfigureMockMvc public class AccountControllerTest { @Autowired private MockMvc mockMvc; @Autowired private AccountRepository accountRepository; @MockBean private JavaMailSender javaMailSender; @DisplayName("회원 가입 화면 보이는지 테스트") @Test void signpForm() throws Exception { mockMvc.perform(get("/sign-up")) .andDo(print()) .andExpect(status().isOk()) .andExpect(view().name("account/sign-up")) .andExpect(model().attributeExists("signUpForm")); } @DisplayName("회원 가입 처리 - 입력값 오류") @Test void signUpSubmit_with_wrong_input() throws Exception { mockMvc.perform(post("/sign-up") .param("nickname", "shinwook") .param("email", "email...") .param("password", "12345") .with(csrf())) .andExpect(status().isOk()) .andExpect(view().name("account/sign-up")); } @DisplayName("회원 가입 처리 - 입력값 정상") @Test void signUpSubmit_with_correct_input() throws Exception { mockMvc.perform(post("/sign-up") .param("nickname", "shinwook") .param("email", "email@naver.com") .param("password", "12345678") .with(csrf())) .andExpect(status().is3xxRedirection()) .andExpect(view().name("redirect:/")); assertTrue(accountRepository.existsByEmail("email@naver.com")); then(javaMailSender).should().send(any(SimpleMailMessage.class)); } }
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테이블 생성은 되는데 insert 쿼리가 실행이 되지 않습니다.
package jpabook.jpashop;import org.junit.jupiter.api.Assertions;import org.springframework.beans.factory.annotation.Autowired;import org.springframework.boot.test.autoconfigure.web.servlet.AutoConfigureMockMvc;import org.springframework.boot.test.context.SpringBootTest;import org.junit.jupiter.api.Test;import org.springframework.test.annotation.Rollback;import org.springframework.transaction.annotation.Transactional;import static org.junit.jupiter.api.Assertions.*;import static org.hamcrest.MatcherAssert.assertThat;import static org.hamcrest.Matchers.equalTo;// 내장 서버를 실행하지 않고 테스트 수행@SpringBootTest@AutoConfigureMockMvcpublic class MemberRepositoryTest { @Autowired MemberRepository memberRepository; //의존성 주입 @Test //테스트 실행 함수 @Transactional // 트랜잭션 추가 @Rollback(value = false) public void MemberRepositoryTest() throws Exception { //given Member member = new Member(); member.setUsername("memberA"); //when Long saveId = memberRepository.save(member); Member findMember = memberRepository.find(saveId); //then assertThat(findMember.getId(), equalTo(member.getId())); assertThat(findMember.getUsername(), equalTo(member.getUsername())); }}
-
미해결스프링 핵심 원리 - 기본편
스프링 컨테이너 생성 관련 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. ApplicaitonContext는 인터페이스이고 AnnotationConfigApplicaitionContext는 클래스 즉 구현체인데 이렇게 되면 DIP 위반이라고 전 강의에서 공부를 했습니다. 강의상에서는 위 사진과 같이 작성하셨습니다. 질문 1. 첫번째 사진은 DIP 위반이 맞는지 궁금합니다. 질문 2. DIP 위반이 맞다면 pdf파일에는 왜 저렇게 작성하셨는지 궁금합니다. 감사합니다 !
-
미해결구글 애널리틱스4 (GA4) 미니 코스
GA4로 설정된 보고서에서 일부 데이터를 제대로 확인할 수가 없는데 왜 그런지 문의를 드려봅니다.
트래픽과 관련된 부분의 데이터를 확인하는데 페이지가 나눠져서 보이는데 아니라 하나로 묶여 보이기 시작했는데 혹 이유가 뭔지 알 수 있을까요? 그러면서 보고서 화면에서 그 전에는 없던 안내 문구가 뜨는데, 정확히 의미하는 바를 파악하기가 힘드네요..ㅜㅜ 기준점 적용됨 이 보고서는 기준점이 적용되어 있으며 데이터가 최소 집계 기준점을 충족할 때만 애널리틱스의 데이터(보고서, API, 데이터 내보내기)를 반환합니다.