묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
섹션4 - 모의고사1 - 3번 문제
안녕하세요 수강생입니다.강의듣다가 질문이 있어 이렇게 글남깁니다. 섹션4 - 모의고사1 - 3번 문제의 replace를 활용하거나 map을 활용하는 부분입니다. 저는 .replace.replace.replace를 반복하지 않고 아래와 같이 곧바로 딕셔너리 형태로 코드를 치니 마치 map에 딕셔너리를 리스트로 담은 것처럼 동작을 하던데 올바른 방법인지 모르겠습니다.막상 답이 133으로 동일하게 나오다보니 replace나 map의 차이점 또는 딕셔너리의 올바른 활용(?) 부분이 궁금해지네요. import pandas as pd df = pd.read_csv('members.csv') df = df.dropna(subset=['views']) # print(df.isnull().sum()) df['f3'] = df['f3'].fillna(0) df['f3'] = df['f3'].replace({'silver':1, 'gold':2, 'vip':3}) # print(df.head()) print(int(df['f3'].sum()))
-
해결됨넓고 얕게 외워서 컴공 전공자 되기
동시성 부분 추가 공부하면서 헷갈리는 부분 질문 드립니다.
안녕하세요 선생님!동시성과 병렬성 관련해 기초가 약해 해당 강의를들으면서 OS 부족한 부분을 많이 알게되어 도움이 많이되고 있습니다. 다름이 아니라 해당 강좌 범위는 벗어나지만..구글링해도 명확하게 해결되지 않아 질문 드립니다. 동시성을 구현하는 방법으로멀티쓰레드나 코루틴 방법으로 구현을 할 수있고멀티쓰레드 방법에서 쓰레드 전환 간 context switch가 많기 때문에 오버헤드도 많아 Coroutine 방법을 많이 쓰고 또한 유저가 이벤트루프(스케쥴링)을 app에서 관리한다는 측면에서 디버그가 유용하다 정도로 이해하고 있습니다. 많은 블로그에서멀티쓰레드보다 코루틴을 소개하면서 동시성 구현시 코루틴을 더 상위(혹은 좋은) 방법으로 서술이 많이 되어 있더라구요.I/O작업이 빈번할 경우 코루틴이 더 유리하다는 이해가 됩니다. 싱글스레드 + async싱글스레드멀티스레드 + async멀티스레드2개의 구현방법이 레이어가 다르다(thread와 task)보니 4가지 경우의 수를 적용할 수 있는데 실제 동시성을 적용해야되는 상황이면 어떻게 판단하고 최적의 구현방법(4가지 중 선택)을 적용할 수 있을까요?(파이썬 스택을 쓰고 있으며 GIL도 이해하고 있는 상태입니다.) 다시한번 해당 강의와 조금 벗어난 질문드려 죄송합니다. ( _ _ )
-
미해결앨런 iOS 앱 개발 (15개의 앱을 만들면서 근본원리부터 배우는 UIKit) - MVVM까지
Model에서의 UIKit import
안녕하세요. 강의 정말 잘 듣고 있습니다.코드 import와 관련하여 궁금한 점이 생겨서 질문을 남깁니다.MVC 패턴과 관련하여 공부하다보니 Model에서는 UIKit을 import 하지 않도록 구현을 해야한다고 들었습니다. 혹시 현재 BMI 리팩토링한 코드와 같이 UIKit을 Model에서 import 하는건 문제가 없는지 알고 싶습니다. 감사합니다.
-
해결됨[2024] 한입 크기로 잘라 먹는 리액트(React.js) : 기초부터 실전까지
코드 질문있습니다.
<DiaryItem key={it.id} {...it} />스프레드 연산자는 이해가 가는데 key={it.id} 옆에 바로 붙혀서 state객체를 넣을수 있는건가요 ?? 이건 어떤 문법일까요 <DiaryItem key={it.id} {...it} /><DiaryItem key={it.id} diary={it} />...을 써서 넣는거랑 안쓰고 앞에 diary = {it}으로 명시하고 넣는거랑 어떤차이가 있을까요 ? 전 이렇게 바꿨는데 ..이해가 안되서import DiaryItem from "./DiaryItem"; const DiaryList = ({diaryList})=> { console.log(diaryList); return ( <div className="DiaryList"> <h2>일기리스트</h2> <h4>{diaryList.length}개의 일기가 있습니다</h4> <div> {diaryList.map((it) => ( <DiaryItem key={it.id} diary={it} /> ))} </div> </div> ); }; DiaryList.defaultProps = { diaryList : [], } export default DiaryList;
-
해결됨문법 공부 다음엔, 자바스크립트 프로젝트 101
해결되지않는 부분이 있어서 질문드려요
삭제버튼도 아이콘폰트로 바꾸고 이것저것 추가해서 해봤습니다.근데 모든 작동이 다 잘되는데, 만약 5개의 목록이 있고 처음에 각 항목의 삭제버튼을 클릭할시에는 다 잘 되는데요,근데 1,2개 삭제해보고 나서 새로고침을 누른 후에는 각 항목의 삭제버튼을 클릭하면 화면상에는 제대로 되는데 로컬스토리지는 무조건 다 삭제가 됩니다. delItem 부분에서는 잘못이 있는걸까요?const form =document.querySelector('form'); const input =document.querySelector('input'); const ul = document.querySelector('ul'); const todoCount = document.querySelector('.todo-count'); const clearAll = document.querySelector('.clear-all'); let todos = []; const save = () => { localStorage.setItem('todos', JSON.stringify(todos)); }; const updateTodoCount = () => { todoCount.textContent = todos.length; }; const delItem = (event) => { const target = event.target.parentElement; todos = todos.filter((todo) => todo.id !== parseInt(target.id)); save(); target.remove(); updateTodoCount(); }; const addItem = (todo) => { if(todo.text !== ''){ const li = document.createElement('li'); const span =document.createElement('span'); const icon = document.createElement('i'); icon.classList.add('fa-solid','fa-trash-can'); span.innerText = todo.text; icon.addEventListener('click',delItem); ul.appendChild(li); li.appendChild(span); li.appendChild(icon); li.id = todo.id; updateTodoCount(); } }; const handler = (event) => { event.preventDefault(); const todo = { id: Date.now(), text: input.value, }; if((input.value) !== '') { todos.push(todo); addItem(todo) save(); input.value = ''; } }; const init = () => { const userTodos = JSON.parse(localStorage.getItem('todos')); if(userTodos){ userTodos.forEach((todo) => { addItem(todo); }); //todos = userTodos; todoCount.textContent = 0; } }; clearAll.addEventListener('click', () => { ul.innerHTML = ''; todoCount.textContent = 0; todos = []; localStorage.removeItem('todos'); }); init(); form.addEventListener('submit',handler);
-
해결됨[코드캠프] 시작은 프리캠프
final 과제 타이머 부분 질문드립니다!
안녕하세요! 제가 파이널 과제를 진행하다가 인증번호 전송부터 인증 완료 단계의 자바스크립트 코드를 작성하면서 어려움을 겪고 있어서 문의드립니다. 해당 코드를 적용하여 html 파일을 실행시킨 결과 인증완료 버튼을 눌러도 인증번호만 초기화가 되고 타이머는 그대로 1초씩 감소하는 상태가 유지되었습니다. clearInterval(timer)를 하면 반복함수가 멈춰 document.getElementById("timer").innerText = "3:00";의 결과로 3:00이 되는 것으로 생각했는데 왜 초기화가 되지 않는지 도통 모르겠습니다. <div class="certification"> <div id="certificationNumber">000000</div> <button id="sendButton" disabled = "true" onclick="submit()">인증번호 전송</button> </div> <div class="certification"> <div id="timer">3:00</div> <button id="completeButton" disabled = "true" onclick="completeMessage()">인증 확인</button>let timer let isStarted = false const submit = () => { const token = String(Math.floor( Math.random() * 1000000)).padStart(6, "0"); document.getElementById("certificationNumber").innerText = token; document.getElementById("sendButton").setAttribute("disabled", "true") document.getElementById("completeButton").removeAttribute("disabled") if(isStarted === false) { // 타이머가 작동중이 아닐때 isStarted = true let time = 180 timer = setInterval(function(){ if(time >=0) { let min = Math.floor(time/60) let sec = String(time%60).padStart(2, "0") document.getElementById("timer").innerText = min + ":" + sec; time = time -1 } else { document.getElementById('completeButton').disabled = true; isStarted = false document.getElementById("certificationNumber").innerText = "000000"; document.getElementById("timer").innerText = "3:00"; clearInterval(timer) } },1000) } else { } } const completeMessage = (timer) => { clearInterval(timer) alert("인증이 완료되었습니다.") document.getElementById('completeButton').disabled = true; isStarted = false document.getElementById("completeButton").innerText = "인증 완료" document.getElementById("signup").disabled = false; }
-
미해결실리콘밸리 엔지니어와 함께하는 Apache Airflow
my_first_dag.py 파일 질문 입니다
Standalone 환경을 처음 세팅하게 되면 dags 디렉토리가 별도로 없는데 사용자가 직접 만들어주면 되는지 질문드립니다. 그리고 standalone 으로 airflow 서버를 작동시킨 이후 다시 exit 할 경우 자꾸 localhost에 서버가 남아있어 재 실행이 안되서 컴퓨터 리붓을 해야하는데 혹시 다른 방법이 있을까요?아래와 같은 방식으로 PID 서버를 kill 하지만 그래도 안될 경우가 많은 것 같습니다.(수정) 아래 방법은 작동하는 것 같네요ps -ef | grep airflowsudo kill -9 [PID port]
-
해결됨[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
class와 메모리 추가질문
강사님의 정성스러운 답변 너무너무 감사합니다그런데 답변읽고 이해가 잘 안가서 하나만 더 질문드립니다 ㅠㅠ (저) 호출되고 난 후에도 멤버함수는 Code영역에,멤버변수는 Stack영역을 차지한다고 배웠습니다=(강사님) class 내부를 보면 데이터(=멤버변수)와 로직(함수)로 이루어져 있는데,이 데이터가 생성 위치에 따라 Heap/Stack으로 올라가게 되며,로직은 무!조!건! Code 영역에 박혀 있습니다. 이게 제것을 읽어보고 강사님것을 읽어봐도 같아보이는데제가 어떤말을 틀리게 했는지 알려주실수 있나요멤버함수는 Code영역에 = 로직은 Code 영역에 박혀있다똑같은 말처럼 보여서요함수가 곧 로직이고 로직이 곧 함수 아닌가요? (이해못해서 죄송합니다 불쌍히 봐주세요 ㅠㅠㅋ;;)ps)강사님 덕분에 메모리의 이해가 실력을 좌우한다는것을 실감하는 중입니다메모리를 알게되니까 포인터와 참조가 너무 쉽게 느껴지네요지금까지 공부한것을 다 포함해도 강사님 강의 한번보는것보다 못하네요 정말 최고입니다 감사드립니다!
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
프록시 캐시 서버를 만드는 이유 질문
왜 프록시 캐시 서버를 전세계에 놓는 건가요? 예를 들어 블로그 서비스라고 하면, 그냥 원본 데이터인 블로그 글 데이터 자체를 전세계 서버에 복사해서 놓으면 되지 않나요? 왜 데이터를 캐시로 만들어서 프록시 캐시 서버를 만드는 건지 궁금합니다. 원본 데이터(블로그 글)과 캐시에는 어떤 차이가 있는 건가요?
-
해결됨스프링 부트 - 핵심 원리와 활용
docker로 prometheus, grafana 사용하는 경우 설정 가이드
prometheus.yml global: scrape_interval: 15s evaluation_interval: 15s alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 rule_files: scrape_configs: - job_name: "docker" static_configs: - targets: ["localhost:9090"] #추가 - job_name: "spring-actuator" metrics_path: '/actuator/prometheus' scrape_interval: 1s static_configs: - targets: ['host.docker.internal:8080']targets을 localhost:8080으로 하면 안됩니다. ㅠㅠ참고: https://yoo-young.tistory.com/90 targets을 localhost:8080으로 하면 아래와 같은 결과가 나옵니다. 반드시 targets: ['host.docker.internal:8080']로 설정해 주세요! docker-compose.ymlversion: '3' services: grafana: image: grafana/grafana:latest container_name: grafana restart: always ports: - "3000:3000" volumes: - grafana-data:/var/lib/grafana - ./grafana/provisioning/:/etc/grafana/provisioning/ environment: - GF_SERVER_ROOT_URL=http://localhost:3000 - GF_SECURITY_ADMIN_PASSWORD=admin depends_on: - prometheus prometheus: image: prom/prometheus:latest container_name: prometheus restart: always ports: - "9090:9090" volumes: - ./prometheus/config:/etc/prometheus/ - prometheus-data:/prometheus command: - '--config.file=/etc/prometheus/prometheus.yml' - '--storage.tsdb.path=/prometheus' volumes: grafana-data: prometheus-data: 결과http://localhost:9090/targets 감사합니다.
-
해결됨JavaScript로 배우는 fullPage + anime + SVG Animation 포트폴리오
질문드립니다.
#sec3에서 물결 움직이는거에서요,브라우저 화면을 키우면 꽉차지 않고 잘리는 부분 수정에서left:o 을 빼 한다고 하셨잖아요...근데, 좀더 큰 모니터에서 확인을 해보니 여전히 꽉차지 않고 잘려나오는데 어떻게 해야 할까요?이것저것 해봤는데, 잘 안되어서 피그마에서 좀더 크게 그려야 하는걸까요^^.sec3_svg{ fill: #667eea; stroke: none; position: absolute; /* left: 0; ->큰화면에서 꽉차게 안나옴 */ bottom: 0; width: 100%; }
-
미해결
계산기 강의 오류
Stanford iOS 한글자막 강의섹션 2 의 연산자 강의중..강의 커뮤니티와 구글링을 통해 검색해봐도 같은 오류가 나신 분들이 없더군요ㅠ이런 기본적인 코드 따라하기 오류조차 해결하지 못하는데 그만두는게 나을까요
-
미해결홍정모의 따라하며 배우는 C언어
이중 포인터와 const
안녕하세요. 이중포인터에 const를 어느 위치에 붙이냐에 따라 고정되는 값에서 차이가 생기는데, 제가 그 차이를 제대로 이해한 것이 맞는지 몰라 질문드립니다.#define _CRT_SECURE_NO_WARNINGS #include <stdio.h> int main() { int x = 20; int* p1 = &x; const int* const * pp2 = &p1; const int** const pp2 = &p1; return 0; }이런 코드가 있다고 할 때,const int* const * pp2 = &p1; 코드에서 고정된 값은 pp2가 한 번 indirection 한 주소값, 즉 p1자체의 값과 x의 값이다.const int** const pp2 = &p1; 코드에서 고정된 값은 pp2 자체의 주소값과 x의 값이다. 이렇게 이해했는데, 맞을까요??늘 친절한 답변 감사합니다.
-
미해결모의해킹 실무자가 알려주는, 파일 업로드 취약점 공격 기법과 실무 사례 분석 : PART 1
톰캣 오류입니다.
안녕하세요. 현재 파일 업로드 취약점을 공부하고 있는데톰캣에서 500에러가 발생해서 jspx, jsp 확장자는 아예 실행이 되지 않습니다. 아마 cos.jar 라이브러리를 인식을 못하는거 같은데 해결 방안이 있나요?
-
해결됨ProtoPie Master Courses (프로토파이 마스터 클래스)
녹화된걸 공유하는 방법은 없나요?
프로토파이 내에서 녹화후녹화된걸 링크로 공유할순 없나요?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
범주형 변수 클러스터링
안녕하십니까 교수님 군집화에서 질문이 있어 글을 남기게 되었습니다. 군집화는 거리를 기반하여 유사도를 측정하는 머신러닝 기법이라고 배웠습니다,그럼 카테고리컬 변수의 경우 어떤식으로 클러스터링을 할 수 있을까요?구글링을 해 보니 k-modes라는 것이 있던데.. 연속형 변수와 범주형 변수 데이터를 모두 고려한 클러스터링 방법이 있을까요? 항상 감사합니다.
-
미해결이미지 관리 풀스택(feat. Node.js, React, MongoDB, AWS)
axios 이용해서 백엔드로 이미지 전송 중 새로고침
안녕하세요 강사님.현재 axios 이용해서 백엔드로 이미지 전송하기 강의 수강 중npm i axios로 Axios 모듈 설치 후다음과 같이 코드 작성, npm run start 후 제출 버튼 누를 때 계속하여 새로고침이 됩니다.. ㅠ 원래라면 preventDefault로 새로고침이 되지 않아야 할텐데계속해서 새로고침이 되는 문제입니다. 혹시 문제가 뭘까요? ㅠ
-
미해결스프링 시큐리티
Ajax 로그인 질문 있습니다
Ajax 로그인 시도 시강사님과 다른 방식으로 응답이 오는데정상적으로 작동한 것이 맞는지 궁금합니다.
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
JPA와 OOP
JPA 공부하면서 느끼는 점이 엔티티 자체 또는 엔티티 간의 협력관계를 잘못 구성하면 쿼리도 점점 이상해져 간다고 생각합니다. 이에 OOP에 대한 이해가 정말 중요하다는 생각이 드는데, 맞나요?
-
미해결자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
[코드리뷰 요청]2중 포문 안썼는데도 시간초과 발생하는 이유가 뭘까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 이중 포문 사용하면 O(N제곱) 나올 것 같아서 조건문에서 ++해주는 방법으로 사용했는데도 시간초과가 나오는 이유가 뭘까요? import java.util.Scanner; // 이중 포문을 피해서 로직을 만들었는데도 시간초과 발생 public class Main { public int solution(int n, int m, int[] arr) { int answer = 0; int start = 0; int sum = arr[start]; for (int i = start+1; i < n; i++) { sum += arr[i]; if (sum == m) { answer++; start ++; i = start; sum = arr[start]; } if (i == n-1) { start ++; // 1 i = start; //2 sum = arr[start]; } } return answer; } public static void main(String[] args) { Main T = new Main(); Scanner kb = new Scanner(System.in); int n = kb.nextInt(); int m = kb.nextInt(); int[] arr = new int[n]; for (int i = 0; i < n; i++) { arr[i] = kb.nextInt(); } System.out.println(T.solution(n,m,arr)); } }