묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
로그인을 Controller가 아닌 filter에서 처리하는 것의 이점
스프링 시큐리티에서 기본적으로 제공하는 formlogin 방식이 아닌 방식(예를 들면 json 요청)으로 로그인을 구현할 때, 기존의 방식 처럼 컨트롤러에서 처리하는 것과 커스텀 필터를 등록하여 처리하는 것에 차이가 무엇인지 궁금합니다. 아무래도 필터는 Dispatcher Servlet을 거치지 않고 먼저 처리할 수 있다는 장점이 있을 것 같은데 컨트롤로 단에서 처리하는 것 보다 어떤점이 유리할까요? 또 다른 이점이 있는지도 궁금합니다!
-
미해결React와 Vue로 배우는 TypeScript 필수 개념 (feat. ChatGPT)
EventHandler Type이 React에서 정의한 타입인 이유가 궁금합니다.
React에서는 React 팀이 직접 만든 Event 타입을 사용하고, Vue에서는 MDN에서 제공하는 범용적 Event 타입을 사용한다고 하시고, React에서 가상 DOM 때문에 React 팀이 만든 Event 타입을 사용한다고 말씀 주셨습니다.하지만, Vue도 마찬가지로 vDOM을 사용하고 있는 것으로 알고 있어요. 🙂 그렇다면, Vue도 vDOM을 사용한다면 Template 문법 내부에서 범용적 Event 타입이 아니라 커스텀 이벤트 타입을 사용해야 맞는 것 아닌가요?굳이 React 에서 커스텀 이벤트 타입을 사용하는 이유와, Vue에서 범용적 이벤트 타입을 사용하는 각각의 이유가 있을 것 같은데, 이에 대한 궁금증이 생겨 질문드립니다!
-
미해결스프링 핵심 원리 - 기본편
CoreApplication에 대한 질문이 있습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.CoreApplication의 @SpringBootAplication에는 @ComponentScan이 들어있다고 하셨습니다.그러면 스프링 빈 등록을 할 때 AutoAppConfig가 아니라 CoreApplication을 써도 될 것 같다는 생각이 들었습니다.그래서 방금 테스트한 코드를 이렇게 수정해보았습니다.public class AutoAppConfigTest { @Test void basicScan() { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(CoreApplication.class); MemberService memberService = ac.getBean(MemberService.class); assertThat(memberService).isInstanceOf(MemberService.class); }}하지만 제가 @Component를 사용하지 않은 MemberService 도 같이 bean으로 등록되어 있어서 NoUniqueBeanDefinitionException이 발생했습니다. 왜 CoreApplicaion을 사용하면 이러한 오류가 나는 건지 궁금합니다. 그리고 이것이 AutoAppConfig의 역할을 대체할 수 있는지 궁금합니다
-
미해결프로그래밍 시작하기 : 파이썬 입문 (Inflearn Original)
강의 내용 중 이해가 잘 되지 않는 것이 있어서 질문드립니다
공간이 5개, 10개다라는 말이 무슨 뜻인지 이해가 잘 되지않아 질문드립니다밑에 결과를 드래그하였을 떄 5칸 혹은 10칸 만 드래그가 되어야지 정상인가요? 저는 다 드래그가 됩니다제 코드가 잘 못된건지 이해한게 잘못된건지 모르겠습니다
-
해결됨토비의 스프링 부트 - 이해와 원리
@Transactional 어노테이션을 붙이지 않은 테스트가 통과하는 이유
1. 문제HelloRepositoryTest 테스트 실행 시 findHelloFailed() 테스트 실패 및 에러 발생Expected :null Actual :tobyspring.hello.Hello@579846cc 2. 강의 정보제목: [섹션 10] 스프링 부트의 자동 구성과 테스트로 전환시간: 6:23내용: HelloRepositoryTest.java의 @HellobootTest를 @SpringBootTest로 변경 후 실행 3. 내 프로젝트 상태HelloRepositoryTest.java 코드package tobyspring.hello; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE) public class HelloRepositoryTest { @Autowired private HelloRepository helloRepository; @Test void findHelloFailed() { assertThat(helloRepository.findHello("Toby")).isNull(); } @Test void increaseCount() { assertThat(helloRepository.countOf("Toby")).isEqualTo(0); helloRepository.increaseCount("Toby"); assertThat(helloRepository.countOf("Toby")).isEqualTo(1); helloRepository.increaseCount("Toby"); assertThat(helloRepository.countOf("Toby")).isEqualTo(2); } } 4. 해결 과정increaseCount() 테스트 실행 결과가 findHelloFailed() 테스트에 영향을 미치는 것으로 추정따라서 @Transaction을 @SpringBootTest 아래 줄에 추가package tobyspring.hello; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.transaction.annotation.Transactional; import static org.assertj.core.api.Assertions.assertThat; @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.NONE) @Transactional public class HelloRepositoryTest { @Autowired private HelloRepository helloRepository; @Test void findHelloFailed() { assertThat(helloRepository.findHello("Toby")).isNull(); } @Test void increaseCount() { assertThat(helloRepository.countOf("Toby")).isEqualTo(0); helloRepository.increaseCount("Toby"); assertThat(helloRepository.countOf("Toby")).isEqualTo(1); helloRepository.increaseCount("Toby"); assertThat(helloRepository.countOf("Toby")).isEqualTo(2); } } 5. 결과정상적으로 테스트 통과 6. 질문강의에서 @Transactional 어노테이션 없이 테스트를 통과할 수 있었던 이유가 궁금합니다!
-
해결됨자바 동시성 프로그래밍 [리액티브 프로그래밍 Part.1]
추후에 WebFlux나 Reactor도 강의해주시나요?
안녕하세요 강사님. 1부에는 이런 내용이 없는 것 같은데, 2부나 3부에 WebFlux나 Reactor에 대한 내용도 강의해주시나요?
-
미해결Next + React Query로 SNS 서비스 만들기
position: fixed;를 top 속성 없이 사용이 가능한 이유
[제로초 강좌 질문 필독 사항입니다]질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다.도움이 되는 질문을 하는 방법을 알려드립니다.https://www.youtube.com/watch?v=PUKOWrOuC0c0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다.1. 에러 메시지를 올리기 전에 반드시 스스로 번역을 해야 합니다. 번역기 요즘 잘 되어 있습니다. 에러 메시지가 에러 해결 단서의 90%를 차지합니다. 한글로 번역만 해도 대부분 풀립니다. 그냥 에러메시지를 올리고(심지어 안 올리는 분도 있습니다. 저는 독심술사가 아닙니다) 해결해달라고 하시면 아무런 도움이 안 됩니다.2. 에러 메시지를 잘라서 올리지 않아야 합니다. 입문자일수록 에러메시지에서 어떤 부분이 가장 중요한 부분인지 모르실 겁니다. 그러니 통째로 올리셔야 합니다.3. 코드도 같이 올려주세요. 다만 코드 전체를 다 올리거나, 깃헙 주소만 띡 던지지는 마세요. 여러분이 "가장" 의심스럽다고 생각하는 코드를 올려주세요.4. 이 강좌를 바탕으로 여러분이 응용을 해보다가 막히는 부분, 여러 개의 선택지 중에서 조언이 필요한 부분, 제 경험이 궁금한 부분에 대한 질문은 대환영입니다. 다만 여러분의 회사 일은 질문하지 마세요.5. 강좌 하나 끝날 때마다 남의 질문들을 읽어보세요. 여러분이 곧 만나게 될 에러들입니다.6. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다. 안녕하세요 로초님! 강의 잘 보고 있습니다. 다름 아니라 position:fixed;는 뷰포트를 기준으로 레이아웃을 배치하게 만드는 속성값이라서, top, left, bottom, right 중 하나 이상을 써야 레이아웃이 정상적으로 된다고 알고 있는데, (afterLogin)/layout.module.tsx의 .leftSectionFixed와 .search에서는 top같은 거 없이도 의도한 대로(sticky처럼?) 기능하는 이유가 무엇인지 궁금합니다. 옛날에 제가 다른 프로젝트 만들었을 때는 fixed랑 top을 같이 안 써서 헤맨 적이 있어서, 앞으로는 top을 꼭 같이 써야겠다고 알고 있었고,지금 구글링 해서 fixed의 사용법을 찾아봐도 다들 top같은 걸 써야 한다고 말하고 있어서, 혹시 다른 사용법이 있는 건지 궁금해서 여쭈어봅니다. 답변 기다리겠습니다. 감사합니다:)
-
해결됨토비의 스프링 부트 - 이해와 원리
DataSourceTest 테스트 실행 시 transaction 로그가 출력되지 않는 문제
1. 문제DataSourceTest 테스트 실행 시 transaction 로그가 출력되지 않음INFO o.s.t.c.transaction.TransactionContext : Began transaction (1) for...(생략) INFO o.s.t.c.transaction.TransactionContext : Rolled back transaction for...(생략) 2. 강의 정보제목: [섹션 10] 스프링 부트의 자동 구성과 테스트로 전환시간: 6:00내용: DataSourceTest.java의 @HellobootTest를 @JdbcTest로 변경 후 로그 보기 3. 내 프로젝트 상태자바 버전: 17스프링 부트 버전: 3.2.0build.gradle의 의존성repositories { mavenCentral() maven { url 'https://repo.clojars.org' name 'Clojars' } } dependencies { implementation ('org.springframework.boot:spring-boot-starter-web') implementation 'org.springframework:spring-jdbc' runtimeOnly('com.h2database:h2:2.2.220') implementation 'hikari-cp:hikari-cp:3.0.1' testImplementation 'org.springframework.boot:spring-boot-starter-test' }DataSourceTest.java 코드@JdbcTest public class DataSourceTest { @Autowired DataSource dataSource; @Test void connect() throws SQLException { Connection connection = dataSource.getConnection(); connection.close(); } } 4. 해결 과정application.properties에 로그 단계를 정의logging.level.ROOT=DEBUG logging.level.org.springframework.transaction=DEBUG 5. 결과단계를 DEBUG -> TRACE로 다양하게 바꾸고 테스트를 실행했으나 transaction은 출력되지 않음 6. 질문강의 중간에 로깅 단계를 바꾸는 작업이 있었는데 제가 그 부분을 놓친 것인지스프링 부트의 버전이 올라가며 transaction 로그를 출력하지 않도록 바뀐 것인지아니면 다른 방식으로 접근해야 하는 것인지궁금합니다!
-
해결됨홍정모의 따라하며 배우는 C언어
비주얼 스튜디오 2022를 사용중인데
13분 44초경에 new filter라는 항목이 있는데저는 그게 없고 new folder만 있어요그리고스샷 처럼 소스 파일 폴더도 헤더 파일 폴더도 없어여2022 버전이라서 그런건가여 아니면 제가 멀 잘못 한건가여?좋은 답변 항상 감사드립니당.
-
해결됨독하게 시작하는 C 프로그래밍
동적할당 관련 #inlude <malloc.h> 질문
안녕하십니까?독하게 시작하는 c프로그래밍 책 page 391 에 보면 _msize() 함수에 대한 설명이 있는데 예제 프로그램에서 #include <malloc.h>를 쓰셨는데 #include <stdlib.h>를 사용하지 않은 이유가 계신지 궁금합니다. 수고하십시오
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
useEffect에서 변수 업데이트 관련 질문
안녕하세요.본 강의에서 보여주신 회원가입 버튼 비활성화 로직은 다음과 같습니다. useEffect(() => { const isEnabled = Object.values(inputs).every((s) => s.length > 0); setFormDisabled(!isEnabled); }, [inputs]);위의 코드로 실행하면 username과 password를 모두 입력하면 회원가입 버튼이 활성화되고 하나라도 지우면 다시 비활성화 됩니다. useEffect(() => { if (inputs.username && inputs.password) { setFormDisabled(false); } }, [inputs]);그러나 조금 수정하여(이외의 부분은 모두 동일) 위와 같이 실행해보면, 본래의 코드와 마찬가지로 모두 입력되었을 때 버튼이 활성화 되지만 다시 지워도 비활성화가 되지 않습니다. 두 곳 모두 지워봐도 마찬가지입니다. console.log로 찍어보아도 false 값으로 고정된 채 바뀌지 않습니다.useEffect가 비동기 방식이므로 formDisabled가 업데이트 되는 타이밍 문제도 고려해 보았지만, 그렇다면 본래의 코드에서도 이런 문제가 발생하여야 할 것이라고 판단했습니다.여러모로 분석해 보았지만 이유를 알기가 어렵습니다.
-
미해결장고 설계철학으로 시작하는 파이썬 장고 입문
Http Method 관련 질문입니다.
Http 생성/변경/삭제 요청을 POST로 처리한다고 하셨는데요. PATCH, PUT, DELETE는 왜 사용하지 않는건가요? Django의 철학인가요?
-
미해결
MemberRepositoryTest 오류
//application.yml//Member//MemberRepository//MemberRepositoryTest java.lang.IllegalStateException: Failed to load ApplicationContext for [WebMergedContextConfiguration@1af1347d testClass = jpabook.jpashop.MemberRepositoryTest, locations = [], classes = [jpabook.jpashop.MemberRepository], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@13e39c73, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@6580cfdd, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@48ae9b55, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@72f926e6, org.springframework.boot.test.context.SpringBootTestAnnotation@7cd2ccf8], resourceBasePath = "src/main/webapp", contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'memberRepository': Injection of persistence dependencies failed Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'jakarta.persistence.EntityManagerFactory' available 이런 오류가 뜨는데 뭐가 문제인지 모르겠습니다.....
-
해결됨스프링 핵심 원리 - 기본편
Lombok testcode질문
Lombok설치이후 test를 전부 test했더니 오류코드가 발생합니다.. 어떤점이 잘못되었을까요? https://drive.google.com/file/d/1MuwBRL6nZkJ1fB3GokLDo3hEAufjOCHq/view?usp=sharing 또한 오류를 잡을때 아직 초보라그런지 어디에서 잡아야하고 어떤부분을 고쳐야하는지 감이오지를 않습니다 조언해주실수있으실까요?
-
해결됨Windows 소켓 프로그래밍 입문에서 고성능 서버까지!
bind 함수 관련 궁금증
안녕하세요.강의 수강 중 궁금한 점이 있어서 질문드립니다! TCP 에코 서비스 전체 흐름 수업 중에 서버에서 bind 함수가 필요한 이유를 듣고 문득 궁금해졌습니다. bind 함수가 소켓이라는 추상적인 객체에 TCP 프로토콜을 붙여서 구체화를 시켜주는 함수로 이해했습니다. 그렇다면, 클라이언트도 bind라는 함수가 필요하지 않나 생각이 들었습니다.서버와 통신을 한다면 결국 클라이언트도 IP와 port 정보가 필요하다고 생각하는데 왜 클라이언트는 따로 bind 함수를 호출하지 않는지 궁금합니다!
-
미해결공공데이터로 파이썬 데이터 분석 시작하기
주피터 익스텐션 다운로드 문제 질문입니다!
Jupyter command jupyter-contrib not found.지금 이 오류가 떠서 설치가 안되고 있는데요. 어떻게 해결해야 할까요??제가 봤을땐, pip install jupyter_contrib_nbextensions 이 부분은 실행이 되는데jupyter contrib nbextension 이 부분에서 오류가 생기는 것 같습니다. ㅠㅠ
-
해결됨글로벌 개발자로 성장하는 < 코딩 실무 영어 /> 마스터 클래스
오타가 있는 것 같아서요.
한국인 머리 아프게 만드는 영어의 특징의 14:03초에 Ask for의 예제가 Ask for the manager for confirmation. 으로 나오는데 Ask the manager for confirmation.으로 되어야 하는 거 아닌가 해서요. 강의 재밌네요. 잘 듣고 있습니다.
-
해결됨스프링 핵심 원리 - 기본편
spring container 질문입니다
영한님 강의에 annotationconfigapplicationcontext이 스프링 컨테이너를 만들어주어 여기서 이제 관리한다고 알고있습니다.class OrderServiceImplTest { @Test void createOrder() { OrderServiceImpl orderService = new OrderServiceImpl(); orderService.createOrder(1L, "itemA", 10000); } } @Bean public OrderService orderService() { System.out.println("call AppConfig.orderService"); return new OrderServiceImpl(memberRepository(), discountPolicy()); // return null; }@Component public class OrderServiceImpl implements OrderService{ @Override public Order createOrder(Long memberId, String itemName, int itemPrice) { Member member = memberRepository.findById(memberId); int discountPrice = discountPolicy.discount(member, itemPrice); return new Order(memberId, itemName, itemPrice, discountPrice); } } 1 .여기 세개의 코드를 보면 첫번째에는 annotationconfigapplicationcontext 를 선언해주지않았는데 스프링컨테이너에 저장이될수있는건가요?Component는 클래스를 빈으로 등록해줘 ~ 라는느낌으로 알고있습니다. 첫번째코드를 실행시켰을때 두번째코드인 return new OrderServiceImpl(memberRepository(), discountPolicy()); 에서 에러가 발생합니다. 강의와 구글링을 검색했는데 @Component와 @Bean은 코드상의 유연함을 바탕으로 다르다고 알고있습니다. 왜 두번째에서 에러가나는지 궁금합니다
-
미해결하루만에 배우는 express with AWS
성능 관련 강의는 언제 업로드 될까요?
다음과 같은 양식으로 남겨주세요.질문을 한 배경 : 성능 강의 관련 질의질문내용 : 성능관련한 궁금증에 본 강의를 결재했는데 강의 내용에 존재하지 않네요..언제쯤 업로드 될까요?
-
미해결[리뉴얼] 코딩자율학습 제로초의 자바스크립트 입문
로또 랜덤게임을 만들었는데 피드백 부탁드립니다 ㅠㅠ
1. 사용자에게 로또번호 받기(form태그로 구현) 2. checkInput을 통해 입력값 통제 1. 2 자릿수까지만 입력 2. 숫자만 입력 3. 이미 입력한 숫자는 재사용 불가 4. 빈 값 입력 불가 3. 사용자 입력이 끝나면 classList를 통해 form 부분을 사라지게 만들었습니다. 4. 사용자 입력번호와 랜덤으로 추출한 번호가 일치하는지 구현 1. winningLottoNumber(보너스 번호를 제외하고 일치하는 번호가 있는지) 변수를 통해 카운트 2. winningLottoBonusNumber(보너스 번호) 변수를 통해 카운트 => 여기서 includes를 써도 카운트가 안됐습니다. 찾아본 결과 includes는 형까지 똑같아야 true로 나와서 형 변환 후 검증했습니다. 5. 랜덤 로또 번호가 다 나온 후 결과가 나오게 setTimout을 9초로 설정했습니다!혹시나 이상한 부분이나 고쳐야 할 부분이 있는지 문의 드립니다 ㅠㅠ 코드가 길어서 깃허브 주소 첨부 했습니다~!감사합니다.https://github.com/diderot7/JS-PRACTICE/blob/main/lotto.html