안녕하세요 호돌맨 선생님! 세션토큰 발급기능 추가를 초반에 보다가 로그인 관련 테스트를 직접 작성해보라고 하셔서 해봤는데 궁금한 점이 있어서 질문드립니다! 작성한코드 @Test @DisplayName("인증 테스트") void test11() throws Exception { // given Member member = Member.builder() .email("abc@naver.com") .password("1234") .build(); // UserRepository를 MemeberRepository로 이름 변경 했습니다. memberRepository.save(member); Login login = Login.builder() .email("abc@naver.com") .password("1234") .build(); String json = objectMapper.writeValueAsString(login); // expected mockMvc.perform(post("/auth/login") .contentType(APPLICATION_JSON) .content(json) ) .andExpect(status().isOk()) .andDo(print()); 결과 query did not return a unique result: 2; nested exception is javax.persistence.NonUniqueResultException: query did not return a unique result: 2 원인 JPA 에러라는 것을 검색을 통해서 알았습니다 해결 방법 블로그 주소 : https://wakestand.tistory.com/943 UserRepository에 작성한 findByEmailAndPassWord 메서드가 Optional로 되어 있는데 이 부분을 List로 변경해야할 것 같아서 다음과 같이 변경했습니다 변경된 코드 UserRepository public interface MemberRepository extends CrudRepository<Member, Long> { List<Member> findByEmailAndPassword(String email, String password); } AuthService @Service @RequiredArgsConstructor public class AuthService { private final MemberRepository memberRepository; public List<Member> signin(Login login) { List<Member> memberList = Optional.ofNullable(memberRepository.findByEmailAndPassword(login.getEmail(), login.getPassword())) .orElseThrow(() -> new InvalidSign()); return memberList; } } 위 처럼 Optional<Member가 아닌 List<Member>로 변경해서 테스트 로직을 성공하긴했습니다... 질문 UserRepository의 Optional<Member>를 변경하지 않고 테스트 코드를 작성하는 방법이 있을까요?? Optional에서 List로 변경했을 때 문제점은 없을까요?
방향 그래프 무방향 그래프에 따라서 자료구조에 자료를 저장하는 방법이 다르다고 하셨습니다. 그런데 지금 이 문제에서는 방향그래프 아닌가요?? 간선,엣지들을 보면 모두 방향이 있는 거 같은데, 왜 무방향그래프를 저장할 때처럼 arraylist에 값을 저장하는지 모르겠습니다.
Next.js로 Google Cloud Platform에 App Engine 서비스 배포를 진행하고 있습니다. 문제는 production ( 실 서비스 )와 development ( 개발용 )으로 나누어서 .env.development, .env.production의 두개의 환경변수를 가지고있습니다. 배포 시 실서비스 에서는 .env.production을 사용하도록 개발용 에서는 .env.development를 사용하도록 설정하려는데 이것저것 만져보아도 production만 사용하는 문제가 발생해버리네요. 현재 프로젝트구조와 설정코드는 이렇습니다. project ├── local └── Dockerfile └── docker-compose.yml ├── resource └── .next └── ... (Next.js 빌드 파일) └── node_modules └── package.json └── dev_app.yaml └── prd_app.yaml └── .env.development └── .env.production └── next.config.js └── ... (기타 Next.js 프로젝트 파일) 여기서 package.json의 script설정은 다음과 같습니다. { dev: "next dev", start: "next start", lint: "next lint", deploy: "npm run build && gcloud app deploy --project='production' -q --appyaml=prd_app.yaml", deploy:dev: "npm run build:dev && gcloud app deploy --project='development' -q --appyaml=dev_app.yaml", build: "dotenv -e .env.production next build", build:dev: "dotenv -e .env.development next build" } next.config.js는 특별히 건드리지 않았습니다. dev_app.yaml, prd_app.yaml파일은 서비스명만 각각 설정해 주었습니다. runtime: nodejs20 # or another supported version service: development 질문 1. 현재 app engine 업로드된 용량, 로직을 보니 빌드파일이 아닌 프로젝트 그대로 들어가는 것 같습니다. 빌드는 환경변수파일도 정상적으로 분기되는데 앱엔진에서 해당문제가 발생하는 것으로보아 혹시 Next.js에서 빌드된 파일로 app engine에 배포할 수 있는지 궁금합니다. 질문 2. 빌드파일만 올릴수 없다 라고 하더라도 프로젝트 그대로 올리면서 환경변수를 분기할 방법이 있는지 궁금합니다. 정말 문서건 블로그건 구글서칭, 깃허브검색, GPT 모두 끈질기게 시도해봤지만 능력부족 탓인지 성공하지 못했습니다.. 능력자분들께서 도움주시면 잊지않겠습니다!!
[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
for (int i = 0; i < 10; i++) { arrows[i]->AttackTarget(); // 기사가 죽었으면 소멸시켜준다 if (knight != nullptr) { if (knight->IsDead()) { delete knight; knight = nullptr; } } delete arrows[i]; arrows[i] = nullptr; } 이부분에서 나이트를 delete 하고 nullptr 로 채우고나서 애로우 부분에 // 공격 대상이 있다면 if (_target != nullptr) { // 데미지를 입힌다 target->AddHp(- damage); _target->PrintInfo(); } _target을 nullptr 체크했는대 구문으로 왜 들어오는건가요..?
안녕하세요 slots 강의를 듣던중 const hasFooter = computed(() => !!slots.footer) 를 사용해서 slots.footer 가 없으면 false를 반환한다고 하는데 !! 를 정확하게 뭐라고 부르면 될까요? 삼항연산자의 축약버전일까요..? 잘듣고있습니다 감사합니다.
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 강의 내용대로 Movie em.find를 통한 조회 부분을 진행하던 중 쿼리가 날라가지 않는 오류가 발생하여 질문 드립니다. 비슷한 문제를 겪는 학생 분 답변 중, hibernate 버전을 5.3.13Final로 올려야 한다는 글을 봐서 그대로 버전을 올렸는데도 오류가 없어지지 않습니다.. 혹시 어디가 문제인지 알 수 있을까요? 구글 드라이브 주소 : https://drive.google.com/file/d/1BBVCl_O5PLSdoUeR0hKmRLG11j62oNhz/view?usp=sharing 오류 메세지 ERROR: Unique index or primary key violation: "PRIMARY KEY ON PUBLIC.ITEM(ID) [1, STRINGDECODE('\ubc94\uc8c4\ub3c4\uc2dc'), 12000]"; SQL statement: /* insert hellojpa.Movie */ insert into Item (name, price, id) values (?, ?, ?) [23505-200]
25강 companion 강의중 t1.getA1()); 에서 cannot find symbol method getA1() 라는 오류가 생깁니다 public class javaMain { public int javaA1 = 100; public void javaMethod1() { System. out .println("javaMethod1"); } public static void main(String [] args) { // java 실행의 시작점 TestClass t1 = new TestClass(); System. out .printf("t1.a : %d\n", t1.getA1()); } }
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오)예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 저번에 했을때 jdbc:h2:tcp:// localhost/~/test 경로인데 이걸 못바꾸겠어요 새로운 경로로 다시만들고 싶은데 어떻게 바꾸는건지 시작화면에서 바꾸니깐 Database "C:/Users/ckehq/jpashop" not found, either pre-create it or allow remote database creation (not recommended in secure environments) [90149-220] 90149/90149 에러만 떠요...
sed: can't read /etc/sysconfig/docker-storage: No such file or directory 이런 error 가 뜨네요 파일이 없다는데 어떻하죠? 저 말고도 다른 수강생들도 생기는 문제인거 같은데 확인 부탁합니다 파일 내용이라도 올랴주시면 수동으로 받아 적겠습니다