안녕하세요. 웹크롤링 강의를 잘 듣고 있습니다. 16강의를 따라 학습하던 중 오류가 생겨 질문드립니다. 네이버 쇼핑창에 아이폰 13 검색후 개발자도구 선택하면 아이템, 상품명, 가격, 링크 태그가 아래처럼 나와서 복사해서 코딩했습니다. 아래 처럼 오류메세지가 뜹니다. 아마도 조건에 맞는 데이터가 없는듯합니다. 어느부분이 오류인지 알려주시면 감사하겠습니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 어떤 매소드 는 public, 어떤 class는 private 으로 생성하는데 그 기준이 궁금합니다.
1.IDENTITY 전략에서 em.persist() 시점에 즉시 INSERT SQL을 실행하고 DB에서 식별자를 조회하는데, 그렇다면 만약에 트랜잭션이 롤백될 경우, INSERT도 롤백된다고 한다면, ID값은 그 다음값부터 할당되는 건가요? ex) id = 1 insert id =2 insert, commit id =1 rollback next insert => id=? 2.DB 시퀀스 오브젝트 사용 시, 여러 서버에서 call next value for SEQ를 사용하게 될 텐데, 동시성 이슈를 막기 위해서 시퀀스 오브젝트에 lock이 걸린다면, 시퀀스 오브젝트가 성능의 병목이 될 가능성은 없는건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 개발 순서가 궁금합니다. 우선 JPA 를 이용해서 DB 에 연결을 한 후 repository를 만드는 과정이 일반적인가요? 아니면 repository를 만들고 이를 DB 에 연결하는 과정이 일반적인가요?
기선님 안녕하세요~ 테스트 코드로 로그인 인증 검증하는 코드 부분에서 잘 안되는 부분이 있어 문의드려요! 저는 빌드 도구 gradle, spring boot 3.0.1 버전, Java 17 버전으로 개발하고 있습니다. UsernamePasswordAuthenticationToken 을 Nickname, Encryped Password를 통해 가져와서 SecurityContextHolder를 통해 token을 Set 해주는 코드가 아래와 같이 있습니다. public void login(Account account) { UsernamePasswordAuthenticationToken token = new UsernamePasswordAuthenticationToken( account.getNickname(), account.getPassword(), List.of(new SimpleGrantedAuthority("ROLE_USER"))); SecurityContextHolder.getContext().setAuthentication(token); } SecurityMockMvcResultMatchers의 authenticated로 테스트 코드 계정 인증 시키는 부분에서 "Authentication should not be null" 이슈가 발생하네요. 디버깅 시도 해보면, mockMvc 마지막 검증(authenticated) 쪽에서는 분명 test라는 nickname도 갖고 있지만.. authenticated 호출되는 시점에 request Session을 가져오면 null이 나와버리네요 ㅠㅠ. 사용 중인 SecurityMockMvcResultMatchers 자체 버전은 다르긴 하지만.. 코드는 완전 동일한데 이런 오류가 발생하네요 ㅠ 혹시 해결을 위해 해볼 만한 시도가 있을까요~? void checkEmailToken_with_correct_input() throws Exception { Account account = Account.builder() .email("test@email.com") .password("12345678") .nickname("test") .build(); Account newAccount = accountRepository.save(account); newAccount.generateEmailCheckToken(); mockMvc.perform(get("/check-email-token") .param("token", newAccount.getEmailCheckToken()) .param("email", newAccount.getEmail())) .andExpect(status().isOk()) .andExpect(model().attributeDoesNotExist("error")) .andExpect(model().attributeExists("nickname")) .andExpect(model().attributeExists("numberOfUser")) .andExpect(view().name("account/checked-email")) .andExpect(authenticated()); }
안녕하세요 제로초님, 웹 서버 관련해서 질문드립니다. 제로초님께서 강의하신 내용으로는 EC2에 노드를 설치하고 build된 정적 파일들을 올려 start 명령어로 앱을 실행시켜 서버를 돌리는 것으로 이해했습니다. 궁금한 것이 nginx와 같은 웹 서버를 사용하지 않고도 배포하는 것이 가능한것인지 그리고 웹 서버를 쓰냐 안쓰냐는 어떤 차이점이 있는지 궁금합니다. (혹시나 강의 뒷부분에 웹서버를 사용하는 부분이 있다면 죄송합니다!... )
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 로그인 처리 1 - 회원가입 부분을 진행하다가 잘 되지 않는 부분이 있어서 질문드립니다. (김영한님 다른 강의와 MVC 1,2의 내용도 같이 코드에 적용되어있는 상태입니다.) 딱 회원가입까지만 코드로 작성한 후, 실행해보았는데 - 회원가입은 잘 되었지만 콘솔창에 위와 같이 2개의 메시지가 나와 있습니다. 1.둘 중 위의 메시지는 강의화면에서는 save: member=Member(id=1, loginId=qqqq ... 이런 식으로 나와야 하지만, 그렇지 않습니다. 이유가 무엇일까요? 2.둘 중 아래의 메시지는 회원가입 후 아무 것도 하지 않은 채로 7~8분 뒤에 나타났습니다. 사실 이틀 전에도 이와 똑같은 메시지가 떠 있어서, 구글링해봤는데요. 이를 해결하기 위한 여러 방법들이 있었지만, 문제는 이 메시지의 정확한 뜻을 제가 이해하지 못하는 것입니다... 코드에서 어떤 부분이 잘못되어 이 메시지가 나오게 된 것일까요? (이 부분은 수업과는 사실 관련이 없어 보여서 ... 답변을 안 주셔도 괜찮습니다) 3.강의에서 item도메인 부분을 저는 할일(todo)로 변형해서 적용하고 있습니다. 할일 수정하기에서 체크박스를 활용해 해당 할일의 완료여부를 체크하게 해 놓았는데요. 문제는 이 체크박스를 체크한 상태에서 할일 수정 저장을 누르면 -> 체크되지 않은 상태로 저장된다는 것입니다. 원인으로 생각되는 것은 할일 엔티티 클래스에 '할일 완료 여부' 필드가 enum형태로 구성되어 있어서 그런 것인가...추정하고 있습니다. (이 화면캡처는 Todo.class (할일 엔티티)에서 완료 여부를 나타내는 todoCmplt 의 코드입니다.) 추정까지는 했지만 더 이상은 진전이 없어 문의드립니다. (굳이 enum타입으로 한 까닭은 나중에 특정 회원의 할일의 완료율을 계산해보고 싶어서입니다.) 코드는 https://drive.google.com/file/d/13PB_xFHDSwd9I439731Pe0rMG8VzVqfM/view?usp=sharing 에 올려놓았습니다(...만 제가 브랜치별로 코드가 많이 달라서 공유한 압축파일에서 어떻게 확인이 잘 되실지 모르겠습니다)
애저 방화벽 이해와 활용 - 방화벽 배포와 룰 구성 해당 강의에서 초반에 리소스 그룹, 해당 그룹의 vnet 생성, 가상머신 생성 그리고 방화벽 생성과정에서 점프.. 그리고 10:00부터 다시 방화벽 생성을 시작하며 같은 리소스들을 생성하는 것으로 보입니다. 편집 상의 오류가 있는 거 같은데 확인 부탁드립니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] Member package hello.hellospring.domain; public class Member { private Long id; //고객이 정하는 id가 아닌 시스템이 정하는 id private String name; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getName() { return name; } public void setName(String spring) { this.name = name; } } MemoryMemberRepository package hello.hellospring.repository; import hello.hellospring.domain.Member; import java.util.*; public class MemoryMemberRepository implements MemberRepository{ private static Map<Long, Member> store = new HashMap<>(); private static long sequence = 0L; @Override public Member save(Member member) { member.setId(++sequence); store.put(member.getId(), member); return member; } @Override public Optional<Member> findById(Long id) { return Optional.ofNullable(store.get(id)); //null일 경우 null로 반환하지 않고 Optional로 감싸서 반환 } @Override public Optional<Member> findByName(String name) { return store.values().stream() .filter(member -> member.getName().equals(name)) .findAny(); } @Override public List<Member> findAll() { return new ArrayList<>(store.values()); //values는 Member } public void clearStore(){ store.clear(); } } MemoryMemberRepositoryTest package hello.hellospring.repository; import hello.hellospring.domain.Member; import org.junit.jupiter.api.AfterEach; import org.junit.jupiter.api.Test; import java.util.List; import static org.assertj.core.api.Assertions.*; class MemoryMemberRepositoryTest { MemoryMemberRepository repository = new MemoryMemberRepository(); @AfterEach public void afterEach(){ repository.clearStore(); } @Test public void save(){ Member member = new Member(); member.setName("spring"); repository.save(member); Member result = repository.findById(member.getId()).get(); // Assertions.assertEquals(member, result); assertThat(member).isEqualTo(result); System.out.println("result= " +(member == result)); } @Test public void findByName(){ Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); Member result = repository.findByName("spring1").get(); assertThat(result).isEqualTo(member1); } @Test public void findAll(){ Member member1 = new Member(); member1.setName("spring1"); repository.save(member1); Member member2 = new Member(); member2.setName("spring2"); repository.save(member2); List<Member> result = repository.findAll(); assertThat(result.size()).isEqualTo(2) ; } } 위와 같이 코드 작성했는데 findByName() 쪽에서 NullPoint 에러가 나서 여쭤봅니다... 다른 질문 내용들도 읽어봤는데 코드상으로는 맞게 작성한 것 같은데 도움 부탁드립니다... ㅜ
안녕하세요, 저는 강화 학습 관련 관심이 생겨 여러 강화 학습 관련 프로젝트를 진행하고 있는 대학교 4학년 학생입니다. 인프런 강의를 기반으로 하여 프로젝트 진행에 도움을 많이 받고 있어 너무 감사합니다. 다름이 아니라 ml-agents 관련 질문이 있어 글을 쓰게 되었습니다. 강화 학습에서 reward shaping하는 기준 혹은 참고 논문이 있는 건지 궁금합니다. Training을 진행할 때 여러 번 경험한 내용으로 시간이 지나는데도 학습이 진행이 안된 경험이 있습니다. 이럴 때마다 작업 관리자로 CPU나 CUDA의 이용률을 보면 0프로 정도로 거의 움직이지 않는데 이를 병목 현상으로 예상하고 있습니다. 이를 해결하기 위해 아나콘다 프롬폼트에 키보드 interrupt를 하게 되면 멈췄던 학습이 실행 되어 여러 번 interrupt를 걸어 해결했습니다. 여러 다른 컴퓨터를 사용할 때마다 일어나는 공통적인 현상이라 혹시 제가 학습을 잘못 하고 있는 건지 아니면 이러한 현상에 대한 해결 방안이 따로 있는 건지 궁금합니다. 강화 학습 Training 방법을 찾아보면 제가 보기로는 두 가지 방법이 있었습니다. Unity 환경에서 하나의 프리팹 위에서 episode가 끝날 때마다 Agent나 environment의 구성을 랜덤으로 하여 진행하는 방식과 다른 environment를 여러개의 프리팹으로 하여 학습을 진행하는 방법이 있었습니다. 두 방법에 큰 차이가 있는 건지 궁금합니다. 항상 이해하기 쉽게 강화 학습 관련 강의를 해주셔서 다시 한번 감사드립니다.