묻고 답해요
131만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
클래스 변수와 인스턴스 변수
클래스 변수를 이용한 코드를 혼자서 작성하다가, 조금 궁금한 부분이 있어 질문드립니다. 사람이 가방에 물건을 넣는 동작을 클래스로 구현해보고자 했는데요 class Person: bag = [] def put_bag(self, stuff): self.bag.append(stuff) james = Person() james.put_bag('책') maria = Person() maria.put_bag('열쇠') print(james.bag) print(maria.bag) 다음과 같이 bag 라는 클래스 변수를 선언하고, 코드를 실행해보니 james.bag와 maria.bag를 출력한 결과가 같게 나왔습니다. 각각 다른 인스턴스를 생성하여 bag에 물건을 넣었는데도 결과가 같게 나온 이유를 생각해 보았는데요... james.put_bag('책') 이 코드를 실행하면 def put_bag(self, stuff): self.bag.append(stuff) 이 메소드에서 self에는 james가 할당되므로 결과적으로 james.bag.append('책') 이 실행될 것입니다. 그런데 코드 상에서 james 인스턴스는 bag라는 변수가 네임스페이스에 존재하지 않으므로, 그 대신 Person 클래스의 네임스페이스에서 bag 변수를 찾아 여기에 '책'을 넣었다고 생각을 하였습니다. 혹시 잘못된 부분이 있으면 설명 부탁드립니다. 감사합니다
-
미해결Vue.js + TypeScript 완벽 가이드
깃헙 권한 요청 드립니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지 안녕하세요. [Vue.js + TypeScript 완벽 가이드] 강의를 수강중입니다. 2번째 프로젝트에서 깃헙 권한이 필요하다고 해서 글을 남깁니다. [깃헙: syh8088] - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
nodebird 스스로 구현하기 동영상
9강 마지막 강좌에서 말씀하신 스스로 구현하기 유튜브 동영상(답안지) 이거 맞나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
함수 내의 멤버변수에 대해 계산할때는 굳이 getter안써도되지않나요?
저는 그냥 멤버변수 그대로 계산을해서요.. 그떄도 getter를 써줘야하는 이유가있나요?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
Top down, Bottom Up
안녕하세요 강사님 강의 정말 잘 듣고 있습니다. 해당 문제에서 궁금한 점이 있어 질문드립니다. 보석의 개수가 무제한이라는 조건에서 다음과 같이 푸셨는데 for i in range(n): for j in range(w[i],k+1): dp2[j] = max(dp2[j-w[i]] + v[i], dp2[j]) 문제의 조건에서 보석이 무제한이라는 조건이 없고 하나씩만 써야 한다면 다음과 같이 풀어야 답이 나오더라구요 for i in range(n): for j in range(k, w[i]-1, -1): dp1[j] = max(dp1[j-w[i]] + v[i], dp1[j]) 이때, j를 거꾸로 돌고 안돌고의 차이가 어떤 영향을 미치는지 궁금해서 질문드립니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Order생성자에서 OrderId반환이 아니라 Order객체를 반환하는 이유
어떤거에서는 Id를 반환하고 어떤거에선 해당 객체를 직접 반환하고.. 무슨차이인건가요? 그냥 섞어써도 되는건가요? 아무렇게나,.?
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
안녕하세요.
안녕하세요. 저는 현재 a5000 gpu(ubuntu18.04) 에서 본 강의를 듣고 있습니다. 강의를 듣는데 코렙에서 모델을 사용하는데에 한계가 있고(강의에서 주신 추가코드를 돌리기 위함도 있고) 그래서 제 피시에 환경에서 강의를 듣고 있는데요. 다음과 같은 오류로 wandb 이후 과정이 해결되지 않고 있습니다. 아래의 코드를 작성하면 위의 사진과 같은 에러를 마주하게 되는데 어떻게 해결할 수 있을까요? %cd /content/DLCV_New/yolo %cd yolov3 !python train.py --img 640 --batch 16 --epochs 3 --data coco128.yaml --weights yolov3.pt --nosave --cache
-
미해결[2024 개정판] 이것이 진짜 크롤링이다 - 기본편
스크롤링이 안됩니다 ㅠㅠ
안녕하세요! 양질의 강의 정말 감사합니다. 완강을 앞두고 빨리 실전반 강의를 듣고 싶은데 스크롤링이 안되어 진행이 안되고 있어요. 쇼핑 - 아이폰 13까진 검색 하는데 그 다음부턴 멈춰있습니다ㅠ 코드도 똑같이 작성했는데, 뭐가 문제인지 답변 주시면 감사하겠습니다 :))) from selenium import webdriver from selenium.webdriver.common.keys import Keys import time # 브라우저 생성 browser = webdriver.Chrome('C:/chromedriver.exe') # 웹사이트 열기 browser.get('https://www.naver.com') browser.implicitly_wait(10) # 로딩이 끝날 때까지 10초까지는 기다려라 # 쇼핑 메뉴 클릭 browser.find_element_by_css_selector('a.nav.shop').click() time.sleep(2) # 검색창 클릭 search = browser.find_element_by_css_selector('input.co_srh_input._input') search.click() # 검색어 입력 search.send_keys('아이폰 13') search.send_keys(Keys.ENTER) # 스크롤 전 높이 before_h = browser.execute_script("reuturn window.scrollY") # 무한 스크롤 while True: # 맨 아래로 스크롤을 내린다. browser.find_element_by_css_selector("body").send_keys(Keys.END) # 스크롤 사이 페이지 로딩시간 time.sleep(1) # 스크롤 후 높이 after_h = browser.execute_script("reuturn window.scrollY") if after_h == before_h: break before_h = after_h # 상품 정보 div items = browser.find_element_by_css_selector(".basicList_info_area__17Xyo") for item in items: name = item.find_element_by_css_selector(".basicList_title__3P9Q7").text price = item.find_element_by_css_selector(".price_num__2WUXn").text link = item.find_element_by_css_selector(".basicList_title__3P9Q7 > a").get_attribute('href') print(name, price, link)
-
해결됨스프링 핵심 원리 - 고급편
스프링 AOP에서 @Aspect 설정과 advisor 객체들의 관계가 궁금합니다.
스프링 AOP에서 @Aspect 설정과 advisor 객체들의 관계가 궁금합니다. 예를 들면 @Aspectpublic class AspectClass { @PointCut("...");private void pointCut1(){} @PointCut("...");private void pointCut2(){} @Before("pointCut1() && pointCut2()")public void doBefore(JoinPoint joinPoint){}@After("pointCut1()")public void doAfter1(JoinPoint joinPoint){}@After("pointCut1()")public void doAfter2(JoinPoint joinPoint){}} 이런 설정이 있다면 빈 후처리기 안에 있는 advisor 객체들은 총 3개가 되는 건가요? 1pointCut1() && pointCut2() 설정으로 생성된 포인트 컷 객체 1개 + doBefore() 설정으로 만들어진 advice 객체 1개= advisor 객체 1개 2pointCut1() 설정으로 만들어진 포인트 컷 객체 1개 + doAfter1() 설정으로 만들어진 advice 객체 1개 = advisor 객체 1개 3ponitCut1() 설정으로 만들어진 포인트 컷 객체 1개 + doAfter2() 설정으로 만들어진 advice 객체 1개 = advisor 객체 1개총 3 개이렇게 결국 advice 설정 함수만큼 advisor가 생성 되는 것인지 궁금합니다. <추가질문>@PointCut 설정으로 서브 포인트 컷 객체들이 만들어져서, 그것들이 조합되는 형식으로 스프링의 pointcut객체들이 만들어지나요? 위의 예로 치면 서브 포인트 컷 객체들이 2개(pointCut1(), pointCut2())이고, 서브 포인트 컷 객체들로 조합해서 만들어진 스프링 포인트 컷 객체가 2개(pointCut1() 서브 포인트 컷으로 만들어진 포인트 컷 객체, pointCut1() 서브 포인트 컷과 pointCut2() 서브 포인트 컷으로 만들어진 포인트 컷 객체)가 되는 것인가요?
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
로그가 안떠요
분명 똑같이 한 것 같은데 안뜨네요.. 뭐가 문제일까요? package com.parkjiae.val_logimport androidx.appcompat.app.AppCompatActivityimport android.os.Bundleimport android.util.Logclass MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) val test = "여기는 테스트 값입니다." Log.e("MainActivity",test) //오류 Log.w("MainActivity",test) //경고 Log.i("MainActivity",test) //정보 Log.d("MainActivity",test) //디버그 Log.v("MainActivity",test) //상세 }}
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
스프링부트 질뭄
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)네2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 네[질문 내용]해당 강의는 스프링 부트 강의던데 커리큘럼이 있는 스프링 mvc나 다른 스프링 강의들은 테그를 보니 스프링만 써 있던데 부트는 이 강의에서만 쓰고 스프링으로 하나요?
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
안전(Safe), 멱등(Idempotent) 관련하여 질문드립니다.
안녕하세요. safe와 멱등 개념을 확실히 이해하고 싶어서 질문드립니다. ---------------------------------------------------- - safe : 리소스를 변경하지 않는, 즉 읽기전용 메서드(GET, HEAD)를 말한다. - 멱등 : 특정 메서드를 여러번 호출하여도 결과가 같다. ---------------------------------------------------- - GET, HEAD : Safe하면서, 멱등하다.- POST : 리소스의 위치를 지정하지 않았을 때 리소스를 생성하는 등 데이터를 변경하고 새로 생성된 결과를 보내줄 수 있으므로 safe하지도 않고, 멱등하지도 않다.- PUT : 리소스의 위치를 클라이언트가 알고 있고, 같은 리소스를 생성하거나 수정하므로 동일한 데이터로 요청하면 결과가 같다.그러므로 safe하지 않지만, 멱등하다.- DELETE : 클라이언트가 지정한 리소스를 삭제, 즉 수정이 일어나지만 삭제라는 동일한 결과를 제공하므로 safe하지 않지만, 멱등하다.혹시 잘 못 이해한 부분이 있으면 답변 부탁드립니다.감사합니다 :)
-
미해결스프링 핵심 원리 - 기본편
policies 사용처에 대한 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 안녕하세요, 영한님. 항상 질 좋은 강의 감사합니다 :) 즐겁게 수업 듣고 있습니다.수업중 놓친 게 있는 건지 ㅠㅠ 듣다가 의문점이 생겨 글을 남깁니다! ...static class DiscountService { // Key = 빈 이름, Value = 빈 객체 private final Map<String,DiscountPolicy> policyMap; // value값들만 존재? private final List<DiscountPolicy> policies;... 위 코드 DiscountService 에서 선언한 Map과 List 변수에 대한 질문입니다.Map에서 value값들만 모아 빼둔 것이 policies라고 이해했는데요, 이 value들을 따로 List타입으로 뽑아 모아둔 이유가 무엇인지 잘 모르겠습니다. 혹시 policyMap만 정의한 후 그 value값을 가져다 쓰면 안 되는 건가요?중간에 출력문을 제외하면 로직에선 policies를 사용하지 않는 듯한데, 따로 Map의 value만 모아서 list를 뽑아 저장한 이유가 무엇인지 궁급합니다!
-
미해결실전! 스프링 데이터 JPA
JPA Dirty Checking - open session in view
안녕하세요 JPA Dirty Checking 관련 질문 드립니다. 우선 환경은 Spring Boot 입니다. public void test() { OrderInfo orderInfo = new OrderInfo(); orderInfo.setStatus("test"); oRepo.save(orderInfo); OrderInfo findOrderInfo = oRepo.findById(orderInfo.getId()).get(); findOrderInfo.setStatus("zzzzzzz"); } 위와 같은 코드가 있다고 할 때 Open session In view 설정과 @Transactional 에 따라서 dirty checking 되는 로직에 대해서 질문드립니다. 1. Open Session in View : true @Transactional : 사용 안함 Hibernate: call next value for hibernate_sequence Hibernate: insert into order_info (status, id) values (?, ?) Hibernate: select orderinfo0_.id as id1_0_0_, orderinfo0_.status as status2_0_0_ from order_info orderinfo0_ where orderinfo0_.id=? 2. Open Session in View : false @Transactional : 사용 안함 Hibernate: call next value for hibernate_sequence Hibernate: insert into order_info (status, id) values (?, ?) 3. Open Session in View : true @Transactional : 사용 Hibernate: call next value for hibernate_sequence Hibernate: insert into order_info (status, id) values (?, ?) Hibernate: update order_info set status=? where id=? 4. Open Session in View : false @Transactional : 사용 Hibernate: call next value for hibernate_sequence Hibernate: insert into order_info (status, id) values (?, ?) Hibernate: update order_info set status=? where id=? 1 번의 경우 영속성 컨텍스트가 각각의 트랜잭션에서 끝나서 select 문이 나가는 것으로 보입니다. 2번의 경우 OSIV로 인해 영속성 컨텍스트가 끝까지 남아서 select문이 안나가는 것으로 보입니다. 3번의 경우도 OSIV와 Transaction으로 인해 영속성 컨텍스트안에 있는 객체를 가져오기에 select 문이 안나가는 것으로 보입니다. 그 후 dirty checking 으로 인해 update 문이 발생합니다. 4번의 경우 트랜잭션 범위내에 있는 영속성 컨텍스트에서 찾아오기에 select문이 안나가는 것으로 보입니다. 그 후 dirty checking 으로 인해 update 문이 발생합니다. dirty checking 의 경우 영속성 컨텍스트가 관리하고 있는 엔티티에 대해서 스냅샷을 저장 후 변경이 되면 나가는 것으로 알고 있습니다. 그럼 이 때 2번의 경우 영속성 컨텍스트가 남아서 select문이 안나간다고 생각을 하는데 왜 dirty checking 이 안되는 이유가 있을까요??
-
미해결[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
gridview 사용할 때 사이 간격들을 조정하는 방법이 있을까요?
제가 만드는 도중 gridlayoutmanager를 이용해서 spancount를 2를 주고 만드니 아이템과 아이템 사이의 간격 조절이 안되어서 질문 드립니다. margin으로 조절이 잘 안되어 혹시 이런 경우 간격 조절하는 방법이 따로 있을까요? 감사합니다.
-
미해결[2024년 출제기준] 웹디자인기능사 실기시험 완벽 가이드(HTML+CSS+JQUERY)
2022년 출제기준 웹디자인 기능사 실기시험 공개문제 완성본 파일
선생님! 완성본 파일이 A1, B4, C2뿐인데 나머지는 어디서 확인할수있을까요???
-
미해결딥러닝 CNN 완벽 가이드 - Fundamental 편
Tensorflow 2.x로 만든 모델의 중간 출력값들을 Numpy array로 변환하는 방법
안녕하세요! 공부를 하다가 중간에 궁금한 점이 생겨 질문드립니다! Tensorflow 2.x 버전으로 만든 모델을 학습(fit) 시킨 후에 중간 레이어들의 출력값들을 관찰하고 싶은데요! 그래서 tf.Tensor 에서 Numpy array 로 변환시켜서 보려고 했는데, 어려움이 생겨 질문드립니다. 우선 아래 코드를 보시면 하나는 그냥 tf.Constants 로 정의한 텐서이고 나머지 하나는 모델의 중간 레이어 출력값의 텐서입니다. 그런데 두 개 중 tf.Constants 로 정의한 텐서는 numpy() 메소드를 활용해서 넘파이 배열로 변환이 가능한데, 모델의 중간 출력값 텐서는 numpy() 메소드가 존재하지 않더라구요.. 그래서 두 개의 타입을 비교해보니 아래 처럼 서로 다른 클래스 이더라구요.. 아래 그림을 보시면 아시겠지만 tf.Constants로 정의한 텐서는 tensorflow.python.framework.ops.EagerTensor 라는 클래스인 반면, 모델 중간 레이어의 출력값 텐서 클래스는 tensorflow.python.framework.ops.Tensor 입니다. 구글링을 해보니 비슷한 문제를 겪은 질문들이 있었지만 명쾌한 해결책을 찾을 수는 없었습니다.. 혹시 tensorflow.python.framework.ops.Tensor 클래스를 갖는 텐서를 넘파이로 변환하는 방법을 아시는지 문의드립니다!
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
modles/product.js에서 대문자 잘못 입력했을 경우
price를 Price key로 프로젝트 생성된 상태에서 뒤늦게 오타 확인하고 바꿨으나 포스트맨이나 sqlite에서는 Price로 표시되어 데이터를 불러오지 못하고 있습니다. (Price는 잘 불러옴) 이런 경우 어떻게 해결해야 될까요?
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
방문체크 하지 않아도 되나요?
부분집합을 하는 문제라고 판단하여, 부분집합구하기 문제처럼 ch(체크) 리스트 만들어서 풀었는데 답이 안나오네요.. 무엇이 문제일까요? 강의를 보니 체크 리스트 사용하지 않으셨던데... 사용해야하는 것 아닌가요? 추가적인 질문으로, 부분집합과 조합 방식의 차이가 무엇인지 아직까지 잘 이해가 되지 않는데.. 부분집합은 가지치기가 본인 포함 전부 다 되고, 조합은 가지치기가 본인을 제외한 하위 부분만 되는게 맞나요? 부분집합을 조합처럼 구할 수 있고, 조합을 부분집합처럼 구할 수 있나요? def DFS(L, time, sum): global res if time > m: return if L == n: if sum > res: res = sum else: for i in range(n): if visited[i] == 0: visited[i] = 1 DFS(i, time+graph[i][1], sum+graph[i][0]) visited[i] = 0 DFS(i, time, sum) if __name__ == '__main__': n, m = map(int, input().split()) graph = [] for _ in range(n): a, b = map(int, input().split()) graph.append([a, b]) visited = [0]*n res = 0 # 최대 점수 DFS(0, 0, 0) print(res)
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
Config 파라미터 설정 질문있습니다.
항상 좋은 강의 감사드립니다. 해당 강의에서 진행한 Config 파라미터 설정에 관해서 궁금한 점이 있어서 질문드립니다. Train_CFG Class 내의 hparams에 들어있는 'num_classes=20,moving_average_decay=0,mixed_precision=true' 해당 파라미터들을 hparams에 넣어주지 않고, 아래 예시와 같이 개별 파라미터로 설정한 뒤 params=dict에 넣어주고 override 시켜줘도 되는 것인가요?? ex. class TRAIN_CFG: num_classes = 20 moving_average_decay = 0 mixed_precision = true params = dict( num_classes=TRAIN_CFG.num_classes, moving_average_decay = TRAIN_CFG.moving_average_decay, mixed_precision=TRAIN_CFG.mixed_precision, ...) config.override(params, True) 만약 해당 방법도 가능하다면, hparams에 따로 개별 파라미터들을 넣어주어 Config를 설정해주는 이유가 무엇인지도 궁금합니다.