안녕하세요, 강사님! 강의 잘 듣고 있습니다. 들으면서 작은 서비스들을 몇개 만들어보고 있어요. 현재 Next.js와 Supabase를 기반으로 B2B 솔루션, 유틸리티 서비스등 총 7개의 프로젝트를 혼자서 개발 및 운영하고 있습니다. 현재는 프로젝트마다 별도의 Supabase 인스턴스를 생성하여 관리하고 있는데, 그러다 보니 Pro 플랜 기본료 25달러 에 프로젝트당 추가 컴퓨트 비용 10달러 가 붙어 매달 약 $85(11만 원 이상) 의 고정비가 발생하고 있습니다. 1인 개발자로서 프로젝트를 계속 확장해 나가기에 비용적 부담이 커지고 있어, 다음과 같은 '단일 DB 통합 전략' 을 검토 중입니다. [검토 중인 통합 전략] 단일 프로젝트로 일원화: 하나의 Supabase Pro 프로젝트만 유지하고 나머지 인스턴스는 제거. Postgres 스키마(Schema) 활용: 기본 public 스키마 외에 서비스별로 별도 스키마(예: service_a , service_b )를 생성하여 데이터 격리. Client-side 대응: Supabase Client 설정 시 각 서비스에 맞는 스키마를 지정하여 호출. [강사님께 여쭙고 싶은 점] 유지보수 및 확장성: 1인 개발자가 관리하기에 이러한 스키마 기반의 통합 방식이 장기적으로 서비스 간 간섭이나 관리 복잡도를 크게 높이는 요인이 될까요? 인증(Auth) 및 보안(RLS) 설계: 하나의 프로젝트 안에서 여러 서비스의 사용자(Auth)를 관리할 때, 메타데이터 등으로 유저를 구분하는 방식이 보안 아키텍처상 취약점이 될 가능성이 있을까요? 성능 리스크: Micro 인스턴스 하나에 7개 서비스의 부하를 몰아넣는 것이(현재는 초기 단계라 트래픽이 적지만) 운영상 위험한 선택일지 궁금합니다. 인프라 대안: 혹시 1인 개발자가 다수의 사이드 프로젝트를 저비용으로 안정적으로 운영할 때, 위와 같은 통합 방식 외에 더 권장하시는 인프라 구성이나 전략이 있으신지 조언 부탁드립니다. 비용 효율성과 기술적 부채 사이에서 최적의 균형점을 찾고 싶습니다. 강사님의 소중한 인사이트를 나눠주시면 개발 방향을 설정하는 데 큰 도움이 될 것 같습니다. 감사합니다!
안녕하세요. 우선 저번과 같이 좋은 강의를 열어주시고, 강의 업데이트도 감사합니다. 100퍼센트 완강하고 좋은 후기 작성 꼭 하고 싶어서 열심히 따라가고 있습니다. 다름이 아니라 질문이 하나 있어서 질문글 남깁니다. 열심히 진도 따라가면서 드는 생각인데, 처음부터 한 번에 PRD에 집어넣어서 기능 다 만드는게 맞는건지, 아니면 고도화를 차근차근 해나가는게 맞을까요? 아 시간은 오래 걸려도 됩니다. 수익화와 테스트를 위해서 재빠르게 mvp 제작을 위해서가 아닌, 진짜 개발할 때의 클로드코드의 토큰 효율성이 궁금해서 질문드리는 부분입니다. 항상 좋은 인사이트 주셔서 감사합니다. 수고많으십니다.
설치를 하다보니 .mcp.json이 .claude 안이 아니라 같은 디렉토리에 설치되더군요. claude code에도 물어보니 이게 표준이라 대답해주고요. 혹시 이게 표준인 이유가 있을까요? claudecode 관련은 .claude 폴더 안에 모아서 관리하는게 편한 것 같은데요. 아니면 설치한 방식에 따라 달라지고 실제 퍼포먼스와는 전혀 상관없이 알아서 참조하나요? 만약 이를 옮기려 한다면 claudecode에게 알려줘야 할까요? 그래야 한다면 claudecode가 프로젝트 내의 디렉토리 안의 .mcp.json을 알아서 찾아서 참조하는게 아니라 특정 디렉토리로 정해져 있다는 걸 텐데요, 그 디렉토리는 어디에 적혀져 있는 걸까요? 그걸 수정할수도 있을까요? 두서없이 길어졌네요. 죄송합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 현재 최신 버전인 SpringBoot4 + Hibernate7 을 사용해서 강의를 듣고 있습니다. 이 버전에서는 (Hibernate 모듈 등록 X + 프록시 직접 초기화 X] 상태에서 API 응답으로 엔티티를 곧바로 반환하게 되면, 강의 내용처럼 오류(예외)가 나지 않고, Jackson이 json을 만드는 과정에서 getter 등을 호출해서 프록시 객체들을 자동으로 초기화(로딩)시키는 것처럼 보이네요. 응답 결과에서도 모두 출력되고요 (물론, @JsonIgnore 없으면 무한루프는 발생) 그래서 강의 내용처럼 오류가 나도록 하는 방법을 한참 찾다가 현재 버전에서 Hibernate 모듈을 등록하는 방법을 발견해서 공유해봅니다. (메뉴얼에도 없길래) [등록 방법] 1. 라이브러리 등록 implementation 'tools.jackson.datatype:jackson-datatype-hibernate7' 2. 빈 등록 @Bean public Hibernate7Module hibernate7Module() { Hibernate7Module module = new Hibernate7Module(); // module.configure(Hibernate7Module.Feature.FORCE_LAZY_LOADING, true); return module; }
안녕하세요, 이부분이 전혀 이해가 안됩니다;;; 맥에서 git까지는 설치가 된것 같은데요, 영상처럼 화살표가 나오는 iterm2 화면은 뜨지 않아요. 그리고 현재 창에서는 이름, 이메일 설정을 하면 진행이 안되구요.. 하나씩 가주시면 좋을것 같은데, 갑자기 저 창이 떠서 어디서 뭘 해야할지 모르겠습니다. 다른분 질문을 봐도 모르겠구요;; 감사합니다
안녕하세요, 강의 잘 보고 있습니다. 강의 때 활용한 자료를 보면 'The 4 Core Layers of Context'로 Role Context, Task Context, Information Context, Memory Context라는 개념을 제시하셨습니다. 관련해서 조금 더 찾아보고 싶어서 해당 키워드로 인터넷에 검색했지만, 정확하게 매칭되는 자료를 찾지는 못했습니다. - 발표자료 속 'The 4 Core Layers of Context' 는 선생님께서 Context Enginnering을 학습하면서 배운 것들을 초심자가 이해할 수 있도록 직접 정의한 개념이라 생각이 들었는데 맞나요? - Context Enginnering 관련 발표자료를 만들기 위해 참고하신 자료가 어떤 것인지 알려 주실 수 있을까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. ============================= 안녕하세요. Spring Data JPA에서 연관관계 필드에 대한 exists 메서드 사용 시, 아래 두 방식 중 어떤 방식이 더 적절한지 궁금합니다. ProjectMember 엔티티는 아래처럼 Project , User 와 연관되어 있습니다. public class ProjectMember { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "project_id", nullable = false) private Project project; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "user_id", nullable = false) private User user; } 사용자가 특정 프로젝트에 포함되어 있는지 확인하려고 할 때, 아래 두 가지 방식을 테스트해봤습니다. 1. 식별자 사용 : boolean existsBy UserId And ProjectId (Long userId, Long projectId) 단점: 이 메서드를 실행하면, project_members 테이블에 user_id , project_id FK가 있음에도 불구하고 users , projects 테이블과 불필요한 left join이 발생 했습니다. 실행 SQL: select pm1_ 0.id from project_members pm1_0 left join users u1_0 on u1_ 0.id = pm1_0.user_id left join projects p1_0 on p1_ 0.id = pm1_0.project_id where u1_ 0.id = ? and p1_ 0.id = ? fetch first ? rows only; 2. 엔티티 사용 : boolean existsBy User And Project (User user, Project project) 장점: 이 경우에는 조인 없이 where 절에서 FK 컬럼으로 조회 되었습니다. 단점: 하지만, 이 메서드를 사용하려면 서비스에서 userId, projectId 를 이용하여 User와 Project를 추가로 조회 해야 한다는 단점이 있습니다. 실행 SQL: select pm1_ 0.id from project_members pm1_0 where pm1_0.user_id = ? and pm1_0.project_id = ? fetch first ? rows only; 결론: 이 경우 두 방식 중 어떤 것을 사용하는 것이 더 좋은 선택인가요?