질문이 조금 많아서 죄송합니다. 다음 테스트 코드에서 commit()과 flush()의 위치가 이상해보였습니다. async def test_user_detail_for_real_user(client: TestClient, db_session: AsyncSession): user = User( username="test", password="test", email="test@example.com", display_name="test", is_host=True, ) db_session.add(user) await db_session.commit() await db_session.flush() commit()은 DB에 반영된 트랜잭션의 변경사항을 영속적으로 만들고 트랜잭션을 종료하는 코드로 이해하고 있고, flush()는 트랜잭션의 변경사항을 실제 DB에 SQL 구문을 통해 반영하는 것으로 알고 있습니다. 그래서 이 둘의 순서가 변경된 것이 아닌지 혹은 다른 의도가 있는 것인지 궁금합니다.
default_deps에서 기본 값으로 Depends 함수가 반환하는 객체가 할당되는 것까지는 이해했는데, 해당 동작이 왜 의도하지 않은 동작 인 건지가 이해되지 않습니다. 오히려 아래 쪽이 기본값이 적용되니 더 편리해 보이기만해서 Annotated를 권장하는 이유가 와닿지 않더라구여. 이에 대해서 조금 더 구체적으로 알고 싶습니다. DbSeDep = Annotated[AsyncSession, Depends(use_session)] async def annotated_deps(session: DbSeDep): pass annotated_deps() async def default_deps(session: AsyncSession = Depends(use_session)): pass default_deps()
현재 spring boot 버전 설치에서 JAVA 버전을 선택해야 되는데요, 현재 24, 21, 17 버전만 제공되고 있습니다. 그리고 스프링 부트드 3.4.0 버전은 없고 아래와 같은데요, 혹시 21버전이나 17버전으로 진행해도 관계없을까요? Spring boot 버전은 몇으로 하는게 좋을지 궁금합니다. 그리고 intellij 말고 VS code 로 진행해도 관계없을까요?
안녕하세요 강의 내용 중에 2.x내용이 많은데 그 중에 3.x에서는 사용할 수 없는 부분에 대한 강의를 표시를 해주시면 감사하겠습니다. 이미 3.x 존재하지않는 내용을 공부하는것을 덜어주셨으면 좋겠습니다. 물론 호환이 되거나 도움이 되는 부분은 그대로 좋습니다. 감사합니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
이 파일의 코드를 하나씩 실행하려고 하는데, 첫번째 코드는 2.8.0+cu126 두번째 코드에서 오류가 납니다. Looking in indexes: https://download.pytorch.org/whl/cu118 ERROR: Could not find a version that satisfies the requirement torch==2.0.0 (from versions: 2.2.0+cu118, 2.2.1+cu118, 2.2.2+cu118, 2.3.0+cu118, 2.3.1+cu118, 2.4.0+cu118, 2.4.1+cu118, 2.5.0+cu118, 2.5.1+cu118, 2.6.0+cu118, 2.7.0+cu118, 2.7.1+cu118) ERROR: No matching distribution found for torch==2.0.0 혹시나 해서 python 버전을 확인해 보니 3.12.12 (main, Oct 10 2025, 08:52:57) [GCC 11.4.0] 입니다. 이미 버전이 올라가서 mmdetection 2.x 실습이 가능할지 모르겠습니다. 조언 부탁드리겠습니다. 감사합니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 강의 내용을 질문할 경우 몇분 몇초의 내용에 대한 것인지 반드시 기재 부탁드립니다. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 6-4. 캐싱의 개념 3 2. 어려움을 겪는 부분 어떤 개념이 헷갈리시나요? 수업 자료를 보면 "Cache Aside는 구현이 간단하고 캐시 효율이 뛰어납니다. 하지만 데이터가 변경되었을 때 실시간으로 반영되지 않아 데이터 불일치 가능성이 있습니다."고 하는데, 왜 Cache Aside가 구현이 간단하고 캐시 효율이 뛰어난지 잘 이해가 가지 않습니다. Cache Aside에서는 애플리케이션 단에서 컨트롤을 다 해야 해서 구현이 길어지지 않나요? Cache Aside가 다른 전략과 비교했을 때 캐시 효율이 뛰어난 이유가 있을까요? 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 데이터 변경시 데이터 불일치에 대한 설명이 있는 것을 보면 혹시 해당 부분 설명은 Cache Aside보다는 Write Around Aside 에 대한 설명에 더 가깝지 않을까하는 생각도 해보았습니다.
1. 현재 학습 진도 몇 챕터/몇 강을 수강 중이신가요? 6- 12 여기까지 이해하신 내용은 무엇인가요? RedisTemplate으로 SETNX를 할 수 있고, 이 때의 리턴값은 boolean이다. 2. 어려움을 겪는 부분 어떤 개념이 헷갈리시나요? 수업 자료에는 RedisTemplate을 통해 SETNX 요청시 키 존재 유무와 상관없이 모두 True를 리턴한다고 설명 3. 시도해보신 내용 문제 해결을 위해 어떤 시도를 해보셨나요? 혹시 키가 이미 존재하면 RedisTemplate에서는 False 를 리턴하는 것이 아닐까요?
5.4.3 Alembic 설정하기 부분에서 다음 문장이 잘 이해되지 않습니다. "우리는 그동안 appserver 디렉터리 안을 시작점(root)으로 해왔습니다. 그래서 프로젝트 내 다른 패키지에 접근하는 경로도 from appserver.apps.account 나 from appserver.apps.calendar 또는 from appserver.db import DSN 처럼 접근했었죠." appserver 디렉터리 안이 시작점이 아니고 release-your-project-with-fastapi가 시작점(루트)이 되어야 하는 것 아닌가요? fastapi-dev를 실행한 것이 appserver 디렉터리가 위치한 곳이니 루트는 현재 위치한 폴더(release-your-project-with-fastapi)이지 appserver가 아니지 않나? 라는 의문이 들었습니다.
안녕하세요! 지방 사립 4년제 내년 8월 코스모스 졸업 예정인 학생입니다. 아직 많이 부족하지만 무작정 공부하는 것보다 취직할 때 필요한 요소가 뭔지를 알고 빠르게 포트폴리오를 채우고 싶어 이번 강의를 듣게 되었습니다. 제 상황을 간략히 설명드리자면 그동안 진로를 정하지 못하고 이것저것 찍먹만 하다가 올해 하반기부터 백엔드로 진로를 정하고 본격적으로 학습하기 시작했습니다. 현재는 Spring 기초와 큰돌님 코딩테스트 강의 들으며 공부 중입니다. 공부를 하면 할수록 객체지향과 구현에 부족함을 절실히 느끼고 있습니다. 현재 제가 한 프로젝트를 영끌해 보면 그나마 과제 수준의 데이터 분석 프로젝트 2건과 완성도 낮은 개인 프로젝트 1건이 전부고 수상 경력, 대외활동은 없습니다. 이전에 진행한 개인 프로젝트는 LLM의 도움을 많이 받아서 Next.js+FastAPI+GeminiAPI를 활용하여 회원가입, 글쓰기 등 기본적인 CRUD, 작성한 게시물에 대해 AI에게 피드백을 받는 것을 구현하는 것 정도만 했습니다. 처음으로 웹 사이트를 만들다 보니 코드가 난잡하고, 기획/설계 없이 빠른 기능 구현에 힘을 쏟다 보니 한계가 보여 개발을 멈췄습니다. Q1. 기존에 한 개인 프로젝트는 어떻게 해야 할지 고민입니다. LLM의 도움을 많이 받기도 했고 취직에는 Spring이 유리하다고 생각해서, 포트폴리오용으로 살리는 게 나을지 폐기하고 새로운 프로젝트를 하는 게 나을지 고민입니다. 만약 포트폴리용으로 쓴다고 하면 코드와 구조를 개선해서 다시 만든다거나 Spring으로 새롭게 만들거나 해야 된다고 생각되는데 어떻게 생각하시나요? Q2. 부트캠프를 다니는 것을 고려 중인데 어떻게 생각하시는지 궁금합니다. 혼자 공부하는 것도 한계가 있고 부트캠프를 하면서 팀 프로젝트도 할 수 있어서 좋은 기회가 될 거라고 생각합니다. 큰돌님이 추천하는 부트캠프 중 지금 시기에 할 수 있는게 SW마에스트로와 프로그래머스 백엔드 과정 정도뿐인데 SW마에스트로에 들어가기엔 지금 포트폴리오도 초라해서 프로그래머스 백엔드 과정을 고민중입니다. 부트캠프 추천 영상에서 "강사의 질이 중요하다"고 하셨는데 강사의 경력을 판단하는 기준이 있는지도 궁금합니다. Q3. 팀 프로젝트 시작 시기와 팀원 구하는 팁 궁금합니다. 이번 강의에서 팀 프로젝트의 중요성을 많이 강조하셔서 빠르게 팀 프로젝트를 완성하는 걸 목표로 하고 싶은데 제 실력이 팀원들에게 민폐가 될까 봐 망설여집니다. 어느정도 기술 구현 능력을 갖췄을 때 팀 프로젝트를 참여하는 게 좋을까요? 그리고 스터디를 통해 팀원을 구하는 걸 추천하셨는데 스터디를 하다보면 흐지부지 끝나는 경우가 많던데 결국 최대한 다양한 사람을 만나보는 것 밖에 답이 없을까요?
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] JPA의 기본 스펙은 엔티티에 기본 생성자가 필수라고 했는데 다른 엔티티는 다 생략되어있고 왜 Address에서만 명시를 하는건가요?
안녕하세요 제미니님 유튜브랑 인프런 강의 잘 듣고 있습니다. 항상 감사합니다. 😃 다름이 아니라 강의를 보고 사이드 프로젝트를 해보고 있는데, 도메인과 엔티티를 분리해서 엔티티는 단순 DB 매핑용으로만 쓰고 모든 비즈니스 로직을 도메인에서 처리해보려 하고 있습니다. 그러다 보니 '수정'같은 경우(예를 들면 state를 예약에서 취소로 변경하는)에는 id로 엔티티를 찾고 도메인으로 매핑해서 도메인 내부에서 검증과 로직을 처리해야 하는데, 매핑하는 과정에서 수정하는 데 불필요한 List<같은 격벽 하위 도메인> 들도 다 조회를 해서 세팅을 해줘야 하더라구요. 1 : N 관계라 쿼리도 많이 나가게 되고 수정에 불필요한 필드들을 세팅하는 거라서 비효율적이라 생각해서 개선을 해보려 합니다. 강의 예제 코드에서는 단순 update는 entity 에서 처리하는 것 같던데, 저는 도메인과 엔티티 계층을 엄격히 분리해서 service 내에서 entity를 의존하는 것이 불가능한 상황입니다. 또한 비즈니스 로직도 엔티티가 아닌 도메인 내부에 놓고 싶습니다. 수정에 필요한 필드만 가지고 있는 수정용 도메인을 만들어서 처리할까 생각도 해보았는데, 비즈니스 로직이 흩어지는 것도 이상하고, 얕은 지식이지만 애그리거트 루트에서 데이터 변경이 이루어져야 한다는 생각이 있습니다. 그렇다고 도메인 내부의 하위 도메인 리스트를 nullable하게 가자니 제미니님이 OrderSummary 관련 강의 때 말씀하신 null을 허용하는 도메인을 웬만해서는 선호하지 않는다에 공감이 가서 고려를 안하고 있습니다. 조언을 주시면 정말 감사하겠습니다 ㅜ.ㅜ 😢
학습 관련 질문을 남겨주세요. 구체적으로 적을수록 좋아요! 마크다운과 단축키를 활용하면 글을 더 편하게 작성할 수 있어요. 커뮤니티 질문 & 답변에 비슷한 내용이 있었는지 먼저 검색해보세요. 스택에 배열 참조 int[]가 아닌 배열의 인덱스만 저장해도 기존 weight 배열에서 값을 꺼내면 되니까 문제없지 않나요?? 그렇다면, 인덱스만 저장하지 않고 배열 참조를 저장하신 이유가 궁금합니다! 오히려 인덱스만 저장하는게 메모리 측면에선 이득이 아닌가 생각되어서 질문드립니다. 혹시 제가 잘못 생각하고 있다면 바로잡아주시면 감사하겠습니다!