inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

173만명의 커뮤니티!! 함께 토론해봐요.

CHAR VARCHAR 질문입니다!

해결됨

Real MySQL 시즌 1 - Part 1

안녕하세요 먼저 좋은 강의 감사드립니다. CHAR vs VARCHAR를 수강하던 중 궁금한 점이 생겨 질문 남깁니다! 1. CHAR의 경우 미리 공간을 할당해두기 때문에 update 시 파편화되는 부분이 없지만, VARHAR의 경우 길이가 더 길게 update 시 처음 레코드가 저장되었던 공간은 delete marking 후에 새롭게 빈 공간에 레코드를 저장하는 것으로 이해했습니다. 그렇다면 VARCHAR에서 길이가 더 짧거나 길이가 같게 update를 하는 경우는 어떻게 동작하는걸까요? UTF8MB4 CHAR 경우 미리 할당된 데이터 보다 더 큰 데이터를 업데이트 하게 된다면 VARCHAR 처럼 처음 레코드가 저장되었던 공간은 delete marking후 새롭게 빈 공간에 레코드를 저장하게 되는걸까요? 예시 : CHAR(10)에 '한글'을 저장했다가, '한글 연습'을 업데이트 하는 경우 VARCHAR 처럼 동작하는지가 궁금합니다.

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
dlkfjan 댓글 1 좋아요 4 조회수 526

12번 강의 영상이 너무 별로에요...

해결됨

윤파고의 정보처리기사 DB/프로그래밍 All-In-One

안녕하세요? 모든 강의 다 듣고, 한 강의만 못 듣고 있는데요. 12. DB 기출입니다. 영상을 아무리 이렇게 봐도 저렇게 보고, 해상도를 720으로 최고로 높여 보아도 흐려서 문제를 볼 수도 없습니다. 화질이 너무 심한데, 해상도 해결할 방법이 전혀 없나요? 이미지 추가 합니다.. 이거 문제 보라고 올려 주신건지요...?

  • python
  • java
  • c
  • dbms/rdbms
  • 정보처리기사
JUNG JONGSEOK 댓글 0 좋아요 0 조회수 467

실제 프로젝트에서의 데이터 타입 환경

해결됨

Real MySQL 시즌 1 - Part 1

안녕하세요. 강의 잘 보고 있습니다.(너무 감사합니다.) 일단 char와 varchar에 대해서는 저는 이전부터 고민이 많았는데요. 이번 강의를 보면서 기존 인터넷에서 보던 자료와 상충하는 내용이 발생하여 질문을 드리고 싶습니다.(물론 '누구의 자료가 잘못됐다'라는 것이 아니라 초보자인 제 입장에서 정말 궁금해서 질문을 드린다는 말씀을 드리고 싶습니다!) 사실 내용을 여럿 찾아봤는데 결과적으로 char를 써야 할 경우 TRIM을 통해 공백을 지워야 하기 때문에 그러한 연산이 더 들어가므로 varchar를 쓰는 것이 귀찮음도 없고 좋다라는 글을 보았던 것 같습니다.(백엔드 개발자의 입장에서도 편리하다고 생각합니다.) 하지만 varchar를 쓸 경우 말씀해주신 것처럼 데이터의 길이가 기존보다 클 경우 기존 데이터를 삭제하고 새로 옮겨야 하는 비효율적인 작업이 증가할 뿐더러 데이터 페이지의 파편화가 발생할 수 있다는 생각도 정말 충분히 납득이 가는 설명이었습니다. 실제로 웬만해서는 char보다는 varchar를 쓰는 편일까요? 아니면 trim의 연산을 하는 것을 감안하고 char를 쓰는 편일까요?

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
서건혁 댓글 1 좋아요 2 조회수 434

다양한 window절의 이해 -01, 02

미해결

데이터 분석 SQL Fundamentals

윈도우 절 코드 실습 중입니다. select product_id, product_name, category_id , unit_price , sum(unit_price) over (partition by category_id order by unit_price rows between 1 preceding and 1 following) as unit_price_sum from products; 위 코드는 제공해주신 base 코드입니다. 해당 unit_price_sum을 소수점 둘째자리 까지만 표시하고자 round 함수를 썼는데, round(sum(unit_price) over (partition by category_id order by unit_price rows between 1 preceding and 1 following), 2) as unit_price_sum from products; "SQL Error [42883]: 오류: round(real, integer) 이름의 함수가 없음 Hint: 지정된 이름 및 인자 자료형과 일치하는 함수가 없습니다. 명시적 형변환자를 추가해야 할 수도 있습니다." 이와 같은 에러가 납니다. 그래서 with절로 해당 unit_price_sum을 temp_01이라는 임시 쿼리에 담아서 아래와 같이 했지만 이래도 위 오류와 동일하게 나오면서 되지 않네요 with temp_01 as ( select avg(unit_price) over (partition by category_id order by unit_price rows between 1 preceding and 1 following) as unit_price_avg from products ) select round(temp_01.*, 2) from temp_01; select product_id, product_name, category_id, unit_price ,avg(unit_price) over (partition by category_id order by unit_price rows between 1 preceding and 1 following) as unit_price_avg from products; 하는 방법이 있을까요? chat gpt도 서브쿼리로 답을 제공했는데 동일한 문제가 발생했습니다.

  • sql
  • postgresql
  • dbms/rdbms
