묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
type of triangle 문제
type of triangle 문제에서 정삼각형이 아닌 삼각형이 안되는 조건 먼저 작성했을 때 왜 작동이 안되는 지 궁금합니다ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
clearStore에 빨간 줄 생성
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]clearStore에 왜 빨간 줄이 생기는건가요?package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemoryMemberRepository; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Assertions; import org.junit.jupiter.api.Test; import static org.assertj.core.api.Assertions.assertThat; import static org.assertj.core.api.Assertions.fail; import static org.junit.jupiter.api.Assertions.assertThrows; class MemberServiceTest { MemberService memberService = new MemberService(); MemoryMemberRepository memberRepository = new MemoryMemberRepository(); @AfterEach public void afterEach(){ memberRepository.clearStore(); } @Test void 회원가입() { //given Member member = new Member(); member.setName("hello"); //when Long saveId = memberService.join(member); //then Member findMember = memberService.findOne(saveId).get(); assertThat(member.getName()).isEqualTo(findMember.getName()); } @Test public void 중복_회원_예외() { // given Member member1 = new Member(); member1.setName("spring"); Member member2 = new Member(); member2.setName("spring"); // when memberService.join(member1); IllegalStateException e = assertThrows(IllegalStateException.class, () -> memberService.join(member2)); assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다"); /*memberService.join(member1); try{ memberService.join(member2); fail("실패"); } catch (IllegalStateException e){ assertThat(e.getMessage()).isEqualTo("이미 존재하는 회원입니다.123123"); }*/ // then } @Test void findOne() { } @Test void testJoin() { } @Test void testFindMembers() { } @Test void testFindOne() { } }
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
JWT 토큰 유효성 검사
안녕하세요! 좋은 강의 제공해주셔서 감사합니다. 다름이 아니라, 수업에서 JWT 토큰 유효성 로직을 api gateway service에 구현했는데, user-service가 아닌 gateway service에 구현한 이유가 있을까요? api gateway에 토큰 유효성 로직을 구현하게 되면, 만료된 토큰으로 api gateway를 거치지 않고 바로 user-service에 요청하는 경우, 토큰 유효성 검사를 하지 않아서 문제가 발생할 수 있지 않나요?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
스태킹 모델의 메타모델 매개변수에 따른 예측값 변화
안녕하십니까.얼마전에 스태킹 알고리즘 문제로 좋은 답변을 받고 해결하였습니다. 추가적인 질문이 있어 글 남깁니다. 스태킹 모델의 메타모델로 Ridge회귀를 사용하였는데 Alpha 값의 변화에 따라 예측 값의 변화가 전혀 없어서 왜 변화가 없는지 이해가 안되어 글 남깁니다. Alpha 값을 0.001, 0.01, 0.1, 1등으로 설정하여 예측을 수행했는데 예측 값의 변화가 전혀 없었습니다.
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
스레드 강의에서 코드를 동일하게 작성했는데 결과가 다릅니다.
강의에서는 청소가 번갈아가면서 나오는데 여러번 실행해도 한 번도 번갈아가면서 나오지 않습니다..ㅠ-- 사장 청소 시작 ---- 직원 청소 시작 (Thread) --(사장)1 번방 청소 중(사장)3 번방 청소 중(사장)5 번방 청소 중(사장)7 번방 청소 중(사장)9 번방 청소 중-- 사장 청소 끝 --(직원)2 번방 청소 중 (Thread)(직원)4 번방 청소 중 (Thread)(직원)6 번방 청소 중 (Thread)(직원)8 번방 청소 중 (Thread)(직원)10 번방 청소 중 (Thread)-- 직원 청소 끝 (Thread) -- -- 사장 청소 시작 ---- 직원 청소 시작 (Thread) --(직원)2 번방 청소 중 (Thread)(직원)4 번방 청소 중 (Thread)(직원)6 번방 청소 중 (Thread)(직원)8 번방 청소 중 (Thread)(직원)10 번방 청소 중 (Thread)-- 직원 청소 끝 (Thread) --(사장)1 번방 청소 중(사장)3 번방 청소 중(사장)5 번방 청소 중(사장)7 번방 청소 중(사장)9 번방 청소 중-- 사장 청소 끝 -- 이 두가지만 나오는데다른 이유가 있을까요..?
-
해결됨모두의 깃 & 깃허브
pull request 에 대해서 질문드립니다.
강사님, 강의 들으면서 열심히 따라하고 있는데요,다른 사용자가 요청한 풀리퀘스트를 소유자가 처리하려고 하니까아래처럼 이 브랜치에서는 충돌을 해결해야한다는 메세지가 뜨고 버튼을 누를수가 없는데...이럴땐 어떻게 해야 하는건지요?10개의 요청이 들어온게 확인이 되고 들어가서 파일도 확인이 되는데 머지하려고 하니까 버튼이 뜨지 않고 아래처럼 에러메세지가 뜨는 경우는 무슨 문제가 있는건지요?
-
해결됨구글 애널리틱스 GA4 완전 정복 실무 마스터 클래스
페이지 제목 및 화면 이름별 조회수 오류
강의 내용 그대로 했는데화면 이름별로 조회수가 나오는게 아니라티스토리 계정으로 한꺼번에 합쳐서 나오는 것 같아요어떻게 해야 하나요
-
해결됨자바 ORM 표준 JPA 프로그래밍 - 기본편
다대다 데이터 조회 질문입니다.
강사님 강의를 보고 최근에 프로젝트를 하다 궁금한게 생겨 질문 남기게 되었습니다. Product <-> Category Entity 다대다 매핑을 위해product(OneToMany) <-> product_category(ManyToOne) <-> category(OneToMany)위와 같은 테이블로 매핑한 상태이고 join 상속 전략으로 district_category 테이블도 생성 하였습니다.district_category를 쿼리 파라미터로 받고 해당 district_category를 갖고 있는 상품들을 검색하고 페이징을 하는 로직을 짠다고 했을때 두가지 방법이 생각났는데 둘 중 어느게 더 적합한지 모르겠습니다 검색어를 바탕으로 product_category에서 Product를 EntityGraph로 같이 찾은 후에 찾은 ProductCategory.getproduct() 와 같은 방식SearchServiceCategory category = districtCategoryRepository.findByDistrictEnum(districtEnum) .orElseThrow(() -> new ProductException(ProductExceptionType.CATEGORY_NOT_FOUND)); return new ProductCategoryToProductPage(productCategoryRepository.findAllByCategory(pageable, category));ProductCategoryRepository@EntityGraph(attributePaths = "product") Page<ProductCategory> findAllByCategory(Pageable pageable, Category category);ProductCategoryToProduct public ProductCategoryToProductPage(Page<ProductCategory> page) { this.content.addAll(page.getContent().stream() .map(ProductCategory::getProduct) .map(ProductListGetResponseDTO::new) .collect(toList())); this.totalPages = page.getTotalPages(); this.totalElements = page.getTotalElements(); this.pageNumber = page.getNumber() + 1; this.size = page.getSize(); } 발생 쿼리문selectdistrictca0_.category_id as category2_1_,districtca0_1_.parent_id as parent_i3_1_,districtca0_.district_enum as district1_2_fromdistrict_category districtca0_inner joincategory districtca0_1_on districtca0_.category_id=districtca0_1_.category_idwheredistrictca0_.district_enum=?selectproductcat0_.product_category_id as product_1_8_0_,product1_.product_id as product_1_7_1_,productcat0_.category_id as category2_8_0_,productcat0_.product_id as product_3_8_0_,product1_.created_date as created_2_7_1_,product1_.content_detail as content_3_7_1_,product1_.product_content as product_4_7_1_,product1_.product_name as product_5_7_1_,product1_.product_price as product_6_7_1_,product1_.product_status as product_7_7_1_,product1_.product_thumbnail as product_8_7_1_fromproduct_category productcat0_left outer joinproduct product1_on productcat0_.product_id=product1_.product_idwhereproductcat0_.category_id=? limit ?selectcount(productcat0_.product_category_id) as col_0_0_fromproduct_category productcat0_whereproductcat0_.category_id=? 검색어를 바탕으로 product에서 직접 찾기 (데이터 뻥튀기의 문제는 쿼리dsl 이용 productId로 groupBy로 해결) 글 쓰고 생각해보니 A카테고리는 B라는 상품 안에서는 하나밖에 있을 수가 없으니 굳이 groupBy를 안써도 될거 같네요SearchService Category category = districtCategoryRepository.findByDistrictEnum(districtEnum) .orElseThrow(() -> new ProductException(ProductExceptionType.CATEGORY_NOT_FOUND)); return productRepository.findAllByCategory(pageable, category);ProductRepository @Override public Page<Product> findAllByCategory(Pageable pageable, Category category) { List<Product> content = queryFactory.selectFrom(product) .join(product.productCategories, productCategory) .where(productCategory.category.categoryId.eq(category.getCategoryId())) .groupBy(product.productId) .offset(pageable.getOffset()) .limit(pageable.getPageSize()) .fetch(); Long total = queryFactory .select(Wildcard.count) .from(product) .join(product.productCategories, productCategory) .where(productCategory.category.categoryId.eq(category.getCategoryId())) .fetchOne(); return new PageImpl<>(content, pageable, total); } 발생 쿼리문selectdistrictca0_.category_id as category2_1_,districtca0_1_.parent_id as parent_i3_1_,districtca0_.district_enum as district1_2_fromdistrict_category districtca0_inner joincategory districtca0_1_on districtca0_.category_id=districtca0_1_.category_idwheredistrictca0_.district_enum=?selectproduct0_.product_id as product_1_7_,product0_.created_date as created_2_7_,product0_.content_detail as content_3_7_,product0_.product_content as product_4_7_,product0_.product_name as product_5_7_,product0_.product_price as product_6_7_,product0_.product_status as product_7_7_,product0_.product_thumbnail as product_8_7_fromproduct product0_inner joinproduct_category productcat1_on product0_.product_id=productcat1_.product_idwhereproductcat1_.category_id=?group byproduct0_.product_id limit ?selectcount(*) as col_0_0_fromproduct product0_inner joinproduct_category productcat1_on product0_.product_id=productcat1_.product_idwhereproductcat1_.category_id=?
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
gist 404 에러로 접근 불가.. 일전에 계정은 요청한상태입니다.
안녕하세요. 일전에 gist 등록요청하여 확인 메일까지 받았으나, 해당 레파지토리 접근이 안되고 있습니다.404 에러가 발생합니다..제가 깃허브를 잘몰라서 그런걸수도 있으나,혹시 몰라 확인요청드립니다.한번 더 등록 확인 부탁드립니다.인프런 아이디 : tintinsky6@gmail.com( advanced 요청페이지 계정 검색하시면 찾아보실수 있습니다. )
-
미해결자바 코딩테스트 - it 대기업 유제
이번 문제의 반례 질문 드립니다.
안녕하세요, 이직 준비생 입니다.강의에서 나온 예시는 2, 3, 7, 1, 2, 1, 5 였는데만약에 문제의 예시가 2, 3, 7, 1, 999, 1, 5 라면 말씀하신 눈앞에 놓인 탐욕법으로는 999까지 가지 않고 기존처럼 2, 3, 7, 5를 고를텐데제가 생각한게 맞을가요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
실무에서는 스크립트를 다듬는다고 하셨는데 지금 예제에서는 어떤 점을 다듬어야 할까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 영한님, 강의 잘 듣고 있습니다!강의에서 JPA가 생성해준 테이블을 그대로 쓰면 안되고, JPA가 쓴 DDL을 다듬어서 쓴다고 하셨는데생각해보니 저는 토이프로젝트에서 항상 JPA가 만들어주는 그대로 썼던 것 같습니다.그렇다면 지금 예제에서는 어떤 점을 보완하는게 필요할까요?감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
안녕하세요 @Transactional 관련해서 질문이 있어요!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요. 좋은 강의 잘 보고 있습니다. 감사합니다다름이 아니라 선생님 강의 jpa로드맵과 스프링 완전 정복을 완강하고 토이 프로젝트 전에 리마인드 할겸 다시 보고 있는데요~지금 선생님께서는 서비스단 클래스 영역에서 트랜잭션을 걸어주고 계시는데 그럼 그 하위에 있는 로직 전체가 같은 커넥션을 사용하고 반환하는데 지금 이 예제에서 그 이점이 있을까요!?이유가 따로 있으시다면 궁금합니다. 저는 지금 서비스 클래스에서 로직 단위별로 트랜잭션을 걸어주고 있었는데 갑작스럽게 의문점이 생겨 질문드려요!~
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
도메인 모델과 테이블 설계 시 사용한 UML도구가 뭔지 궁금합니다!
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]강의 자료에서 도메인 모델, 엔티티 설계, 테이블 설계 다이어그램을 어떤 도구를 통해 작성하셨는지 궁금합니다!
-
해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스
nestjs, graphql 강의중 resolver에서 service 클래스 메서드에 접근을 못 하는듯 합니다.(인젝트가 제대로 안된 듯 합니다.)
안녕하세요. 강사님."Nest.js - GraphQL 연결" 강의중 제목과 같이 resolver에서 service의 메서드로 접근을 못하는듯 합니다. 그럼 인젝트가 안된거 아닌가요? 해결책 문의 드립니다. "yarn start:dev" 오류없이 실행은 됩니다.app.module.ts, boards.module.ts, boards.resolver.ts boards.service.ts 코드 입니다.// app.module.ts import { ApolloDriver, ApolloDriverConfig } from '@nestjs/apollo'; import { Module } from '@nestjs/common'; import { GraphQLModule } from '@nestjs/graphql'; import { BoardModule } from './apis/boards/boards.module'; @Module({ imports: [ BoardModule, GraphQLModule.forRoot<ApolloDriverConfig>({ driver: ApolloDriver, autoSchemaFile: 'src/commons/graphql/schema.gql', }), ], // controllers: [AppController], // providers: [AppService], }) export class AppModule {}// boards.module.ts import { Module } from '@nestjs/common'; import { BoardResolver } from './boards.resolver'; import { BoardService } from './boards.service'; @Module({ // imports: [], // controllers: [], providers: [BoardResolver, BoardService], }) export class BoardModule {}// boards.resolver.ts import { Query, Resolver } from '@nestjs/graphql'; import { BoardService } from './boards.service'; @Resolver() export class BoardResolver { constructor(private readonly boardService: BoardService) {} @Query(() => String) getString(): string { return this.boardService.serviceString(); } @Query(() => Number) getNumber(): number { return this.boardService.serviceNumber(); } @Query(() => Boolean) getOnlyResolver(): boolean { return true; } }// boards.service.ts import { Injectable } from '@nestjs/common'; @Injectable() export class BoardService { serviceString() { return 'Hello World!'; } serviceNumber(): number { return 100; } }"getOnlyResolver" 쿼리는 정상적입니다. Service까지 가지 않도록 테스트 했습니다."getString" 쿼리는 Service의 "serviceString()" 메서드로 접근 합니다. (오류 발생)"getNumber" 쿼리는 Service의 "serviceNumber()" 메서드로 접근 합니다. (오류 발생)"package.json" 정보 입니다.{ "name": "aaa", "version": "0.0.1", "description": "", "author": "", "private": true, "license": "UNLICENSED", "scripts": { "build": "nest build", "format": "prettier --write \"src/**/*.ts\" \"test/**/*.ts\"", "start": "nest start", "start:dev": "nest start --watch", "start:debug": "nest start --debug --watch", "start:prod": "node dist/main", "lint": "eslint \"{src,apps,libs,test}/**/*.ts\" --fix", "test": "jest", "test:watch": "jest --watch", "test:cov": "jest --coverage", "test:debug": "node --inspect-brk -r tsconfig-paths/register -r ts-node/register node_modules/.bin/jest --runInBand", "test:e2e": "jest --config ./test/jest-e2e.json" }, "dependencies": { "@apollo/server": "^4.5.0", "@nestjs/apollo": "^11.0.4", "@nestjs/common": "^9.0.0", "@nestjs/core": "^9.0.0", "@nestjs/graphql": "^11.0.4", "@nestjs/platform-express": "^9.0.0", "graphql": "^16.6.0", "reflect-metadata": "^0.1.13", "rxjs": "^7.2.0" }, "devDependencies": { "@nestjs/cli": "^9.0.0", "@nestjs/schematics": "^9.0.0", "@nestjs/testing": "^9.0.0", "@types/express": "^4.17.13", "@types/jest": "29.2.4", "@types/node": "18.11.18", "@types/supertest": "^2.0.11", "@typescript-eslint/eslint-plugin": "^5.0.0", "@typescript-eslint/parser": "^5.0.0", "eslint": "^8.0.1", "eslint-config-prettier": "^8.3.0", "eslint-plugin-prettier": "^4.0.0", "jest": "29.3.1", "prettier": "^2.3.2", "source-map-support": "^0.5.20", "supertest": "^6.1.3", "ts-jest": "29.0.3", "ts-loader": "^9.2.3", "ts-node": "^10.0.0", "tsconfig-paths": "4.1.1", "typescript": "^4.7.4" } } 감사합니다.
-
미해결파이썬 셀레니움 고급편 (python selenium - 크롤링, 크롤러)
undetected_chromedriver 사용시 widow-size 가 적용이 안됩니다.
5. bot detection 피하기 고급편에 나온 소스를 그대로 적용하였습니다.다른 부분은 문제가 없고, 에러 또한 없습니다.그런데 window-size 관련된 argument 값이 적용이 안됩니다.항상 큰 사이즈의 윈도우만 오픈되고 있습니다.python 버젼은 3.11.0 입니다.버젼을 다운그레이드 해야 할까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
타격시 소리를 추가한다고 한다면
안녕하세요. 만약에 타격시 소리를 추가한다고 한다면PlayerController 클래스의 OnHitEvent 메서드에서 Managers.Sound.Play를 호출해서 재생시키면 될것 같아요. 근데 또 특정 UI 가 켜지고 꺼질때나 플레이어가 죽을때 등등 많은 부분에서 사운드를 재생하는게 필요할텐데 그때마다 Managers를 호출해서 Sound를 재생시키면 안될것 같다는 느낌이 왠지 들어요. 너무 여러곳에서 Managers를 호출하면 코드가 꼬이지 않을까 하는 걱정이요. 그래서 InputManager를 구현한것 처럼 Action을 사용해서 다른곳에서 Sound 재생을 등록시키는게 더 나은 방법일까요..?GameScene이라는 곳에서 여러 Manager들을 호출해서 게임에 관련된 작업을 하는건 합리적으로 느껴지는데 다른곳에서도 Managers를 계속 호출하는게 괜찮은지 여쭤봅니당
-
해결됨스프링 배치
트랜잭션 경계 와 트랜잭션 begin에 대한 구분
안녕하세요 정수원 선생님 질문이 2개 있습니다.1) "Chunk Process 아키텍처" 첫번째 사진 설명부분 4:26쯤에 트랜잭션 경계와 실제 트랜잭션 begin을 구분하셨는데 이것이 무슨 차이인가요?아니면 어떻게 받아들여야하는것인가요? 2) 또한 코드를 디버깅 걸어서 따라가보니 TaskletStep#doInChunkContext 에서 new TransactionTemplate.execute() 에서 매 chunk마다 트랜잭션이 시작되는것은 확인하였는데 그림에 나온것 처럼 SImpleChunkProvider 다음과정에서 Transaction 시작하는곳을 찾지 못하겠습니다...
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
에러가 나서 해결은 하긴했는데 이유가 궁금해요(서버구동시 생성자 매개변수 bean 2개주입으로 인한 에러)
안녕하세요.제가 aop를 프로젝트 다 만들고나서 서버를 구동하니 에러가 좀나더라구요.우선 상황은MemoryMemberRepository 클래스파일에 @Repository 어노테이션이 추가되어 있는 상태였으며, TimeTraceAop 클래스 생성 후 강의보면서 강사님의 코드를 입력해서 추가, 이후 서버를 구동하니 에러가 나더라구요.아래는 에러메세지 입니다.Parameter 0 of constructor in hello.hellospring.SpringConfig required a single bean, but 2 were found:- memoryMemberRepository: defined in file [(생략)\hello\hellospring\repository\MemoryMemberRepository.class]- springDataJpaMemberRepository: defined in hello.hellospring.repository.SpringDataJpaMemberRepository defined in @EnableJpaRepositories declared on JpaRepositoriesRegistrar.EnableJpaRepositoriesConfiguration 해당 에러문을 보고 MemoryMemberRepository클래서파일에 추가되어있는 @Repository 어노테이션을 제거 후 서버를 재구동하니 에러없이 정상적으로 프로젝트가 잘 돌아갔습니다. 제 SpringConfig파일에는 @Configurationpublic class SpringConfig {/** 2. 스프링 데이터 JPA 사용후 추가한 부분*/private final MemberRepository memberRepository; public SpringConfig(MemberRepository memberRepository) {this.memberRepository = memberRepository;} @Beanpublic MemberService memberService() {return new MemberService(memberRepository);}}이렇게만 코딩되어 있는데요.여기서 궁금한게 왜 SpringConfig생성자가 호출될때 매개변수로 2개가 들어간건지가 궁금합니다.원래는 SpringDataJpaMemberRepository 하나만 들어가야 하는거 같은데 어떻게 SpringDataJpaMemberRepository와 MemoryMemberRepository가 동시에 생성자의 매개변수로 들어가려 했는지.. @Repository가 어떤 영향을 주는걸까요?이전 jpa 강의를 들을때는 MemberRepository로 사용할 매개변수를 직접설정했는데 그 코드도 주석처리가 되어있습니다. 그래서 이해가 되지 않아 게시판이 질문남깁니다
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
{{{{index}}}} 의미가 궁금합니다.
초보라 궁금해서...ㅠㅠ[응용] 엑셀문서 값을 필드에 입력하기에서...hwp.PutFieldText(f"{field}{{{{{index}}}}}", value[idx]){{{{{index}}}}}에 대해서 설명해 주실 수 있을런지... {field}는 필드명을 가져오는건 알겠는데..{{{{index}}}}는 추정컨데 동일필드가 여러개 있을경우 페이지 기준으로 순서를 나타내는거 같은데..{}를 5중으로 적는게...원래 저렇게 그냥 쓰는건지...다른 어떤 의미가 있는건지요?
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
다대일 관계에서 일을 기준으로 페이징을 하려면 어떻게 해야하나요?
일대다 컬렉션 페치조인과 페이징은 기본적으로 양방향을 전제하고, 일을 기준으로 페이징을 하기 때문에 Batch Size 를 이용하는 것은 이해했습니다. Q. 그렇다면 컬렉션이 생기지 않는 다대일 단방향 매핑 구조에서 일 을 기준으로 페이징하려면 어떻게 해야할지 궁금합니다. 예를 들어 게시글(1) : 댓글 (N) 이고 댓글 -> 게시글 방향으로 다대일 단방향 매핑이라면, 게시글을 기준으로 페이징하고 싶을 때 어떻게 하면 될까요? 항상 영한님과 서포터님들께 감사드립니닷!!🙇♂️