묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨AI 시대에도 살아남는 엔지니어의 조건, 미국 빅테크 시스템 디자인·알고리즘 사고·오픈소스 실무 완성
차단 등 검증 로직의 위치
WhatsApp 채팅 아키텍처 설계에 대한 질문입니다. 영상에서는 참가자가 ws 서버에 메시지를 보내면 바로 Redis pub/sub으로 들어가고, 람다나 Stream을 통해 DB로 저장하는 방식을 설명하고 있습니다.하지만 DB 저장에 앞서 채팅방 참가 여부 검증, 메시지 전송 차단/해제, 구독자만 전송 가능 등의 검증(validation)이 필요한 경우가 있을 것 같습니다. 또한 이 경우 사용자에게 메시지 전송 실패/불가라는 즉각적인 피드백도 제공해줘야 할 것입니다. ws 서버에서는 보통 검증 로직은 담당하지 않는 것으로 알고 있는데, 이 경우 어디에 검증 로직을 넣는 게 적당할까요?
-
미해결개발자 개념 장착 - 프로그래밍 개발에 필요한 필수 개념과 핵심 이론정리
SP를 아직도 사용하나요?
안녕하세요. 웹/백엔드 JAVA 개발자입니다.현재 SP를 실제로 사용할까요? (DB Procedure로 이해)(레거시 시스템 운영 외 현대의 서비스에서)일반적으로 SP 방식의 경우 강의 내용에서 나온버전 관리의 문제, 벤더 락인, 부분적 로직 재사용 등의 한계가 있어보여, 저는 줄곧 ORM에 적합한 환경이 아니더라도 SP 보다는 Application 레벨에서 Query를 작성&관리&실행하는 형태로 줄곧 서비스를 운영해왔고, 강의에서 언급된 ORM의 단점도 Application 에서 쿼리를 관리하면 사라지는 단점으로 보여져서, 사실상 SP는 지양해야 할 레거시 방식으로 생각하고 있었습니다.아직 다른 도메인 영역에서는 SP를 고수하는 분야가 있는걸까요?
-
미해결시스템 디자인 첫걸음: 면접에서 돋보이는 백엔드 아키텍처 설계하기
캐시전략 - Write-behind
안녕하세요. 강사님캐시전략 - Write-behind 전략을 설명해주셨는데,인스타라이브나 유튜브라이브에서 좋아요를 한 사용자가 여러번 누를 수 있는데, 이때가 아마 Write-behind 전략을 적용할 수 있을 거 같습니다.1. 좋아요를 레디스 캐시에 카운트 증가2. 좋아요 누른 개수를 몇 초마다 flush로 카프카 큐에 발행3. 카프카 consumer에서 db저장 이런 방식으로 설계가 가능할 거 같습니다. 강의에서는 Write-behind DB에 나중에 저장한다고 말씀하셨는데 그럼 이런 라이브 상황에서 DB에 좋아요를 언제 저장하는 것이 바람직할까요? 그 기준을 어떤 식으로 잡으면 좋을지도 선생님의 고견이 듣고 싶습니다.좋은 강의 감사합니다.
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
일대일 fk 위치
안녕하세요.JPA 강의를 듣다가 궁금한 점이 생겨 질문드립니다.JPA 강의에서는 일대일 관계를 설명하면서 Member가 FK를 가지고 있는 방식이 더 좋다고 설명하셨고 김영한님께서도 주 테이블에 FK를 두는 방식을 더 선호한다고 말씀하신 것으로 해했습니다.그래서 저는 일반적으로 주 테이블이 FK를 가지고 있는 방식이 더 편리하다고 생각하고 있었습니다.JPA 강의에서 해당 이미지로 설명하셨어요. 그런데 이번 강의에서는 보조 테이블이 FK를 가지고 있는 방식이 더 좋다고 설명되어서 조금 헷갈립니다.저는 화면의 예시에서 Member가 주테이블,Locker를 보조 테이블이라고 이해했는데 강의마다 설명이 반대되는 것처럼 느껴졌습니다.혹시 제가 잘못 이해한 부분이 있을까요?
-
미해결김영한의 실전 데이터베이스 - 설계 2편, 실무에서 반드시 마주치는 9가지 설계 패턴
다음 강의는 언제쯤 나올까요?
다음 강의는 언제쯤 나오나요? 성능 최적화 배우고 싶습니다 😄
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
제 3 정규형 vs BCNF 정규형 차이점?
강의들을 때는 어렴풋이 알거 같고 근데 강의듣는거 끝내고 실제로 구별해보라고 하면 잘 못하는거 같아서요. 혹시 차이점을 예를들어서 좀 쉽게 설명해주실수 있을까요?저는 제 3 형 정규형 한거 같은데 또 보면 bcnf인거 같기도 하고 엄청 헷갈리고 있습니다. 도와주세요!제가 찾은 건 bcnf 가 후보키가 아니라 슈퍼키라고 나와서 더 헷갈리는 거 같아요.감사합니다. => 오랫동안 들여다 보고 이렇게 이해를 했는데 맞는지 모르겠습니다.기본적으로 슈퍼키가 아닌 일반키가 함수결정자가 되면 bcnf 위반이 되는거고 제 3 정규형은 슈퍼키가 함수결정자이거나 일반키가 함수결정자라도 결론쪽이 후보키 중에 일부이면 (prime attribute)이면 위반이안되는거 같습니다.
-
미해결카카오 코테 6주 합격! 실전 파이썬 코딩테스트
백준 사이트 서버종료
혹시 문제들 업데이트 안되나요 ??
-
미해결AI 시대에도 살아남는 엔지니어의 조건, 미국 빅테크 시스템 디자인·알고리즘 사고·오픈소스 실무 완성
Substack 1년 제공
안녕하세요. 강의 잘 수강하고 있습니다. SubStack 1년 무료 제공 링크를 통해 신청했는데,신청 처리 되었는지 확인 부탁 드립니다.
-
해결됨AI 시대에도 살아남는 엔지니어의 조건, 미국 빅테크 시스템 디자인·알고리즘 사고·오픈소스 실무 완성
특별 학습 자료 프로모션 1년 멤버십 무료 제공 문의드립니다
안녕하세요, 강의 잘 듣고 있습니다 감사합니다! SubStack 1년 무료 제공 관련해서 https://forms.gle/diKHUhvUe61JwzXF7 링크를 통해 신청했는데, 신청 정상적으로 되었는지 확인 부탁드립니다! 감사합니다!
-
미해결김영한의 실전 데이터베이스 - 설계 2편, 실무에서 반드시 마주치는 9가지 설계 패턴
실제 FK제약조건을 설정하지 않는이유
안녕하세요 영한강사님! 좋은 강의 너무 잘들었습니다! 강의에는 없는 내용이긴한데요! 실무에서는 실제 FK제약조건을 설정하지 않더라구요. 선배님들은 확장성때문이라고 말씀해주시는데 이것말고도 다른 이유가 있는지 궁금합니다!
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
BCNF 질문
마지막에 professor_name을 pk로 두고 그에 따라 1:1이기때문에 과목명을 그냥 컬럼으로 두셨는데 그러면 그 과목명이 만약에 바뀐다면 (데이터베이스 -> DB) 그렇다면 데이터베이스 수업을 하는 모든 교수님의 컬럼을 바꾸어야하니 갱신이상이 일어나는것 아닌가요?이런 경우는 어떤 정규형을 위반한건지 궁금합니다.
-
해결됨오브젝트 - 설계 원칙편
레이어드 아키텍처에서 도메인 중심 패키지 구조를 적용하거나 변화하는 시점이 있을까요?
안녕하세요 조영호님, 강의 복습하며 설계의 깊이를 더해가고 있는 수강생입니다. 8~9장을 통해 상/하위 모듈의 패키지 배치 원리를 배우며 실무 적용에 대해 고민이 생겨 질문 남깁니다. 그동안 실무에서 레이어드 아키텍처를 주로 사용하며 서비스와 도메인 로직을 구분해 왔는데, 복습하다보니 그간 해왔던 물리적인 패키지 분리(인터페이스와 구현의 분리 등)를 엄격하게 적용하는 것이 자칫 오버 엔지니어링이 아니었을까 하는 생각이 들었습니다.# 프로젝트 패키지 구조 예시 Project - ServiceInterface - ServiceImplement - RepositoryInterface - RepositoryImplement - Controller - Model 최근에는 의식해서 도메인 모델을 만들어 보는데, 기존 레이어드 아키텍처의 패키지 구조 내에서는 '도메인의 응집도'와 '레이어의 규칙'이 충돌하는 지점이 생겨 배치가 모호해지곤 합니다. 이에 두 가지 질문을 드리고 싶습니다.1. 단순히 레이어드 아키텍처로 감당하기 힘들어지는, 즉 '도메인 중심의 패키지 구조'로 변화해야 하는 구체적인 징후나 시점이 있을까요?2. 모든 모듈에 엄격한 패키지 분리를 적용하기에는 비용이 부담된다고 생각되는데, 마치 절차지향과 객체지향 중 하나를 선택하듯, 패키지 수준의 격리를 우선적으로 적용하기 좋은 도메인 특성이 있을까요? (예: 정책 복잡도가 높아 사이드 이펙트가 빈번한 곳, 혹은 외부 인프라 변경에 민감한 핵심 도메인 등) 최근에는 조영호님의 도서/강의 통해 배운 내용을 의식하면서 실무에 적용해보는데, 예전보다 일 하는게 즐거워진거 같습니다. 미리 답변 감사드립니다. 좋은 하루 되세요. 🙇🏻
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
연관 엔티티 네이밍 규칙
안녕하세요! 연관 엔티티의 네이밍 기준(연결 강조 vs 의미 있는 이름)에 대한 강의를 듣고 고민이 생겨 질문드립니다. 강사님의 조언대로 처음에는 '의미 있는 이름'을 우선적으로 부여하고자 했습니다. 하지만 실제 설계를 진행하다 보니 다음과 같은 딜레마를 겪고 있습니다. 1. 직관성 저하 및 매핑 테이블 식별의 어려움명확한 의미가 떠오르는 것만 의미형으로 짓고, 나머지는 연결 강조형(A_B)으로 설계했더니, 전체 ERD를 볼 때 어떤 테이블이 독립 엔티티인지, 어떤 테이블이 단순히 N:M 관계를 해소하기 위한 매핑 테이블인지 한눈에 파악하기가 어려워졌습니다. 규칙이 혼재되다 보니 오히려 일관성이 무너지는 느낌을 받았습니다. 2. 다중 다대다(N:M) 관계에서의 한계그렇다고 매핑 테이블의 일관성을 위해 모두 '연결 강조형(A_B)'으로 통일하자니, 두 엔티티 사이에 여러 개의 M:N 관계가 존재할 때 문제가 발생했습니다. 예를 들어, User와 Store 사이에 '찜하기', '방문 내역' 등 여러 맥락의 관계가 존재할 경우, 단순한 user_store라는 이름만으로는 이 관계들의 성격을 전혀 대변할 수 없었습니다. 보통 실무에서 이러한 상황일 때, 일관성(매핑 테이블임을 명확히 인지)과 의미(어떤 맥락의 관계인지 표현)를 모두 충족시키기 위해 주로 어떤 네이밍 패턴이나 타협점을 사용하시는지 실무 노하우가 궁금합니다!
-
해결됨분산 데이터 모델링
6강 - 해시태그 모델의 샤딩 전략에 대하여, 분산 정도(데이터 편중)와 트랜잭션 성능의 trade off 상황 발생 시에 대한 고민
안녕하세요, 선생님!6강 해시태그 모델을 배운 후 데이터 분산 정도와 트랜잭션 일관성의 trade off에 대한 선택이 생각났고, 이에 대한 선생님의 고견은 어떠하실지 궁금하여 질문 올리게 되었습니다. 질문 내용은 아래와 같습니다.데이터 편중도 크고 vs 트래픽이 많이 발생하여 트랜잭션까지 고려해야할때 샤딩키를 어떤 것으로, 어떤 부분을 tradeoff의 우선순위로 지정하는 것이 좋을지저의 경우 트래픽을 선택할 것 같은데, 데이터 편중에 대해 추가적인 보완사항이 있다면 어떤 것이 있을지 일단 강의의 경우, 제가 이해한 내용으로는, 해시태그 모델과 같이, PK/FK의 분산 정도가 비슷하고, 부모 속성(FK)에 의한 쏠림 현상이 발생하여도 그 규모가 충분히 크지 않으므로 쓰기 경로를 중점적으로 고려하여(동일 게시글에 대한 해시태그를 동일 샤드에 저장) 설계한다. 이와 같습니다. 저는 해시태그 모델과 함께, 다른 예를 들어, 하루에 50,000건의 거래가 이루어지는 대규모 거래가 발생하는데, 이를 거래 게시판을 각 도메인 별(화장품/전자기기 등)로 별도로 만들어서 한 거래게시판 당 하루에 10,000건의 게시글, 1개의 1000~2000개의 찜이 발생한다고 하였을때의 상황에 대해 생각해보았습니다. 제가 만약 실무에서 찜 DB를 설계한다고 가정하고, 이에 대해 대응한다고 하였을때, 1) 게시글 ID와 찜(누가 찜했는지 구분해야 함, 찜ID로 구분한다고 가정하면)의 트래픽이 한 한 게시글 기준 찜 몇천여개, 게시글 총 만여개의 수준으로 발생하여 규모가 충분히 작다고 볼 수 없습니다. 2) 따라서 데이터 쏠림 현상에 대해 고민을 안할래야 안할 수가 없고, 그러면서도 데이터의 균등한 샤딩에 대해서도 고민이 들게 되었습니다. 3) 결국 데이터 분산을 균등하게 하느냐, 쏠림이 발생하더라도 쓰기 트래픽의 성능과 일관성, 조회 성능의 이점이 큰 것인가를 선택해야 하는데 4) 분산을 선택하지 않고, 트래픽 성능/일관성/조회 성능을 생각하였을때, 확실히 단일 데이터베이스에 있을때 성능적인 측면에서도 좋고, 일관성, 특히 조회 시 별도의 CQRS 전용 쿼리모델이나 DB를 따로 두지 않고 인덱스도 따로 설계하지 않는 등 훨씬 엄청난 이점이 될 것으로 판단이 됩니다. 따라서, 분산 정도 대신 성능 쪽으로 결론짓고 샤딩 키를 찜 ID 대신 게시글 ID로 지을 것 같습니다. 대신, 엄청난 트래픽으로 인해 데이터 편중이 너무 커진다면 게시글 생성일자를 샤드키로 추가하여 데이터를 좀 더 세부적으로 분리할 것 같습니다(아니면 더 좋은 방안이 있을지). 이에 대해 선생님의 생각이 궁금하여 질문드리게 되었습니다! 감사합니다.
-
미해결김영한의 실전 데이터베이스 - 설계 2편, 실무에서 반드시 마주치는 9가지 설계 패턴
히스토리 관련 질문
안녕하세요. 히스토리 테이블 관련해서 질문이 있습니다. 원본테이블에 업데이트 이유를 트랙킹할 필요가 있으면 변경 사유 컬럼들을 추가하라고 말씀주셨는데 생성, 수정, 삭제시 모두 히스토리 테이블에 스냅샷형태로 저장한다면 변경 사유 컬럼들은 히스토리 테이블에만 있는게 좋지 않을까 싶어서 질문드립니다.
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
진짜 강의 듣는거 너무 고문
대충 빨리 듣고 필요한것만 정리 하고 넘어가고 싶은데 어렵고 지루하고 졸리고
-
미해결30분안에 끝내는 객체지향의 본질
다형성 개념 문의
안녕하세요, 요즘 이직 준비하면서 CS 인사이드나 좀 얻고자 해당 강의를 무료로 수강 중인데요. 우선 영상 만드시는데 수고하신 것 같습니다만 이해가 안되는 부분들(다형성)이 있어서 문의드립니다. 2강 '객체지향은 어떻게 동작하는가?' 6:08 해당 주제명과 코드는 추상화 라고 해야 적합할 듯한데요. OCP는 추상화에 관련 있기도 하고요 6:26 다형성의 핵심은 부모타입으로 다루는 것(구현이 아닌 추상에 의존한다) 이 말씀이 무슨 말씀인지 이해가 잘 안되는데, 공부하셨던 자료 출처가 있을까요? 결론적으로 문의를 요약하면 다형성 개념을 오버로딩/오버라이딩 개념보단 추상화 개념으로 보는 것 같은 데 다형성과 추상화과 어떤 관련이 있는 지 궁금하며 공부하신 자료 출처를 남겨 놔주시면 다른 이들도 함께 공부하는 기회가 될 것 같습니다 :))
-
해결됨오브젝트 - 기초편
자료 한번에 다운로드 받을 수 있게 좀 해주세요.
자료 한번에 다운로드 받을 수 있도록 압축해서 하나로 묶어주세요. 일일이 다운받는게 번거롭네요.
-
미해결김영한의 실전 데이터베이스 - 설계 2편, 실무에서 반드시 마주치는 9가지 설계 패턴
통계 데이터 수정 질문
안녕하세요, 좋은 강의 만들어주셔서 정말 감사합니다!!이번에 신규 기능을 추가하면서 통계 데이터도 필요한 상황인데 통계 데이터에 사용되는 원본 데이터가 수정되는 케이스는 어떻게 설계하는게 좋을지 조언을 구하고자 질문드립니다.통계 데이터는 유저가 조회하고, 데이터 조회 기간은 최근 7일/최근 한달/과거 한달(사용자 조정 가능)로 조정이 가능하고, 한 화면에 4가지 유형의 통계 데이터를 제공해야 해서 이를 위해 일별 통계 테이블을 사용하려고 했는데요.그런데 원본 데이터가 언제든 수정되거나 추가될 수 있는 상황입니다.그래서 수정한 사용자와 수정 일자를 따로 모아 배치를 돌리는 방향이 생각났는데 이렇게 설계해본 경험이 없어,우선은 실시간 증분 업데이트를 진행하고 데이터 정확성이 필요해지는 상황이 필요하다면 그때 위와 같은 배치를 돌리는게 나을지 또는 다른 방향이 있을지 궁금하여 질문드립니다.정산 데이터는 아니기 때문에 멱등성이 깨질 수 있는 상황은 감안하고, 기획 요구사항인 실시간성을 반영하는게 좋을지도 고민이 되어 질문드립니다!
-
미해결김영한의 실전 데이터베이스 - 설계 1편, 현대적 데이터 모델링 완전 정복
28강 sql 파일 어딨나여?
28강 sql 파일 어딨나여?