3달 전 · CP 님의 답변 업데이트
RDBMS 실무 관계 연결 등 질문사항
혼자 프론트, 백엔드, DB 공부를 강의 보면서 독학하고 있는데 이번에 토이프로젝트로 쇼핑몰 웹을 하나 만들려고 합니다. 실무에서는 개발을 어떤식으로 하는지 궁금하여 질문 드립니다. 1. mysql 등 과 같은 RDBMS 테이블 관에 관계를 설정 안 하고 즉 외래키 연결 하나도 안 하고 사용할 때 장단점이 무엇인가요? 2. 지인 DBA분(오래 되심)께서 하시는 말씀은 관계 연결하면 DB 부하 심하다, 성능 저하된다 이런식으로 말씀하셨는데 맞나요? 2-1. 성능이 저항된다면 심하게 저하되나요? 3. 쿠팡, G마켓, 무신사, 유튜브 등과 같은 대형 플랫폼들은 RDBMS를 사용할 때 실제로 관계 연결을 안 하나요? 4. DB에서 값을 불러 올 때도 join 하나도 안 하고 소프트웨어적으로 수동으로 연결 한다. 제가 이해 하기로는 사진에 있는 예시 사진 참고 하면서 예를 들면 cart 불러오는데 user이름도 알아야 한다면 DB에 join을 해서 가져오는게 아니라 백엔드에 각 각 user, cart를 따로 호출하고 백엔드에서 if, for, array function 같은 메소드를 사용해 작업을 거쳐 가공 한다는 것 같은데 이러면 실무 적으로 봤을 때 장단점이 무엇인가요? 5. 대형 플랫폼 같은 실무에서는 4번 방식 처럼 하나요? 참고로 테이블이 20개 이상 정도 될 경우의 상황이 궁금합니다 실무에 관해서 민감한 질문 드려서 죄송합니다. 아는 것 없이 질문을 여러번 드려 번거롭게 만들어서 죄송합니다. 답변해 주신다면 열심히 공부하겠습니다.
개발자
#rdbms
답변 2
댓글 0
조회 58
8달 전 · 프레드윰 님의 새로운 답변
기술 스택이 진짜 난잡하게 됬는데 이럴땐 어떻게 해야될까요...
저는 8년차 개발자 입니다. 첫회사에서 7년 다음 회사에서 1년의 경력을 가지고 있습니다. 첫회사에서 Spring Framework를 다뤘구요, 웹팀에서 화면 구현에 더 중점을 두고 개발을 하느라 제품에 사용된 spring기술을 전부 파악하니깐 5년차가 되어있었습니다. 그때쯤 되니깐 팀장부터 말단 직원까지 저한테 다 물어보러 오더라구요... 그래서 더이상 성장을 못한다고 판단하고 혼자서 SpringBoot로 이것저것 만들어보고 python도 배우고 node.js도 배워보고 React.js도 배워보고 그러면서 지냈습니다. 그러다가 이직 제안을 받게 되어서 바로 이직하게 되었어요. 두번째 회사는 클라우드, AI 등 최신기술을 사용하는 스타트업 회사였어요. 여기서 내부 서비스를 유지보수하면서 지내다가 회사에 돈이 없어서 SI 프로젝트를 몇개 진행하게 되었는데 제가 총괄을 맡아서 시스템설계, DB 설계, React.js, Flask 전부다 맡아서 진행하게 되었습니다. 이 프로젝트 진행하면서 AWS 서비스를 직접 구축하게 되었는데 그제야 진짜 성장한다고 느껴졌습니다. (VPC, LB, EC2, S3, Amplify, API Gateway 등등등) 직접 하나하나 구축하면서 클라우드서비스 파악도 되고 참 뿌듯했습니다. DB는 왠만한 RDBMS는 다 다뤄본거 같습니다. Mysql/MariaDB, 오라클, PostgreSQL, Cubrid, MS-SQL 까지요 근데 이 DB들 설치하고 쿼리 날려본게 큰 장점은 또 아닌 거 같고.. 그리고 impala, Redis, Elastic Search, InfluxDB 도 해봤구요... 그리고 DB 테이블 설계하고 쿼리 튜닝하는것도 할수는 있는데 이건뭐 짬차면 다 할 줄 아는거라 메리트도 없구요. 이렇다보니 뭐 하나 잘한다는 느낌이 안듦니다... 뭔가 할줄 아는건 많은데 알맹이가 빠져있는 느낌이에요.. 몇군데서 불합격통보를 받으니 좀 답답하네요
개발자
#커리어
#물경력
답변 1
댓글 0
조회 174
일 년 전 · 강병진 님의 새로운 댓글
RDBMS를 제대로 공부하려고 하는데 어떤 제품을 공부하는 것이 좋을까요?
안녕하세요, 기존에 Back-end 엔지니어로써 RDBMS가 무엇이고 SQL Query 날리는 정도로 사용을 해왔는데 더 크고 나은 설계를 위해서 깊게 공부를 해보려고 합니다. 어떤 것을 해도 기본 개념은 비슷할 수 있지만 DB 엔진, Index 설계, 버퍼 풀 설정, 옵티마이저 등 깊게 하다보면 제품에 따라 다를 거 같아 제품의 선정이 중요하다고 생각됩니다. back-end Application을 위해서 Java+Spring이 가성비가 좋은 것 처럼 RDBMS도 output이 도움이 되는 제품이 있을 것이라고 생각됩니다. 제가 후보로 선정한 것은 아래와 같은데 - Mysql: 근본? 근데 MariaDB가 나와서 뭘로 할지 고민입니다... - MariaDB: Mysql FORK 라고 하긴 하지만 따로 문서와 책도 있고 하니 Mysql과 비교해서 어떤 것을 중점으로 해야하는지 고민 - PostgreSQL: 오픈소스 진형이고 요즘 많이 쓰고 있다고 하길래 미래지향적이라고 생각 의견 주시면 감사하겠습니다! P.S. 오라클 DB는 유료이기도 하고 금융 업계 혹은 DBA가 아니면 건드릴 일이 있나 싶어서 제외하긴 했습니다.
투표
개발자
#rdbms
#mysql
#mariadb
#postgre
답변 2
댓글 2
추천해요 6
조회 1,672
2년 전 · 김병수 님의 답변 업데이트
커리어리 같은 커뮤니티성 서비스는 보통 어떤 db를 차용하나요?
이런 경우엔 rdbms와 nosql 중 어떤 db를 주로 사용하는 지 궁금합니다. 그리고 왜 그런지 이유도 궁금하네요
개발자
#dbms
#db
답변 2
댓글 1
조회 208
2년 전 · 커리어리 AI 봇 님의 새로운 답변
RDBMS에서 데이타들이 관계를 가져야 하는 이유가 궁금해요
먼저 바보같은 질문에 사과드립니다. ㅎㅎ "일반적으로", 데이터를 하나의 entity에 몰아서 db에 넣지 않고 정규화 과정을 거치고 데이터들의 관계를 만들어서 db 에 넣잖아요. 근데, 문득 들은 생각은, 굳이 데이터간에 관계를 만들고 분리해서 저장해야 하나가 궁금점입니다. 오히려 분리된 데이터를 취합할 때 join을 사용하면서 실행속도에 손해가 생길 수 도 있고, entity를 분리하고 entity의 크기를 작게 만들면 해당 entity에 접근하는 속도가 빨라질 순 있겠지만, 지금 우리의 컴퓨터 속도를 생각하면 별 차이가 없을 거 같기도 해서요. 관련해서 구글에 검색해보긴 했지만, 원하는 대답을 찾을 순 없었습니다 ㅠㅠ 혹시 관련해서 나누고 싶은 이야기가 있으면 감사하겠습니다. 좋은 하루 되세요 ~.~
개발자
#rdbms
답변 3
댓글 2
추천해요 3
조회 200
일 년 전 · 장준영 님의 답변 업데이트
신입들은 MSA 쓰지 말라는 말에 대해 어떻게 생각하시나요?
안녕하세요 신입 3개월차 백엔드 엔지니어입니다. 현재 사이드 프로젝트를 하나 진행중입니다. 간단하게 ERC20 토큰 두 개와, 이더리움을 거래할 수 있는 DeFI 프로젝트이며, 구조는 NFT 유저 팔로워 및 팔로잉 정보를 담은 RDBMS, 코인의 가격과 마감가, 최고가, 최저가등의 정보를 담아두는 도큐먼트 Mongo, 그리고 EVM에서 가져오는 정보. 이렇게 3가지를 사용합니다. 아는 분의 여러 사람들의 조언을 들었는데, 구조가 여러 개의 I/O가 있으니 msa로 만들라는 분도 계셨고, 신입이 msa를 하다 보면 복잡하고 장점도 못 챙기는 경우가 많으니 몰아서 하라는 의견도 있었습니다. 어떻게 구현하는 게 좋을까요? 많은 트래픽을 실제로 다뤄보신 시니어 분들의 조언 달게 받겠습니다! 😘
개발자
#springboot
#backend
#blockchain
#msa
#arachitecture
답변 3
댓글 0
추천해요 1
조회 1,346
2년 전 · 최준혁 님의 새로운 댓글
백엔드 중견이상 포트폴리오
이제 4학년 올라가는 학부생입니다. 백엔드를 공부하며 포트폴리오를 준비하려 합니다. 인프런 강의를 통해 spring, jpa, spring security등을 학습했습니다 포트폴리오에 해당 기술들과 소켓 프로그램을 통한 채팅, 위치 인증이 필요한 커뮤니티를 개발하여 배포하는것을 목표로 합니다. 프론트엔드는 Vue.js를 다루는 친구와 함께 진행할 예정입니다 그러나 해당 기술들은 파면 팔수록 깊어지는 것 같아 어디까지 포트폴리오에 녹여야 할지 잘 모르겠습니다. 또한 중견기업 이상의 회사에 입사하려면 어떠한 기술 스택이 더 필요한지 채용정보를 봐도 잘 감이 안옵니다. 이 부분에 대한 답변을 얻고 싶습니다! 추가로 채팅 기능은 rdbms와 nosql 중 어떤 기술을 더 선호하는지 알고싶습니다
개발자
답변 2
댓글 2
조회 1,754
일 년 전 · 삭제된 사용자 님의 질문 업데이트
직무결정고민과 인턴 시작하기전에 어떤걸 공부하면 좋을지 추천 부탁드립니다!
9월부터 학점연계인턴을 시작하게 됩니다! 저는 ASP(Application Service Provider) 솔루션 회사에 근무하게 되었습니다. 아직 프론트엔드와 백엔드 직무를 결정하지는 못했고, 관심이 생기는 분야는 모두 공부해보고 있습니다. 직무내용에는 Open API를 활용하여, 대용량 트래픽 처리 시스템과 Headless Commerce 등에 대응할 수 있는 프로젝트를 진행합니다. 해당 프로젝트에 수반되는 프로그램을 개발하고, 사내 연구 인력에 대한 연구 보조를 담당하게 됩니다. 이렇게 적혀있었고, 요구기술에는 - Unix or Linux 시스템의 이해 - PHP or C 언어 - html / css / javascript 기본 지식 - DBMS(RDBMS 실습 및 SQL 언어) - 알고리즘 / 자료구조의 이해 실습생 지도 계획에서는 기본 UNIX, PHP, MYSQL, 웹취약점 등 보안 관련 교육을 진행 과제 수행 후에는, 소스 리뷰 및 추가 개선사항에 따른 추가 과제를 수행 과제 수행에 따라 개발 난이도에 맞는 업무를 분배하여, 업무 적응을 진행 이렇게 적혀있었고, 면접을 볼 당시에는 제가 백엔드 업무를 담당한다고 말씀하셨습니다! 저는 2021-2학기 MVP패턴으로 jsp를 이용한 웹프로젝트(프론트+백엔드) 2022-1학기에는 휴학하고 iOS공부를 하여 프론트엔드 프로젝트를 진행했습니다! 인턴에서 사용하는 라이브러리나, 기술이 정확히 뭔지 몰라서, 우선 스프링 - 김영한 강의를 보며 api 개발 방법을 공부하고 있습니다! 제가 어떤 업무를 하고, 어떤 기술스택을 사용하는지 잘 모르겠어서 어떤 공부를 해야하는지 막막해 질문을 올리게 되었습니다! 나이는 계속 늘어만 가는데 프론트와 백엔드 모두 결정하지 못하고 불안감만 커져가고 있습니다..ㅠㅠ 저는 여자이고, 주변 동기들은 취업한 친구들도 꽤 많이 생기고있습니다 현재 동아리에서 iOS개발에 흥미가 생긴 상황이고 동아리에서 배운 것이 정말 많아 인턴을 하면서 동아리도 같이 할 생각입니다. 인턴을 할때 백엔드 업무를 하게된다면 동아리에서 nodejs를 다루는 백엔드 파트로 지원을 하려고 생각중에 있습니다! 또 마음한편에서는 iOS 파트는 아직 공부를 깊게 하지 못했다는 느낌이 너무 강해, 한기수를 더 iOS파트로 지원해 공부하면서 학교 교내 Spring스터디를 병행할까 고민중입니다. 시니어개발자분들이라면, 동아리에서 사이드프로젝트를 진행할때 어떤 파트로 지원하실지 궁금합니다!
개발자
#백엔드
#인턴
답변 1
댓글 2
추천해요 1
조회 246
3년 전 · 문승욱(카이론) 님의 댓글 업데이트
NoSQL과 RDBMS의 가장 큰 차이가 무엇인가요?
안녕하세요, 비전공자 출신으로 부트캠프를 수료하고 있는 취준생입니다. 저는 산업공학을 전공했는데, 학교 수업에서는 관계형 데이터베이스에 대해서만 배웠습니다. 그런데 최근 NoSQL이라는 기술을 많이 사용한다고 하더라구요. RDBMS에 비해 더 유연하게 사용할 수 있다는 정도는 알고 있는데, 실제 서비스의 DB를 설계할 때 어떤 큰 이점이 있는지 궁금합니다. 미리 감사드립니다!
개발자
답변 1
댓글 2
추천해요 15
조회 896