앞으론 과거에 겪었던 이슈들도 생각날때마다 여기에 기록하도록 하겠습니다. Maven에서 TestContainers 공식 플러그인을 활용해 DSL을 만들면 에러가 출력됨 결론부터 말하자면 TestContainers의 자체적인 문제고 실제 DSL 생성에는 문제가 없음. 무시하고 사용하면됨 See Also https://github.com/testcontainers/testcontainers-jooq-codegen-maven-plugin/issues/37 https://github.com/testcontainers/testcontainers-java/issues/1454 설명 maven 프로젝트에서 Testcontainer + flyway를 활용해 jOOQ DSL을 만드려면 아래 testcontainer에서 공식적으로 제공해주는 플러그인을 사용하는게 제일 편리함 https://github.com/testcontainers/testcontainers-jooq-codegen-maven-plugin 다만 PostgreSQL, MySQL등을 Testcontainer로 띄워서 DSL을 만들다보면 작업 마지막에 다음과같이 NoClassDefCoundError라를 에러메시지가 나옴 (다만 작업은 정상적으로 완료됨) 관련해서 이미 아래와 같이 이슈가 올라와있음 (필자도 겪어보고 여기에 의견을 남겼었음) https://github.com/testcontainers/testcontainers-jooq-codegen-maven-plugin/issues/37 결과적으론 공식 플러그인의 문제가 아니라 TestContainers 자체이슈임 TestContainers과 Maven 간의 자체적인 문제로 인해 발생하는 거였고, TestContainer의 이 이슈 가 해결되기 전까진 해결 할 수 없음 다만 이걸 플러그인 없이 수동으로 작업하는건 유지보수하기도 어렵고, 수동으로 작업해도 동일한 이슈가 발생할것이기 때문에 에러로그가 뜨더라도 사용하는것을 추천함.
안녕하세요, 권철민 강사님. FastAPI로 실제 서비스를 운영 중인 주니어 개발자입니다. EmailStr 이나 max_length=40 같은 경우, 프론트엔드에서 입력을 제한하더라도 백엔드에서 예외 처리를 한다고 가정할 때, Pydantic의 검증 오류는 모두 422 에러로 반환됩니다. 이 경우, 클라이언트에서 특정 오류(예: 이메일 형식 오류, 최대 길이 초과 등)를 구분하기 어려운 문제가 있습니다. 클라이언트에서 특정 오류에 대해 모달을 띄우는 등의 처리가 필요할 때, Pydantic 검증 대신 비즈니스 로직에서 200 응답을 반환하고, 약속된 에러 코드를 통해 오류를 구분하는 방식이 적절할까요? 정답은 없지만 어떻게 처리하는게 맞을까요?
선생님 덕분에 음~청 두꺼운 책을 본다던지 완전 비효율적으로 학습하는 것을 피할수 있는 것 같아요. 그리고 선생님 노하우나 경험도 잘 듣고 있어요,,, 첨부해 주신 강의자료는 책이라기 보다는 발표를 위한 ppt자료 같아서 제가 따로 필기나 자료를 첨부하면서 꼼꼼히 학습을 하고 있는데요,, "주문서 생성에 대한 고민(w/Application)" 부분을 강의 보다 보니 까요 결국 PL/SQL을 사용하면 애플리케이션을 사용하는 것 보다 어떤 장점이 있고, 어떤것을 기준으로 2가지의 선택지 중에서 택해야 하는지에 대한 설명이 없어요 ㅠ PL/SQL을 쓰면 도대체 왜 좋나요? 이를테면 디비 커넥션 하나에 한방쿼리 만들어서 쏙 보내면 속도 빨라져서 좋은것인가요? 그리고 실무 경험에 대한 노하우도 조금 더 담겨 있었으면 좋겠어요, 배치프로그램? 스케줄러? 등등 이요ㅎㅎ 대강 감으로는 알겠는데 살짝 궁금해서 간지러워요 ㅎㅎ 그리고 이것 저것 대명사 보다는 조금더 구체적인 단어로 설명해 주시면 좋겠어요, "쏙 보내면" 어디에 쏙 보내는지를 초보자는 몰라요 ㅎㅎ
앞으로 코테 합격 전략으로, solveSQL 문제 반복적으로 전체 다 푸는 것을 루틴으로 하면서, 최종목표 : 별 4,5개 문제 편하게 풀 수 있는 실력 만들기 로 갈까 하는데요. 어떻게 생각하시나요? 아니면, solveSQL 반복적으로 푸는 것도 좋지만, 다양한 문제 유형들도 풀어봐야할까요? (예를 들면, Programmers, HackerRank, Leetcode) 같은.
안녕하세요! 데이터리안님 저는 DA로 취준하고있는 학생입니다. 이제 슬슬 서류는 합격하기 시작했는데, 코테에서 떨어집니다. (일주일전 1번 떨어짐) 앞으로도 계속 코테가 있을 예정인데요. 조만간 또 SQL코테를 앞두고 있어서, 빠르게 SQL 실력을 올리고 싶습니다. 솔직히, SQL 문제 혼자 풀기 시작한 것은 벌써 몇달 됐는데, 실력이 잘 안 늘어서요.. 별 3개 문제 정도는 풀 실력이 된거같은데, With 문 쓰고, 서브쿼리 쓰는건 아~~~ 이걸 내가 할 수 있을까? 싶은 생각이 들어요. 그러던 중, 어제 변성윤(카일)님께서 링크드인에서 이 강의 링크를 추천해주셔서, 오늘부터 듣기 시작했는데. 되게 좋은 것 같아요! 이전에는, " 어쨌든 풀어서 답만 맟주면 된다는 식의 풀이 " 가 구글링하면 많은데, 그게 아니라 제대로 배워야겠다 는 생각이 들었습니다. 그래서, 어차피 sovleSQL 문제로 계속 공부해왔으니까 강의들으면서, 계속 풀이방식 적절했는지 피드백들으면서 빨리 익힐 수 있을 것 같은데, 지금 신청해도 들을 수가 없네요. (입문, 실전, 마스터) 다 빠르게 듣고싶은데. SQL 강의를 5월 5일에 개강한다고 돼있어서, 혹시 좀 더 빨리 수강할 수 있는 방법은 없는지 여쭤봅니다.
SELECT c.name FROM companies c JOIN games g ON c.company_id = g.publisher_id GROUP BY c.company_id, c.name HAVING COUNT(g.game_id) >= 10; 이렇게 풀어도 되는데, 뭐가 더 좋은 풀이인지 궁금합니다~~ 강의에서 설명하신 것처럼, 먼저 뭐부터 뽑을지 정하고, 거기에 필요한 걸(JOIN같은것) 추가하듯이 푸는게 좋은건가요?
안녕하세요 강사님 좋은 강의 정말 감사드립니다. 실습 따라면서 튜닝을 익혀가고있는데 이번 강의에서 이해되지 않는 부분이 있어 질문 남깁니다. 일단 저는 MariaDB를 이용하여 실습을 하고 있습니다 죄송합니다 ㅠ -- 튜닝 전 쿼리 SELECT st.student_id, st.name, AVG(sc.score) AS average_score FROM students st JOIN scores sc ON st.student_id = sc.student_id GROUP BY st.student_id, st.name, sc.year, sc.semester HAVING AVG(sc.score)=100 AND sc.year=2024 AND sc.semester=1; -- 튜닝 쿼리 SELECT st.student_id, st.name, AVG(sc.score) AS average_score FROM students st JOIN scores sc ON st.student_id = sc.student_id WHERE sc.year=2024 AND sc.semester=1 GROUP BY st.student_id, st.name, sc.year, sc.semester HAVING AVG(sc.score)=100; 두 쿼리 실행 속도에 별로 차이가 없어서 1) students, scores 두 테이블 각각 데이터 300만개로 늘리고 2) 두 쿼리 모두 동일하게 limit 10을 붙여줬더니 갑자기 성능 차이가 엄청나게 났습니다. -- 튜닝 전 쿼리 SELECT st.student_id, st.name, AVG(sc.score) AS average_score FROM students st JOIN scores sc ON st.student_id = sc.student_id GROUP BY st.student_id, st.name, sc.year, sc.semester HAVING AVG(sc.score)=100 AND sc.year=2024 AND sc.semester=1 LIMIT 10; -- 튜닝 쿼리 SELECT st.student_id, st.name, AVG(sc.score) AS average_score FROM students st JOIN scores sc ON st.student_id = sc.student_id WHERE sc.year=2024 AND sc.semester=1 GROUP BY st.student_id, st.name, sc.year, sc.semester HAVING AVG(sc.score)=100 limit 10; 제가 궁금한 것은 limit 10을 붙이면 튜닝을 하든 안하든 실행 속도가 더 줄어들어야 할 것 같은데 튜닝 전 쿼리가 갑자기 1분넘게 소요되더라고요. 튜닝 후 쿼리는 limit을 붙이나 안붙이나 별 차이가 없는데 튜닝 전 쿼리는 왜 limit을 붙이면 갑자기 성능이 엄청나게 저하되는걸까요..?? 확인해주시고 답변 주시면 많은 도움 될 것 같습니다 감사합니다!