GOLD D 댓글 2 좋아요 0 조회수 202

Optimistic Lock 경우 이런 케이스일때는 Lost Update 문제 발생 될수 있지 않나요???

해결됨

Real MySQL 시즌 1 - Part 1

이미지가 작게 보인다면 https://cdn.inflearn.com/public/files/posts/2722bc2b-12a3-4512-a5b7-35227283e6ec/aaaa.png 여기로 부탁드립니다! 우선 좋은 강의 배포해주셔서 정말 감사드립니다 :) 우선 설명 하기전에 왼쪽: A 트랜젝션 오른쪽: B 트랜젝션 으로 예시 하겠습니다. 순서를 말씀드리자면 A 트랜젝션 "SELECT * FROM account WHERE id=1;" 구문 실행 B 트랜젝션 "SELECT * FROM account WHERE id=1;" 구문 실행 B 트랜젝션 "UPDATE account SET balance=balance-150, version=2 WHERE id=1 AND version=1;" 업데이트 실행 A트랜젝션 "UPDATE account SET balance=balance-200, version=2 WHERE id=1 AND version=1;" 업데이트 실행 B트랜젝션 Commit 실행 A트랜젝션 Commit 실행 영상에서는 B 트랜젝션을 먼저 Update 문 실행하고 그리고 Commit 을 실행 하고나서 A 트랜젝션을 Update을 하였으니 version 정보가 불일치로 정상적으로 A 트랜젝션은 업데이트가 일어나지 않겠지만 제가 업로드한 이미지 순서대로 하게된다면 즉 A, B 트랜젝션이 동시에 Update를 실행하고 이후 동시에 A, B 트랜젝션이 동시에 Commit 을 실행하면 balance 가 0 으로 되지 않을까요? (A 트랜젝션이 맨 나중에 Commit을 했으니깐) 반대로 B 트랜젝션이 맨 마지막에 Commit을 하게 된다면 balance 값은 50으로 설정되겠지만 정상적으로 업데이트가 된다고 가정시 balance 값은 -150 이 일어나야 하는데요. 이런 케이스 때문에 optimistic Lock 보다 Pessimistic Lock 으로 해야 하지 않을까요???? 갑자기 이런 의문이 들어서 질문 드립니다.

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
리나 댓글 1 좋아요 1 조회수 365

pdf 문의드립니다

해결됨

장래쌤과 함께하는 쉽고 재미있는 SQL 이야기

안녕하세요 강사님 혹시 강의 pdf는 따로 다운하는 곳이 있을까요?

  • sql
  • mysql
  • oracle
  • dbms/rdbms
  • mssql
qkr1wn2gud3 댓글 1 좋아요 1 조회수 209

1강 CHAR vs VARCHAR 궁금한 부분이 있습니다.

해결됨

Real MySQL 시즌 1 - Part 1

안녕하세요. 우선 좋은 강의 감사드립니다. 1강에서 UTF8MB4 셋을 사용하면서 CHAR(10) 을 선언했을 때 기본적으로 할당되는 크기에 대해서 궁금한 부분이 있는데요. UTF8MB4 의 경우 글자당 최대 4 바이트 까지니까, CHAR(10) 이 최초에 10글자 만큼의 공간을 할당받는다고 하면 최대 40바이트가 할당되는 것이 아닌가요?? 예를 들어 '안녕' 이라는 문자열을 저장한다고 하면 안 (4바이트) 녕(4바이트) 에 문자열 길이를 저장하는 부분 까지 한다고 해도 낭비되는 공간이 있다고 생각했는데, 저장되는 기준이 궁금합니다.

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
QWER 댓글 1 좋아요 1 조회수 473

Real MySQL 시즌 1 - Part 1 or Part2 영상에 나오는 자료 공유 가능하나요?

해결됨

Real MySQL 시즌 1 - Part 2

우선 좋은 강의 기회를 주셔서 너무 감사드립니다 :) 출근길 아니면 퇴근길에 영상에 나오는 자료 보면서 공부 할려고 하는데요. 영상에 나오는 자료 공유 해주시면 정말 감사드리겠습니다! 앞으로 좋은 강의 부탁드리고 다시 한번 좋은 강의 기회 주셔서 정말 감사합니다 :)

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
리나 댓글 1 좋아요 1 조회수 385

