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
조회 60
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
조회 175
일 년 전 · 김도열 님의 새로운 댓글
RDB에서 복합키를 참조하는 외래키에 NULL이 있다면 부모에 없는 값이 들어갈 수 있는 이유가 궁금합니다.
결론부터 말씀드리자면 부모테이블에 복합키를 참조하는 자식테이블에 외래키가 nullable하게 설정했을 때, 왜 부모에 없는 값을 허용하는지 이유 또는 구동 원리가 궁금합니다. 간단한 예 부모-자식 관계(FK걸려있음)일 때 부모에는 단 두 컬럼이 있으며, 복합키(두컬럼 모두 PK) 자식은 두 컬럼을 참조하는 컬럼 2개만 존재하며 nullable하다. 부모에는 (1, 'A') 라는 값이 있으면 왜 자식에 (null, '가나다') 값이 들어가도록 허용하는지에 대한 이유 또는 구동 원리가 궁금합니다! - 물론 외래키는 잘 걸려있습니다. 자세한 내용과 사례는 아래 링크를 통해서 정리를 해봤습니다. (링크는 댓글을 받기 위해 임시로 velog로 작성하였으며, 어디에 댓글을 달아주시던 상관없습니다) https://velog.io/@corder/외래키FK에-부모에-없는-값이-들어갔어요
개발자
#rdb
#fk
#외래키
답변 2
댓글 3
조회 234
일 년 전 · 강병진 님의 새로운 댓글
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
조회 212
일 년 전 · joseph 님의 새로운 답변
실무에서 RDB 테이블을 분리할 때 고려하는 기준에는 어떤 것들이 있나요?
안녕하세요! 백엔드 개발자를 꿈꾸고 있는 취준생입니다! 최근 진행 중인 프로젝트에서 api와 DB를 개발하던 중 궁금한 사항이 생겨 질문 올려봅니다! (기술 스택은 spring boot, mybatis, mysql 활용 중입니다.) 처음 기획 단계에서 DB를 설계할 때 이론적으로 배웠던대로 데이터 중복 저장을 최소화 하고 데이터 간의 관계를 최대한 반영하기 위해서 테이블을 무작정 잘게 나눴는데요! 설계 후 개발 과정에서 까다로운 사항들과 계속 마주치게 되더라구요..! 지금 생각나는 까다로웠던 사항들만 대략 정리해보면, - 테이블 간의 관계가 복잡해져 쿼리가 길어지고 복잡해졌고,(가독성에도 영향을 주는 듯 하더라구요!) - 특정 데이터를 조회할 때, 오직 join 조건만을 위해 여러 테이블들이 탐색되어지는 경우 발생했고, - 데이터 변경(삽입 수정 삭제) 과정이 까다로워졌고, - 테스트를 위한 더미 데이터 설정에 어려움이 있었어요..! 성능적으로 효율적인게 가장 중요하지만, 개발 과정에서의 효율성(소요 기간, 가독성, 유지보수 등) 또한 중요하다고 알고 있어서요! 그리고 join이 많이 수행되는게 데이터 수가 늘어남에 따라 오히려 성능 저하로 이어지는 경우가 있을 것이라 생각되었습니다! 그래서 실무에서는 상황에 따라 테이블 분리 정도가 다를 것 같은데, 이때 어느정도까지 분리하는게 적절한지 논의하는 과정에서 주로 어떤 사항들에 대한 고민이 이루어지는지 여쭤보고 싶습니다! 구구절절한 질문 읽어주셔서 감사합니다 :)..
개발자
#rdb
#rdbms
#mysql
#db
#database
답변 2
댓글 0
추천해요 1
조회 180
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,347
2년 전 · 김준성 님의 질문 업데이트
기존 rdb에서 엘라스틱서치를 적용 방법이 궁금합니다
예로 mysql을 사용중이다가 엘라스틱서치를 사용할려고하면 서로 연동해서 사용하나요 아니면 엘라스틱서치에 데이터를 새로넣고 mysql을 안쓰는건가요?
개발자
#elasticsearch
답변 2
댓글 2
추천해요 1
조회 702
2년 전 · 김형준 님의 답변 업데이트
몽고 디비에서 type 값을 저장하는 필드를 추가하려고 하는데 어떤 데이터 타입을 사용할지 고민입니다. (number vs string)
RDB 에서는 주로 number 로 저장 했는데 몽고디비에서는 조금 다르게 string 으로 저장해도 괜찮을까요 ? number 로 저장하고 사용자에게 보여줘야 하는 경우에 매핑해서 string 값으로 보여주곤 했는데요. 몽고디비는 RDB 와는 다른 방법으로 접근법 해야한다고 들었고 string 으로 저장해버리면 어떨가 싶어서요. 왜냐하면 몽고디비는 '저장된 값을 그대로 화면에 보여준다' 라는 기조가 있기 때문에 number 를 string 으로 변환하는 중간 과정을 없애도 괜찮아 보이고 string 값을 저장 하더라도 큰 문제는 없어 보여서요. 다른 분들은 어떻게 사용하시나요 ? 이렇게 사용해보신분 있나요 ?
개발자
#mongodb
답변 1
댓글 1
추천해요 1
조회 98
2년 전 · 김대현 님의 답변 업데이트
데이터베이스에서 Null 을 지양해야 하는가요?
RDB 에서 null 을 사용하는것에 대해 부정적인 이야기들이 많던데 실무에서 null을 사용한다면 어떨때 사용하는지, 사용하지 않는다면 어떤 이유로 사용하지 않는지 실무에서의 예시가 궁금합니다!
개발자
#db
#mysql
#데이터베이스
답변 3
댓글 0
추천해요 3
보충이 필요해요 1
조회 618
2년 전 · 최준혁 님의 새로운 댓글
백엔드 중견이상 포트폴리오
이제 4학년 올라가는 학부생입니다. 백엔드를 공부하며 포트폴리오를 준비하려 합니다. 인프런 강의를 통해 spring, jpa, spring security등을 학습했습니다 포트폴리오에 해당 기술들과 소켓 프로그램을 통한 채팅, 위치 인증이 필요한 커뮤니티를 개발하여 배포하는것을 목표로 합니다. 프론트엔드는 Vue.js를 다루는 친구와 함께 진행할 예정입니다 그러나 해당 기술들은 파면 팔수록 깊어지는 것 같아 어디까지 포트폴리오에 녹여야 할지 잘 모르겠습니다. 또한 중견기업 이상의 회사에 입사하려면 어떠한 기술 스택이 더 필요한지 채용정보를 봐도 잘 감이 안옵니다. 이 부분에 대한 답변을 얻고 싶습니다! 추가로 채팅 기능은 rdbms와 nosql 중 어떤 기술을 더 선호하는지 알고싶습니다
개발자
답변 2
댓글 2
조회 1,756
2년 전 · 유재영 님의 질문 업데이트
ERD 를 DDL로 변환하는 툴 추천해주세요
RDB 기준으로 업계에서 많이 사용하거나 무료면 더 좋구요 😬
개발자
답변 1
댓글 0
추천해요 1
조회 242
일 년 전 · 삭제된 사용자 님의 질문 업데이트
직무결정고민과 인턴 시작하기전에 어떤걸 공부하면 좋을지 추천 부탁드립니다!
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