개발자 Q&A

토픽

인기 태그

#sql

기술

백엔드 엔지니어로 입사함에 있어서 SQLP의 가치가 궁금합니다

올해 2월에 졸업예정인 대학생입니다. 백엔드 엔지니어로 입사하길 원하는데, 여러 회사의 백엔드 채용 우대사항에 '쿼리 튜닝에 관심이 있는 자' 라는 문구가 포함되어 있었습니다. 때문에 이를 증명할 수 있는 것이 SQLP라고 생각해서 공부를 시작했습니다. 그런데 SQLP 합격 후기글을 여럿 보다보니 전반적으로 DBA분들이 많았고 생각해보니 백엔드 엔지니어로 취업을 희망하는 동기중에 SQLP를 공부하는 동기는 한명도 없어서 이걸 계속 하는게 맞는건지와 동시에 SQLP 자체에 대한 궁금증이 생겨서 질문 올립니다. 1. 쿼리 튜닝에 관심이 있다는 사실을 증명하기 위한 SQLP 취득이 백엔드 엔지니어에 있어서 방향성이 안맞거나 혹은 부족하거나 과한지 궁금합니다. 2. SQLP를 취득하셨다면 그 준비기간이 궁금합니다. 3. SQLP에 대한 현업자 분들의 인식이 궁금합니다. 질문 읽어주셔서 감사합니다.

답변 1

7일 전 • 조회 99

기술

개발자 sqld,정처산기 필요여부

3년제 이름있는 전문대를 다니고 있는 프론트엔드 지망생입니다. 제목에 명시된 sqld나 정처산기를 따는것이 좋을까요?

답변 2 • Up 1

13일 전 • 조회 110

기술

영화관 처럼 좌석 예약 기능은 어떻게 구현하나요?

개인 프로젝트 중에 영화관 좌석 예약처럼 한 사용자가 고른 값을 다른 사용자가 동시간에 사용하지 못하게 하려면 백엔드를 어떻게 구현해야하나요? 단순히 좌석을 선택했을때 백엔드로 요청을 보내서 좌석 상태 (예약됨, 예약안됨)를 바꿔주면 되나요? 동시에 예약하기 페이지를 진입하면 사용자 A와 B 모두 a 좌석 상태가 예약 안됨일때인데, 사용자 A가 a 좌석 상태를 예약됨으로 변경하면 사용자 B에게는 여전히 a 좌석이 예약안됨으로 보일 것 같아서요. 제가 원하는건 사용자 A,B가 동시에 접속해서 좌석 a가 빈 자리여도 둘 중 아무나 a 좌석을 예약하면 나머지 한명에게는 a 좌석이 예약됨을 보여주고 싶습니다. 참고로 사용하고 있는 DB는 postgresql입니다. 서버는 노드구요. 이런 기능은 어떻게 구현하는지 궁금해서 질문 남깁니다.

답변 2 • Up 3

13일 전 • 조회 146

기술

이번에 db개발 빅데이터/dw개발 신입으로 입사했는데 입사 전 무엇을 공부해서 가면될까요??

정보처리기사를 취득하면서 기본적인 sql 문법구조는 알고있습니다 하지만 부족하다고 생각되어서 질문드립니다 어떤것을 배워가야하며, db쪽은 미래 전망이 어떻게 되는지 알수있을까요??

답변 0 • Up 1

19일 전 • 조회 94

기술

라라벨 enum 타입 havingRaw절 사용방법 도와주세요ㅠㅠ

