묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
텍스쳐 맵핑 LNK2019 에러
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요. 루키스님 강의 마지막 부분에서 클라이언트 프로젝트를 빌드할 때 위 사진과 같은 에러가 발생합니다. 라이브러리 경로 다시 확인해보고, 코드 전부 복붙해서도 실행해봤는데 해결이 어렵습니다 ㅜㅜ 두번째 사진에서 texture->Init 부분 주석처리하면 일단 빌드는 됩니다. 혹시 속성에서 놓친게 있을까봐 사진 첨부하겠습니다. 감사합니다. \
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
팔로워/팔로우 정보 불러오기에 대해 질문드립니다.
안녕하세요 제로초님, Profile 페이지에서 팔로워/팔로잉 목록을 불러오는 부분에서 질문이 있습니다. SWR을 적용하기 전, LOAD_FOLLOWERS_REQUEST / LOAD_FOLLOWINGS_REQUEST를 이용해 데이터를 가져오면서 백단의 코드에서 limit에 3을 주게 되면 프로필 페이지에 처음 접근했을 때, 아래처럼 UserProfile 부분인 팔로워/팔로우 갯수(me.Followers.length / me.Followings.length)가 3으로 뜹니다. (총 갯수는 각각 4개이구요) [더보기] 버튼을 눌러 데이터를 불러오면 그만큼 늘어납니다. 우선 프로필 페이지에 접근했을 때, 데이터를 불러오기 위한 REQUEST 요청이 갔고, 응답 받은 팔로워/팔로잉 데이터는 limit 설정으로 인해 3개뿐이기때문에 리듀서에서 SUCCESS 응답으로 3개의 데이터가 state에 저장되어 UserProfile 컴포넌트에서는 3으로 뜨는 것으로 이해했습니다. 여기서 궁금한 점은 1. SWR을 사용하지 않았을 때, 어떻게 설정해야 [더보기]버튼을 누르기 전에도 UserProfile 부분에 전체 팔로워/팔로잉 수를 가져올 수 있을까요? 2. attributes에 id와 nickname만 적었는데 follow 정보가 함께 들어오는데 이 정보는 제외하지못하는 것인지, nickname정보가 자꾸 나타났다 사라졌다 하는데 이를 해결하기 위해 확인해볼만한 부분이 있는 지 궁금합니다!
-
미해결반응형 웹사이트 포트폴리오(App Official Landing Website)
기능정의서
기능정의서는 보통 어떤툴로 만드시나요?
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
로그인 오류
안녕하세요 아래 사진을 보시는 바와 같이 로그인이 되지않으며 오류가 뜹니다.. 이유가 뭘까요? 키패어 발급 화면이 저랑 조금 다른데 RSA형식, PPK(Putty와 함께 사용)을 선택하는 것이 맞는지 궁금합니다. 2. IPv4를 탄력적ip로 설정했고 정확히 입력했습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
MemberServiceTest 회원가입 오류
안녕하세요 질문 사항이 있어 글을 남깁니다. 구글링을 통해 Member findMember = memberService.findOne(savId).get(); 부분이 오류가 있다는 것을 알았습니다. 그리고 나서 다시 로직을 보면서 다시 하여도 똑같은 오류가 발생해 글을 올립니다. MemberServiceTest package com.test.inflearn.service;import com.test.inflearn.domain.Member;import org.assertj.core.api.Assertions;import org.junit.jupiter.api.Test;import java.util.Optional; //회색import static org.junit.jupiter.api.Assertions.*; /회색class MemberServiceTest { MemberService memberService = new MemberService(); @Test void 회원가입() { //given (뭔가가 주어졌을 때) Member member = new Member(); member.setName("hello"); //when (이걸로 실행 했을 때) Long savId = memberService.join(member); //then (결과가 이게 나와야 한다.) Member findMember = memberService.findOne(savId).get(); Assertions.assertThat(member.getName()).isEqualTo(findMember.getName()); } @Test void findMembers() { } @Test void findOne() { }} MemberService package com.test.inflearn.service;import com.test.inflearn.domain.Member;import com.test.inflearn.repository.MemberRepository;import com.test.inflearn.repository.MemoryMemberRepository;import java.util.List;import java.util.Optional;public class MemberService { private final MemberRepository memberRepository = new MemoryMemberRepository(); /** * 회원 가입 */ public Long join(Member member) { //같은 이름이 있는 중복 가입 X validateDuplicateMemory(member); //중복 회원 검증 memberRepository.save(member); return member.getId(); } private void validateDuplicateMemory(Member member) { memberRepository.findByName(member.getName()) .ifPresent(m -> { throw new IllegalStateException("이미 존재하는 회원 입니다."); }); } /** *전체 회원 조회 */ public List<Member> findMembers() { return memberRepository.findAll(); } public Optional<Member> findOne(Long memberId) { return memberRepository.findById(memberId); }} repository = MemberRepository(인터페이스) package com.test.inflearn.repository;import com.test.inflearn.domain.Member;import java.util.List;import java.util.Optional;public interface MemberRepository { Member save(Member member); Optional<Member> finById(Long id); Optional<Member> findByName(String name); List<Member> findAll(); Optional<Member> findById(Long memberId);// Optional<Member> findById(Long memberId);} repository = MemberRepository (클래스) package com.test.inflearn.repository;import com.test.inflearn.domain.Member;import java.util.*;public class MemoryMemberRepository implements MemberRepository { private Map<Long, Member> store = new HashMap<>(); private static long sequence = 0L; @Override public Member save(Member member) { member.setId(++sequence); store.put(member.getId(), member); return member; } @Override public Optional<Member> finById(Long id) { return Optional.ofNullable(store.get(id)); } @Override public Optional<Member> findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); } @Override public List<Member> findAll() { return new ArrayList<>(store.values()); } @Override public Optional<Member> findById(Long memberId) { return Optional.empty(); } //test 를 한번 할때 마다 지워준다. public void clearStore() { store.clear(); }} domain = Member package com.test.inflearn.domain;public class Member { private Long id; private String name; //get, set public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; }} 오류 메시지 at java.util.Optional.get(Optional.java:135) at com.test.inflearn.service.MemberServiceTest.회원가입(MemberServiceTest.java:26) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.junit.platform.commons.util.ReflectionUtils.invokeMethod(ReflectionUtils.java:725) at org.junit.jupiter.engine.execution.MethodInvocation.proceed(MethodInvocation.java:60) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$ValidatingInvocation.proceed(InvocationInterceptorChain.java:131) at org.junit.jupiter.engine.extension.TimeoutExtension.intercept(TimeoutExtension.java:149) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestableMethod(TimeoutExtension.java:140) at org.junit.jupiter.engine.extension.TimeoutExtension.interceptTestMethod(TimeoutExtension.java:84) at org.junit.jupiter.engine.execution.ExecutableInvoker$ReflectiveInterceptorCall.lambda$ofVoidMethod$0(ExecutableInvoker.java:115) at org.junit.jupiter.engine.execution.ExecutableInvoker.lambda$invoke$0(ExecutableInvoker.java:105) at org.junit.jupiter.engine.execution.InvocationInterceptorChain$InterceptedInvocation.proceed(InvocationInterceptorChain.java:106) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.proceed(InvocationInterceptorChain.java:64) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.chainAndInvoke(InvocationInterceptorChain.java:45) at org.junit.jupiter.engine.execution.InvocationInterceptorChain.invoke(InvocationInterceptorChain.java:37) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:104) at org.junit.jupiter.engine.execution.ExecutableInvoker.invoke(ExecutableInvoker.java:98) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.lambda$invokeTestMethod$7(TestMethodTestDescriptor.java:214) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.invokeTestMethod(TestMethodTestDescriptor.java:210) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:135) at org.junit.jupiter.engine.descriptor.TestMethodTestDescriptor.execute(TestMethodTestDescriptor.java:66) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:151) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.util.ArrayList.forEach(ArrayList.java:1259) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at java.util.ArrayList.forEach(ArrayList.java:1259) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.invokeAll(SameThreadHierarchicalTestExecutorService.java:41) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$6(NodeTestTask.java:155) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$8(NodeTestTask.java:141) at org.junit.platform.engine.support.hierarchical.Node.around(Node.java:137) at org.junit.platform.engine.support.hierarchical.NodeTestTask.lambda$executeRecursively$9(NodeTestTask.java:139) at org.junit.platform.engine.support.hierarchical.ThrowableCollector.execute(ThrowableCollector.java:73) at org.junit.platform.engine.support.hierarchical.NodeTestTask.executeRecursively(NodeTestTask.java:138) at org.junit.platform.engine.support.hierarchical.NodeTestTask.execute(NodeTestTask.java:95) at org.junit.platform.engine.support.hierarchical.SameThreadHierarchicalTestExecutorService.submit(SameThreadHierarchicalTestExecutorService.java:35) at org.junit.platform.engine.support.hierarchical.HierarchicalTestExecutor.execute(HierarchicalTestExecutor.java:57) at org.junit.platform.engine.support.hierarchical.HierarchicalTestEngine.execute(HierarchicalTestEngine.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:107) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:88) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:54) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:67) at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:52) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:114) at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:86) at org.junit.platform.launcher.core.DefaultLauncherSession$DelegatingLauncher.execute(DefaultLauncherSession.java:86) at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:53) at com.intellij.junit5.JUnit5IdeaTestRunner.startRunnerWithArgs(JUnit5IdeaTestRunner.java:71) at com.intellij.rt.junit.IdeaTestRunner$Repeater$1.execute(IdeaTestRunner.java:38) at com.intellij.rt.execution.junit.TestsRepeater.repeat(TestsRepeater.java:11) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:35) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
[vueRouter 학습] 정리노트 페이지 url 잘못 된 거 같아요!
[vueRouter 학습] 정리노트 페이지 url 잘못 된 거 같아요!
-
미해결코딩으로 학습하는 GoF의 디자인 패턴
Decorator 설정 방법 질문드립니다.
안녕하세요. 기선님 강의를 보고 토이 프로젝트에(Java/Spring) decorator 패턴을 적용하다 궁금한 점이 있어서 질문드립니다. 먼저 제가 생각하는 로직은 매 요청마다 CommantService의 정책이 변경되지 않고, booting 시 properties 값에 따라 enable되는 decorator가 정해지는 방식으로 만들고자 합니다. === 질문 실제 서비스에서 decorator 패턴 적용시 CommentService를 언제 어떤식으로 초기화를 해야할지 모르겠습니다. CommontServiceFactory를 싱글톤 패턴으로 만들어두고 CommontService를 필요로 하는 곳에 CommontServiceFactory를 di시키면 될까요? 아님 다른 방법으로 진행해야 할까요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
grouping과 Collectors.toList의 차이가 무엇이고 emtrySet()은 무슨 기능인가요?
grouping과 Collectors.toList의 차이가 무엇이고 emtrySet()은 무슨 기능인가요?
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
핸들러 매핑 질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]MVC 프레임워크 만들기 V5에서 핸들러 어댑터를 V3와 V4에 맞게 직접 구현해줬는데 스프링 프레임워크에서는 RequestMappingHandlerAdapter 라는 핸들러 어댑터가 이미 존재하잖아요. 그럼 개발자는 스프링 프레임워크를 사용하면 V3와 V4때처럼 핸들러 어댑터를 직접 구현하지 않아도 RequestMappingHandlerAdapter에서 로직이 알아서 만들어지는 건가요? 어떤 컨트롤러가 사용될지 모르는데 어떻게 RequestMappingHandlerAdapter에 로직이 완성되어있는지 궁금해요. support 메소드를 V5예제에서는 개발자가 구현을 해줬으니 이해가 되는데 RequestMappingHandlerAdapter는 이미 완성된 코드일텐데 이게 어떻게 가능한걸까요?
-
미해결자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
코틀린에서 프로퍼티 가시성 범위에 관련돼서 질문이 있습니다.
8분 50초 쯤에 말씀하신 내용이 이해가 안가는데 확인 한 번만 부탁드립니다. 현재 이 Car은 사실 name, owner, price에 대한 세 개의 getter와 owner와 price에 대한 setter가 있는거죠 위 내용에서 노란색 밑줄에 대한 내용이 이해가 안가는데 제가 잘못 알고 있었던거지 질문드립니다. 코틀린에서는 필드만 만들면 getter와 setter를 자동으로 만들어준다. 라고 9강에서 말씀하셨는데 이번꺼는 setter가 왜 owner와 price에 한정지어서 말씀하신건지 궁금합니다. 바이트 코드도 디컴파일 해봤을 때도 getter3개 setter3개가 존재해서 헷갈리게 돼서 정확히 알고 싶습니다!
-
미해결
Looking to Explore Leh Ladakh or Kutch?
Looking to explore Leh Ladakh or Kutch? WanderersHub is the perfect place for you! Their Kutch Trip Plan and Leh Ladakh Trip Blogs are packed with information on the best routes, places to stay, and things to do in both regions. Leh Ladakh is famous for its beautiful monasteries, alpine meadows, stunning lakes and rare wildlife. Kutch is famous for its ethnic villages, arts, crafts and forts, located in the largest salt desert in the world. They'll also help you plan the perfect itinerary for your adventure. So what are you waiting for? Come explore the world with WanderersHub!
-
미해결스프링 핵심 원리 - 기본편
에러 발생
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 전체적으로 복사 붙여넣기를 진행해도 오류가 나는데 빨간 줄도 없어서 어디 쪽에 문제가 있는지 잘 모르겠습니다 ㅠㅠ
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
빌드시 bundle-analyzer 가 정상적으로 만들어지지 않습니다.
도저히 모르겠네요. 분명 다른예제들이랑 다를게 없는데 ㅠㅠ
-
해결됨자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
테스트 케이스 한 개 통과하지 못하는 문제
solution 코드를 아래와 같이 작성했습니다. public static int solution(int n, int[][] board, int m, int[] moves) { int answer = 0; // stack 만들기 List<Stack<Integer>> stacks = new ArrayList<>(); for (int i = 0; i < n; i++) { Stack<Integer> tmp = new Stack<>(); for (int j = n - 1; j >= 0; j--) { if (board[j][i] == 0) break; tmp.push(board[j][i]); } stacks.add(tmp); } Stack<Integer> bucket = new Stack<>(); for (int i : moves) { if (!stacks.get(i-1).isEmpty()){ int newItem = stacks.get(i-1).pop(); if (!bucket.isEmpty() && bucket.peek() == newItem) { bucket.pop(); answer += 2; } else bucket.push(newItem); } } return answer; } board의 상단 인형에 접근하는 방법으로 저는 Stack의 List를 만들어 사용했고, 강사님은 직접 배열에 접근했다는 것이 차이점인 것 같습니다. 위 코드로 채점을 해보면 4번 test case까지는 통과하지만 마지막 5번 test case를 통과하지 못합니다. (리턴 : 22, 답 : 16) 코드의 효율성 문제를 떠나서 위 코드도 제대로 동작해야 될 것 같은데 마지막 케이스만 통과하지 못하는 이유를 도저히 못 찾겠네요ㅜㅜ 혹시 이유를 아시는 분이 계실까요..?ㅜ
-
미해결
Want To Get Paid Right Away For Your Used Cars
Do you have a scrap car that you consider to be old, fragile, and useless? Whether your car is scrap, unused, or damaged, you can now easily earn the most money for it. Then, the best place to sell and buy used cars Auckland is Carswreckers.co.nz. It is a place where you can buy and sell used cars within New Zealand. They also offer fast & free car removals South Auckland service. Hire CarsWreckers Today!
-
미해결
The Best Place To Get Car Wreckers Takanini Service
If you live in Auckland and want to see the process for yourself, you can go to the Carremovals.co.nz yard like I did. Here you can see how the best car wreckers Takanini operate. Here are the complete CarRemovals details. If you do business with this company in New Zealand, the "buy used cars Auckland" service provider will be an excellent choice.
-
미해결
Are You Interested In Cash for Cars Service?
Do you want to sell a car in Auckland, New Zealand? Or are you interested in cash for cars? If so, the ultimate goal is to make many from an unwanted vehicle. You can make money on a junk car in two ways. First, keep the vehicle in good condition, including parts like the battery and other factors. Second, separate the car parts and sell them separately to earn a fair price, but this takes more effort. So, if you live in Auckland, get in touch with JCPCarParts. They are the best provider of "buy used car Auckland" services. Simply call and leave the rest to us.
-
미해결플렉스(Flex) 반응형 웹사이트 포트폴리오(The World's Best Cities)
x scroll 이 왜 생기는 걸까요?
강좌 따라할때 처음 header 만들고 main만들 때부터 생겼었어요 나중에 없애는거 알려주겟지 하면서 보고있는데 샘꺼는 어느순간 해결이 되있더라고요 저로서는 아직 이게 왜 생기는건지,, overflow-x: hidden; 으로 없애고 싶다기보다 근본적인 원인을 알고싶습니다!! box-sizing:border-box;는 적용되어있는 상태입니다 물론 코드를 봐야 아시겠지만 혹시 짐작가시는 부분이 있다면 부탁드리겠습니다. 고민중인데 해결이 안되는군요 import { createGlobalStyle } from "styled-components"; const GlobalStyle = createGlobalStyle` html { box-sizing: border-box; scroll-behavior: smooth; margin: 0; padding: 0; } *, *::before, *::after { box-sizing: border-box; font-family: 'Noto Sans KR', sans-serif; font-style: normal; } body { color: #222; width: 100vw; height: 100vh !important; margin: 0; padding: 0; display: flex; justify-content: center; align-items: center; /* overflow: auto; */ } dl, menu, li { list-style: none; } h1, h2, h3, h4, h5, h6 { font-weight: normal; font-size: 28px; margin: 0; padding: 0; } a {color: #222; text-decoration: none;} a:hover {color: #390;} button { cursor: pointer; outline: none; } input , textarea , select { outline: none; } button, input , textarea , select { font-family: 'Noto Sans KR',sans-serif; } `; export default GlobalStyle; const RootLayout = styled.div` width: 100vw; height: 100vh; /* min-width: 100vw; */ /* min-height: 100vh; */ /* position: relative; */ `; function App() { return ( <ThemeProvider theme={Theme}> <GlobalStyle /> <RootLayout> <Resume /> </RootLayout> </ThemeProvider> ); } 저 <Resume/>가 강의 내용의 css가 담겨있습니다 상위 엘리먼트에서 css 설정에 문제가 있을까요..?
-
미해결Three.js로 시작하는 3D 인터랙티브 웹
혹시 포인터 락 경우 click 말고 keydown이나 dbclick을 이용하고 싶습니다
혹시 포인터 락 경우 click 말고 keydown이나 dbclick을 이용하고 싶습니다 근데 위의 이벤트를 적용했을 경우 아무런 에러도 뜨지않고 반응을 하지 않아 질문을 드립니다. const controls2 = new PointerLockControls(camera, renderer.domElement); controls2.domElement.addEventListener('keydown', () => { controls2.lock(); }); controls2.addEventListener('lock', () => { console.log('lock'); }); controls2.addEventListener('unlock', () => { console.log('unlock'); });
-
미해결입문자를 위한 자바스크립트 기초 강의
자바 스크립트 반복문
반복문 잘못 썼을때 끄는 방법 알려주세요ㅠ 무한 반복되서 무서워요