유저가 좋아하는데 집중해야하고 엄청난 양의 처리를 미리 만들어야 하는건 아니지만 적어도 정석적으로 만들어서 추후 확장 가능하도록 설계하거나 레거시가 발목잡지 않도록 하는게 중요함 그걸 알려면 대형 시스템을 개발 혹은 운영해본 경험이 중요하고 결국은 작은 코드로 시작해야 하지만 많은걸 생각하고 있어야함
오늘 영상은 주로 DB에 대한 내용이네요. 저는 게임 업계에서 DB디자인을 어떻게 하는지 궁금하네요. 단순하게 생각해도 수많은 아이템이 있고, 그 아이템이 각 유저마다 각각의 엔티티로 관리될텐데, 어떻게 그렇게 빠른 속도가 나오는지 알고싶네요. 무작정 1:1 매칭이 되게 연결을 한 걸까요?
안녕하세요!! @2:26 에서 왜 NGinx Load Balancers 앞에 ELB Load Balancer를 또 배치시켜놨는지 설명해주실수있으세요? 그리고 왜 NGinx Load Balancer 도 3개나 있죠? Python/Django Application Server는 1나 뿐인데?? 영어로 설명해주셔도 되요!
역시 개발에 있어서 1. 가장 필요로하는 요구사항을 만족시키는 것 2. 사용성을 고려하였을 때 최대한 실행가능한 범위의 효율성을 내는 것 여기서 1번은 요구사항을 잘 캐치해내는 센스와 시각, 2번은 기술적으로 가장 효율적인 방법과 현실적인 문제(또는 조건) 사이의 타협점이 늘 쉽지 않네요. DB설계에서 인덱스와 status를 담당하는 컬럼들을 짤 때마다 더 효율적인 방법을 찾으려 노력하곤 있는데 차선책이 결론이 되는 것..😂
일반적으로 MMORPG 는 웹 서버로 구현하지 않습니다. (로그인 서버 정도) 뭐 Web Socket을 이용해서 구현하는 경우도 있긴 합니다. Windows API를 공부하신 후에 Operating System을 공부하시고 컴퓨터 구조를 공부하시고 동기 / 비동기, 블락 / 논블락에 대해 공부하시고 Network 부분에서는 OSI 7 layer TCP/UDP Select Model (windows) / poll (linux) WSA Event Select Model (windows) / e-poll (linux) / WSA Async Select Model (windows) 를 공부하시고 IOCP (windows) 를 공부하시고 DB 부분에서는 SQL 이 정도 공부해야 MMORPG를 만들기 위한 기본적인 준비가 끝납니다. 물론, 추가적으로 알아야 할 것들이 산더미지만 🥲
와우 b2c 서비스 만들다가 좋아요 시스템도 만들고 하면서 어디서 배운게 아니라 고민고민하면서 적용을 해두었던건데 위에 메타에 인수되기 전 db설계내용물이나 캐시사용이나 사용법이 제가 구축한것과 똑같네요! 역시 사람 생각은 다 비슷비슷하군요. 좀더 공부를 해야 혼자 고민할시간에 그냥 습득해서 진도내보는것도 좋은 선택일거 같습니다~ 물론 고민하는 과정이 재밌지만요.ㅎㅎ
최근 SaaS 에 대한 관심이 계속해서 높아지고 있는 만큼, Jira를 만들고 있는 아틀라시안 혹은 Salesforce 등 협업툴이 어떻게 돌아가고 있는지 알려주세요!! 한번에 대용량 트래픽을 감당해야 하는 B2C 서비스와는 다르게, 트래픽 자체는 적지만 안정성과 효율적인 DB 설계 등 B2B 서비스가 돌아가는 방식을 비교해서 알려주시면 큰 도움이 될 것 같아요.
🔥 니꼴라쓰의 NextJS 14.0 무료 강의 🔥
bit.ly/48Lo8gV
-
📌 직접 만들면서 코딩 배우기 (*무료*)
👉🏻 bit.ly/46W9XVC
0:56 김칫국마시지말고 유저가 뭘 좋아하고 원하는지 본질에 집중하라는 뜻. 안타까운 말이지만 서비스의 95% 이상은 AWS 호스팅이 필요해지는 규모를 갖추기도 전에 흔적도 없이 사라질테니.
맞아요!
그럼 그전엔 보통 어디서 무슨 호스팅을 하나요
vercel 이요
cafe24
LocalHost
유저가 좋아하는데 집중해야하고
엄청난 양의 처리를 미리 만들어야 하는건 아니지만
적어도 정석적으로 만들어서
추후 확장 가능하도록 설계하거나
레거시가 발목잡지 않도록 하는게 중요함
그걸 알려면 대형 시스템을 개발 혹은 운영해본 경험이 중요하고
결국은 작은 코드로 시작해야 하지만 많은걸 생각하고 있어야함
사용자들이 좋아할 기능을 일단 구현하라는 부분 진짜 중요하네요
오늘도 좋은 영상 감사합니다
진짜 궁금했던게 인스타랑 유튜브의 방대한 데이터 처리였는데 일부분 알게되어 좋네요
도움이 되셨다니 다행입니다.^^
오늘 영상은 주로 DB에 대한 내용이네요. 저는 게임 업계에서 DB디자인을 어떻게 하는지 궁금하네요. 단순하게 생각해도 수많은 아이템이 있고, 그 아이템이 각 유저마다 각각의 엔티티로 관리될텐데, 어떻게 그렇게 빠른 속도가 나오는지 알고싶네요. 무작정 1:1 매칭이 되게 연결을 한 걸까요?
정규화와 인덱스 살펴보시면 반은 맞아요
그 이후는 약간의 테크닉이 마법을 만듭니다
바로바로 db에 저장하지 않고 인스턴스에 저장해 두었다가 꼭 업데이트가 필요한 때(접속종료 등) 에 db에 넣어주는 방식도 써봤습니다
@@소스코드-u2k그 약간의 테크닉을 물어보는거 같은데.
푸C 마냥 얘기하는건 극혐이네ㅋㅋ
실시간 동기화가 중요한 정보들은 stateful 서버의 경우 DB로 처리하지 않고 메모리 레벨에서 처리한다고 알고 있습니다
바로바로 db에 저장하기보다 캐시 많이 쓰지 않나요?
생각보단 별게 없네요 ㅋㅋ
간단하게 시작하는게 역시 중요하겠군요
ㄷ
개인적으론 이렇게 유명한 서비스의 구조를 설명해주실때 제일 몰입이 잘되는것 같아요
실제로 업무할때도 비슷한 상황이 나왔을 때 유명한 서비스는 어떻게 처리할까가 항상 궁금했거든요
가능하면 노션은 어떻게 구조가 되어있는지 알면 좋을 것 같습니다!!
좋은 말씀 감사합니다!
넷플릭스 구조 보고싶어요
설명도 함께요 ㅎㅎ
인스타그램편 잘봤습니다!
요즘 취업시장은 현업에 바로 뛸수 있는 사람을 찾고있기때문에 취업준비하는 사람 입장에서는 서비스 유저가 적든 많든 인프라 구성도 열심히 해야한다는게 참.. 아이러니 하네요
기본도 안되어 있는 애들이 인프라 운운하는게 우습죠 특히 요즘 신입 주니어들이 그럼 인프라에 왜케 힘을 쏟는지 기본부터 충실히 쌓고 해도 되는대
@@어흥이예랑 주객이 전도되면 안되죠 그런데 취업공고보면 우대사항에 배포경험, 서비스운영, cicd 파이프라인구축,aws ,docker 사용경험등등 인프라 흉내라도 내본사람을 찾고있으니 취업하려면 하긴해야합니다
와.. 이 영상은 소셜미디어 앱을 만드려는 사람에게 바이블이네요..
기본에 충실하면 된다. 대부분의 문제는 언어에서 발생하지 않음......
대형 앱의 백엔드 파헤치기 너무 좋습니다 다음에도 해주세요!
좋아요!!
4:59 즈음에 번역이 잘못된것같아요. 서버를 통해 간접적으로 업로드하는 방식이 직접적으로 S3에 업로드하는것보다 비용이 든다고 말하는 대목인데, 한글자막은 반대로 달려있네요
앗. 그렇군요. 실수했네요..ㅠㅠ 알려주셔서 고맙습니다!
웹은 일단 만들고 성능같은건 나중으로 미루는 거네요 게임같은거나 한방에 잘만들어야되고..
본질에 집중한 서비스, 인프라는 다음.
너무 좋은 게시 감사합니다! 도움 많이 되었습니다
영상 감사합니다~ '유튜브', '넷플릭스'도 데이터를 어떻게 처리하는지 궁금하네요. 대형 플랫폼에서 검색 기능도 어떻게 효율적으로 구현했는지 궁금해요!
몇칠은 공부해야 하는것들 항상 정리해서 올려줘서 늘 잘 보고 있어요~ 고마워용~
봐주셔서 감사합니다😊
졸업 앞둔 초보 엔지니이어인데 세상을 알아갈수록 대단한 사람들이 너무 많다는걸 느끼네요 ㅋㅋ
라이엇 같은 대형 게임 회사에서는 대용량 트래픽을 어떻게 관리하고 있는지 궁금하네요ㅎㅎ 항상 잘보고 있습니다 니꼬쌤 :)
유튜브가 영상을 어떤 식으로 저장하고 있는지 그리고 실시간 좋아요 처리는 어떻게 하고 있는지 궁금합니다!!
메타가 아마존에 지급하는 비용또한 어마어마하겠네요
안그래도 요새 앱 및 백엔드 성능 개선 관련 플젝 하고 있어서 흥미롭게 잘 봤습니다. 감사합니다 :)
이런 굉장한 영상을 한 달이 지나서야 보게 되다니..!
댓글에도 이미 있는데 노션 궁금합니다!
Dropbox 혹은 google drive 와 같은 파일 서비스를 제공하는 시스템도 알고싶어요
좋은 영상 감사합니다~! 🙌
Github, TH-cam의 Back-end도 궁금해요~!
오 너무 유용해서 좋아요 누르고 갑니다.Good luck!
좋은 댓글 감사합니다!
인스타 터졌다는 소식 보고나니까 이거뜨네 ㅋㅋㅋㅋㅋㅋㅋ
엄청나게 기술집약적인 앱이었군요... 거의 다 처음들어보는 개발도구.. 헉
진짜 오랜만에 좋은 유튜브 영상이였습니다 횽님!🎉
감사합니다! 더 열심히 하겠습니다!~!
Omg, nicholas knows so much. I feel proud to be your student 😅
좋아요 수를 굳이 다른 테이블에 저장할 필요 없다니 재미있네요. 정규화 미신(The Mythical Normalization)이라고 불러도 되겠어요. 😂
엄청 유익했습니다.
비동기 Promise를 배우는 이유가 여기에 있네요
다음 영상엔 gpt3 오픈 소스로 풀렸다는데 리뷰해 주세요!
안녕하세요!! @2:26 에서 왜 NGinx Load Balancers 앞에 ELB Load Balancer를 또 배치시켜놨는지 설명해주실수있으세요? 그리고 왜 NGinx Load Balancer 도 3개나 있죠? Python/Django Application Server는 1나 뿐인데?? 영어로 설명해주셔도 되요!
인스타 구조 계속 궁금했는데 조금이라도 알게되어서 재밌네요..! 유튜브랑 링크드인 구조도 궁금해요!
와우 저스틴비버프라블럼이라 ㅋㅋ 잘보고갑니다용❤❤❤
0:56 김칫국마시지말고 고객이 뭘 좋아하고 원하는지 본질에 집중할 것, 95%의 서비스는 AWS 호스팅조차 필요하지 않음, 리팩토링 대규모 확장성은 다음에
역시 개발에 있어서
1. 가장 필요로하는 요구사항을 만족시키는 것
2. 사용성을 고려하였을 때 최대한 실행가능한 범위의 효율성을 내는 것
여기서 1번은 요구사항을 잘 캐치해내는 센스와 시각, 2번은 기술적으로 가장 효율적인 방법과 현실적인 문제(또는 조건) 사이의 타협점이 늘 쉽지 않네요.
DB설계에서 인덱스와 status를 담당하는 컬럼들을 짤 때마다 더 효율적인 방법을 찾으려 노력하곤 있는데 차선책이 결론이 되는 것..😂
영상 타이밍 ㄷㄷㄷ
좋아요는 충격이네.. 앱개발할 때 저거 고민했는데 걍 따로 저장하고 있었다니 ㄷㄷ.. 최적화는 나중에 생각하고 일단 만들고 보자가 역시 중요한건가
캬 유용하네요, 저스틴 비버 이슈도 그렇고 의도적으로 비정규화하는게 성능에 도움이 되는군요
구글드라이브의 데이터 처리 방식을 알려주시면 감사할게요!
혹시 MMORPG 게임 분야 쪽의 서버에 대해서 알려주실수있나요?
전체적인 서버 데이터와 아이템 정보 등등 클라이언트와 서버와의 연결과 작동에 대해서 궁금합니다
일반적으로 MMORPG 는 웹 서버로 구현하지 않습니다. (로그인 서버 정도)
뭐 Web Socket을 이용해서 구현하는 경우도 있긴 합니다.
Windows API를 공부하신 후에 Operating System을 공부하시고 컴퓨터 구조를 공부하시고
동기 / 비동기, 블락 / 논블락에 대해 공부하시고
Network 부분에서는
OSI 7 layer
TCP/UDP
Select Model (windows) / poll (linux)
WSA Event Select Model (windows) / e-poll (linux) / WSA Async Select Model (windows) 를 공부하시고
IOCP (windows) 를 공부하시고
DB 부분에서는 SQL
이 정도 공부해야 MMORPG를 만들기 위한 기본적인 준비가 끝납니다.
물론, 추가적으로 알아야 할 것들이 산더미지만 🥲
user-to-user relation을 다루는 서비스라 이론상으로는 N^2의 백엔드 구축이 필요할텐데, 의외로 1억규모의 네카라의 백엔드랑 크게 다르진 않네요
국가별 성향별로 유저 집단이 나뉘다보니 실제 관계성은 훨씬 적어서 그런듯
조사할 때 인스타그램 기술블로그만 참고하신 건지 아니면 다른 레퍼런스도 참고하셨다면 어떤건지 더보기란에 공유해주시면 좋을 거 같아요!
와우 b2c 서비스 만들다가 좋아요 시스템도 만들고 하면서 어디서 배운게 아니라 고민고민하면서 적용을 해두었던건데 위에 메타에 인수되기 전 db설계내용물이나 캐시사용이나 사용법이 제가 구축한것과 똑같네요! 역시 사람 생각은 다 비슷비슷하군요. 좀더 공부를 해야 혼자 고민할시간에 그냥 습득해서 진도내보는것도 좋은 선택일거 같습니다~ 물론 고민하는 과정이 재밌지만요.ㅎㅎ
카톡 등 채팅 서비스는 어떤지 궁금해요
groq에 대해 알려주세요 ㅎㅎ
개꿀잼. 유튜브 분석도 기대됩니다 😊
깃허브와 깃 구조가 항상 궁금했어요옵!!
오늘 주제는 관심가는 내용이어서 시간 가는줄 모르고 봤네요
유익한 영상 감사합니다 ^^
헉 이영상 보고 난후 지금 인스타그램 서버가 터졌어요
ㅋㅋㅋㅋㅋㅋ
😂
감당하지 못하고 터졌버렸네요 😂😂
😂
Thank you, Nico! The next company to explore - TH-cam.
역시 외국에 있는 해커들이나 개발자들의 공통점은 말이 엄~~~청 빠르다는 것이야! 머릿속에 있는 것을 그냥 말한다라는 느낌이네! 재생속도를 0.75로 해서 들어야되나?
유튜브의 백엔드 구조가 궁금합니다!!!
예전에 최신기술이 들어가긴 했는데 개발 했었던 서비스랑 구조가 비슷하네요.
인스타그램이 파이썬을 사용한 덕에 파이썬 성능이 많이 발전할 수 있었죠 ㅋㅋㅋ
아닐거같은데..
개소리
정말 유용한 동영상!!
이미 잘 알려져있기도 하지만 유튭과 넷플릭스도 정리해주시면 감사하겠습니다 형님
like_count 를 직접 photo 테이블의 컬럼으로 선언했다면 동시성 관련 이슈가 발생할 것 같은데, 이문제를 어떻게 해결했을지도 궁금하네요 ㅎㅎ
동시성 문제는 DBMS에 포함돼있지 않나요? 트랜잭션 필요한 문제는 아니니까 어려운 문젠 아닐듯요
유튜브 재생수도 300 넘어가면 실시간으로 안 올라가듯이, 오차 생겨도 따로 배치 돌리는 수도 있겠죠.
'당장 조금이라도 오차가 있을 때 크리티컬한 문제가 발생하는 값이냐' 했을 때 아니라고 할 수 있는 부분이랄까요?
@@김인욱-u5q DBMS가 아무설정없이 동시성 문제를 해결해주진 않습니다. 여러 설정방법이 있겠죠. 락을 구현한다던가 하는 방법으로요. 인스타그램에서 어떻게했는지 궁금한것 뿐이에요
@@스톤히-l9w database management system에 락이 구현돼있지 않나요? 트랜잭션이 아닌이상 동시성을 백엔드 개발자가 락 걸어가며 써야한다면 dbms를 쓸 이유가 없지 않나요?
사진 카운트를 따로 모아서 +1 하는 방식이 이해가 안되네요
동시에 여러 +가 가능한가요
최근 SaaS 에 대한 관심이 계속해서 높아지고 있는 만큼, Jira를 만들고 있는 아틀라시안 혹은 Salesforce 등 협업툴이 어떻게 돌아가고 있는지 알려주세요!!
한번에 대용량 트래픽을 감당해야 하는 B2C 서비스와는 다르게, 트래픽 자체는 적지만 안정성과 효율적인 DB 설계 등 B2B 서비스가 돌아가는 방식을 비교해서 알려주시면 큰 도움이 될 것 같아요.
재밌게 잘 봤습니다!
20억 유저를 감당하려면 역시 돈이 많으면 되는것 같아요
폰허브는 어떻게 트래픽을 관리하는지 조사 부탁드립니다!
재밌네요
감사합니다
좋은 영상 감사합니다. 국내 최대 트래픽 커뮤니티 사이트인 디시인사이드도 궁금하네요 !
블라인드, 에타, 인스티즈, 웃대 같은 커뮤니티 사이트들도 궁금하네요
Aws쓰기전에 쓸만한 단일서버는 추천할만한것중 뭐가 있을까오
알리바바가 광군제때 주문 어떻게 처리 하는지 궁금해요
큰 시스템이라고 복잡할줄알앗는데 이미다해본거네...하긴 웹서비스가 다 똑같지뭐
공감. 이미 기본빵이 되버린듯한 구조로 항상 개발해 왔어서 그닥 새로운 사실은 없네요
그런데 한국엔 최적화된 서비스가 생각보다 별로 없다는거..
요약 ) 백엔드는 db 나 잘해라
Nicco, Is it acceptable to access a single row for multiple 'Like Count Update Queries'
👍👍👍👍
알고리즘에 갑자기ㅋㅋ
db normalize가 항상 정답은 아니라는것
후우.. 나는 저런 백엔드 쓸일 없어서 다행임..
Is this guy a rapper
Not even kidding
몽고디비 ㄹㅇ 개느려요.
그래서 만들기 쉽다 어렵다??
일단 만들어라
Google😄
구글
지렸다
쌌다
갈아입었다
(무한반복)
I am still hungry for more videos like this... 🥢
More to come!
I have a question that why they use post_id and user_id in likes table isn’t it better to use foreignkey instead??
That is how foreing keys are represented in the DB, they are just a column with and ID
@@nomadcoders oh I see thanks man
궁금햇던건데 너무 재밌네요