묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌1)
input 요소 높이값 부여 관련 질문
실전 퍼블리싱 제작 part2의 배경이미지 풀스크린 검색창 강의를 듣고 있습니다.input 요소에 높이값을 부여했더니 첨부한 스샷과 같이 text input과 submit input의 위치가 어긋나는데요, 어떤 이유에서 이러는건지 잘 모르겠습니다.CSS의 다른 속성들은 모두 강의 내용과 동일하게 했고, 두 input 요소에 공통으로 높이값만 추가한 상태입니다. 감사합니다
-
미해결쉽고 빠르게 배우는 Vue 3 기본 (Composition API)
vuejs devtools가 안깔립니다 ㄷ;
이거 버전 문제로 안깔리는건지 모르겠습니다 ㅠㅠ;크롬문제인가요??
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
2depth의 @OneToOne, @ManyToOne N+1문제
Shop, Business, User라는 세 엔티티에 연관관계가 각각 맺어져 있습니다.Shop - Business(연관관계 주인은 Business, OneToOne관계)Business - User(연관관계 주인은 Business, ManyToOne-OneToMany 관계)여기서, 모든 관계는 Lazy로딩으로 설정되어 있고, shop의 business는 null로 존재하는 상황입니다.문제의 상황은 크게 두가지인데요.Shop을 조회할 때 Business Lazy로딩으로 설정되었지만, Business에 대한 조회 쿼리가 발생위 상황에서 Business가 조회되고, 거기에 ManyToOne으로 연관된 User도 조회 쿼리 추가로 발생그래서 1개의 조회를 했는데, 2개가 추가로 나옵니다. 사실 첫 번째 문제는 찾아보니 null값을 Proxy객체가 담을 수 없어서 조회쿼리가 발생하는 것이라고 들었습니다. 그런데 두 번째 쿼리(User의 조회 쿼리)는 왜 발생하는지 도저히 모르겠네요..ㅠ 아래는 Shop, Business, User의 코드입니다. 코틀린으로 작성된 점 양해부탁드립니다.@Entity class Shop( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "shop_id") var id: Long = 0L, ... @OneToOne(mappedBy = "shop", cascade = [CascadeType.ALL], orphanRemoval = true) var business: Business? = null, )@Entity class Business ( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "business_id") var id: Long = 0L, ... @OneToOne(fetch = FetchType.LAZY) @JoinColumn(name = "shop_id") var shop: Shop, @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id") val seller: User )@Entity class User( @Id @GeneratedValue(strategy = GenerationType.IDENTITY) @Column(name = "user_id") var id: Long = 0L, ... @OneToMany(mappedBy = "seller", cascade = [CascadeType.PERSIST], orphanRemoval = true) val businessList: MutableList<Business> = mutableListOf(), )
-
미해결백엔드 개발자 성능 개선 초석 다지기
LRU 알고리즘 질문
memoryStoreEvictionPolicy 에 가장 최근에 액세스된 항목을 먼저 제거하는 LRU 알고리즘을 사용했습니다. 라고 자료에 나와있는데, 제가 알기로 LRU 알고리즘은 가장 오랫동안 사용되지 않은 데이터를 삭제하는 것으로 알고 있습니다. 자료에서 설명하신 의미가 잘 이해가 되지 않아서 질문 드립니다.
-
미해결스프링 시큐리티 OAuth2
ExceptionTranslationFilter에서 this.authenticationEntryPoint.commence(request, response, reason)에 중단점이 걸리지 않습니다ㅠ
안녕하세요.거의 동일한 환경에서 실습 진행 중입니다.스프링부트 2.7.2 버전입니다.리소스 서버 인증 방식으로 해서 루트 경로 접근 시 401 error가 뜨려면 기본 엔트리포인트 객체인 BearerTokenAuthenticationEntryPoint의 commence 함수가 호출되어야 할 텐데요..그 로직을 안 탑니다. 그런데 401 error은 정상적으로 떠요.ExceptionTranslationFilter의 sendStartAuthentication 함수 안에도 중단점을 걸어보고 BearerTokenAuthenticationEntryPoint의 commence 함수에도 중단점을 모두 걸어봤는데도 안 되네요. 미스테리입니다. yml 파일만 작성했으므로 코드 상의 실수도 없을 텐데 말이죠ㅠ+다른 엔트리 포인트에도 전부 중단점을 걸어보았는데 어디에도 걸리지 않네요브랜치 링크입니다!
-
해결됨10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
2-C 질문있습니다.
http://boj.kr/5e6cf7cdc6fc4d2c8d4cbfe08d65038c y,x기준이 아닌 x,y기준으로 풀어보았습니다.오버플로우 조건식도 &&으로 바꾸어보았습니다. 테스트 케이스는 모두 통과했는데 또 오답입니다. 무엇을 잘못하고 있는 걸까요 ㅠ
-
해결됨독하게 시작하는 C 프로그래밍
문자(배)열 복사하는 함수 만들기
질문드립니다. 1.size_t를 하시는 이유는 nsiez처럼 예외처리를 위해서 표시하는 건가요?문제에서 첫번째 매개변수의 메모리 크기가 되도록 구현하기 위해서 사용하는 건가요?해당 for문만(strlen 사용 없이)위에 작성하더라도 구현은 되는 것으로 처음에 작성했습니다. 그렇게 해도 Deepcopy에는 어긋나는게 없는지 궁금합니다.만약 위 사진과 같이 return을 하면 지역 변수 주소 반환 오류에 해당하나요? 여기서 szBufferDst는 주소상수 즉 &szBufferDst[0]이 기준요소 이므로 위에 함수에서 포인터를 붙여서 사용하는 건가요? 약 반나절 동안 고민해서 풀어봤습니다만 속이 시원하게 풀리지 않네요 ㅠㅠ 제가 이해를 잘한건지 궁금해서 오늘은 질문이 조금 많습니다. 양해부탁드려요.🤓
-
미해결홍정모의 따라하며 배우는 C언어
이게 왜 120이랑 5가 나올까요
나름 잘 이해했다고 생각했는데 어떤 부분을 잘못 이해하고 있길래... #define _CRT_SECURE_NO_WARNINGS #include<stdio.h> long loop_factorial(int n); long recursive_factorial(int n); int main() { int num = 5; printf("%d\n", loop_factorial(num)); printf("%d\n", recursive_factorial(num)); } long loop_factorial(int n) { int sum = 1; for (int i = 1; n >= i; n--) sum *= n; return sum; } long recursive_factorial(int n) { int sum = 1; sum *= n; if (n > 0) recursive_factorial(n - 1); return sum; }
-
미해결이득우의 언리얼 프로그래밍 Part2 - 언리얼 게임 프레임웍의 이해
PlayerController의 존재 의미
지금까지 컨트롤에 관련된 강의를 들으면서 PlayerController는 무슨 역할을 하는지 궁금합니다. 제가 2~3강을 듣고 이해한 흐름은 다음과 같습니다. AABCharacterPlayer의 BeginPlay함수에서 맵핑 컨텍스트(IMC)를 설정하는데 PlayerController를 가져와 Subsystem을 선언하는데 쓰인다. (추후엔 SetCharacterControl로 바뀜)Subsystem은 IMC를 운영하는 클래스로 Subsystem에서 InputSystem을 가져와서 DefaultMappingContext을 맵핑 컨텍스트 에셋으로 추가한다. DefaultMappingContext는 AABCharacterPlayer의 CDO에서 주소값으로 가져온다. DefaultMappingContext는 IA_Jump, IA_Move, IA_Look가 등록된 IMC로 이걸 SubSystem에 등록시킨다. 이는 Move또는 Look함수에 있는 AddControllerYawInput 함수를 파보면 PlayerContoller에 Rotation값을 계속 갱신하는 것으로 움직인다는 것을 알 수 있다. 그렇다면 PlayerController는 그냥 GameMode에서 지정만 하고 실질적인 구현은 없는건가요?
-
미해결스프링 DB 1편 - 데이터 접근 핵심 원리
테스트코드에서 transactionManager() 사용이유
안녕하세요@Bean PlatformTransactionManager transactionManager(){ return new DataSourceTransactionManager(dataSource()); }테스트코드에서 이 로직을 제거해도 작동이 잘 되는데요MemberServiceV3_3 클래스 에서@Transactional 을 사용해서트랜잭션 설정하는 로직이 필요없을것 같았는데위 코드를 사용하신 이유가있으실까요?
-
해결됨실무에 바로 적용하는 프런트엔드 테스트 - 1부. 테스트 기초: 단위・통합 테스트
3.4. 타이머 테스트의 마지막 테스트 질문입니다.
it('연이어 호출해도 마지막 호출 기준으로 지정된 타이머 시간이 지난 경우에만 함수가 호출된다.', () => { const spy = vi.fn(); const debouncedFn = debounce(spy, 300); // 최초 호출 debouncedFn(); // 최초 호출 후 0.2초 후 호출 vi.advanceTimersByTime(200); debouncedFn(); // 두번째 호출 후 0.1초 후 호출 vi.advanceTimersByTime(100); debouncedFn(); // 세번째 호출 후 0.2초 후 호출 vi.advanceTimersByTime(200); debouncedFn(); // 👈 4번째 호출 // 네번째 호출 후 0.3초 후 호출 // 최초 호출 후에 함수 호출 간격이 0.3초 이상 -> 다섯번째 호출이 유일 vi.advanceTimersByTime(300); debouncedFn(); // 👈 5번째 호출 // 다섯번을 호출했지만 실제 spy함수는 단 한 번만 호출 expect(spy).toHaveBeenCalledTimes(1); }); 안녕하세요. 새해 복 많이 받으세요 :)다름이 아니라 위 코드에서 4번째 호출 후 바로 뒤, vi.advanceTimersByTime(300);로 인해 0.3초가 흘렀고 이로 인해 expect(spy).toHaveBeenCalledTimes(1); 이 맞다고 나온 것이 아닌지 궁금해서 질문드립니다.강의에서는 4번째 호출이 아닌 5번째 호출로 인해 호출된다고 하셨는데(최초 호출 후에 함수 호출 간격이 0.3초 이상인 경우는 다섯번째 호출이 유일하다고 하신 것 같아요) 5번째 호출 후에는 0.3초가 흘렀다는 가정 (vi.advanceTimersByTime(300);)이 없고 제가 혼자 테스트 해보며 5번째 호출 후에 vi.advanceTimersByTime(300);를 넣어 0.3초가 흘렀다고 가정을 하니 호출이 2번 되었다고 떠서요.제가 debounce를 헷갈려 했는데 제가 아직 잘 이해하지 못한 부분이 있는 건지 아니면 실제로 잘못 설명된 부분이 있는 건지 모르겠어서 질문 드립니다. 감사합니다.
-
해결됨그림으로 쉽게 배우는 운영체제
질문
복습을 하는 중에 의문점이 생겨서 조심스럽게 질문 남겨드립니다. 제가 찾아보기로는 0번 프로세스는 윈도우 기준 탐색기, 리눅스 기준 shell로 알고 있습니다. 그런데 강의 설명중에 자식 프로세스가 종료되어 exit status값을 부모 프로세스에게 전달하고 자식프로세스를 종료시키고 부모프로세스도 종료된다고 말씀하셨는데 그러면 리눅스 환경에서 shell의 자식 프로세스인 A라는 프로세스가 실행되다가 종료되고 exit status값을 반환하고 종료가 되었다고 가정하면 shell도 조만간 종료가 되어야 하는데 실제로는 그렇지 않습니다. 혹시 이 부분에 대해서 알려주실 수 있으실까요?
-
해결됨스프링 DB 1편 - 데이터 접근 핵심 원리
h2 데이터베이스 관련
안녕하세요 h2 데이터베이스에 대한 질문이 있습니다. h2 데이터베이스는 "연결" 누르고 sql 실행할 수 있는 창에 들어왔다면 이게 데이터베이스 서버를 띄운건가요?그럼 이 데이터베이스 창을 닫으면 자동으로 데이터베이스 서버를 다운시킨건가요? 그러니까 종료시킨건가요?그럼 spring 실행을 시킬때 항상 이 h2 데이터베이스에 연결해서 접속한다음에 실행해야하는건가요?그리고 현재는 저 한명만이 h2로 테스트하는거니까 그냥 계속 Embedded mode로 접속해도 되는거죠?감사합니다.
-
해결됨2주만에 통과하는 알고리즘 코딩테스트 (2024년)
1강 4번 예시 답안에 대한 질문
문제 4. 숫자야구 ( # 2503 )A 는 3 자리 숫자로 된 정답을 하나 정합니다.B 는 3 자리 숫자를 제시해서 A 가 생각하고 있는 정답을 맞히려고 합니다.B 가 말한 숫자가 정답에 포함되어 있다면 1 Ball 입니다.B 가 말한 숫자가 정답에 포함되어 있고, 자리도 동일하다면 1 Strike 입니다.다른 숫자로 이루어진 세 자리수Strike 와 Ball 의 결과를 보고, 가능한 숫자를 계산하는 프로그램을 작성하세요.4123 1 1 356 1 0 327 2 0 489 0 1 2백준 사이트 들어가보니 가능한 숫자 324,328 이렇게 두 개이어서 결괏값이 2라고 나와있는데,329를 생각하고 있어도 위와 같은 s,b 가 가능한 것이 아닌가요?
-
해결됨[C#/.NET 8.0]어서와, Blazor Server는 처음이지?
새로운 테이블 추가방법?
새로운 테이블을 Model에 추가할 경우 어떤 방법이 있을까요?
-
미해결
스프링부트 테스트에서 @AuthenticationPrincipal UserDetails userDetails 테스트
컨트롤러 테스트에서 @AuthenticationPrincipal UserDetails userDetails에 해당하는 부분을 테스트하려고 하는데 계속 실패해서 질문드립니다 ㅠㅠ // 회원 탈퇴 @DeleteMapping("/{memberId}") @Tag(name = "member") @Operation(summary = "삭제 API", description = "유저를 삭제하는 API입니다.") @PreAuthorize("hasRole('ROLE_USER') or hasRole('ROLE_ADMIN')") public String remove(@PathVariable Long memberId, @AuthenticationPrincipal UserDetails userDetails) { try { String email = userDetails.getUsername(); log.info("email : " + email); String remove = memberService.removeUser(memberId, email); return remove; } catch (Exception e) { return "회원탈퇴 실패했습니다. :" + e.getMessage(); } }이런식으로 프론트가 헤더에 accessToken을 보내주면 검증을 한 후 @AuthenticationPrincipal UserDetails userDetails이거로 정보를 가져와서 권한과 해당 유저인지 체크 후 처리하는 로직을 구성하고 있는데 이거를 테스트할 때 막혔습니다.일단 구글에서 검색해서 나온 방법들을 다 사용해도 실패가 뜨네요.↓구글에서 나온 방법 적용@Retention(RetentionPolicy.RUNTIME) @WithSecurityContext(factory = WithAuthUserSecurityContextFactory.class) public @interface WithAuthUser { String user() default "test@test.com"; String role() default "USER"; }public class WithAuthUserSecurityContextFactory implements WithSecurityContextFactory<WithAuthUser> { @Override public SecurityContext createSecurityContext(WithAuthUser annotation) { String email = annotation.user(); String role = annotation.role(); MemberEntity member = MemberEntity.builder() .memberId(1L) .email(email) .memberPw("dudtjq8990!") .memberName("테스터") .memberRole(Role.valueOf(role)) .nickName("테스터") .memberPoint(0) .provider(null) .providerId(null) .address(AddressEntity.builder() .memberAddr("서울시 강남구") .memberZipCode("103-332") .memberAddrDetail("102") .build()) .build(); UserDetails userDetails = new PrincipalDetails(member); Authentication authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities()); SecurityContext context = SecurityContextHolder.createEmptyContext(); context.setAuthentication(authentication); return context; } } @Test @WithAuthUser void remove() throws Exception { Long id = 1L; String email = "test@test.com"; mockMvc.perform(delete("/api/v1/users/{memberId}", id) .contentType(MediaType.APPLICATION_JSON).accept(MediaType.APPLICATION_JSON)) .andExpect(status().isOk()); verify(memberService).removeUser(id, email); } org.springframework.web.util.NestedServletException: Request processing failed; nested exception is java.lang.IllegalStateException: No primary or single unique constructor found for interface org.springframework.security.core.userdetails.UserDetails 이런 오류가 발생합니다. 찾아보니까 UserDetails를 구현한 클래스 PrincipalDetails에 생성자가 없어서 나오는 오류라고 하는데 문제는 해당 클래스에 기본 생성자가 있다는 것입니다. 생성자가 있는데 계속 없다고 에러가 발생합니다. @ㅇNoArgsConstructorㅇ
-
미해결스프링 핵심 원리 - 기본편
NoUniqueBeanDefinitionException
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]AutoAppConfig와 AppConfig의 빈을 중복 등록하면 충돌이 일어나기 때문에@ComponentScan( basePackages = "hello.core", excludeFilters = @ComponentScan.Filter(type = FilterType.ANNOTATION, classes = Configuration.class) )이런식으로 필터를 씌워 막아둔 것으로 압니다.그런데 CoreApplicationTests를 실행하였을 때, NoUniqueBeanDefinitionException이 터지고 이를 해결하기 위해 AppConfig의 @Configuration 어노테이션에 주석을 걸어두니 정상적으로 테스트가 통과됩니다. 왜 이런건가요?
-
미해결백엔드 개발자 성능 개선 초석 다지기
모니터링 관련 질문
스카우터를 사용하면 트랜잭션 마다, 소요시간을 볼 수 있고, 로그도 확인이 가능한 것이 굉장히 매력적으로 느껴졌는데요실무에서도 많이 사용하는 툴 인가요? AWS 환경에서도 한 번 적용을 해보고 싶은데, AWS와도 같이 사용하는 편인가요?그리고 서버가 여러 대 있는, 스케일 아웃 환경에서는 어떤 식으로 사용되나요? 인스턴스마다 스카우터를 설치를 하고, 모니터링을 하는건가요?
-
해결됨코딩테스트 [ ALL IN ONE ]
프로그래머스에서는 어떤 문제를 풀어야 하나요
레벨1은 그냥 풀겠는데 레벨2부터는 난이도 책정이 백준에 비해 넓은 것 같더라 구요 그래서 정답률 몇 짜리 정도 되는 걸 풀어야 하는지 알 수 있을까요
-
미해결장고 설계철학으로 시작하는 파이썬 장고 입문
accounts/url 질의
화면과같이 include 부분 강좌와 다르게 저절로 세팅이 되고 서버 실행하면 계속 오류가나는데 어떻게해야하나요ㅜㅜ