학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 인텔리제이에서 실행 터미널에서 실행 /hello 들어 갔을 때 터미널에서 실행할 때는 띄워주지 않는데 왜 그럴까요 그리고 libs에 hello-spring-0.0.1-SNAPSHOT-plain.jar 파일이 추가로 더 있던데 어떤 역활인지 궁금합니다
안녕하세요. 수업 중 이해를 잘 못한것 같아 질문 드립니다. const value = [[1, 2], [3, 4], [6, 7, 8]]; L.flatMap = curry(pipe( L.map, L.flatten, )); let it = L.flatMap(map(a => a * a), value) log(...it) 위 코드가 돌아가는 과정을 한눈에 이해하기 어렵네요. 제가 생각한 흐름은 아래와 같은데 봐주실수 있을까요?? L.flatMap을 만든다. L.flatMap은 인자를 받을 준비를 하는 함수로 인자를 받으면 L.map과 L.flatten을 차례로 실행시켜 준다. L.flatMap의 내부 함수 pipe를 curry로 감싸긴 했지만 실행시 인자 2개를 같이 넣어줄 것이기 때문에 의미 없다. L.flatMap을 실행시켜준다. 첫번째 인자로 map(a => a a) 두번째 인자로 value 값을 넣는다. 넣은 값은 L.map으로 간다. \ L.map과 L.flatMap의 인자로 들어온 인자(a => a a, value)는 L.map과 합성된다. 하지만 L.map 안에 log가 바로 찍히지 않는다. 왜냐면 제너레이터는 값이 필요해질 때(next()) 코드가 실행된다. 첫 번째 값이 필요 없다면 아예 실행되지 않고 map(a => a a)와 value가 들어간 상태로 대기?한다. 그 후 L.flatMap 함수를 평가해 값을 하나씩 가져오게 되면 L.flatten으로 가서 값을 만드려 하는데 iter 값이 없으므로 L.map으로 간다. L.map 으로 가서 값을 만드는데 이터러블한 데이터를 하나 가져와서 3번에서 인자로 받은 map(a => a a)을 이용해 값을 다룬 후 yield로 보내준다. 차례대로 값을 가져온다. 다시 앞으로 돌아가서 천천히 복습해보는게 좋을까요? 아니면 일단 들어보면서 이해해보는게 좋을까요? 어렵지만 강의와 강의 내용은 너무 재밌습니다. 감사합니다.
function solution(a){ let answer=0 let stack = [] let stick = [] let laser = [] // 막대 내 속한 레이저의 갯수 + 1이 최종 막대 갯수 // 막대 한 개 안에 속한 레이저가 총 몇개인지 구해서 카운트 더하기 for(let x=0; x<a.length; x++){ //막대 시작 if(a[x]==="(" && a[x+1] !==")"){ stack.push(x) } // 막대 끝 if(a[x]===")" && a[x-1] !=="("){ const pair = stack.pop() stick.push([pair,x]) } //레이저인데 막대 내부에 있는 레이저인 경우 if(a[x]=="(" && a[x+1]==")" && (a[x-1]=="(" || a[x+2]==")")){ laser.push(x) } } for (let i = 0; i < stick.length; i++) { const start = stick[i][0]; const end = stick[i][1]; let cnt = 0 for (let j = 0; j < laser.length; j++) { if (laser[j] > start && laser[j] < end) { cnt++ } } answer += cnt+1 } console.log(stick,laser) return answer } let a="()(((()())(())()))(())"; console.log(solution(a)); 이렇게 하다 보니 이중 for문을 사용해 복잡도가 n2이 되버려서 효과적이지 못한거같습니다.. 이런 접근 법은 별로일까요
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/) [질문 내용] 질문 1. 벌크 연산시 em.clear 을 해주는데 이때 원치 않는 영속성 컨텍스트의 값을 clear 하는 경우는 없나요 ? 그리고 벌크 연산시 flush,clear을 해주는 이유가 영속성 컨텍스트와 디비 정보를 일치하게 만들어 줄려고 하는건데 만약에 벌크연산 트랜잭션 안에 따로 벌크연산말고 다른 코드가 없으면 em.flush, em.clear 코드기 필요 없는데 습관처럼 안전하게 넣는다고 생각하면 되는건가요? ============================== 질문 2. querydsl 은 업데이트할떄 때로 findbyid 를 할 필요가 없는건가요 >?
HashSet은 순서를 보장하지않고 LinkedHashSet은 node로 순서를 보장하는걸로 알고 있습니다. 코틀린에서 타고 들어가면 @SinceKotlin("1.1") public actual typealias LinkedHashSet<E> = java.util.LinkedHashSet<E> 이렇게 나와서 그대로 사용하는 거 같더라구요 그래서 setOf 나 mutableSetOf는 순서를 보장하는 Set이라고 생각해도 될까요?
안녕하세요. 연습 문제 공유합니다. 생각보다 시간이 많이 걸렸어요 ㅎㅎ 고민할수록 어렵네요..! #1 기능이 잘 동작하고 있는지 확인하려면? . 해당 버튼들이 사용자들의 관심을 잘 끌고 있는지 체크: 버튼 클릭 횟수/홈화면 진입 횟수 #2 검색 만족도 지표 . 검색했을 때 검색 결과가 없던 횟수를 체크 (불만족 지표로 사용) : 검색 결과 없음 화면 표시 횟수 / 검색 횟수 . 검색 결과 화면에서 앱을 이탈한 횟수를 체크 (불만족 지표로 사용) : 검색 후 세션이 끝난 횟수 / 검색 횟수 . 검색 결과 화면에 있는 가게 정보를 확인하고 주문한 횟수를 체크 (만족 지표로 사용): 검색 결과의 가게 정보로 진입하며 주문한 횟수 / 검색 횟수 #3 검색 필터 기능의 활성화 지표 . 검색 필터를 사용한 후 원하는 정보를 얻어 주문했는지를 확인: 검색 필터 사용 후 주문한 횟수 / 검색 필터 사용 횟수 #4 배달 서비스에서 가장 중요한 지표는? . 가장 중요한 지표? 주문 전환율 . 왜? 사용자들이 배달 서비스를 사용하는 이유는 ‘주문’을 하기 위함이고, 이 메인 서비스를 많이 이용해야 서비스가 성장할 수 있으므로. 가게들로 부터 얻는 광고 수수료등이 있다고 해도 기본적으로 사용자의 주문이 많아야 가게를 모집하기 용이하기 때문에 가장 중요한 지표는 ‘주문 전환율’이라고 생각! . 어떻게 늘리지? 주문하기까지의 퍼널 중 사용자들이 많이 이탈하는 구간을 찾고 이 부분의 이탈률을 낮추는 방안을 찾는다. #5 추천 알고리즘의 성능 지표 . 추천 알고리즘에 의해 추천한 상품의 클릭율 : 추천 상품 클릭 횟수/추천 상품 표시 횟수 . 추천 상품과 일반적인 상품의 구매전환율 비교: 추천 상품 클릭 후 구매 횟수/일반 상품 클릭 후 구매 횟수 → 1과 같거나 크면 추천 알고리즘 성능이 좋다고 볼 수 있을 것 같습니다 #6 자주 사용하는 서비스의 지표 . 플로 → 리텐션: 음악 서비스는 사람들마다 사용하는 주기가 다르고 체류 시간도 다르기 때문에 ‘다시 사용한다’는 지표만으로도 서비스를 잘 사용하고 있는지 파악할 수 있다고 생각. → 그 외 1) 회원 이탈률: 음악 서비스는 한 번 이탈하면 다시 돌아오기가 어렵기 때문에. 또한 보통은 아예 음악 구독을 안 하기 보다는 경쟁사로 옮기는 경우가 많으므로 이탈률을 확인해서 경쟁사로부터 어떤 위협을 받고 있는지 확인할 수도 있기 때문에 → 그 외 2)체류 시간 : 얼마나 많이 음악을 재생했는지는 얼마나 원하는 음악이 많은지를 알려주고, 재생하지 않더라도 앱을 켜고 탐색하는 시간은 앱에 얼마나 흥미로운 콘텐츠가 많은지 간접적으로 알려주기 때문에! . 듀오링고 → 2회 이상 연속 접속하는 사용자 / 전체 사용자 : 사용자를 매일 접속하도록 하는 다양한 장치 (연속 학습 그 자체가 보상처럼 느껴짐, 며칠 이상 연속 학습 시 앱 내 보상 지급 등)가 있는 것으로 보아 사용자가 매일 사용할 수 있도록 하는 것이 1차 목표라고 생각. 그런데 정말로 매일 사용하기는 쉽지 않으므로, 2회 이상 사용하고 있다면 앞으로 계속 듀오링고를 사용할 가능성이 높다고 보고 ‘2회 이상’으로 잡음. → 그 외 1) 유료 결제 사용자 / 전체 사용자: 유료 결제를 유도하는 다양한 장치가 있는 것으로 보아 광고보다는 유료 결제 사용자의 수가 수익과 직접적으로 연결된다고 생각함 → 그 외 2) 신규 사용자 수: 한 사용자로부터 얻을 수 있는 수익이 한정되어있으므로 사용자를 절대적으로 늘리는 것이 중요하다고 생각함. #7 퍼널 개선 프로젝트 . 추가 기능 진행 전/후를 파악하는 AB Test를 진행한 후 전의 가입 전환율과 후의 가입 전환율을 비교한다.
백엔드를 만드는 부분은 backend course를 들어야 가능한가요? 중고마켓 부분 포트폴리오를 만드려고 하는데 playground 부분을 직접 설계하고 싶다는 생각이 들었습니다. 프론트 강의에 그 부분이 포함되어 있나요? 저는 간단한 중고마켓을 만들고 싶은데 백엔드 분량이 너무 많아서 프론트 강의에 백엔드 부분 있길래 백엔드 강의(백엔드 부트캠프)는 나중에 들을려고 결제를 미뤘습니다. 일단 포트폴리오 만드는데에는 프론트 강의만으로 충분한가요? 저만의 웹페이지를 만들려면 강의 api보다는 직접 api를 만들어서 하는게 좋다고 생각해서 강의를 구매했습니다.
안녕하세요~선생님, 강의를 잘 해 주셔서 현재 RStudio를 진행하고 있는데 클라우라가 작동 되지 않습니다. 강의 후반에 오면서 메모리 문제가 발생했는데 어떻게 조치해야 합니까? 이전에 질문 조회를 해서 불필요한 파일 삭제하고, hadoop fs -setrep 1 /명령도 실행해 보았습니다. 클라우데라 현상태는 아래와 같습니다,, 제 PC사양은 RAM 32GB이고 아래와 같습니다
안녕하세요, 강의 잘 듣고 있습니다. 13강까지 잘 따라왔는데, 이미지가 잘 뜨지 않는 현상이 있는데 어떤 부분 때문인지 잘 모르겠습니다. 저의 레포 링크는 여기입니다. https://github.com/changerlemond/claire-tech-blog 도움 주시면 감사하겠습니다!
선생님 안녕하세요. QuestView 부분에서 질문이 있습니다. 처음에 QuestListView에서 elementTextPrefab의 토글 이벤트로 QuestView의 ShowDetail 메서드를 등록해서 실제로 elementTextPrefab의 토글이 바뀔때마다 ShowDetail의 isOn부분을 제어하게되는데, 토글이 바뀔때 quest의 내용까지 바뀌는 것은 처음에 이벤트를 등록할 때 quest 파라미터의 정보까지 한꺼번에 등록되어서 그런것인가요?