학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. InterfaceProxyConfig에서 logtrace를 파라미터로 받아오는 특별한 이유가 있을까요 ? logtrace를 이런식으로 생성자 주입으로 받아서 사용한다면 문제가 생길까요 ? 정상작동은 하는데 궁금합니다. @RequiredArgsConstructor @Configuration public class InterfaceProxyConfig { private final LogTrace logTrace; @Bean public OrderControllerV1 orderController(){ OrderControllerV1Impl controllerImpl = new OrderControllerV1Impl(orderService()); return new OrderControllerInterfaceProxy(controllerImpl,logTrace); } @Bean public OrderServiceV1 orderService(){ OrderServiceV1Impl serviceImpl = new OrderServiceV1Impl(orderRepository()); return new OrderServiceInterfaceProxy(serviceImpl,logTrace); } @Bean public OrderRepositoryV1 orderRepository(){ OrderRepositoryV1Impl repositoryImpl = new OrderRepositoryV1Impl(); return new OrderRepositoryInterfaceProxy(repositoryImpl,logTrace); } }
강의에선 에디터에서 InputAction의 Triggers 에서 Pressed를 추가하셨는데 저는 개인적으로 cpp에서 BindAction 에서 바인드 할 때 ETriggerEvent::Started 로 설정해서 이벤트가 한 번만 발생하도록 하는 방법을 썼습니다. 이런 방법도 괜찮나요? 아니면 이런 방법은 렉이 걸리거나 할 때 이벤트가 발생되지 않을 가능성도 있을까요?
안녕하세요 강사님 질문이 있습니다. 엑셀파일을 pinecone에 업로드하여 데이터 분석용으로도 활용이 가능할까요? 예를 들어서 "판매 건수가 50개 이상인 월 알려줘" 입니다 엑셀파일을 pinecone에 업로드는 완료하였는데, 답변을 전혀 못하고 있어, 다른 방법이 있는지 궁금하네요. 감사합니다. 추가로 엑셀파일을 pinecone에 적재할 때 하나의 행이 하나의 ID에 적재되는게 맞을까요??
@Transactional public void decrease(Long id, Long quantity) { Stock stock = stockRepository.findById(id).orElseThrow(); stock.decrease(quantity); stockRepository.saveAndFlush(stock); } 현재 강의 코드인데, 락을 사용해서 해결을 할 수도 있지만, 그냥 아래와 같이 JPQL을 사용해서 해결할 수 있지 않나요? @Transactional public void decrease(Long id, Long quantity) { Stock stock = stockRepository.findById(id).orElseThrow(); if (stock.getQuantity - quantity < 0) { throw new RuntimeException("재고는 0개 미만이 될 수 없습니다."); } stockRepository.decrease(id, quantity); } @Modifying @Query("UPDATE Stock s SET s.quantity = s.quantity - :quantity WHERE s.id = :id") public void decrease(@Param("id") Long id, @Param("quantity") Long quantity); 락을 사용하는 것보다 이렇게 하는게 비용이 더 적을 것 같은데, 이렇게 하지 않는 이유를 알 수 있을까요??
데이터 보안 측면에서 송신자 공개키 로 암호화 -> 송신자 개인키 로 복호화를 한다고 적혀있는데요. 수신자가 송신자의 개인키를 가지고 있다는게 보안적으로 문제가 되는게 아닌가 싶습니다. 수신자 공개키 로 암호화 -> 수신자 개인키 로 복호화의 오타인 것인지, 아니라면 어떻게 보안적으로 괜찮은건지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. LogTrace를 @Bean등록할때 ProxyApplication 쪽에 등록한 특별한 이유는 없는건가요 ? 그냥 InterfaceProxyConfig안에 등록해도 상관은 없는거죠 ? @Configuration public class InterfaceProxyConfig { @Bean public OrderControllerV1 orderController(LogTrace logTrace){ OrderControllerV1Impl controllerImpl = new OrderControllerV1Impl(orderService(logTrace)); return new OrderControllerInterfaceProxy(controllerImpl,logTrace); } @Bean public OrderServiceV1 orderService(LogTrace logTrace){ OrderServiceV1Impl serviceImpl = new OrderServiceV1Impl(orderRepository(logTrace)); return new OrderServiceInterfaceProxy(serviceImpl,logTrace); } @Bean public OrderRepositoryV1 orderRepository(LogTrace logTrace){ OrderRepositoryV1Impl repositoryImpl = new OrderRepositoryV1Impl(); return new OrderRepositoryInterfaceProxy(repositoryImpl,logTrace); } @Bean public LogTrace logTrace(){ return new ThreadLocalLogTrace(); } 이런식으로요. 생각해보면 logtrace는 proxyconfig쪽이랑은 크게 연관성이 없는거같긴한데 궁금해서요 ..
설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
안녕하세요 🙂 [1. 질문 챕터] : HDL 16장 실습편 9분 30초~ 의 시뮬레이션 wv 결과 화면 [2. 질문 내용] : 시뮬레이션 결과를 보면 o_done과 현재 state가 reset_n이 0으로 입력되기 훨씬 전부터 각각 리셋되는 것으로 나타나는데 왜 이런 것인지 잘 이해가 되지 않습니다. (저는 don't care 'X' 상태가 reset_n=0전까지 유지될 것이라고 예상했습니다) 감사합니다.
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part8: Entity Framework Core
UDF 를 구현 할때 2가지 방법이 있는 것으로 소개 해주셔서 테스트 삼아 Fluent Api 방식의 builder.HasDbFunction(() => Program.GetAverageReviewScore(0)); 를 주석 처리 하고 Annotation 방식의 [DbFunction()] 구절만 남겨서 진행을 했는데 GetAverageReviewScore 함수에서 예외처리가 되며 실행이 막히네요 Annotation 방식으로 UDF 를 구현하기 위해선 추가적인 내용이 필요한 것일까요?
[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
본 강의에서는 제가 못찾고 있는지는 모르겠지만 멀티 게임 구현시 타일맵을 이용한 충돌 구현만 있는 것 같습니다. (혹시 만약 있다면 어디에서 언급되는지 모르겠네요..) 얼핏 기억하기로는 충돌 처리는 서버에서 해야 한다고 했던 기억이 있습니다. 그러면 클라이언트에 있는 CollisionManager, Collison클래스와 같이 충돌과 관련된 클래스를 서버 쪽에도 복붙하여 충돌 처리를 하는 방향이 맞을까요? 만약 그렇다면 현재까지는 클라이언트에서 Collision 범위를 네모 박스와 같은 형태로 그려서 눈으로 직관적으로 확인 가능하니까 쉽게 디버깅할 수 있었는데, 서버에서 충돌을 구현하면 눈에 보이지 않는거 아닌가요? (그렇다면 디버깅이 굉장히 어렵겠네요...) 서버에서 충돌을 구현하면 클라이언트에서는 충돌 처리를 안하니까 클라이언트의 Bullet과 벽은 Collision은 제거하면 될까요? 멀티 게임에서 충돌을 어떻게 처리해야 할지 방향을 잘 모르겠습니다. 그리고 강의 너무 잘 보고 있습니다!
Title: Becoming a Scrum Master: Your Gateway to Agile Success In the world of software development and project management, Agile methodologies have gained immense popularity for their flexibility and efficiency. At the heart of many Agile teams is the Scrum Master, a crucial role that ensures the team adheres to Scrum practices and principles. Whether you're looking to transition into a Scrum Master role or simply want to understand what it entails, this guide will provide you with the insights you need. What is a Scrum Master? A Scrum Master is a facilitator and servant leader who helps an Agile team follow Scrum practices and achieve its goals. Unlike a traditional project manager, a Scrum Master does not manage the team but rather empowers them to self-organize, remove obstacles, and continuously improve. The Scrum Master acts as a bridge between the team and external stakeholders, ensuring that the team remains focused on delivering value. Key Responsibilities of a Scrum Master Facilitating Scrum Events: A Scrum Master is responsible for organizing and facilitating the core Scrum events, also known as ceremonies. These include the Daily Standup, Sprint Planning, Sprint Review, and Sprint Retrospective. The goal is to keep the team aligned, focused, and productive. Removing Impediments: One of the most critical responsibilities of a Scrum Master is to identify and remove any obstacles that may hinder the team's progress. This could involve resolving conflicts, addressing technical challenges, or ensuring that the team has the necessary resources. Coaching the Team: The Scrum Master serves as a coach, guiding the team in understanding and implementing Scrum principles. They help the team members embrace Agile values, adopt best practices, and continuously improve their processes. Protecting the Team: The Scrum Master acts as a buffer between the team and external pressures. They protect the team from unnecessary distractions, scope creep, and unrealistic demands from stakeholders, allowing the team to focus on delivering high-quality work. Promoting Collaboration: Scrum Masters foster a culture of collaboration and open communication within the team. They encourage team members to share knowledge, solve problems collectively, and support each other's growth. How to Become a Scrum Master Understand Scrum and Agile Principles: Before becoming a Scrum Master, it's essential to have a solid understanding of Scrum and Agile methodologies. Familiarize yourself with the Agile Manifesto, Scrum Guide, and key concepts such as sprints, product backlog, and user stories. Gain Experience with Agile Teams: Experience working with Agile teams is invaluable. If you're already part of a Scrum team, take the opportunity to observe how the Scrum Master operates. If not, consider volunteering for Agile projects within your organization to gain hands-on experience. Obtain a Scrum Master Certification: Earning a Scrum Master certification can significantly enhance your credibility and knowledge. Popular certifications include the Certified ScrumMaster (CSM) from Scrum Alliance and the Professional Scrum Master (PSM) from Scrum.org. These certifications typically involve training and passing an exam. Develop Leadership and Facilitation Skills: As a Scrum Master, you'll need strong leadership, communication, and facilitation skills. Practice leading meetings, resolving conflicts, and guiding teams through challenges. Developing these soft skills is just as important as mastering Scrum practices. Build a Network: Connect with other Scrum Masters and Agile professionals through online communities, local meetups, and conferences. Networking can provide you with valuable insights, support, and opportunities for career growth. Continuously Learn and Adapt: Agile is all about continuous improvement, and the same applies to your journey as a Scrum Master. Stay updated on the latest Agile trends, tools, and techniques. Regularly reflect on your experiences and seek feedback to refine your approach. The Benefits of Being a Scrum Master Empowering Teams: As a Scrum Master, you have the opportunity to empower teams to work more effectively and deliver better results. The sense of accomplishment that comes from helping teams overcome obstacles and achieve their goals is incredibly rewarding. Diverse Career Opportunities: Scrum Masters are in high demand across various industries, including IT, finance, healthcare, and more. The skills you develop as a Scrum Master can open doors to roles such as Agile Coach, Product Owner, or even executive positions. Continuous Learning: The Scrum Master role is dynamic and ever-evolving, offering endless opportunities for learning and growth. Each project presents new challenges, allowing you to continuously expand your expertise. Making an Impact: Scrum Masters play a crucial role in driving organizational change and fostering a culture of collaboration, transparency, and continuous improvement. Your work as a Scrum Master can have a lasting impact on both your team and the broader organization. Conclusion Becoming a Scrum Master is a fulfilling and impactful career path for those passionate about Agile methodologies and team dynamics. By mastering Scrum practices, developing strong leadership skills, and committing to continuous learning, you can excel in this role and contribute to the success of your team and organization. Whether you're just starting your journey or looking to advance your career, the Scrum Master role offers a unique opportunity to make a meaningful difference.
17~18분 사이에 설명에서 builder와 configuration 이 같은 ProviderManager를 가져온다고 하시는데요. 디버깅된 사진을 보면 customAuthenticationProvider 추가는 8334번 providers에 추가가 되고, configuration에서 ProviderManager 가져와서 0번째 provider를 지운것은 parent 안에 있는 8340 리스트에서 제거한것처럼 보여지는데 맞을까요???
return new StepBuilder("apiStep", jobRepository) .<HelloVO, Hello>chunk(CHUNK_SIZE, transactionManager) .reader(helloReader(null)) .processor(helloVO -> { LocalDate date = helloVO.getDate(); if(date.getDayOfMonth() == 10){ throw new IllegalStateException("!! " + helloVO); } return helloVO.toEntity(); }) .writer(v -> log.info("write = {}", v)) .listener(partitionLimitSkipListener(null)) .build(); 안녕하세요. 만약 위 상황에서 파티션이 1000개라고 가정할 경우 천 건의 청크가 동작하게 될텐데요. 만약 첫 번재 값이 timeout으로 예외가 발생할 경우, 남은 999건 동일한 timeout이 발생할 수 있다고 예상되고 이런 에러는 장애로 확장될 수 있다고 예상됩니다. 실제로 위의 throw ex 상황에서 failed로 처리된 1000건의 step이 발생함을 확인하였습니다. 이런 문제를 최소화 해야 하는 것에 목적이 있습니다. 이를 해결하기 faultTolerant로 사용하고 chunkListener의 afterError메서드로 step context까지 도달하여 setTerminal 을 하였으나... 이 방법으로는 해결이 되지 않더라고요. 결국 결국 아래와 같이 operator로 처리하였습니다. @Slf4j public class ChunkExceptionCounterListener implements ChunkListener { private int failureCount = 0; private static final int MAX_FAILURES = 3; private final JobOperator jobOperator; public ChunkExceptionCounterListener(JobOperator jobOperator) { this.jobOperator = jobOperator; } @Override public void afterChunkError(ChunkContext context) { failureCount++; log.error("chunk {} exceeds error {}/{}", context.getStepContext().getStepName(), failureCount, MAX_FAILURES); if (failureCount >= MAX_FAILURES) { log.error("stop job! with afterChunkError!"); context.getStepContext().getStepExecution().setTerminateOnly(); // 안됨..ㅠ context.getStepContext().getStepExecution().getJobExecution().setExitStatus(ExitStatus.FAILED); Long jobExecutionId = context.getStepContext().getStepExecution().getJobExecutionId(); try { jobOperator.stop(jobExecutionId); // 이건 된다! } catch (NoSuchJobExecutionException e) { throw new RuntimeException(e); } catch (JobExecutionNotRunningException e) { throw new RuntimeException(e); } } } } 위 방식이 좋은 방식인지는 솔직히 모르겠습니다. 일단 기대하는 것처럼 interrupt로 에러로 남은 모든 step이 stopped되어 좋긴 하였는데, 제가 혼자서 구현한 방식인지라... 최적의 방식인지는 잘 모르겠네요. 더불어 retry template에서 recover callback 메서드를 구현할 경우 청크 파티션 일부의 에러를 마스터 슬레이브 전체에 대한 정지 처리로 할 수 있던 것으로 기억하는데, 이 정도의 튜닝은 제공하는지도 궁금합니다. 감사합니다^^