안녕하세요 :) 현재 라라벨로 프로젝트를 하고있습니다. havingRaw을 사용하는데 다른 타입들의 데이터들은 다 잘 작동하는데 데이터타입이 enum인 것만 작동을 안합니다. 그러나 아래의 sql문은 하이디sql 에서 실행이 잘 됩니다. SELECT order_id AS cnt FROM test_table WHERE mall_id = 'test_mall' AND user_id = 'test_user' GROUP BY order_id HAVING MIN(type) = 'p' 데이터 타입은 아래와 같습니다. order_id = varchar mall_id = varchar user_id = varchar type = enum $row= DB::table("test_table") ->select(DB::raw('order_id as cnt')) ->where("mall_id", $test_mall) ->where("user_id", $test_user) ->groupBy('order_id') ->havingRaw('MIN(type) = p') ->get(); 해당 쿼리빌더에 잘못된 점이 있을까요??

답변 1

한 달 전 • 조회 84

커리어

파이썬과 sql만으로도 취업할수 있나요?

자바 기본 구성만 조금 알고 자바스크립트 조금 안다면 파이썬과 sql을 사용할수 있다면 취업이 가능한가요? 자바도 같이 공부를 해야할까요?

답변 1 • Up 1

한 달 전 • 조회 298

기술

SQL varchar(n)과 한글 글자 수 질문

테이블의 한 컬럼을 varchar(50)으로 설정 했습니다. 50자까지 들어갈 수 있는걸로 알고 있었는데 검색해보니 mysql 버전에 따라 저 숫자 50이 글자 수 일수 있고 byte일수도 있다는 것을 알았습니다. 일단 저는 글자 수로 들어갑니다. 한글 50자 까지 잘 들어가고 있습니다. 그래서 확인해보기 위해 length를 통해 들어간 데이터의 길이를 조회했는데요 대부분의 데이터가 50을 넘고 있었습니다. 한글은 * 3을 한 수치고 영어는 한글자에 1의 길이를 차지하는 것 같습니다. 왜 이런 일이 발생하는 걸까요? 조회한 쿼리문 select length(title) as length, title From Contents where title is not null; 결과 예시 row length | title 120 | 가나다라마바사아자차카타파하가가가가가가가가가가가가가가가가가가가가가가가가가가 6 | 인형 5 | hello 17 | test 중입니다

답변 2

한 달 전 • 조회 145

기술

SQL JOIN시 필터 조건을 어디에 넣어야 하나요? on vs where

안녕하세요~ SQL JOIN에 대한 질문이 있습니다. tableA id, type 1, comment 2, comment 3, comment 4, reply tableB id, value 1, test 2, test2 3, test3 4, test4 라는 테이블이 있을때 tableA의 type으로 필터를 걸려고 하는데, 어떤 방식으로 해야하는지 궁금합니다. 1. SELECT * FROM tableB as b LEFT JOIN tableA as a ON a.id = b.id WHERE a.type = "comment"; 2. SELECT * FROM tableB as b LEFT JOIN tableA as a ON (a.id = b.id AND a.type = "comment"); 원하는 결과 값은 tableB와 A를 LEFT JOIN한 데이터 중 tableA type이 comment인 row만 추출하면 됩니다. 필터를 ON에다가 걸어야하나요? 아니면 WHERE에다가 걸어야하나요? 둘의 차이가 어떻게 되나요? 둘의 결과 값이 달라지긴 하더라구요. 2번을 사용하면 a.type이 comment가 아닌 것은 tableA 쪽 값들이 null로 나오더라구요. 같은 필터인데 왜 결과가 다른지 잘 모르겠습니다 ㅠㅠㅠ

답변 2 • Up 5

한 달 전 • 조회 170

기술

[SQL] 중복데이터 개수를 세는 방법?

sql을 처음 합니다. 학원에서 실습과제중에 막혔습니다.ㅜㅜ 중복데이터가 몇 개 있는지 알고 싶습니다. 방법을 알려주세요. 테이블 구조에서 column은 id, userId, itemId, createdAt, updatedAt. userId가 여러 itemId를 가질 수 있습니다. 각 userId가 몇개의 itemId를 가지고 있는지 보고싶습니다. 그래서 userId중복을 제거하고 count를 붙여서 아래와 같이 했습니다. SELECT userId, COUNT(DISTINCT userId) FROM table; 중복은 제거되는것 같은데 전체 중복제거 된 userId가 몇개인지 나오는것 같아요 저는 userId별로 총 몇개의 row가 있는지 알고싶은데... 혹시 아시는분 있으면 알려주세요.

