묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바스크립트 중고급: 엔진 핵심
Function오브젝트 관련 질문입니다!
인스턴스가 new 키워드 + 생성자 '함수'의 조합으로 생성된다는 것은 알고 있었지만, '함수'역시 또다른 생성자 '함수'의 인스턴스라는 것은 전혀 몰랐습니다. 그래서 그런지 개념이 잘 정립이 안 되는 것 같아서 여쭤봅니다. 1.function키워드 === 생성자 함수 ??? function 오브젝트가 인스턴스라면 function키워드는 일종의 생성자 함수라는 것이 되는데요. 일반 생성자 함수와는 달리 new 키워드를 사용하지 않는 것도 그렇고, function키워드와 일반적인 생성자 함수의 정확한 차이가 무엇인지 궁금합니다. 2.인스턴스의 구조 첨부해드린 그림과 같이, 일반적인 생성자 함수는 prototype프로퍼티와 __proto__프로퍼티를 함께 가집니다. 여기서 __proto__프로퍼티를 가지는 것은, 생성자 함수 역시 function키워드로 생성된 '인스턴스'이기에 가지는 프로퍼티인 것이죠?(순환하는 것 같아서 여기서부터 머리가 아프네요 ㅠㅠ) 그리고 이렇게 일반적인 생성자 함수로 생성된 인스턴스는 스스로는 생성자 함수가 아니기 때문에 prototype프로퍼티는 가지고 있지 않고, __proto__프로퍼티만을 가지고 있습니다. 이 __proto__프로퍼티는 인스턴스를 생성한 생성자 함수의 prototype프로퍼티를 참조하고 있고요. 그런데, function키워드로 생성된 function object의 경우, 스스로가 생성자 함수가 아님에도 불구하고 prototype프로퍼티를 가지고 있습니다. =========================================== 잘 이해하지 못한 내용에 대해 여쭤보느라 정리가 잘 안되는데요. 요는 제가 알고 있는 일반적인 생성자 함수와 인스턴스의 관계와 비교하여, function키워드와 function오브젝트의 관계가 왜 차이를 보이는지에 대한 질문이었습니다
-
미해결대세는 쿠버네티스 (초급~중급편)
강의 잘보고 있습니다 ^^
안녕하세요. 태민님 강의 잘보고 있습니다. 그런데 태민님은 현재 DevOps 엔지니어로 재직중이신가요? 아니면.. Back-end 개발자 이신가요? 갑자기 궁금해서 질문남겨요 ㅎㅎ
-
미해결애플 웹사이트 인터랙션 클론!
scrollRation 수치가 다릅니다ㅣ
강사님 강의하시는 내용의 scrollRatio 수치와 다운로드 받은 예제의 main.js scrollRatio 수치가 다른데 괜챦은 건가요?
-
미해결[OpenCV] 파이썬 딥러닝 영상처리 프로젝트 - 손흥민을 찾아라!
haar방식을 이용한 face detection편 질문
코드를 따라서 작성했는데 NameError: name 'faceROI' is not defined 와같은 에러가 자꾸뜹니다.faceROI를 정의해줬는데 왜 정의가 되지않았다고 자꾸뜨는건가요? 제가쓴 코드는 아래와 같습니다. import cv2 import numpy as np def detectAndDisplay(frame): frame_gray=cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) frame_gray=cv2.equalizeHist(frame_gray) #-- Detect faces faces=face_cascade.detectMultiScale(frame_gray) for (x,y,w,h) in faces: center=(x+w//2,y+h//2) frame=cv2.rectangle(frame,(x,y),(x+w,y+h),(0,255,0),4) feceROI=frame_gray[y:y+h,x:x+w] #-- In each face, detect eyes eyes=eyes_cascade.detectMultiScale(faceROI) for (x2,y2,w2,h2) in eyes: eye_center=(x+x2+w2//2,y+y2+h2//2) radius=int(round((w2+h2)*0.25)) frame=cv2.circle(frame,eye_center,radius,(255,0,0),4) cv2.imshow("Capture-Face detection",frame) print("opencv version:") print(cv2.__version__) img=cv2.imread("marathon_01.jpg") print("width: {} pixels".format(img.shape[1])) print("height: {} pixels:".format(img.shape[0])) print("channels: {}".format(img.shape[2])) (height,width)=img.shape[:2] cv2.imshow("original image",img) face_cascade_name="haarcascade_frontalface_alt.xml" eyes_cascade_name="haarcascade_eye_tree_eyeglasses.xml" face_cascade=cv2.CascadeClassifier() eyes_cascade=cv2.CascadeClassifier() if not face_cascade.load(cv2.samples.findFile(face_cascade_name)): print("--(!)Error loading face cascade") exit(0) if not eyes_cascade.load(cv2.samples.findFile(eyes_cascade_name)): print('--(!)Error loading eyes cascade') exit(0) detectAndDisplay(img) cv2.waitKey(0) cv2.destroyAllWindows()
-
미해결자바스크립트 중고급: 엔진 핵심
var키워드 질문입니다
정말 초보적인 질문이라 죄송합니다만... var키워드를 사용하지 않고 변수를 선언할 수 있는 방법이 있나요? '함수에서 var키워드를 사용하지 않고 변수를 선언하면 전역 객체에 설정됨'이라고 설명해주셨는데, 변수를 선언하려면 var, const, let이 세 가지 키워드 중 하나는 반드시 써야 하지 않나요? const와 let이 ES6문법임을 제외하면 변수를 선언할 때는 반드시 var키워드를 쓸 수 밖에 없는 것 아닌가요?
-
미해결실전! 스프링 데이터 JPA
Unable to access lob stream 오류가 발생합니다.
다음과 같이 AccountRepository 인터페이스를 생성해 사용하는데, findByNickname 메소드에 대해 Unable to access lob stream 오류가 발생합니다. 검색해보니 맨 위 사진과 같이 Repository에 @Transactional을 추가하라는데, Clob이나 Blob이 포함된 엔티티는 해당 어노테이션을 반드시 사용해야 하는 것인가요? 혹시 맞다면 왜 그런건가요?
-
미해결React로 NodeBird SNS 만들기
해쉬태그를 클릭하여 동적 페이지로 이동하면 포스트카드가 나타나지 않습니다.
프런트에서 해쉬태그를 클릭하면 백엔드에서 해당하는 해쉬태그를 가져오는데 해쉬태그 페이지에서 아무 반응이 없습니다. 콘솔로그를 찍어보면 데이터는 있는데 화면에 아무 반응이 없는 이유를 모르겠습니다.. 깃 주소 남깁니다. 도와주세용 ㅠㅠ https://github.com/SeokSuMin/ch6
-
미해결자바스크립트 중고급: 엔진 핵심
스코프 체인 개념 질문드립니다!
아직 몇 강 듣지 않았지만, 그냥 넘어가기는 찝찝해서 질문드립니다 ㅠ 제가 알기로는 ES5에서도 '스코프 체인'개념이 있는 것으로 알고 있는데요(아마 용어상의 혼선일 것이라 생각됩니다) 일단 제가 이해하고 있는 바(ES5기준)를 말씀드리겠습니다. 1.함수의 호출로 인해 해당 함수의 실행 컨텍스트가 활성화됩니다. (===콜 스택에 해당 함수의 실행 컨텍스트가 쌓입니다) 2.엔진이 해당 함수의 스코프를 훓으면서 '렉시컬 환경'의 '환경 레코드'에 '선언된' 함수와 변수를 담습니다. '선언된'함수와 변수를 담는 것이기에 할당 작업은 이 단계에서는 배제합니다. 때문에 함수 선언문은 함수 객체 자체가 전부 담기게 되고, 함수 표현식의 경우 변수명(식별자)만 담기게 됩니다. 3.'렉시컬 환경'의 '외부 환경 참조'에 '함수가 선언될 당시'의 렉시컬 환경을 참조시킵니다. '함수가 선언될 당시'라는 건, 즉 이 함수를 선언했던 함수의 컨텍스트(만약 전역 컨텍스트에서 선언했다면 전역 컨텍스트)의 렉시컬 환경을 의미하는 것이죠? 4.이 함수를 호출한 주체를 this바인딩시킵니다(일반적으로) 만약 위의 설명에 틀린 부분이 없다고 한다면, 해당 함수의 스코프 안에서 식별자가 발견되지 않으면, '렉시컬 환경'의 '외부 환경 참조'를 타고 올라가서 식별자를 찾는 것이죠? (제가 읽은 서적에서는 이를 '스코프 체인'으로 설명했습니다) 그렇다면 ES5에서의 스코프 체인도 결국 함수 호출로 인해 이루어지므로 '동적'으로 환경을 설정하는 것이 아닌가요? 또, 컨텍스트가 한 덩어리이기 때문에 한 메모리 안에서 찾아 검색이 빠르다고 말씀해주셨는데, 이렇게 '외부 환경 참조'를 타고 올라가는 것은 메모리의 다른 공간을 검색하는 일이 아닌지 궁금합니다 ㅠㅠ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Dirty Checking을 로그인 기능에 적용하고 싶은데 잘 되지가 않습니다..
안녕하세요 JPA 기초 강의부터 QueryDSL 강의까지 모든 과정을 완강하고, 현재 개인 프로젝트로 복습하고 있는 학생입니다! 주제와 조금 엇나갈 수 있는데, 다름이 아니라 Spring Security를 활용해 로그인된 사용자의 개인정보 변경을 구현 중에 있는데, 다음과 같이 현재 로그인 중인 사용자의 정보를 @AuthenticationPrincipal를 통해 가져와 updateProfile 메소드로 정보를 수정하려 하고 있습니다. 그런데 Merge를 사용하지 않고 Dirty Checking을 사용해 Account 정보를 업데이트를 하자니 현재 Account가 영속 상태가 아니어서 상태를 업데이트해도 DB에 반영되지 않습니다. 그래서 일단 현재 Account도 update하고, AccountRepository를 통해 실제 Account도 불러와 다시 한번 update를 하는 방식으로 작성하긴 했는데 올바른 방법이 아닌 것 같습니다. 이런 상황에서 (1) 실제로 DB에서 가져온 Account를 업데이트한 뒤, 현재 로그인한 상태의 Account에 대입하는 방법은 없을까요? 아니면 (2) 현재 Account를 강제로 영속상태로 바꾼 뒤 업데이트하여 DB에 반영하는 방법이 더 나은 방식인가요?
-
미해결취미로 해킹#1(OverTheWire - Bandit)
weechat 설치가 안되는데요?
weechat 설치가 안되는데요?
-
미해결실전! Querydsl
Querydsl paging 적용시 N+1문제
안녕하세요. 강의덕분에 실무에 잘 적용하여 쓰고 있습니다. QuerydslRepositorySupport를 이용해서 paging을 하고있는데 final List<ReviewList> bbsArticles = getQuerydsl().applyPagination(pageable, query).fetch(); Query문에 fetchJoin을 적용했더니, HHH000104: firstResult/maxResults specified with collection fetch; applying in memory! 오류가 발생하여 인터넷에 검색해보니 fetch Join을 사용하고 paging을 하게되면 나오는 Warning이라고 fetch join을 빼고 사용하라고 해서 일단 적용시켰는데, N + 1문제가 발생하네요.. 이런 경우에는 실무에서 어떻게 적용시키시나요?
-
미해결파이썬 무료 강의 (활용편1) - 추억의 오락실 게임 만들기 (3시간)
맥에서 하고 있습니다.
맥에서 pygame을 설치하려면 어떻게 해야합니까?
-
미해결파이썬 무료 강의 (기본편) - 6시간 뒤면 나도 개발자
질문드려요
python = Python is amazing print(python.find("java")) 출력값은 -1 print(python.find("amazing")) 출력값은???? 해본 결과 10이나오던데 왜 그런가요??
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
회원가입이 안돼요..
회npm을 키면 이런 오류가 나오고 회원가입버튼 눌러도 반응이 없네요..
-
미해결React로 NodeBird SNS 만들기
안녕하세요
next에서 동적으로 page 처리 하는 부분이 있는데, 이걸로는 처리 못하나요?
-
미해결프로그래밍, 데이터 과학을 위한 파이썬 입문
atom실행시키면 자꾸 꺼져버려요
atom실행시키면 자꾸 꺼져요 ㅠㅠ 왜그런가요? 다시 지우고 설치해도똑같네요
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
새로 생성하는 테이블과 기존의 테이블 조인시 엔티티를 만들어야 하나요?
1.새로 런칭하는 서비스의 이벤트 테이블과 기존에 상용서비스에 이용되고 있는 카테고리테이블을 조인해야 할경우 카테고리 entity를 카테고리 스키마와 동일하게 생성을 해야 하나요? 당연한거 같긴한데 확인차 여쭤봅니다. 2.그리고 1:1관계시 강의에서 설계하신대로 메인테이블에서 키를 가지고 있는형태로 설계를 했는데, 확장성이 떨어진다는 지적을 받았습니다. 1:1 관계 테이블이 늘어날수도 있고 기존테이블이 없어지거나 합쳐질수 있다고 하는데, 어떻게하는게 좋은 설계인가요? Jpa가 처음인데 jpa설계까지 생각하니 복잡해지네요 ㅜㅜ
-
미해결화이트해커가 되기 위한 8가지 웹 해킹 기술
MYSQL Database
여기서 스타를누르고 그아듬 러닝이되야하는데 안되고 스탑으로 바꿔요..
-
해결됨[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part1: C# 기초 프로그래밍 입문
CS8321오류
다른 C언어는 공부하지 않고 선생님 강의만 듣고 시작한 C언어 4일차인 수강생입니다!! TEXT RPG강의까지 수강 후 여러가지 TEXT RPG를 만들어보다가 아래와 같은 코드를 만들어봤는데요 CS8321 로컬함수 'Main'이(가) 선언되었지만 사용하지 않았습니다. 라는 오류가 뜨면서 실행이 안됩니다 ㅠㅠ 혼자 정말 많이 고민해봤는데 답을 못찾겠어요.. 어떻게 해야할까요?? 그 외에도 잘못된 문법이나 필요없는식이 있을까요?? 여쭤볼 수 있는분이 쌤 뿐입니다!! 부탁드릴게요! using System; namespace Fishisland { class Program { enum FishType { None = 0, Smallfish = 1, Octopus = 2, Crucian = 3, Mackerel = 4, Marlin = 5, Tuna = 6, Dolphin = 7, Shark = 8, Whale = 9, } struct Fish { public int None; public int Smallfish; public int Octopus; public int Crucian; public int Mackerel; public int Marlin; public int Tuna; public int Dolphin; public int Shark; public int Whale; public static implicit operator Fish(int v) { throw new NotImplementedException(); } } static void PutinAquarium(int a, out Fish fish) { fish.None = 0; fish.Smallfish = 0; fish.Octopus = 0; fish.Crucian = 0; fish.Mackerel = 0; fish.Marlin = 0; fish.Tuna = 0; fish.Dolphin = 0; fish.Shark = 0; fish.Whale = 0; while (true) { if (a <= 30) { fish.Smallfish++; break; } else if (a <= 50) { fish.Octopus++; break; } else if (a <= 70) { fish.Crucian++; break; } else if (a <= 82) { fish.Mackerel++; break; } else if (a <= 89) { fish.Marlin++; break; } else if (a <= 94) { fish.Tuna++; break; } else if (a <= 97) { fish.Dolphin++; break; } else if (a <= 99) { fish.Shark++; break; } else if (a == 100) { fish.Whale++; break; } } Console.WriteLine("물고기를 집어넣었습니다"); Console.WriteLine("[1] 낚시를 계속하기"); Console.WriteLine("[2] 로비로 돌아가기"); string input = Console.ReadLine(); if (input == "1") { GoFishing(); } else if (input == "2") { EnterLobby(); } static void EnterLobby() { Console.WriteLine("[Fish island]"); Console.WriteLine("시작하려면 아무키나 누르세요"); Console.WriteLine("Press any key to start"); Console.ReadLine(); } static void StartMenu() { Fish fish = 0; Console.WriteLine("[1] 낚시하기"); Console.WriteLine("[2] 수족관 보기"); string input = Console.ReadLine(); while (true) { if (input == "1") { GoFishing(); break; } else if (input == "2") { EnterAquarium(fish); break; } } } static void EnterAquarium(Fish fish) { while (true) { Console.WriteLine("[수족관]"); Console.WriteLine($"[잔챙이] {fish.Smallfish}마리]"); Console.WriteLine($"[문어] {fish.Octopus}마리]"); Console.WriteLine($"[붕어] {fish.Crucian}마리]"); Console.WriteLine($"[고등어] {fish.Mackerel}마리]"); Console.WriteLine($"[청새치] {fish.Marlin}마리]"); Console.WriteLine($"[참치] {fish.Tuna}마리]"); Console.WriteLine($"[돌고래] {fish.Dolphin}마리]"); Console.WriteLine($"[상어] {fish.Shark}마리]"); Console.WriteLine($"[고래] {fish.Whale}마리]"); Console.WriteLine("[1] 낚시를 계속하기"); Console.WriteLine("[2] 로비로 돌아가기"); Console.WriteLine("[3] 수족관 보기"); string input = Console.ReadLine(); if (input == "1") { GoFishing(); break; } else if (input == "2") { EnterLobby(); break; } else if (input == "3") { EnterAquarium(fish); break; } } } static void GoFishing() { Random rand = new Random(); int RandomFish = rand.Next(1, 101); while (true) { if (RandomFish <= 30) { Console.WriteLine("[ 잔챙이를 잡았습니다 ]"); break; } else if (RandomFish <= 50) { Console.WriteLine("[ 붕어를 잡았습니다 ]"); break; } else if (RandomFish <= 70) { Console.WriteLine("[ 문어를 잡았습니다 ]"); break; } else if (RandomFish <= 82) { Console.WriteLine("[ 고등어를 잡았습니다! ]"); break; } else if (RandomFish <= 89) { Console.WriteLine("[ 청새치를 잡았습니다! ]"); break; } else if (RandomFish <= 94) { Console.WriteLine("[ 참치를 잡았습니다! ]"); break; } else if (RandomFish <= 97) { Console.WriteLine("[ [돌고래]를 잡았습니다!! ]"); break; } else if (RandomFish <= 99) { Console.WriteLine("[ [상어]를 잡았습니다!! ]"); break; } else if (RandomFish == 100) { Console.WriteLine("[ 대박!! [고래] 를 잡았습니다!!! ]"); break; } } Console.WriteLine("[1] 놓아주고 낚시 계속하기"); Console.WriteLine("[2] 수족관에 집어넣기"); Console.WriteLine("[3] 수족관 보기"); string input = Console.ReadLine(); Fish fish; fish = 0; while (true) { if (input == "1") { GoFishing(); break; } else if (input == "2") { PutinAquarium(RandomFish, out fish); break; } else if (input == "3") { EnterAquarium(fish); break; } } } static void Main(string[] args) { while (true) { EnterLobby(); StartMenu(); } } } } }
-
미해결TDD 개발 방법론을 활용한 React Native 앱 개발
테스트 케이스의 작성 범위
안녕하세요 선배님 좀 어리석은 질문일수도 있습니다만, TDD 방법론으로 코드를 작성하는 경우 모든 코드에 대해 테스트 코드가 작성되는 것이 원칙인것 같습니다. 하지만 한국에서의 전통적인 SI 프로젝트는 기간과 범위가 매우 타이트하게 정해져 있기 때문에 TDD 방법론을 원칙에 따라 적용하기에는 한계가 있는 것도 사실입니다. 만일 모든 코드에 대한 테스트 작성이 어려운 상황이라면, 어떤 종류의 코드 또는 함수를 작성할 때는 테스트 코드를 작성하는게 좋다 라고 할만한 범위에 대한 가이드라인 같은게 있는지 궁금합니다.