어노테이션을 만들고, BeanA에 어노테이션 붙인 후 테스트를 하는데 계속 BeanA 가 없다고 나옵니다. 어노테이션 만들기 @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface MyExcludeComponent { } @Target(ElementType.TYPE) @Retention(RetentionPolicy.RUNTIME) @Documented public @interface MyIncludeComponent { } 클래스에 필터 붙이기 @MyIncludeComponent public class BeanA { } @MyExcludeComponent public class BeanB { } 3. 테스트(에러 발생) BeanA에 NoSuchBeanDefinition에러가 발생합니다 includeFilters를 적용했는데 이유를 모르겠습니다 ㅠㅠ @Test void filterScan(){ ApplicationContext ac = new AnnotationConfigApplicationContext(ComponentfilterAppConfig.class); BeanA bean = ac.getBean(BeanA.class); assertThat(bean).isNotNull(); Assertions.assertThrows(NoSuchBeanDefinitionException.class, () -> ac.getBean(BeanB.class)); } @Configuration @ComponentScan( includeFilters = @Filter( type = FilterType.ANNOTATION, classes = MyIncludeComponent.class), excludeFilters = @Filter(type = FilterType.ANNOTATION, classes = MyExcludeComponent.class) ) static class ComponentfilterAppConfig{ } }
constructor(): void 의 Aa interface 를 class A 에서 implements 로 사용할때 class A 에서 타입 에러가 나고 있는데요. 이부분은 편집 된것 같은데 위와같은 상황에서 에러를 해결하려면 interface Aa 에 타입을 어떻게 할당 해주어야 할까요? 클래스 문법은 낯설다보니, 해결 방법을 찾기가 힘들어서 질문 드립니다 !
안녕하세요. 타임리프 부분 공부하다 궁금한점이 생겨 질문드립니다. <option th:value="T" ${pageMaker.cri.type == "T"?"selected":""}>제목</option> 이런식으로 option 태그에서 pageMaker.cri.type 값이 T라면 selected 속성이 적용되게끔 태그를 만들고 싶은데 JSP에서는 ${}안에 식을 써주면 그대로 적용이 되었는데 타임리프에서는 th를 써줘야 하잖아요. 근데 지금같은 경우는 text나 href 같은 속성이 아니고 태그 안에 식을 써주는건데 어떻게 써야할까요?
안녕하세요. 엔티티가 Member, Team 이렇게 있을 때, 멤버 1명이 팀을 옮기게 되면 add(member)를 해주고 team에서 기존 멤버를 빼주는 게 맞지만 db 관점에서는 괜찮지만 어플리케이션에서는 지워주는게 맞다고 하셨는데요 이 부분이 잘 이해가 가지 않습니다. 해당링크 : ( https://www.inflearn.com/questions/25417 ) 우선 제가 현재 이해하고 있는 것을 말씀드려보겠습니다. 저는 엔티티가 곧 테이블이라고 이해하고 있습니다. (틀리다면 정정해주시면 감사합니다) Member, Team 테이블이 각각 있을 때 Team에는 team_id, team_name, list team member 이렇게 설계가 되는 것까지는 이해했습니다. 이 team 에서 list 는 실제 member 데이터가 삽입되는 것이 아니고 team에 있는 team_id를 통해 member 테이블에서 team으로 fk를 걸어 놓은 것으로 알고 있습니다. member가 team을 옮기게 될 경우, member가 team 에 걸어놓은 fk가 변경이 되기 때문에 member 쪽에서만 update 해줘도 된다고 이해하고 있고요. db 관점에서 괜찮다고 하시는 부분은 아마 이 부분을 말씀하시는 거 같고, 어플리케이션 관점은 영속성 컨택스트에서 관리되고 있는 데이터를 말씀하시는 것 같은데 제가 제대로 이해하고 있는 게 맞을까요? 맞다면 후자의 경우에는 영속성에서 관리되는 부분을 끊으면 된다는 이야기(비영속으로 적용)인 걸까요? 감사합니다.
MemberController가 있는 회원 등록 기능 중에서 질문 있습니다. createMemberForm.html 보시면 form이 post 형식으로 name에 저장된 값을 웹 서버에 전달하는데 그 name 값이 PostMapping으로 선언된 create 메소드로 전달 되잖아요 여기서 궁금한게 name 값이 어떻게 MembetForm 객체에서 name으로 저장이 됐나 궁금합니다.
[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
안녕하세요!! 코드 팩토리 강의를 보며 플러터 공부를 하고있는 수강생입니다. 강의를 보면서 직접 앱 개발 해보다가 궁금증이 생겨서 질문 드립니다... 제가 백엔드에 대한 지식이 전혀 없는 수준이라 대부분 파이어베이스에 의존하며 개발하고 있습니다. 만약 유저수가 만단위 십만단위 이상 넘어가도 자체구축서버 없이 파이어베이스만으로도 커버가 가능한지 알고싶어 여쭈어봅니다... 파이어베이스만으로 커버가 불가능하다면 적합만 백엔드 프레임워크는 무엇을 공부하면 좋을지 조언해주셨으면 합니다!!
안녕하세요, 백기선님. 기존에 저는 JVM 내에서 JIT이 컴파일러와 인터프리터의 역할을 동시에 수행한다고 이해하고 있었는데요. 자료(p.4)에서는 [실행엔진 : 인터프리터, JIT Compiler, GC ] 로 구성되어 있어서 질문드립니다. 인터프리터와 JIT 컴파일러는 서로 분리되어 역할을 수행하는 것이 맞고, 바이트 코드를 실행할 때, JIT 컴파일러가 전체를 싹 훑고, 반복되는 코드에 대해 메모리에 캐싱을 진행한 후, 인터프리터가 처음부터 순차적으로 읽어 나가다가, 반복되는 해당 지점에서 JIT Compiler가 다시 개입하여 캐싱된 코드를 꺼내오는 형태일까요? 이 부분이 조금 헷갈리기도 하고, 궁금하기도 합니다. 혹은 어떤 문서를 보면 공부해볼 수 있을까요? (한국어 블로그에는 대부분 인터프리터와 JIT이 같다고 적어둔 경향이 많은 것 같고, 기선님께서 참고에 올려주신 글이나 해외 블로그에서는 둘을 분리해서 말하는 경향이 있는 것 같아서 더 헷갈리는 것 같습니다.) 감사합니다! * 아래 질문과 비슷한 내용이지만, 답변 달아주신 링크에 접속이 안되서 부득이하게 다시 질문 드립니다ㅠ https://www.inflearn.com/questions/99765
안녕하세요 강의 잘 듣고 있습니다. test 코드에서 실행시 @Transactional 실행하면서 Rollback이 계속 되고 있으니까 DB에 저장하지 않는건 알겠는데 실행이 되긴해서 Id값이 계속 올라가더라고요 예전에 예제 다룰때는 따로 Long id 선언해줘서 증감연산자로 올려줬던거 같은데 여기서는 어떻게 올라가는건지 궁금합니다!
이렇게 하면 왜 print들이 다 빈 리스트로 뜨나요? 격자형으로 하면 잘 되던데... import requests import re from bs4 import BeautifulSoup url = "https://search.shopping.naver.com/search/all?frm=NVSCPRO&origQuery=%EA%B3%B1%EC%B0%BD&pagingIndex=1&pagingSize=40&productSet=total&query=%EA%B3%B1%EC%B0%BD&sort=rel×tamp=&viewType=thumb" res = requests.get(url) res.raise_for_status() soup = BeautifulSoup(res.text, "lxml") # 네이버쇼핑 리스트형 items = soup.find_all("li", attrs={"class":re.compile("^basicList_item__0T9JD")}) title = soup.find_all("div", attrs={"class":re.compile("^basicList_title__VfX3c")}) print(items) print(title)
안녕하세요 선생님:) 다름이 아니라 ntile(5) over (order by)에서 rows between unbounded preceding and unbounded following 관련 질문이 있습니다. 혹시 rows between - 을 붙이지 않는다면 값이 드라마틱하게 바뀌는지 궁금하여 질문 드려요.
질문1 char(*complicated_function1())[3] 함수는 char3 포인터를 반환해주는 함수인 것은 알겠습니다. 그런데 이 선언을 해석할때 complicated_function1()이 *포인터를 반환하고 이것이 가리키는 것이 char[3]배열이다. 이렇게 해석하면 맞는 것인가요? 질문2 보통 함수를 선언할때 double average(double , double)와 같이 선언하는데 배열의 포인터를 반환할때는 char(*complicated_function1())[3]와 같이 [3]부분을 마지막에 써 준다는 것으로 이해하면 되는것인가요? 질문3 char(*complicated_function1())[3]은 char(*)[3]함수 안에 입력으로 complicated_function1()함수를 가지는 것인가요? (자주 질문해서 번거로우실텐데 항상 친절히 답변해주셔서 감사합니다)
실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
안녕하세요. 강의를 듣던중 테스트와 관련해서 한가지 궁금한 점이 있어서 질문 남깁니다. 일단 저는 현업에서 @SpringBootTest 를 사용하지 않고 서비스 계층은 목킹을 해서 별도의 스프링 컨텍스트를 사용하지 않고 테스트를 하고 있습니다. 문제는 컨트롤러 계층을 테스트 할 때인데요. @WebMvcTest 로 테스트를 할 때 하나의 컨트롤러를 테스트 할때는 상관이 없지만 통합테스트 형태로 모든 테스트를 실행시에는 @WebMvcTest 가 각각 달린 컨트롤러 테스트마다 별도의 스프링 컨텍스트가 뜨기 때문에 테스트가 느려지는데요. (모든 컨트롤러 테스트가 같은 빈 조합을 사용한다면 같은 컨텍스트를 사용하겠지만 그런 경우는 거의 없기 때문에 각각의 테스트 클래스마다 대부분 스프링 컨텍스트가 새로 뜨는거 같습니다.) 그래서 하나의 추상 컨트롤러 테스트에만 @WebMvcTest 를 달고 여기에 모든 테스트 대상 컨트롤러를 다 추가하고 이 추상 클래스를 상속받아 각각의 테스트 클래스를 사용하고 있습니다. 그래서 전체 테스트 시에는 테스트 속도가 빠라졌지만, 이렇게 하다보니 하나의 컨트롤러 테스트를 할 때도 상속받은 추상클래스에 있는 모든 테스트 컨트롤러가 다 임포트 되어 하나의 컨트롤러 테스트가 너무 느려졌고, 단위 테스트의 의미가 사라지는거 같습니다. 혹시 이와 관련해서 좋은 방법이 없을까 해서 질문을 남깁니다. 그리고 @SpringBootTest 시에는 각각의 테스트 말고 전체를 테스트 할 때 @WebMvcTest 를 할 때처럼 스프링 컨텍스트가 여러개 떠서 테스트 속도가 느려지는 문제가 없을까요? 항상 @SpringBootTest 는 무겁다는 생각 때문에 잘 사용을 안해서 궁금하네요. 그리고 현업에서 @SpringBootTest 를 자주 사용하는지도 궁금합니다. 저는 주로 @WebMvcTest, @DataJpaTest 이정도를 사용하고 도메인 계층은 일반 클래스 처럼, 서비스 계층은 모킹만 해서 스프링 도움없이 테스트를 하고 있습니다.
error: Exception has occurred: PrivilegedIntentsRequired Shard ID None is requesting privileged intents that have not been explicitly enabled in the developer portal. It is recommended to go to https://discord.com/developers/applications/ and explicitly enable the privileged intents within your application's page. If this is not possible, then consider disabling the privileged intents instead. 조언 부탁 드리겠습니다.
안녕하세요. 혼자 고민해봐도 답이 안나와서 문의를 드리게 되었습니다..! 호돌맨님께서는 페이징을 할 때 Pageable 객체를 잘 사용하지 않고, PageSearch 같은 커스텀 객체와 QueryDSL을 이용하여 직접 구현 하여 사용한다고 하셨는데, 혹시 특별한 이유가 있으신지가 너무 궁금합니다.
@GetMapping("/members/new") public String createForm(Model model){ model.addAttribute("memberForm", new MemberForm()); return "members/createMemberForm"; } model.addAttribute를 사용하지 않고 일단 createMemberForm.html로 간 뒤에 form post로 데이터를 넘기면 @PostMapping("/members/new") 컨트롤러가 비즈니스로직을 수행하면 되는 것 아닌가요? createMemberForm이라는 html 에 new MemberForm()으로 객체를 넘길 수 있는 내부적인 원리 가 궁금합니다.
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part2: 게임 수학과 DirectX12
사소한 부분이라 넘어가도 됐을 것 같은데.. currentIndex 를 잘못 이해하고 있는건가 싶어서 여쭤 봅니다. ConstantBuffer::PushData 맴버 함수에서 assert(_currentIndex < _elementSize); currentIndex 와 elementSize를 비교하는데, elementCount랑 비교하는 게 맞는 것 아닌가요? 감사합니다. P.S 설명을 엄청 잘해주셔서 계속 잘 보고 있습니다. 혹시 Part 5랑 6은 언제 나오는건지..?