묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 데이터 JPA
새로운 엔티티가 기본 키 직접 할당 전략을 사용하는 경우 변경 감지로 새로운 엔티티를 추가할 때 merge가 발생하는지?
새로운 엔티티를 구별하는 방법에 대해 강의를 듣다가 기존 영속성 엔티티에 비영속성 엔티티를 추가하고 CascadeType.ALL을 통해 비영속성 엔티티를 저장할 때비영속성 엔티티가 기본 키를 직접 할당하는 전략을 사용하면 의도하지 않은 merge가 발생할 것 같아서 테스트를 진행하고 있습니다. 추가적으로 .. Team 엔티티를 저장한 이후 새로운 Member 엔티티를 추가하는 과정에서 @Rollback(value=false)를 주지않으면 Member 엔티티의 insert문이 발생하지 않아서 이 부분도 추가적으로 궁금합니다. @ToString @Getter @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Team { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @OneToMany(mappedBy = "team", cascade = CascadeType.ALL) private List<Member> members = new ArrayList<>(); private String name; public void addMember(Member member) { member.setTeam(this); members.add(member); } @Builder private Team(String name) { this.name = name; } } @ToString(exclude = "team") @Getter @Setter @Entity @NoArgsConstructor(access = AccessLevel.PROTECTED) public class Member extends BaseEntity{ @Id private Long id; private String username; private Integer age; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "team_id") private Team team; @Builder private Member(Long id,String username, Integer age, Team team) { this.id = id; this.username = username; this.age = age; this.team = team; } } 테스트 코드는 다음과 같습니다. @SpringBootTest class TeamJpaRepositoryTest { @Autowired private TeamJpaRepository teamJpaRepository; @Autowired private EntityManager em; @BeforeEach void beforeEach() { Team aTeam = Team.builder() .name("A Team") .build(); teamJpaRepository.save(aTeam); em.clear(); } @Test @Transactional public void saveMember() throws Exception { //given Member userA = Member.builder() .id(10L) .age(10) .username("user A") .build(); //when Team savedTeam = teamJpaRepository.findByName("A Team"); savedTeam.addMember(userA); //then } } 왜 savedTeam에 대해 변경 감지에 대해 @Rollback(value=fasle) 어노테이션이 없으면 Member insert문이 발생하지 않는지 궁금합니다.스프링 데이터 JPA의 쿼리 메소드의 구현체가 @Transaction(readOnly = true)라고 해도 최초 트랜잭션이 readOnly 옵션이 false이기 때문에 트랜잭션 전파의 문제는 아닌 것 같아서요.@Rollback 옵션을 주었을 때 로그는 다음과 같습니다. 처음에 궁금했던 Team 엔티티에 새로운 Member 엔티티를 직접 기본 키를 할당하여 저장할 때해당 로그를 보면 merge가 발생하지 않는 것 같습니다.Persistable 인터페이스의 isNew 메소드를 오버 라이드하지 않았는데 말이죠.이 부분에 대해서 궁금합니다.plugins { id 'java' id 'org.springframework.boot' version '2.7.5' id 'io.spring.dependency-management' version '1.0.15.RELEASE' }
-
미해결10분만에 만드는 github blog for Pythonista
블로그 생성
안녕하세요.[22년 추가] PR이 안올라오는 error 관련 강의를 시청하면서 블로그 생성 과정을 따라했습니다.그런데 Action, CI 목록의 Merge pull request #1에서 jekyll build가 실패합니다.어떻게 해결해야 하나요.. 방법을 모르겠습니다.
-
미해결[왕초보편] 앱 8개를 만들면서 배우는 안드로이드 코틀린(Android Kotlin)
파이어베이스 리얼타임 데이터베이스 저장하기 부분에서
안녕하세요?파이어베이스 리얼타임 데이터베이스 저장하기 부분에서 저장하기 버튼을 누르면 날짜와 메모를 리얼타임 데이터 베이스에 저장하도록 하기 위해 DataModel을 따로 만드셨는데 이 부분이 뷰바인딩 개념과 비슷한 부분으로 볼 수 있을까요??
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
endl 과 \n 속도 차이 확인 중 질문
const int MILLS = 1000000;int main(){ DWORD dwStart1 = GetTickCount(); for (int i = 0; i <= MILLS; ++i) cout << "h" << '\n'; DWORD dwEnd1 = GetTickCount(); DWORD dwStart2 = GetTickCount(); for (int i = 0; i <= MILLS; ++i) cout << "h\n"; DWORD dwEnd2 = GetTickCount(); DWORD dwStart3 = GetTickCount(); for (int i = 0; i <= MILLS; ++i) cout << "h" << endl; DWORD dwEnd3 = GetTickCount(); cout << dwStart1 << ' ' << dwEnd1 << ' ' << dwEnd1 - dwStart1 << '\n'; cout << dwStart2 << ' ' << dwEnd2 << ' ' << dwEnd2 - dwStart2 << '\n'; cout << dwStart3 << ' ' << dwEnd3 << ' ' << dwEnd3 - dwStart3 << '\n';} 갑자기 궁금해서 endl 이랑 \n 속도 차이 확인해보고자 어셈블리어 확인하고 결과 값도 확인했습니다. 2번 결과가 왜 빠른지는 어셈블리어 확인하면서 << 연산자 때문이라는 것도 알았습니다. 최종적으로 1번과 3번이 큰 차이는 안나지만 대체로 1번이 더 느리던데 왜 그런가요? 검색해본 결과는 flush 차이로 \n이 더 빠르다고 하지만 반대의 결과가 나와서 궁금합니다. (어셈블리어로 확인해보려 했으나 ??로 채워진 부분도 있어 알아보기 어렵고 같은 for문에서도 어셈블리어가 다르게 적용 돼 있습니다.
-
미해결피그마(Figma)를 활용한 UI디자인 입문부터 실전까지 A to Z
아이폰 14 프로 프레임 컬럼 수
안녕하세요! 최근에는 모바일 프레임을 아이폰 14프로로 많이 진행하는거같은데 이 경우에는 컬럼 수와 사이즈 및 간격을 어떻게 잡아야 좋을까요?
-
미해결Jenkins를 이용한 CI/CD Pipeline 구축
window 사용자를 위한 ssh 접속
https://learn.microsoft.com/ko-kr/windows-server/administration/openssh/openssh_install_firstuse 먼저 로컬 피씨에서 위처럼 진행해주시면 됩니다~
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
프로젝트 구조 질문드립니다.
nodejs는 route, controller, service, repository, entity로 하면 중복 없이 잘 짤 수 있다고 조언하신 글을 봤습니다.nextjs는 프로젝트 구조를 어떻게 짜야 하나요? 구글링하니까 정말 다양한 방법이 많이 있던데 제로초님은 실무에서 어떻게 짜시는지 궁금합니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
프론트 npm run build가 안됩니다
ubuntu@ip-172-31-37-255:~/react-nodebird/front$ npm run build > react-nodebird-front@1.0.0 build /home/ubuntu/react-nodebird/front > cross-env ANALYZE=true NODE_ENV=production next build Browserslist: caniuse-lite is outdated. Please run: npx browserslist@latest --update-db info - Using external babel configuration from /home/ubuntu/react-nodebird/front/.babelrc Webpack Bundle Analyzer saved report to /home/ubuntu/react-nodebird/front/.next/server/analyze/client.html Webpack Bundle Analyzer saved report to /home/ubuntu/react-nodebird/front/.next/analyze/client.html info - Creating an optimized production build info - Compiled successfully > Build error occurred Error: Build optimization failed: found page without a React Component as default export in pages/about See https://err.sh/vercel/next.js/page-without-valid-component for more info. at build (/home/ubuntu/react-nodebird/front/node_modules/next/dist/build/index.js:21:115) info - Collecting page data .npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! react-nodebird-front@1.0.0 build: cross-env ANALYZE=true NODE_ENV=production next build npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the react-nodebird-front@1.0.0 build script. npm ERR! This is probably not a problem with npm. There is likely additional logging output above. npm ERR! A complete log of this run can be found in: npm ERR! /home/ubuntu/.npm/_logs/2022-12-03T04_13_49_262Z-debug.log 백엔드에서 npm run dev하면 use 80 무슨 오류 떠서 포트번호 85번으로 바꿧어요백엔드쪽 app.js 85번으로 바꾸고vim app.js에서 85번 바꾸고프론트쪽 package.json에서 -p 85로 바꿧어요git status해도 아무것도 안나오고 백엔드 프론트 서버키고 npm run build 하면 오류뜹니다 app.jsfront / package.js
-
미해결빅데이터분석기사 실기대비 (R 활용)
5회 2유형
작업형 1유형은 이 강의 토대로 술술 풀었습니다(3번에서 전체전입전출학생수 칼럼 있는 줄도 모르고 1~6학년 더하고 빼고 그랬네요)2유형에서 요 강의 토대로 풀려고 하는데결측치도 없고 이상치도 없는 것 같고.. 느낌이 쎄한게train에 어떤 method를 써도 안되는 겁니다.. rpart glm lm lda randomForest까지..rpart는 너무 오래 걸리고glm이었나 lda는Accuracy Kappa에 NA값이 있다며(?) 오류가 떴습니다음.. 강의에서 배운 건 다 써봤는데 역시 기본 이해가 없어서인지 다른 해결방법이 떠오르지 않더군요..풀이 강의 부탁드리겠습니다
-
미해결스프링 프레임워크는 내 손에 [스프2탄]
BoardMapper.java 질문입니다.
package kr.bit.mapper;import java.util.List;import kr.bit.entity.Board;//@Mapperpublic interface BoardMapper { public List<Board> getList(); public void insert(Board vo); };강의 잘보고있습니다. 수강하다가 궁금한점이 있어서 질문드립니다. ----> public void insert(Board vo); <----위에 기재한 코드에서 Board vo 이런식으로 처리를 하는데 entity에 @Data 어노테이션 처리를 한 Board.java를 vo의 형태로 insert한다고 생각하면 되는건가요? vo라는 형태로 넣는건지 아니면 vo라는 이름으로 넣는건지 약간 헷갈립니다 ㅠ 입사한지 얼마안되서 spring(EGOV)으로 업무를 보고 있는데 EGOV에서는 VO, DAO로 나누어서 DAO가 MAPPER랑 연결되는? 방식입니다. 선생님 강의에서도 다를것 크게 없긴하죠 BoardMapper.java가 제가 말씀드린 사실상 DAO방식이고 Board.java도 VO의 역할을 하고 있으니까요. 위에 같은 궁금증이 생긴 이유가 평소에 저는 Dao에서 아래와 같은 방식으로 처리했습니다. public void insertWriting(WritngDrwVO writngDrwVO) throws Exception{ insert ("WritngDAO.insertWritingDrw", writngDrwVO);} 코드를 보시면 WritingDrwVO라는 VO 클래스가 생성이 되어있고 public void insertWriting(WritngDrwVO writngDrwVO)라는 코드를 통해 WritngDrwVO를 writngDrwVO라는 이름으로 선언을 하고있고 insert ("WritngDAO.insertWritingDrw", writngDrwVO);} 라는 코드에서 위에서 선언한 WritngDrwVO를 writngDrwVO라는 이름으로 insert한다? 이런식으로 이해를 하고 선생님의 강의를 보니까 위에서 말씀드린 헷갈리는 부분이 나온것 같습니다..... 글이 너무 길었네요 ㅠㅠㅠㅠ 강의 잘보고 있고 스프2탄을 제일 처음 들었는데 완강하고 나프나 스프 올라온거 쭉 완강하도록 하겠습니다.
-
해결됨스프링 시큐리티 OAuth2
username, clientId, registrationId
안녕하세요. 섹션 9. OAuth 2.0 Client - Social Login (Google, Naver, KaKao) + FormLogin 에서의 User 도메인에 대한 질문입니다. username 에 대한 질문 폼 로그인에 사용되는 계정과 OAuth 2.0 로그인에 사용되는 계정을 추상화하는 과정에서제공자 계정의 (변경가능한) 별명에 해당하는 값을 username으로 받는 것으로 보입니다. 하지만 클라이언트 자체 계정에서의 username 은 고유하기 때문에 Q1) 이를 동일한 속성을 갖도록하는게 맞는지 혹은 해도 무방한지Q2) 이를 별도의 속성으로 받아도 괜찮은지 궁금합니다. (e.g. nickname) id + username 에 대한 질문"sub" 혹은 "id" 로 매핑되어있는 값을 id라는 필드에 넣도록 구현되어있는데 public class NaverUser extends OAuth2ProviderUser { @Override public String getId() { return (String)getAttributes().get("id"); // ! } public class GoogleUser extends OAuth2ProviderUser { @Override public String getId() { return (String)getAttributes().get("sub"); // ! }네이버 문서에 아래와 같은 내용이 있습니다.위 설명에 따르면 네이버를 기준으로 id가 클라이언트 자체 계정에서의 username 과 동일한 역할을 하는 것으로 보입니다.Q3) 따라서 1번 질문과 반대로 id 필드에 저장되는 값이 오히려 username 에 적합해보이는데 이에 대한 의견을 듣고 싶습니다. clientId 에 대한 질문 User 클래스에 String ci (clientId) 필드가 포함되어 있는데,Q4) 이는 외부 설정파일로부터 설정하는데 저장해야할 필요가 있나요? 지워도 무방한가요? public class User { private String registrationId; private String id; private String ci; // ! private String username; private String password; private String provider; private String email; private String picture; private List<? extends GrantedAuthority> authorities; registrationId 에 대한 질문 registrationId 가 provider(google...) 를 의미하는 것으로 보이는데,Q6) FormLogin 클래스에 registrationId, provider 두 필드가 모두 존재합니다. 하나는 지워도 무방한가요? public abstract class OAuth2ProviderUser implements ProviderUser { @Override public String getProvider() { return clientRegistration.getRegistrationId(); // ! }public class FormUser implements ProviderUser { private String registrationId; // ! private String id; private String username; private String password; private String email; private boolean isCertificated; private String provider; // !
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
StringUtils.hasText를 쓰는 이유가 궁금합니다 !!
item.getItemName() == null 로 써도 될거 같은데 hasText를 쓴 이유는 뭔가요?
-
해결됨ERC20 깨부수기 (+ truffle, 프론트엔드)
가스비 질문이 있습니다
변수에 선언된 값이 변경될때마다 가스비가 추가적으로 발생하나요?
-
미해결모두를 위한 파이썬 : 필수 문법 배우기 Feat. 오픈소스 패키지 배포 (Inflearn Original)
오픈소스참여-나만의 패키지 만들기(1)
안녕하세요오픈소스 참여 - 나만의 패키지 만들기(1) 질문드립니다수업들으면서 제가 수업을 따라서 코딩한 결과가 오류는 없는데, result 파일에서 이미지들이 하나씩 넘어가는 것이 아니라, 누적이 되어서 겹쳐서 나옵니다.그래서 올려주신 수업자료를 열어서 돌렸는데도 수업처럼 이미지들이 하나씩 넘어가지 않고 이미지들이 누적이 되서 겹쳐서 넘어갑니다.
-
미해결부트스트랩 5(Bootstrap 5) - 기초부터 웹 프로젝트 만들기
kakao map이 mobile에서도 가능하게 하려면 어떻게 할까요?
project -2를 완성하고 보니 mobile에서 kakao map이 작동하지 않음을 알게 되었습니다. web과 mobile에서 다 작동하도록 하려면 어떻게 할까요?
-
미해결배달앱 클론코딩 [with React Native]
위치 게속 변할경우 , watchPosition사용시 null값
이게 바로 가져올떄도있고, null뜰때도 있고그러네요 ? 다른곳 앱들사용하면 3초로딩하고 바로켜지던것같은데 위치를 받아올때있고 null뜰대있고, 이렇게하네요.. 코드는 useEffect에 myposition을 감지하고있게했어요. 그럼 업데이트되면서 게속실행하게끔... 아니면 처음에는 myPosition에 getCurrentPosition으로 myPosition에 담아놓고 watch로 update시켜야하나요? 아니면 커뮤니티 지올로케이션 말구서비스 ? 라이브러리가 유명하던데 그걸안써서 느린건지..
-
미해결실전! Querydsl
where 절에서 alias를 사용하려면 어떻게 해야할까요?
List<UserDto> fetch = queryFactory .select(Projections.bean(UserDto.class, member.username.as("name), ExpressionUtils.as( JPAExpressions .select(item.itemCnt.max()) .from(item), "itemCount")) ).from(member) .fetch();위의 샘플과 같이 member 테이블 안에서 item의 서브쿼리를 사용합니다.위와같이 작성해서 실행을 하는데는 아무런 문제가 없습니다.그런데 문제가 되는 부분이where절에서 서브쿼리로 작성된 itemCount의 범위를 검색을 하려고 하는데 어떤식으로 처리를 해야할지 난감합니다. 이리저리 검색을 해서 아래와 같은 방법으로 비슷하게 구현을 한 방법이 있기는 한데Path<Long> itemCountAlias = Expressions.numberPath(Long.class, "itemCount");적용을 해 봐도 적용이 안됩니다.ㅠㅠ오류가 itemCnt 이름의 칼럼이 없습니다.라는 오류만 뿌려줍니다.private BooleanExpression whereByItemCond(SearchOption searchOption, Path<Long> aliasQuantity) { String cnt = searchOption.getSearchCount(); if(searchOption.getSearchType().equals("itemCount")){ return aliasQuantity != null ? aliasQuantity.eq(String.valueOf(cnt)) : null; } } 서브쿼리에 추가한 Alias를 조건 검색문에서 검색할려면 어떤식으로 처리를 해야할까요? 혹시 제가 접근 방법을 잘못 알고 있다면 어떤식으로 처리를 해야할까요?결론적으로 구현하고 싶은 것은A, B 테이블이 있는데 A테이블에서 서브쿼리로 B테이블의 특정 값을 추가해서 목록으로 뿌려주고 있는데검색 조건을 A테이블에서가 아닌 B테이블에 있는 값(A+B테이블의 조합으로 만들어진 목록 데이터값)을 필터링해서 검색을 하려고 합니다. 제목 | 작성자 | 아이탬 수---------------------첫째 홍길동 4둘째 김길동 5셋째 박길동 2이런식으로 목록을 보여주는 화면이 있는데 제목과 작성자는 member테이블에서, 아이템수는 item 테이블에서 가져왔습니다.쿼리는 위에서 적은것과 같이 기본 member테이블에서 item테이블을 서브쿼리를 사용해서 값을 추가했습니다. ExPressionUtils.as(JPAExpression.select~~)여기서 기본검색(?)조건인 제목, 작성자 검색은 문제가 없는데, 서브쿼리로 추가했던 아이템 수로 검색을 하려고 합니다.B테이블은 A테이블을 ManyToOne으로 설정이 되어 있습니다.
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
ssr 방식과 api 방식의 차이가 궁금합니다
안녕하세요 강사님. 학습을 하다가 궁금한 점이 있어서 질문을 남깁니다.타임 리프와 같이 ssr 방식의 카카오 로그인과 현재 강의와 같은 API 방식의 카카오 로그인 방식이 다른데 구글링을 해도 이해가 잘 가지 않아서요.. ssr 방식의 경우 api 방식과 다르게 카카오쪽으로 요청하지 않는것 같은데 어떤 차이가 있을까요..??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberRepositoryTest 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]다른 코드들이 다 맞게 진행됨에도 오류가 발생하여 질문드립니다.java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:123) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:244) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) 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)Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'memberRepository': Injection of persistence dependencies failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'javax.persistence.EntityManagerFactory' available at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessProperties(PersistenceAnnotationBeanPostProcessor.java:351) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1415) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:608) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:531) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:944) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:923) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:588) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:767) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:426) at org.springframework.boot.SpringApplication.run(SpringApplication.java:326) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:122) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) ... 27 moreCaused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'javax.persistence.EntityManagerFactory' available at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveNamedBean(DefaultListableBeanFactory.java:1210) at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findDefaultEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:565) at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.findEntityManagerFactory(PersistenceAnnotationBeanPostProcessor.java:528) at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor$PersistenceElement.resolveEntityManager(PersistenceAnnotationBeanPostProcessor.java:696) at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor$PersistenceElement.getResourceToInject(PersistenceAnnotationBeanPostProcessor.java:669) at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:228) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:119) at org.springframework.orm.jpa.support.PersistenceAnnotationBeanPostProcessor.postProcessProperties(PersistenceAnnotationBeanPostProcessor.java:348) ... 44 more MemberRepositoryTestimport jpabook.jpashop.Member; import jpabook.jpashop.MemberRepository; import org.assertj.core.api.Assertions; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import javax.persistence.EntityManager; @RunWith(SpringRunner.class) @SpringBootTest(classes = MemberRepository.class) public class MemberRepositoryTest { @Autowired MemberRepository memberRepository; @Test public void testMember() throws Exception { // given Member member = new Member(); member.setUsername("memberA"); // when Long savedId = memberRepository.save(member); Member findMember = memberRepository.find(savedId); // then Assertions.assertThat(findMember.getId()).isEqualTo(member.getId()); Assertions.assertThat(findMember.getUsername()).isEqualTo(member.getUsername()); } }
-
미해결대세는 쿠버네티스 (초급~중급편)
Network error: Connection timed out 문제
안녕하세요노트북에 ip가 변경되는 무선 공유기 환경일 경우 따로 세팅과 관련된 자세한 방법을 모르겠어서 이렇게 질문드립니다.q&a에 검색해보니 이전에 https://kubetm.github.io/practice/appendix/installation_case5/ 를 참고하라는 답변을 남기신 적이 있으셔서 확인하려고 했으나, 해당 페이지가 삭제된 것 같은데 혹시 방법을 따로 다시 알려주실 수 있을까요?답변부탁드립니다. 감사합니다. (참고한 질문: https://www.inflearn.com/questions/241375/case2-%EC%97%B0%EA%B2%B0%EC%9D%B4-%EC%95%88%EB%90%A9%EB%8B%88%EB%8B%A4-%EC%82%B4%EB%A0%A4%EC%A3%BC%EC%84%B8%EC%9A%94)