Real MySQL 시즌 1 - Part 1 or Part2 영상에 나오는 자료 공유 가능하나요?

해결됨

Real MySQL 시즌 1 - Part 1

우선 좋은 강의 기회를 주셔서 너무 감사드립니다 :) 출근길 아니면 퇴근길에 영상에 나오는 자료 보면서 공부 할려고 하는데요. 영상에 나오는 자료 공유 해주시면 정말 감사드리겠습니다! 앞으로 좋은 강의 부탁드리고 다시 한번 좋은 강의 기회 주셔서 정말 감사합니다 :)

  • mysql
  • dbms/rdbms
  • backend
  • query-tuning
  • mysql-query
리나 댓글 1 좋아요 1 조회수 392

락과 트랜잭션 격리수준 차이는 뭔가여?

미해결

[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part5: 데이터베이스

db커넥션 여러개가 접근해야 할때 락을 사용해야 하나여 아니면 트랜잭션 격리수준의 높은레벨을 사용해야 할까요 둘의 차이를 모르겠습니다 ㅠ

  • sql
  • dbms/rdbms
사과일광욕 댓글 1 좋아요 0 조회수 573

'더 견고해지기 위해 남은 작업' 아 영상 파트에 나오는 자료 공유 받을수 있나요?

해결됨

견고한 결제 시스템 구축

우선 좋은 강의 준비해주셔서 정말 감사드립니다! 영상에 나오는 노션 자료 초기 영상에서 공유 해주셨던 노션 링크 통해 확인해보니깐 '더 견고해지기 위해 남은 작업' 이 영상에서 나오는 자료는 안보이는것 같습니다. 제가 못 찾는걸까요? 이부분 공유가 안되었으면 공유 부탁드립니다!

  • spring
  • spring-boot
  • dbms/rdbms
  • backend
  • payments
리나 댓글 1 좋아요 0 조회수 294

선생님 도메인이란게 뭔가요???

미해결

데이터베이스 중급(Modeling)

데이터베이스에서 말하는 도메인이란 어떤것을 뜻하나요?? 구글링을 해봐도 이해를 잘 못하겠어요 ㅠㅠ

  • dbms/rdbms
  • 데이터-엔지니어링
service 댓글 3 좋아요 0 조회수 489

Ledger 및 Wallet 서비스에서 Kafka Consumer PaymentEventMessageHandler 에 typecast 문제가 발생됩니다.

해결됨

견고한 결제 시스템 구축

@Bean public Consumer<Message<PaymentEventMessage>> consume() { return message -> { PaymentEventMessage payload = message.getPayload(); LedgerEventMessage ledgerEventMessage = doubleLedgerEntryRecordUseCase.recordDoubleLedgerEntry(message.getPayload()); streamBridge.send("ledger", ledgerEventMessage); }; } 해당 로직은 Ledger 서비스의 Kafka 메시지 Consumer 역할을 맡고 있는 'consume' 메소드 입니다. 정상적으로 결제 confirm 완료가 되면 Kafka 에 메시지를 정상적으로 등록 된 것을 확인 하였는데요. 이 후 consumer 에서 메시지를 잘 가지고 오지만 byte[] 타입이라 PaymentEventMessage 로 타입캐스트 하는데 문제가 발생되네요.. Kafka 설정에서 Deserialize 설정만 해주면 되는 느낌인데... 구글링 해봐도... 잘 안되어서 이렇게 질문 드립니다! 에러 문구 class [B cannot be cast to class com.example.ledgerservice.ledger.domain.PaymentEventMessage ([B is in module java.base of loader 'bootstrap'; com.example.ledgerservice.ledger.domain.PaymentEventMessage is in unnamed module of loader 'app')

  • spring
  • spring-boot
  • dbms/rdbms
  • backend
  • payments
리나 댓글 1 좋아요 1 조회수 410

다음 강의가 너무 기대되요:) 'Sacale-up 하며 배우는 대용량 트래픽 처리'

미해결

견고한 결제 시스템 구축

인프런에서 이런 질문 해도 될지 모르겠네요... fastcampus 에서 준비하고 있는 강의 'Sacale-up 하며 배우는 대용량 트래픽 처리' 이부분 질문 및 건의? 사항이 있습니다. 이번에 강의 payment 강의 들으면서 정말 유익한 강의라고 생각 합니다! 질문 포함해서 조금 아쉬었던 부분이 있어서 개인적인 생각?이니! 참고만... 1. 제가 듣기론 최소한 백엔드 측면에서 봤을때 아직까지 코틀린 보다 자바로 개발하신분이 많은거 같은데 굳이 코틀린으로 개발 하셨는지 알고 싶습니다. (참고로 다음 강의에 자바로 해주셨으면 좋겠어요 ㅠㅠ) Webflux 사용한 이유에 대해 https://www.inflearn.com/questions/1281130/%EA%B0%95%EC%9D%98%EB%A5%BC-%EB%93%A3%EA%B3%A0-%EB%AC%B8%EB%93%9D-%EA%B6%81%EA%B8%88%ED%95%9C-%EC%A0%90%EC%9D%B4-%EC%83%9D%EA%B2%BC%EC%8A%B5%EB%8B%88%EB%8B%A4 여기서 잘 설명해주셨지만 일단 이 강의를 듣는 수강생들 입장에서는 Webflux 을 이해해야 수강이 가능하니 아무래도 Webflux가 런닝커브가 있는데요 ㅠㅠ 그래서 이 강의 진입하는데 리스크가 있을것 같아요 ㅠ,ㅠ 결제 부분을 가장 강조된 강의인데 Webflux를 알아야 이 강의를 수강 할 수 있다는점 ㅠ,ㅠ 다시한번 말씀드리지만 분명 Webflux 도입 하는것에 있어서 합당성을 이해하지만요 ㅠ,ㅠ fastcampus 에서 출시되는 강의 경우 아무래도 인프런과 비교해서 비용이 만만치가 않아서요 ㅠ,ㅠ 혹시 다음에 출시 되는 'Sacale-up 하며 배우는 대용량 트래픽 처리' 강의 인프런에서도 동일하게 출시가 가능 할까요?.. 다시한번 좋은 강의 기회 주셔서 정말 감사드리고 앞으로 좋은 강의 부탁드립니다 🙂 감사합니다!

  • spring
  • spring-boot
  • dbms/rdbms
  • backend
  • payments
리나 댓글 1 좋아요 1 조회수 437

having절에서 alias 사용은 안되는건가요?

미해결

데이터 분석 SQL Fundamentals

- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. Group By 실습 -01 강의 ,1분 20초 select deptno, max(sal) as maxsal , min(sal) as minsal, round(avg(sal),2) as avgsal from hr.emp e group by e.deptno having round(avg(sal), 2) >=2000; avgsal >= 2000 을 사용하려했는데, 안되더군요. 원래 having절에서는 안되나요?

  • sql
  • postgresql
  • dbms/rdbms
GOLD D 댓글 2 좋아요 0 조회수 291

regexp like 에 특정 특수기호 포함

해결됨

장래쌤과 함께하는 쉽고 재미있는 SQL 이야기

안녕하세요 강사님! 컬럼에 특수기호 중 + (플러스) 문자가 포함된 값을 찾으려고하는데요 정규식에 해당 기호를 쓰면 오류가 발생하는데 어떻게 해당 문자만 골라 뽑을 수 있을지 질문드립니다 .

  • sql
  • mysql
  • oracle
  • dbms/rdbms
  • mssql
hunter 댓글 1 좋아요 1 조회수 412

Schemaless 특성을 재생시 검은화면이 나와요

미해결

mongoDB 기초부터 실무까지(feat. Node.js)

Schemaless 특성을 재생시 검은화면이 나와요 새로고침해도 같은 현상이 나오네요 ㅠ

  • javascript
  • node.js
  • aws
  • mongodb
  • rest-api
  • dbms/rdbms
  • 데이터-엔지니어링
재혁최 댓글 1 좋아요 0 조회수 270

강의를 듣고 문득 궁금한 점이 생겼습니다.

미해결

견고한 결제 시스템 구축

현재 강의는 핵사고날 아키텍처를 사용하여 결제 시스템을 구축하고 있습니다. 어니언 아키텍처로도 충분히 의존성을 안쪽으로 향하게 하여 entity와 usecase를 외부 변경으로 부터 보호가 가능하지 않나 생각이 들었습니다. (결정적으로 핵사고날은 구조가 좀 복잡했습니다.) webflux를 쓰신 이유가 궁금합니다. 강의에서 내세운 견고한 시스템을 만들기위한 요구사항을 읽어봤을 때 반응성이 아니더라도 충분히 무리가는 상황이 아니기도 했고 성능보단 견고함이 중요한 상황인데 webflux를 쓰신 이유가 궁금합니다! 제 역량이 모자라 이해 못하는 부분이 있을 수 있어 배우고자 질문드립니다. 감사합니다!

  • spring
  • spring-boot
  • dbms/rdbms
  • backend
  • payments
GOLF 댓글 1 좋아요 0 조회수 492

인기 태그

인프런 TOP Writers

주간 인기글