안녕하세요 🙂 실무에서 만약 Spring과 Kotlin으로 프로젝트를 진행 했을 때 Spock로 테스트 코드를 짜도 상관이 없을까요? 이번에 Kotlin으로 프로젝트를 진행해야하는 일이 생겼는데, 저 또한 강의에서 사용하신 Spock가 익숙해서 사용을 하려고 했는데, 보통 Kotest를 많이 사용하는 것 같아서요. 실무 관점에서 Java 대신 Kotlin을 사용한다면, 어떤 테스트 프레임워크를 선택하는것이 좋을지 궁금해서 질문드립니다. 감사합니다.
강사님, 캐싱 관련해서 실무적인 관점의 질문이 있습니다. 강의에서 String 타입의 value에 JSON 형식으로 데이터를 저장해서 캐싱 처리를 한다고 배웠는데, 실무에서 어느 범위까지 캐싱하는 게 적절한지 감을 잡고 싶습니다. 과거에 MyBatis의 동적 쿼리처럼 조건부 로직이 포함된 200줄짜리 복잡한 쿼리가 DB에서 파싱되는 시간 자체만으로도 성능 부하를 유발했던 경험이 있습니다. 쿼리 자체를 수정하는 것이 베스트겠지만, 현실적으로 어려울 때가 있었습니다. 이런 '고치기 힘든 악성 쿼리'의 실행 자체를 회피하는 목적으로 Redis 캐싱을 적극적으로 사용하는 전략에 대해 궁금합니다. 실무에서는 이런 경우: 1. 쿼리 결과 데이터가 어느 정도 크기(예: 수십 MB)까지 Redis에 캐싱을 허용하시나요? 데이터가 너무 크면 오히려 Redis에 부담이 될 것 같아서요. 2. 만약 결과가 너무 크다면, 페이징 처리된 일부만 캐싱하시나요? 아니면 보고서처럼 핵심 요약 데이터만 따로 캐싱하는 전략을 사용하시나요? 3. 특히 이런 복잡한 집계/통계 쿼리는 데이터 변경이 잦지 않은데, 이런 경우 TTL은 보통 어느 정도로 설정하시는지 강사님의 경험이 궁금합니다.
안녕하세요 강사님 수업 잘 듣고 있습니다. 강의 범위에서 조금 벗어난 것 같긴 하지만.. 레디스 서버 구성에 대해 궁금한 점이 있어서 질문 드립니다. 강의에서는 여러 대의 웹서버에서 레디스 서버 한 대로 요청을 보내는 구성에 대해서 설명하시는데, 레디스 서버는 이중화/다중화를 고려하지 않는 건지 궁금해서요. 웹서버가 수십 대로 구성되어 있더라도 레디스 서버는 보통 한 대로 운영하는 것인지 궁금합니다.
안녕하세요, 강의 중 궁금한 점이 생겨 질문드립니다. GROUP BY 사용 패턴3: 필터링 후 그룹화에서 WHERE status = 'paid' GROUP BY status ORDER BY status 처럼 동일한 컬럼을 사용하는 경우, 하나의 인덱스로 효율적으로 처리할 수 있다고 말씀하셨는데요. 이 경우 WHERE 절에서 status = 'paid' 로 필터링하면, 결과가 모두 동일한 status 값을 가지게 되어 GROUP BY나 ORDER BY를 추가해도 WHERE 절만 사용한 것과 결과가 동일하지 않을까요? 궁금한 점: WHERE, GROUP BY, ORDER BY에서 동일한 필드를 사용하는 실제 사용 사례가 있을까요?
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! 서로 예의를 지키며 존중하는 문화를 만들어가요. 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해 주세요. 선생님~ 마지막 강의까지 수강을 했는데요 강의 말미에 5회분 모의고사 꼭 풀어보라고 말씀주셨는데 혹시 어디에 있는지 여쭤봐도 될까요? (아직 챕터별 퀴즈는 안풀어봤는데 그게 모의고사일까요?)
처음 세팅을 강사님처럼 naver-client 모듈을 생성하고 하지는 않았긴 했는데 이게 이유가 될 수 있나요? external에서 테스트할 때는 동일하게 common 쪽 import 하고 사용했을 때 테스트가 정상적으로 동작을 해서 뭐가 원인인지 모르겠습니다. C:\Users\82108\Desktop\PARK_BH\library-search\search-api\src\main\java\com\library\controller\BookController.java:3: error: cannot find symbol import com.library.NaverBookResponse; ^ symbol: class NaverBookResponse location: package com.library
안녕하세요. 토큰 관련해서 레디스에 저장하는 게 리프레시 토큰이라고 하셨는데요. 액세스 토큰을 저장 안 하는 건지 궁금합니다. 리프레시 토큰은 액세스 토큰이 만료될 떄 필요하니까 상대적으로 사용 빈도가 낮고 매 요청 시에는 액세스 토큰이 쓰이는 걸로 알고 있어서요. 그렇다면 수시로 검증해야 하는 토큰은 액세스 토큰이 아닐까 해서요. 감사합니다.
데이터베이스에 저장해야 한가? 아닌가? 구분은 이 정보들이 자주 바뀌는 정보면 데이터 베이스에 저장을 해 놓는다. 프론트단에서 백엔드로 저 데이터를 받아와서 그때 그때 실시간으로 업데이트를 시키는 것이 훨씬 좋다? 이렇게 말씀하셨는데 고정일 경우에는 그냥 프론트 코드에서 고정 시켜서 연동하면 된다는 것으로 이해했습니다. 고정적이니까 백엔드까지 갈 필요 없이 프론트 코드에서 연동하면 된다는 것도 이해가 됩니다. 그런데 자주 바뀌면 백엔드에 저장한다? 이 말씀 자체가 이해가 안됩니다. 그러면 백엔드에서 해당 앱들에 대한 데이터들을 어떻게 연동한다는 것인지 이해가 안가요. Oauth를 통한 연동 이런 것을 말씀하시는 걸까요? 그런데 그러면 고정적일 때도 어짜피 연동은 해야하니까 백엔드에 하는 것이 맞지 않을까요? 데이터를 Db에서 주고 받는데 백엔드에서 처리하는게 맞지 않을까요? 제가 백엔드 개발자 신입이여서 자세히는 모르겠습니다. 설명 부탁드립니다.
작성자 Id가 "박재성"이여서 이게 하나라도 바뀌면 같이 바뀌어야하는 데이터 중복이여서 FK로 바꿔야한다는 것은 잘 알겠습니다. 그런데 users 테이블에서 사용자 이름은 없는데 아마 jscode가 박재성을 의미하는 것 같은데 이게 FK로 바꾸었을 때 1번 id 값을 가지니까 1로 바뀌어야하는거 아닌가요? 그런데 강사님께서는 1,2로 바꾸셨는데 그러면 똑같은 박재성이라는 사람이 아니게 되는거 아닌가요? users테이블에서도 id가 1번 밖에 없어서.. 혹시 동명이인 그런 건가요?
가장 쉽고 깊게 알려주는 MongoDB 완벽 가이드 [ By. 비전공자 & Kakao 개발자 ]
MongoDB 설명에서 "BSON(Binary JSON)이라 효율적이고 더 많은 데이터 타입을 지원한다" 고 언급하신 부분에 대해 질문드립니다. 결국 Redis나 MySQL 같은 RDB도 내부적으로는 데이터를 바이너리 형태로 저장하지 않나요? 모두 바이너리로 저장하는데, 왜 MongoDB만 특별히 "바이너리라서 효율적이고 타입을 많이 지원한다"고 강조하는지 잘 이해가 안 됩니다.
자바 21, 스프링 부트 3.4.5로 하는데 dependencyManagement { imports { mavenBom " org.springframework.cloud :spring-cloud-dependencies:2024.0.1" } } 이 부분이 에러가 나는거 같아요 Execution failed for task ':dependencies'. > Could not resolve all artifacts for configuration ':detachedConfiguration3'. > Cannot resolve external dependency org.springframework.boot:spring-boot-dependencies:3.4.5 because no repositories are defined. Required by: root project : Possible solution: - Declare repository providing the artifact, see the documentation at https://docs.gradle.org/current/userguide/declaring_repositories.html 빌드가 안되네요 ㅠㅠ