묻고 답해요
167만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
채팅을 구현할려고할떄 테이블구조
노드버드에 채팅을 구현할려고 하는데 대충 Chat table 만들고 User 랑 관계정의 시켜서 테이블 쭉 쌓으면 될것같은데 모든 채팅 정보가 한테이블에 있으면 나중에 규모가 커진다고 가정했을때 시간이 오래걸리것같습니다. 아무리 sql이 조회가 빠르다해도 채팅의 경우 다른 Post 나 User 테이블보다 훨씬 많이 쌓일테고 유저 개개인의 채팅한 정보가 한곳에 모이다보니 A 와 B 채팅 정보를 가져오는데 모든 사람의 테이블을 다 조회하면 시간이 오래걸릴것같은데 이런경우는 어떻게 처리하는게 좋을까요? 채팅부분만 mongo 써야될까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
DB 사용 질문입니다
안녕하세요~ 유니티 초보입니다,, 유니티 기초 학습하고 있는데 DB를 mysql이나 mariadb에 연동해서 사용하면 ms-sql과는 많이 다르겠죠? 인터넷 홈페이지에서 mariadb를 DB로 사용할 생각인데 기왕 사용하는거 홈페이지랑 게임 둘다 같은 DB로 제작해보고 싶어서 시도해볼까 하는데 유니티에 mariadb(또는 mysql) 연동해서 사용하는거 괜찮을까요? 오라클 프리티어 웹서버에 mariadb는 설치는 해놓았는데 DB는 아예 모릅니당,, 유니티, 웹서버, DB 다 쌩초보 수준인데... 일단은 영상 보면서 ms-sql로 따라해보고 mysql로 따로 해봐야할지,, 인터넷에 정보도 많이 없는거 같아서요 주저리주저리 적었네요,, 정리 유니티에 mariadb(혹은 mysql) 왕초보자가 연동하여 사용하는거 어떻게 생각하시는지 궁금합니당,, PS. 파이어베이스 db도 괜찮다는거 같은데 위에거 대신 이거 사용은 어떨지 여쭈어봅니당,, 감사합니다~
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
쿼리 비용
안녕하세요. 강의 잘 듣고 있습니다. 쿼리 실행해서 실행계획을 보면 쿼리비용 : N% 이렇게 나온는데, 쿼리비용이 무엇인지 궁금합니다. 또 이 숫자가 낮을 수록 좋은 것인지도 궁금합니다. 감사합니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
레디스의 쓰임
안녕하세요 설명중에 1 . RDBMS 보다 NOSQL(레디스)가 빅데이터에 처리가 적합하다. 2. 레디스는 하드에 저장안하고 IN MEMORY 방식으로 메모리에 자료가 남는다 (실시간 랭킹 처럼 사소한 것을 담는다) 라고 하셨는데 두 설명이 상충처럼 느껴져서요 빅데이터를 인메모리에 담는 것처럼 이해가 되 조금 헷갈리는데요 정리 한번만 더 주시면 이해에 도움이 될 것 같습니다. 도움 부탁드립니다.
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
SQL Server Admin & 트러블슈팅 강의도 있으면 좋겠습니다.
유명하신 분의 강의를 들으니 아주 좋네요. SQl Server 의 관리자로서, Advanded Admin 및 트러블슈팅 사례나 조치 방법 같은 것들도 나중에 강의 만들어주시면 좋을 것 같습니다. 저는 기존에는 udemy.com 에서 듣고는 있는데 인프런에서 강의를 만드시면 꼭 수강할 예정입니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
Post 정보에서 태그 정보를 같이 받아오려고 합니다..
안녕하세요 제로초님 노드버드 강좌를 보면서 열심히 공부 중이며 노드버드에서 배운 부분을 조금씩 응용해보려고 하는 중에 질문이 있어서 이렇게 글을 쓰게 되었습니다. 우선 수업과 동일하게 Post table, Tag table이 M:N 다대다 관계를 설정하여 PostTag 라는 테이블이 생성되었습니다. 이것을 이용해서 게시글(Post) 정보를 한번에 불러올때 각 게시글마다 존재하는 태그들도 같이 받아오고 싶습니다. 제가 시도한 방법으로는 findAll 에서 include를 이용해서 받아오려고 했지만 실패했습니다. 제가 설정한 관계와는 맞지 않는 코드의 형태로 에러 메세지가 나오는 것 같습니다. sql 쿼리문의 조인에 대해 지식이 부족하다고 생각하여 조인 부분을 찾아보고 공부를 해도 sequelize 로 어떤식으로 풀어가야 할 지 모르겠습니다 ㅠㅠ 먼저 테이블 정보 입니다. 제가 작성한 코드 부분입니다. 마지막으로 에러메세지 입니다
-
미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
큰따옴표 질문입니다.
강의 13:23 import pymysql db = pymysql.connect(host='127.0.0.1', port=3306, user='root', passwd='funcoding', db='ecommerce', charset='utf8') cursor = db.cursor() for index in range(10): product_code = 215673140 + index + 1 sql = """INSERT INTO product VALUES( '""" + str(product_code) + """', '스위트바니 여름신상5900원~롱원피스티셔츠/긴팔/반팔', 23000, 6900, 70, 'F'); """ print (sql) cursor.execute(sql) db.commit() db.close() -------------------------------------- 13:23 에서 '""" + str(product_code) + """', '스위트바니 여름신상5900원~롱원피스티셔츠/긴팔/반팔', 23000, 6900, 70, 'F'); """ '""" + str(product_code) + """' 이부분에서 str로 이미 문자열이 되었는데 큰따움표 쓰는거랑 작은따움표를 왜 추가하신건지 궁금합니다. 그냥 'str(product_code)' 로 쓰면 안되나요?
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
[섹션 2. 쿼리 금기사항]의[조건절 상수화 이슈]의 데모실행불가 및 결과차이 문의입니다.
안녕하십니까. 강의를 듣고 있는 수강생입니다. 현재 [섹션 2. 쿼리 금기사항]의[조건절 상수화 이슈]의 데모실행 중 [2) Index열 조건에 사용자 정의 함수]를 기동 중에 OPTION 실행이 불가한 문제와 OPTION을 실행하지 않을 시의 실행계획이 다른 문제가 발생하여 궁금해서 연락 드렸습니다. 이하 옵션 실행 불가 화면의 캡쳐입니다. 이하 옵션을 실행하지 않고 쿼리만 실행 했을 시에 발생하는 실행계획 내용입니다. 혹시 해당문제의 발생이유를 알 수 있을지 확인 부탁드립니다. 이상입니다.
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
An unspecified error occurred.
강의 내용대로 따라해보았는데 결과값이 에러가 납니다. 제가 어느 부분을 놓친걸까요?
-
미해결비전공자를 위한 진짜 입문 올인원 개발 부트캠프
api 개발 <- 이 부분에 있어서 의 궁금증이있습니다!
안녕하세요. 그랩님께서 너무 잘 설명해주셔서 이제 조금씩 api의 개념이랑 서버의 개념이 잡혔는데요.그, 마지막 멘트9:20초에 api들을 개발하였다고하셨는데, (질문 1)지금 아래의 4개가 그럼 작게 api4개(get으로 상품조회, post로 상품등록, )를 개발 구현했다고 말씀하신것같은데 제가 이해한게 맞나요? (질문 2)그리구 이건 곧 상품관련api서버다! 라고 말할 수 있는건지도 궁금합니다. app.get("/products", (req, res) => { app.post("/products", (req, res) => { app.get("/products/:id", (req, res) => { app.listen(port, () => { (질문 3)마지막으로 질문은 앞의 강의에서 db서버랑 api서버랑따로 분리 하신다는 얘기 같았는데, 그럼 그랩마켓에서는 server.js가 api서버이자 db서버가 되는 2개의 역할을 같이하는게맞는거라고 생각되는데 맞나용?..왜냐면 Browser for SQLite <-이거는 그냥 저희가 등록한거를 보여주는 역할 ? 이라고 생각돼서... 쫌 헷갈립니다.그러니까 정리를하자면 'server.js가 api서버'이고,'Browser for SQLite는 server.js는 그냥 보여주는 역할' 같은데..이게 아래같이 Node.js서버가 저희가 만든 server.js파일이고, 오른쪽에있는 데이터베이스가 Browser for SQLite 인건가요?
-
해결됨SW 개발자를 위한 성능 좋은 SQL 쿼리 작성법
데모DB와 스크립트파일은 어디에 있을까요?
안녕하세요 데모DB와 스크립트파일이 어디있는지 못찾겠는데 해당 링크나 위치 알 수있을까요?
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
쿼리문 순서 질문
안녕하세요 강사님. 좀 쓸데없는 질문이긴 한데 쿼리문 실행 흐름이 대략 FROM WHERE GROUP BY HAVING SELECT ORDER BY 이런 식으로 실행된다고 배웠습니다. 그런데 SELECT TOP 1 * FROM batting WHERE teamID = 'BOS' ORDER BY HR DESC; --보스턴 팀 소속으로 단일 년도 최다 홈런을 친 사람의 정보 해당 쿼리문에서 ORDER 보다 SELECT가 먼저 실행된다면 아직 홈런 횟수를 내림차순 하기 이전의 테이블에서 최상단의 행을 가져오기 때문에 원래라면 의도하는 결과가 나오지 않는 것이 아닌지 궁금합니다. 감사합니다.
-
해결됨실전! Querydsl
select()가 아닌 selectOne()을 사용하면 fetchJoin을 사용하지 못하나요?
안녕하세요. 강의 잘 듣고 있습니다 :) exists 기능을 구현하고 있는데, fetchJoin을 사용해봤습니다. 그저 데이터의 유무만 판단하면 됐기에 selectOne() 으로 조회를 했는데 실패하네요 ㅠㅠ 하지만 이후 fetchJoin()을 제거하니 잘 동작하는 모습을 확인했습니다. // 성공하는 코드 @Override public boolean existsByReviewEntity(ReviewEntity reviewCond) { final Integer result = queryFactory .selectOne() .from(reviewCommentEntity) .innerJoin(reviewCommentEntity.reviewEntity, reviewEntity) .where(reviewEq(reviewCond)) .fetchFirst(); return result != null; } // 실패하는 코드 @Override public boolean existsByReviewEntity(ReviewEntity reviewCond) { final Integer result = queryFactory .selectOne() .from(reviewCommentEntity) .innerJoin(reviewCommentEntity.reviewEntity, reviewEntity).fetchJoin() .where(reviewEq(reviewCond)) .fetchFirst(); return result != null; } 제 생각에는 두 가지 이유가 추측되는데요, 1. selectOne 이랑 fetchJoin의 실행 순서(?) 2. select 1 을 하면 특정 필드를 가져오는 것이 아니기 때문에 fetchJoin이 불가능(?) 열심히 구글을 찾아봐도 만족스러운 답을 찾지 못했고, 두루뭉실하게 의문만 남아있는 상태네요.. 도움 주시면 감사하겠습니다 !! 짤막한 힌트도 좋습니다 :)
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
단일년도 최다 홈런!!
안녕하십니까 교수님.. 와 이게 안되네요... 최다 홈런친 사람을 파악하는 건데... 직관적으로 명령어를 입력하고 실행을 누르는데 컴퓨터가 불평을 합니다. 어디가 문제일까요? '될듯안될듯 될거 같은 너'입니다. select playerID from batting where (teamID= 'BOS' AND MAX(HR))
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
SELECT *에 관해서
안녕하세요. 복습을 하는 중에 궁금한 것이 있어서 다시 한번 문의 드립니다. 열의 이름을 바꿀때 이런식으로 하잖아요. 그런데 저는 SELECT birthYear AS birth FROM players 모든 열을 본 상태에서 birthYear만 birth로 바꾸고 싶은데요. 이때는 어떻게 하나요 ? - 이런식으로는 안되더라고요.. SELECT *,birthYear AS birth FROM players
-
미해결Oracle SQL 입문자를 위한 강의
더미 데이터 생성파일 현재 수정본 없을까요???
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 더미 데이터 파일을 실행하면 위 사진 같은것도 뜨기도 하고 테이블 생성시 일일히 ' 도 제거해 주어야 하고 영상에서 말씀하셨듯이 디비마다 sql 문이 조금씩 차이가 있다는 말씀에 maria 디비를 경험해 본적도 없고 어디서 오라클과 다른 부분 오류를 수정해야 되는지 현재로서 알수가 없네요 일일히 파일을 수정하고 강의를 시청하는데 무리가 있다 느껴지고 있습니다. 수정본 파일좀 없을까요???
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
검색? 논리적읽기? 횟수
안녕하세요. 뒤늦은 질문일지도 모르지만 일단 질문드려봅니다 ㅜ 1) TestOrders에 NONCLUSTERED INDEX를 하나 만들고 CustomerID = 'QUICK';를 검색할때 하나의 Leaf Page에 QUICK들이 모두 모여있어서 한 페이지만 찾으면되는데, 그렇다고 해도 28개의 QUICK을 찾으려면 최소한 28번은 읽어야 하는게 아닌가요? 오히려 WITH(INDEX(Orders_Index01))를 사용한 경우는 SEEK으로 'QUICK'모음을 찾고 그걸 하나씩 검사하기 때문에 논리적읽기가 30인건 어느정도 이해하겠는데 SCAN으로 한 경우는 왜 20일까요? 2) 예를들어 100개의 데이터중 A라는 데이터가 5개 있고 name으로 검색 가능하다고 했을때 C#의 리스트에서 검색을 할때는 A가 몇개인지는 결국 100개를 다 돌려봐야 하는데 (INDEX를 사용하지 않은)SQL에서는 왜 논리적읽기가 100이 아닌가요? 전체를 순회하는건 스캔1에 포함이 되는건가요?
-
해결됨Oracle SQL 입문자를 위한 강의
dummydata파일 수정본으로 올려주실 수 있나요?
안녕하세요 강사님, 더미데이터파일 수정본으로 새로 올려주실 수 있는지 여쭙고 싶습니다. 오라클db와 문법에 차이가 있는 파일이 그대로 업로드 되어 있는게 당황스러워요. 웬만하면 강의 영상으로 해결하려 했는데 강사님 하시는 걸 보고 똑같이 따라해도 8행부터 6236행까지 쭉 오류가 뜹니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
정리하면서 질문입니다.
강의 잘보고 있습니다. Index 부분이 중요하다고 하셨는데 조금 헷갈리네요;; 1) SELECT * FROM sys.indexes WHERE object_id = object_id('accounts'); 의 결과 중 index_id 가 (0 = HEAP) (1 = CLUSTERED) (2 <= NONCLUSTERED) 인것같고 CLUSTERED INDEX를 사용하면 (0 = HEAP)대신 (1 = CLUSTERED) NON CLUSTERED INDEX라면 (1 = CLUSTERED)대신 (0 = HEAP)가 사용되는 것 같습니다. 2) DBCC IND('GameDB', 'accounts', N); N에 index_id를 넣어주게 되는데 CLUSTERED INDEX를 사용하여 index_id가 1부터 시작하게 되었을때도 0을 넣었을때 실행이 됩니다. 반대로 NON CLUSTERED INDEX일때 1을 넣어도 실행이 되는데 그냥 조회용인가요? 결과에 의미가 있나요? 3) DBCC IND('GameDB', 'accounts', 0); 실행시 첫 행의 의미는 어떤건가요? 4) NON CLUSTERED ± CLUESTERED INDEX Page Type의 [ 1은 Data Type이니까 RID를 통해 Heap Table에서 직접 값을 가져오기 ] [ 2는 Index Type으로 키를.. 값이.. Leaf에 실제 값들이 있고 그 값들의 키의 범위를 루트가 가지고 있다고 보면 될까요? => CLUSTERED에 실제 값이 있고 그 키를 가진 NONCLUSTERED페이지 ] (CLUSTERED가 있다면 모든 NONCLUSTERED는 CLUSTERED를 참조) 5) 그냥 CLUSTERED INDEX는 값들이 키순으로 정렬되어 사용되구요 6) 실제로 사용할때 한 데이터에서 INDEX를 많이 생성해서 사용하나요? 아니면 목적에 맞는 INDEX만 생성해서 사용하게되나요? 인덱스에 클러스터드에 구조까지 이해하려니까 좀 어려웠지만 일단 생각해보고 이해한거 정리하고 하면서 질문드려봅니다ㅜ
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스
각 연도별 최고의 홈런왕
을 찾아보는데 SELECT * FROM ( SELECT *, ROW_NUMBER() OVER (PARTITION BY yearID ORDER BY HR DESC) AS ranking FROM batting ) AS yearTableWHERE ranking = 1ORDER BY yearID DESC; FROM 이후에 AS로 이름을 지어주지 않으니 오류가 나는데 이름이 꼭 필요한가요?