답변 1 • Up 2

2달 전 • 조회 163

기술

관계형 DB 설계 시 카테고리 같은 것은 어떻게 저장하시나요?

안녕하세요. 이번에 기능을 구현하다가 문득 궁금해져서 질문납깁니다. 요구사항은 게시글에 카테고리가 추가되고, 해당 카테고리에 따른 게시글을 모아보는 페이지와 네비게이션을 생성하는 작업입니다. 네비게이션에서 게시글 카테고리를 클릭하면 해당 카테고리의 게시물들을 보여주는게 주 목적입니다. 게시글이 post로 MySQL에 저장되고 있는데 여기에 category라는 값을 추가하려고 하는데요. 질문은 카테고리를 어떤 형태로 저장하는게 좋은가 입니다. 기존 코드와 DB 설계 (다른 유사한 테이블)를 살펴보면 category라는 값을 숫자로 저장시키고 사용하는 서비스에서 각 숫자에 맞는 설명?타입을 선언하는 방식이더라구요. 예를 들면, DB에 category = 1로 저장된 post는 사용하는 서비스 (서버)에서 enum 또는 const로 선언해서 category = 1이면 PostCategory.Article 타입을 같는 형태입니다. 이후 사용자가 보게되는 프론트에서도 유사하게 category에 따른 카피를 보여주고 있어요. 특이사항이 있다면, 프론트에서 category에 따라 보여지는 카피는 수시로 바뀔 수 있을 것 같아요. 예를 들면, category = 1인 Article 타입이라면 카피 문구가 “논문”이라고 했을때, 나중에 카피가 “기사” 같은 것으로 바뀔 수 있어요. 이렇게 category 처럼 데이터의 속성이 잘 안바뀌는 값은 숫자로 정의하고 사용하는 위치마다 그에 맞게 타입을 선언하는게 좋을까요? 아니면 category를 DB에 만들때 문자열 형태로하고 “article”이라는 값을 바로 DB에 저장하는게 좋을까요?

답변 1 • Up 2

2달 전 • 조회 738

기술

데이터를 삭제할 때 현업에서 어떻게 하나요?

데이터를 삭제할 때, soft delete와 hard delete가 있다고 배웠는데 현업에서 보통 어떻게 사용하나요? soft delete를 사용했다가 데이터를 복구하는 경우가 많이 있나요? 그리고 soft delete를 하게되면 where조건으로 한번 더 데이터를 확인해야하는데 비효율적이지 않나요?

답변 2 • Up 2

4달 전 • 조회 283

기술

SQL 테이블 구성 도움 부탁드려요

안녕하세요, SQL 테이블을 구상하려고하는데, 어떤 방식이 더 좋을지 몰라서 질문합니다. 요구사항은 사용자의 부가 정보를 저장하면 되구요. 부가 정보는 이메일, 주소, 전화번호 등등이 있습니다. 1번 방법 (사진 참고): contactType과 content로 다양한 정보 유형을 받는다 2번 방법 (사진 참고): email, phone, address 등 고정된 값을 받는다 1번과 2번 중 어떤 방식이 더 좋을지 잘 모르겠어요. 1번 방법이 더 많은 정보의 유형을 저장할 수 있지만 조회 할때 좀 더 복잡할 것 같고 2번 방법은 저장하려는 정보 유형이 추가될 때마다 칼럼을 추가해줘야하지만 조회 할때 좀 덜 복잡한 것 같습니다. 혹시 이런 유형의 테이블을 설계할때 팁 같은게 있을까요?

답변 1 • Up 4

4달 전 • 조회 249