DX 3D를 배우면서 원초적으로 궁금한점이 생겼는데 저희는 지금 Vertex를 표현할때 x, y, z좌표를 사용해 도형을 표현해주는데 x, y 좌표는 모니터의 x, y 픽셀과 대응되기 때문에 자연스럽게 렌더링 시킬수 있다고하지만 z좌표는 도대체 어떻게 렌더링이 되는 건가요? 이건 DX 파이프라인에서 알아서 설정해주는 건가요? 입력되는 데이터에 z좌표 하나를 추가로 넣어주는것 외에는 아무것도 하지 않았는데 어떻게 도형이 3D처럼 렝더링시킬 수 있는건가요?
안녕하세요 네이버 자동로그인을 실행하면 로그인 창이 떠요. from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By # 크롬 드라이버 자동 업데이트 from webdriver_manager.chrome import ChromeDriverManager # 브라우저 꺼짐 방지 chrome_options = Options() chrome_options.add_experimental_option('detach',True) # 불필요한 에러 메시지 없애기 chrome_options.add_experimental_option('excludeSwitches',['enable-logging']) service = Service(executable_path=ChromeDriverManager().install()) driver = webdriver.Chrome(service=service,options=chrome_options) # 웹페이지 해당 주소 이동 driver.implicitly_wait(5) driver.maximize_window() driver.get('https://nid.naver.com/nidlogin.login?mode=form&url=https://www.naver.com/') # 아이디 입력 창 driver.find_element(By.CSS_SELECTOR,'#id') id.click() id.send_keys('sand12') # 비밃번호 입력 창 pw = driver.find_element(By.CSS_SELECTOR,'#pw') pw.click() pw.send_keys('yiiit!@') # 로그인 버튼 login_btn = driver.find_element(By.CSS_SELECTOR,'#log\.login') login_btn.click()
안녕하세요! IntelliJ로 실행해봤을 때는 이상 없는데 채점사이트로 실행 시 컴파일 에러로 잡혀서 어느 부분이 문제인지 알려주시면 정말 감사합니다! import java.util.*; class Main{ public int[] solution(int n, int[] arr) { HashMap<Integer, Integer> rankMap = new HashMap<>(); ArrayList<Integer> sortList = new ArrayList<>(){{ for(int i = 0; i < n; i++) add(arr[i]); }}; int[] answer = new int[n]; sortList.sort(Collections.reverseOrder()); for (int i = 0; i < n; i++) { if (i == 0) rankMap.put(sortList.get(i), 1); else if (sortList.get(i-1).equals(sortList.get(i))) continue; else rankMap.put(sortList.get(i), i+1); } for (int i = 0; i < n; i++){ answer[i] = rankMap.get(arr[i]); } return answer; } public static void main(String[] args) { // 실행 시간 측정 // long beforeTime = System.currentTimeMillis(); // 측정 코드 시작 Main T = new Main(); Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int[] arr = new int[n]; for(int i = 0; i < n; i++) arr[i] = sc.nextInt(); for(int i : T.solution(n, arr)) System.out.print(i + " "); sc.close(); // 측정 코드 끝 // long afterTime = System.currentTimeMillis(); // long diffTime = afterTime-beforeTime; // System.out.println("실행시간(ms) " + diffTime); } }
위 MemberServiceTest 클래스에서 memberRepository참조변수를 beforeEach메서드에서 초기화한게 아니고 필드에서 memberRepository를 한 번 초기화 하였는데 왜 BeforeEach 실행시 이렇게 모두 다른 memberRepository 주소값이 출력되는 지 잘 모르겠습니다. 필드에서 한번만 초기화 하였고 memberRepository의 값의 변화도 없는데 모두 같은 주소값이 출력되야 하는 거 아닌가요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)네 [질문 내용] 선생님과 소스는 조금씩 다르지만 문제는 없다고 보는데 도대체 왜 널포인터익셉션이 발생하는지 모르겠습니다... 테스트 코드 작성 시 teamA,teamB 저장 및 콘솔로 출력확인, db 저장도 확인 [ test.java ] @SpringBootTest @Transactional @Rollback(false) public class MemberTest { @PersistenceContext EntityManager em; @Test public void testEntity(){ Team teamA = Team. builder () .name("teamA") .build(); Team teamB = Team. builder () .name("teamB") .build(); em.persist(teamA); em.persist(teamB); System. out .println("teamA = " + teamA); System. out .println("teamB = " + teamB); Member member1 = new Member("member1", 10, teamA); // 여기서 에러 발생 ========================= teamA,B 객체 모두 정상 출력 =>teamA = Team(id=1, name=teamA) =>teamB = Team(id=2, name=teamB) [ team.java ] @Entity @AllArgsConstructor @NoArgsConstructor(access = AccessLevel. PROTECTED ) @Data @Builder @ToString(of = {"id", "name"}) public class Team { @Id @GeneratedValue @Column(name = "team_id") private Long id; private String name; @OneToMany(mappedBy = "team") private List<Member> members = new ArrayList<>(); } 3.[ Member.java ] @Entity @Getter @AllArgsConstructor @NoArgsConstructor(access = AccessLevel. PROTECTED ) @Builder @ToString(of = {"id", "username", "age"}) public class Member { @Id @GeneratedValue @Column(name = "member_id") private Long id; private String username; private int age; @ManyToOne(fetch = FetchType. LAZY ) @JoinColumn(name = "team_id") private Team team; public Member(String username, int age, Team team) { this.username = username; this.age = age; if (team != null) { changeTeam(team); } } // 멤버는 팀을 변경할 수 있음 // 멤버에서 변경되면 팀에 있는 멤버리스트도 변경되어야 함 pub lic void changeTeam(Team team) { this.team = team; team.getMembers().add(this); } } 생성자에서 team !=null 이 아닐 때 changeTeam(team)을 호출해야 하는데 에러 로그 상 changeTeam 메소드 호출 시 "team.getMembers().add(this);" 에서 널포인터가 발생합니다...확인 부탁드립니다! [에러 메세지] java.lang.NullPointerException at study.datajpa.entity.Member.changeTeam (Member.java:4 0) at study.datajpa.entity.Member.<init> (Member.java:3 2) at study.datajpa.entity.MemberTest.testEntity (MemberTest.java:3 8)
안녕하세요~ 캡틴 판교님 수업을 잘 듣고 실무에서도 잘 사용 중입니다. 다만, 사용하다보다가 발생한 궁금증이 있습니다. Vuex의 장점들은 어디서나 쉽게 찾아볼 수 있는데, 단점이라 하면 무엇들이 있을까요? 저희가 props와 event로 component간 데이터를 주고 받는데, component의 depth가 깊어지면 단순 데이터를 내리고 올림에 있어서 복잡도도 증가하고 번거로움도 생기잖아요? 그래서 eventbus가 있는데, 이 녀석은 naming rule을 아무리 잘 정해도 많이 사용하다보면 서로 호출하는 곳들이 얽히고 나중엔 어디서 사용하는지 모르는 경우가 태반이라 사실상 저희는 암묵적으로 금지하고 있는 상황입니다. (사실 얘도 언제 사용해야 가장 powerful하게 사용할 수 있는지 궁금하네요.) 그래서 vuex를 많이 사용하는데, vuex 사용에 있어서도 내부적으로 갑론을박이 있습니다. vuex도 eventbus 처럼 아무데서나 import만 하면 접근할 수 있어서 중구난방으로 접근이 되어서 결국 관리가 복잡해진다. (실제도 redux도 처음에 적용했다가 다 걷어내는 프로젝트들이 주변에 점점 생겨나고 있어서요.) 그런데, 검색해보면 vuex는 단점이라고 설명이 되어 있는 것을 찾기가 힘듭니다. 또한, 어느정도 선에서 vuex를 적용해야하는지가 애매한데, 기준을 어떤식으로 잡아야 할까요? vuex를 사용하면 .vue 파일 내부 코드나 로직들을 store쪽으로 뺄 수 있어서 많이 간략해지고 깔끔해지는 것으로 한눈에 component 구조들을 파악하기가 쉽긴 한데요. 그렇다면 모든 computed나 data에서 관리하는 것들을 다 vuex로 항상 빼는 것이 정답일지 알아서 적당히 구분해서 할지... 정말 필요한것만 vuex로 빼야할지 그런것들이 참 어려운 것 같습니다. 마치 component를 어느정도 수준으로 세분화해서 설계할지와 같은 고민 같습니다. 제가 front 개발에 대한 지식의 깊이가 미진해서 그런지 관련해서 이야기를 한번 듣고 싶은데, 제 주변에서는 마땅하지가 않아서 질문을 남깁니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) : 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) : 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) : 예 [질문 내용] 여기에 질문 내용을 남겨주세요. Sptring boot가 controller 패키지를 인식안하고 converter패키지를 controller로 인식하고있습니다. 그래서 HelloController 클래스를 converter 패키지에 구현하고 진행중 입니다..
안녕하세요. for 문 구구단 내용중에서 print('{:4d}'.format(i *j) '{:4d}' 가 4자리 정수를 출력 한다라고 하셨는데 4자리 정수를 출력 해야 하는 이유가 있을까요? 해당 {:4d} 를 삭제 하고 출력 해보니 2 4 6 81012141618 3 6 9121518212427 4 812162024283236 51015202530354045 61218243036424854 71421283542495663 81624324048566472 91827364554637281 위 처럼 출력이 되는 것 같네요 이건 뭔가 라인 정렬을 위해 사용 하는 것일까요? 그리고 {:4} 로 바꿔서 해봐도 {:4d} 와 결과가 동일한 것 같은데 차이점이 있을까요?
아래와 같은 양식으로 질문을 남겨주세요 🙂 수업을 들으시면 이해하기 어려운 부분이 있으면 상세히 질문을 남겨주세요. 서로 Tone and Manner 를 지키며, 즐거운 수업 시간을 만들어보아요. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 이번 강의를 들으며 리눅스 환경에 익숙하지 않아 리눅스 환경에 좀 익숙해지려 하는데요 혹시 강사님께서는 어느정도의 리눅스 지식이 필요한지 이에 적응하기 위해 추천하시는 레퍼런스(책, 인강)는 어떤것이 있는지 궁금합니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] fail(); 여기서 오류가 나는데 이유를 모르겠어요 package hello.hellospring.service; import hello.hellospring.domain.Member; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.*; class MemberServiceTest { //테스트는 한글메서드로 바꿔도 좋다. MemberService service = new MemberService(); @Test void 회원가입() { //given Member member = new Member(); member.setName("hello"); //when Long saveId = service.join(member); //then Member findeMember = service.findOne(saveId).get(); Assertions.assertThat(member.getName()).isEqualTo(findeMember.getName()); } @Test void 중복회원예외() { //given Member member1= new Member(); member1.setName("spring"); Member member2= new Member(); member2.setName("spring"); //when service.join(member1); try{ service.join(member2); //validate에서 걸려서 예외가 터져야 한다. fail(); 여기가 오류가 나요 }catch (IllegalStateException e){ //성공 assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다."); } //then } @Test void 회원조회() { } }
*. 질문 : 큰 이미지 주소추출에서 문제가 발생하는 듯 합니다. 해결점을 못 찾겠습니다. "고양이" from selenium import webdriver from selenium.webdriver.chrome.service import Service from selenium.webdriver.chrome.options import Options from selenium.webdriver.common.by import By from selenium.webdriver.common.keys import Keys import os import urllib.request import pyautogui # keyword = pyautogui.prompt("검색어를 입력하세요") if not os.path.exists("고양이"): os.mkdir("고양이") # 크롬 드라이버 자동 업데이트 from webdriver_manager.chrome import ChromeDriverManager import time import pyautogui import pyperclip # 브라우저 꺼짐 방지 chrome_options = Options() chrome_options.add_experimental_option("detach", True) # 불필요한 에러 메시지 없애기 chrome_options.add_experimental_option("excludeSwitches", ["enable-logging"]) service = Service(executable_path=ChromeDriverManager().install()) browser = webdriver.Chrome(service=service, options=chrome_options) # 웹페이지 해당 주소 이동 browser.implicitly_wait(10) # 웹페이지 로딩 될때가지 5초는 기다림 browser.maximize_window() #browser = webdriver.Chrome() browser.get("https://www.google.co.kr/search?q=%EA%B3%A0%EC%96%91%EC%9D%B4&tbm=isch&ved=2ahUKEwioo8HqscOBAxUM_WEKHdO9CDwQ2-cCegQIABAA&oq=%EA%B3%A0%EC%96%91%EC%9D%B4&gs_lcp=CgNpbWcQAzIECCMQJzIICAAQgAQQsQMyCAgAEIAEELEDMggIABCABBCxAzIICAAQgAQQsQMyCAgAEIAEELEDMggIABCABBCxAzIFCAAQgAQyCAgAEIAEELEDMgUIABCABDoLCAAQgAQQsQMQgwFQ9hJYiRlg7hpoAXAAeACAAY8BiAGMB5IBAzEuN5gBAKABAaoBC2d3cy13aXotaW1nwAEB&sclient=img&ei=eT4QZeiCOoz6hwPT-6LgAw&bih=933&biw=1680") before_h = browser.execute_script("return window.scrollY") # 무한 스크롤 while True: browser.find_element(By.CSS_SELECTOR, "body").send_keys(Keys.END) time.sleep(1) after_h = browser.execute_script("return window.scrollY") if after_h == before_h: break before_h = after_h # 썸네일 이미지 태크 추출 imgs = browser.find_elements(By.CSS_SELECTOR,".rg_i.Q4LuWd") for i, img in enumerate(imgs,1): # 각 이미지를 클릭해서 큰 사이즈를 찾음 img.click() time.sleep(2) # 큰 이미지 추출 target = browser.find_element("img.r48jcc.pT0Scc.iPVvYb") img_src = target.get_attribute("src") # 이미지 다운로드 # 크롤링 하다보면 http error 403: forbidden 에러가 납니다. opener = urllib.request.build_opener() opener.addheaders = [("User-Agent","Mozila/5.0")] urllib.request.install_opener(opener) urllib.request.urlretrieve(img_src,f"고양이{i}.jpg") # 이미지 저장
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
Restaurant 와 RestaurantDetail 가 서로 연결될 수 있게 설계를 했기 때문에, detail 캐싱이 가능한걸까요? 현업에서 강의와 다르게 설계가 되어 있다면 별도의 상태를 하나 더 만들어야 할까요? ==== 억지 가정 ==== 현업에서 Restaurant 의 이미지는 thumbUrl 로, RestaurantDetail 의 이미지는 detailThumbUrl 로 설계가 되어 있다는 가정
수업자료 다운받아서 import해서 넣는데 "File doesn’t exist or you don’t have permission to view it" 라는 알람이 뜨면서 피그마 파일이 열리지않습니다. 수업자료 피그마 파일 링크 url 새롭게 전달해주시면 복사해서 가져가도 될까요..?