안녕하세요 토비님! 좋은 강의 만들어주셔서 잘 듣고 있습니다. 작은 질문이 하나 있는데요. checkDuplicateEmail 메서드와 동시 요청에 관한 질문이 있습니다. 섹션 5. 28강 회원 애플리케이션 서비스 테스트(2) 20:47초 경에 email 중복 체크를 위하여 checkDuplicateEmail 메서드 코드를 작성하였고, 같은 email로 가입하려고 하면 DuplicateEmailException이 발생하는 것을 확인하였습니다. 그런데 여기서 다른 가정을 해보고 그런 상황에서 토비님이라면 어떻게 하셨을지 궁금합니다. 만약 email이 아닌 id로 회원가입을 하는 상황을 가정한다면, email과 다르게 id는 여러 사람이 같은 id로 회원가입하려고 시도할 수 있습니다. 따라서 동시에 2개의 요청이 들어오게 된다면 checkDuplicateEmail는 둘 다 통과하고 DataIntegrityViolationException이 발생하게 될 것입니다. (DB에서 유니크 제한을 걸었기 때문에) 규칙인 id는 중복되지 않는다는 지켜지겠지만, 사용자가 보게 될 예외는 우리가 의도했던 DuplicateEmailException가 아니게 되겠죠. 여기서 궁금한 점은 이런 상황까지 고려하여 코드를 작성하여야 하는 것인지 아니면 그냥 넘어갈 것인지 궁금합니다. 저라면, 드물게 발생할 것이라고 예상을 했다면 로깅만 잘 해놓고, 해당 예외가 많이 발생했거나 관련 cs문의가 많이 들어온다면 추가로 코드를 작성할 것 같습니다. 처음부터 만약 많이 발생할 것이라고 예상했다면 try-catch를 통해 예외를 변경해줬을 것 같습니다. 아마 다음과 같은 코드가 될 것 같습니다. @Override public Member register(MemberRegisterRequest registerRequest) { try { checkDuplicateEmail(registerRequest); Member member = Member.register(registerRequest, passwordEncoder); memberRepository.save(member); emailSender.send(member.getEmail(), "등록을 완료해주세요", "아래 링크를 클릭해서 등록을 완료해주세요"); return member; } catch (DataIntegrityViolationException e) { if (/*e를 통해 유니크 키 예외를 확인했다면*/) { throw new DuplicateEmailException(); } throw e; } } 서비스의 코드가 현재보다는 보기 지저분해진다고 생각했습니다. (아니면 이 방법이 아닌 다른 방법이 있을까요?) 토비님은 어떻게 생각하시는지 궁금합니다.
표본의 분위수를 구하는 방법에 대한 설명이 조금 헷갈렸습니다. 데이터를 오름차순으로 정렬하고, 'α 분위수는 α * 100% 위치의 값이다'라고 하셨는데, '위치'가 단순히 데이터의 개수로 따져서 n * α 를 가리키는 건지, 아니면 데이터 범위 안에서 {x_(n) - x_(1)} * α + x_(1) 에 가까운 값의 sub index를 찾고자 하는 건지 혼동됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. flush()는 영속성 컨텍스트의 변경 내용을 DB에 반영하지만, 영속성 컨텍스트 자체를 초기화하지는 않는다고 들었어요. 그렇다면 flush() 이후에도 1차 캐시에 남아있는 엔티티의 상태는 그대로 유지되나요?
[리뉴얼] 파이썬입문과 크롤링기초 부트캠프 [파이썬, 웹, 데이터 이해 기본까지] (업데이트)
안녕하세요, Dave 선생님! 강의 잘 듣고 있습니다. [질문 내용] 크롤링을 위해 requests, BeautifulSoup을 임포트할 때 가르쳐주신 바와 같이 아래처럼 실행했습니다. import requests from bs4 import BeautifulSoup 위와 아래가 같은 임포트 방식이나 아래는 관용구처럼 쓰이는 방식이라고 보면 될까요? bs4도, BeautifulSoup도 같은 것을 지칭하는 게 아닐까 싶어 조심스레 여쭙습니다. [추가 내용] 보통 검색하거나 챗GPT로 찾아보곤 하는데 인프런 추석 연휴 챌린지에 강의 질문 미션이 포함되어 있어 질문 남겼습니다. 간단한 질문임에도 불구하고 확인해주셔서 감사합니다. 😭
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요 먼저 유사한 질문이 있었는지 검색해보세요 저번 실기시험에서 낙방할때 R로 작업을 했는데요 1유형을 R로 하고 2,3유형을 python으로 한다거나 유형에 따라 교차로 시험 볼수 있나요? 갑자기 생각 안나면 그전에 외웠던거라도 해야 하나 싶어서 여쭙니다
안녕하세요 선생님, 인프런에서 진행하는 추석완강 챌린지에서, 선생님 강의를 신청하여 수강하고있습니다. 강의는 너무 잘 듣고있고, 오늘 미션이라 특별히 궁금한점은 없지만 질문 남겼습니다.^^ 저는 원래 Spring 기반의 백엔드 개발을 하다가, 이직을 하면서 생성형 AI기반의 서비스를 개발하는 업무를 담당하게 되었는데, RAG 기반 서비스 개발을 하면서 LLM을 공부하다보니, 딥러닝의 기초 없이, attention이나 트랜스포머 아키텍쳐를 이해하기에는 어려움이 있어 선생님 강의를 통해 머신러닝 - 딥러닝 공부를 할 계획을 가지고 있습니다. 감사합니다.
이번 강의에서 아키텍처 설명과 interface를 활용해 계층 간 의존도를 끊는 방법을 보며 시야가 넓어지는 느낌을 받았습니다. 토비님은 새로운 프로젝트를 시작하거나 기존 코드를 리펙토링할 때, 어떤 기준으로 아키텍처를 선정하는지 궁금합니다. 팀원들의 지식 범위나 프로젝트의 뱡향성, 개발 속도 등 여러 요소 중 어떤 부분을 더 중요하게 고려하시는지도 듣고 싶습니다.
안녕하세요 :) 저는 게임 개발자를 희망해서 C#으로 코테를 준비하고 있습니다. C#에는 기본 제공 PriorityQueue가 프로그래머스 환경에서 지원되지 않는데, Python이나 C++처럼 heapq나 priority_queue를 쓸 수 없는 경우 어떻게 대비하는게 좋을지 여쭙고 싶어 질문드립니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] Spring Data JPA에 있는 인터페이스를 사용하는 경우가 많이 보이는데 강의에서는 EntityManager를 주입받아서 직접 구현하는 방식으로 설명해주신 이유가 궁금합니다.
회사 규모상 프로젝트를 혼자서 개발하는 경우, 강의의 내용을 적용해서 도메인 문서를 만드는 것이 개발에 대한 정리나 추후 다른 사람이 봤을 때 도움이 될 수는 있으나, 당장 시간에 쫓기기도 하고 다른 사람의 피드백 없이 혼자서 정리하다 보면 잘 정리하기 힘들다는 생각이 되는데요. 이런 상황에서의 정리는 오히려 도움이 안될 수도 있다는 생각이 드는데, 토비님께서는 어떻게 생각하시는지 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] JPA 공부 중 프록시 객체부분에서 혼란이 있습니다. em.getReference()로 가져온 객체는 실제 엔티티가 아니고 프록시라는데, == 비교 시 언제 같고 언제 다른가요? 프록시 객체는 언제 실제 엔티티로 초기화되나요? (예: 필드 접근 시점? 트랜잭션 종료 시점?) 만약 영속성 컨텍스트에 이미 로드된 엔티티가 있을 때, em.getReference()를 호출하면 어떤 객체를 반환하나요?
학습 관련 질문을 남겨주세요. 어떤 부분이 고민인지, 무엇이 문제인지 상세히 작성하면 더 좋아요! 먼저 유사한 질문이 있었는지 검색해 보세요. 서로 예의를 지키며 존중하는 문화를 만들어가요. 안녕하세요. 좋은 강의 재밌게 수강하고 있습니다! 강의를 들으면서 의식적으로 테스트 코드를 작성하기 위해 노력하고 있습니다. 학습하다 보니 테스트 코드에 대한 부분을 정량적인 지표로 활용할 수 있는 커버리지라는 지표가 있다는 것을 알게 되었는데요. 제가 개발하는 부분은 도메인이 복잡한 프로젝트는 아니다 보니, 주로 Service Layer와 Presentation Layer 위주로 작성하게 되더라구요. queryDSL이나 native query를 이용해 복잡한 쿼리를 작성하게 되면, 가끔 Persistence Layer까지 작성하게 되는 것 같습니다. 그러다 보니, 도메인 패키지가 아닌 Config 등 global 패키지에 존재하는 코드나 Persistence Layer의 테스트 코드가 커버리지가 낮고, Persistence Layer의 커버리지도 낮아서 그런지 보통 프로젝트의 라인 커버리지가 60% 전후를 기록하고 있는 것 같습니다. 우빈님께서는 커버리지를 어떤 식으로 활용하시는지 궁금합니다! 커버리지 자체를 신경쓰기 보다는 말씀해주신 대로 미래를 위해 의미가 있는 테스트 코드를 작성하고 싶은데, 커버리지도 활용하는 방법이 있는지? 그리고 주로 어떤 레이어 위주로 테스트 코드를 작성하시는지 궁금합니다! 읽어주셔서 감사합니다.
안녕하세요 취업 후 k8s, CI/CD, monitoring 구성과 같은 업무만 진행하다 보니... 아무래도 직접 코드를 입력하는 시간이 부족하여 이번 연휴를 기점으로 다시 코딩 테스트 준비를 하고 있습니다. 이게.. 생각보다 오래 손을 놓았더니 간단하던 것들도 쉽게 떠오르지 않더라구요; 그래서 앞으로 꾸준히 매일 하나씩 풀어가는 습관을 길러 보고자 합니다. 다만 업무와 병행하려하니 시간이 부족한데요, 딩코딩코님께서는 문제 풀이 시 얼만큼의 시간을 투자하는 것을 추천하시는 지요? 문제가 풀릴 때까지 포기를 않고 붙잡게 되어서.. 딩코딩코님이 추천하시는 대로 그냥 과감하게 진행해볼까 합니다.
안녕하세요. 좋은 강의 감사합니다. 아직 강의를 완전히 제 것으로 만들기에는 시간이 부족해서 강의 외 질문드립니다. 강의 주제와 관련은 있으나 강의 관련 질문은 아니니 가볍게 답변해 주시면 됩니다. 증권데이터 수집, 분석 강의를 수강한 이유가 주식 자동매매 프로그램을 만들고 싶어서입니다. 가족 중 한 분이 투자한 많이 물려 있는 주식을 정리해야 하는데, 항상 주식 그래프를 보고 있을 수가 없어서 자동매매 프로그램 제작에 관심을 갖게 되었습니다. 한국투자증권, 키움증권이 REST API를 지원해서 이 두 회사용으로 만들어 보려고 합니다. 처음에는 조건을 주고 자동매매하고, 추후에는 강화학습을 활용해서 완전 자동화를 해보고 싶습니다. 프로그램이 계속 돌면서 Discord로 알림 메시지를 보내는 걸로 하려고 합니다. 혹 유사한 사례나 참고할 자료, 프로그램 개발 방향에 대한 조언 등이 있으면 알려 주시면 감사하겠습니다.