묻고 답해요
137만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지] (업데이트)
파이썬으로 다루는 MySQL
커리큘럼을 따라 잘 수강하고 있었는데 파이썬으로 다루는 MySQL부터 파이썬이 나와서 이해를 많이 못하고 있는 것 같습니다. 강의중에는 따로 설명하는 강의를 준비했다고 하시고 파이썬 입문과 크롤링 부트캠프으로 설명드렸다고 말씀해주셨는데 여기서부터는 강사님께서 강의하시는 파이썬 강의를 듣고 나서 수강하면 좋은건가요? 제가 business analyst로 이직 희망하고 있어서 SQL을 공부하고 있는건데 파이썬과 크롤링까지 할 필요가 있을지 의문이 들어서 질문남깁니다!
-
미해결처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지] (업데이트)
JOIN 활용 SQL 연습문제
연습문제메인 카테고리별로 할인 가격이 10만원 이상인 상품이 몇개 있는지를 출력해보기 (JOIN 활용 SQL 과 서브쿼리 활용 SQL 모두 작성해보기)정답은 첫번째 코드처럼 WHERE, GROUP BY절이 쓰였는데 저는 처음 이 문제를 보고 두번째 코드처럼 GROUP BY, Having 절을 생각해서 넣었더니 오류값이 나오더라구요 HAVING절이 GROUP BY 이후에 자주 쓰이기도 하고 집계도 넣을 수 있어서 똑같은 조건문을 WHERE 대신 HAVING절에 넣어줬는데 혹시 오류가 난 이유가 있을까요? 오류메세지는 Unknown column 'items.dis_price' in 'having clause'라고 떴습니다. 제가 GROUP BY가 쓰일때는 HAVING이랑 WHERE가 같은 역할을 하는것 같다고 생각하는데 어떤 부분에서 차이가 있는지 설명해주시면 좀 더 분명하게 이해할 수 있을 것 같습니다.SELECT ranking.main_category, COUNT(*) FROM ranking JOIN items ON items.item_code = ranking.item_code WHERE items.dis_price >= 100000 GROUP BY ranking.main_category;SELECT ranking.main_category, COUNT(*) FROM ranking JOIN items ON items.item_code = ranking.item_code GROUP BY ranking.main_category Having items.dis_price >= 100000;
-
미해결처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지] (업데이트)
Dbeaver 라는 SQL 쿼리 실행 툴을 써도 될까요?
업무에선 Dbeaver로 자주 돌렸거든요.혹시 Workbench 말고 디비버도 괜찮을까요?
-
해결됨Real MySQL 시즌 1 - Part 1
없는데이터에 select ... for update 쿼리시에 Lock
안녕하세요.예시를 위해 테이블명을 변경했습니다. 도메인상 이해안되도 이해부탁드립니다..!바로 질문으로 들어가면 아래에 쿼리를 발생시키면 supremum pseudo-record 락이 생기게 됩니다. 하지만 여기서 다른 세션에서 아래 쿼리를 똑같이 실행하면 select for update에서 락대기가 걸릴거라고 예상했는데 START TRANSACTION; #1 #reader_id+name 조합으로 유니크인덱스 사용중 SELECT * FROM book b WHERE reader_id = 21 AND name = 'ABC' FOR UPDATE; #2 INSERT INTO book VALUES (null, 'ABC', 21); #3아래 처럼 같은 락이 추가됩니다. 그래서 두 세션중 어느세션에서 insert 쿼리를 입력하든 Lock 대기가 걸리게됩니다. select에서 락대기가 걸리길 바랬는데 insert를 해야 락대기가 걸리는 이유가 무엇인가요?답변 미리 감사합니다.
-
미해결입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
org.junit.jupiter.api.extension.ParameterResolutionException: Failed to resolve parameter
테스트 코드 실행시 의존성 주입이 안되는 듯한 에러가 있습니다...org.junit.jupiter.api.extension.ParameterResolutionException: Failed to resolve parameter [com.mkim.portfolio.domain.repository.ExperienceRepository experienceRepository] in constructor [public com.mkim.portfolio.domain.repository.ExperienceRepositoryTest(com.mkim.portfolio.domain.repository.ExperienceRepository)]: Failed to load ApplicationContext for [MergedContextConfiguration@41120e48 testClass = com.mkim.portfolio.domain.repository.ExperienceRepositoryTest, locations = [], classes = [com.mkim.portfolio.PortfolioApplication], contextInitializerClasses = [], activeProfiles = [], propertySourceDescriptors = [], propertySourceProperties = ["org.springframework.boot.test.autoconfigure.orm.jpa.DataJpaTestContextBootstrapper=true"], contextCustomizers = [org.springframework.boot.test.autoconfigure.OverrideAutoConfigurationContextCustomizerFactory$DisableAutoConfigurationContextCustomizer@15bb5034, org.springframework.boot.test.autoconfigure.actuate.observability.ObservabilityContextCustomizerFactory$DisableObservabilityContextCustomizer@1f, org.springframework.boot.test.autoconfigure.filter.TypeExcludeFiltersContextCustomizer@34be3d80, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@854e4b26, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizer@7a35b0f5, [ImportsContextCustomizer@165a5979 key = [org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration, org.springframework.boot.autoconfigure.data.jpa.JpaRepositoriesAutoConfiguration, org.springframework.boot.test.autoconfigure.orm.jpa.TestEntityManagerAutoConfiguration, org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration, org.springframework.boot.autoconfigure.orm.jpa.HibernateJpaAutoConfiguration, org.springframework.boot.autoconfigure.sql.init.SqlInitializationAutoConfiguration, org.springframework.boot.test.autoconfigure.jdbc.TestDatabaseAutoConfiguration, org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration, org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration, org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration, org.springframework.boot.autoconfigure.jdbc.JdbcClientAutoConfiguration, org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration, org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration]], org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@7bd7d6d6, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@2a8448fa, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.context.SpringBootTestAnnotation@4d8dfd98], contextLoader = org.springframework.boot.test.context.SpringBootContextLoader, parent = null] @Autowired 도 잘 넣은듯한데 왜 해당 에러가 발생하는지를 파악을 못하고 있습니다...test를 하려하는 타겟 레포지토리도 하위 경로에 잘 존재합니다.interface ExperienceRepository : JpaRepository<Experience, Long> { fun findAllByIsActive(isActive: Boolean): List<Experience> }현재 플러그인과 디펜던시는 아래와 같습니다.plugins { id("org.springframework.boot") version "3.3.0" id("io.spring.dependency-management") version "1.1.5" kotlin("plugin.jpa") version "1.9.24" kotlin("jvm") version "1.9.24" kotlin("plugin.spring") version "1.9.24" } dependencies { implementation("org.springframework.boot:spring-boot-starter-data-jpa") implementation("org.springframework.boot:spring-boot-starter-thymeleaf") implementation("org.springframework.boot:spring-boot-starter-validation") implementation("org.springframework.boot:spring-boot-starter-web") implementation("com.fasterxml.jackson.module:jackson-module-kotlin") implementation("org.jetbrains.kotlin:kotlin-reflect") runtimeOnly("com.h2database:h2") runtimeOnly("com.mysql:mysql-connector-j") testImplementation("org.springframework.boot:spring-boot-starter-test") testImplementation("org.jetbrains.kotlin:kotlin-test-junit5") testRuntimeOnly("org.junit.platform:junit-platform-launcher") }제가 확인해야할 부분을 잘 못찾고 있는듯합니다... 혹시 제가 놓치는 부분이 있을까요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
h2 콘솔 접근 불가
위의 에러가 나옵니다 활성화도 제대로 된거 같은데 h2-console에 jdbc:h2:mem:library;MODE=MYSQL;NON_KEYWORDS=USER를 입력하고 connect버튼을 누르면 에러가 나오고 url은 초기화 됩니다. local로 돌려도 화면상에 mysql연결이 된 거 같이 데이터는 그대로 입니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
예외 날리는 이유에 대해서
안녕하세요강의 듣다가 문득 든 의문인데 코드를 짜실 때 조건이 아닌 경우에 다른처리를 하는 것이 아니라 바로 예외를 날려서 처리를 하시는데 이유가 있을까요? 혼자 짤 때는 예외처리를 하지 않고 else로 조건 분기 시켜서 따로 따로 코드 진행시키는데 바로 예외날리시는 이유가 궁금합니다
-
미해결[Rookiss 켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
GameServer 빌드 오류
수업자료를 다운받고 처음에 GameServer콘솔앱을 빌드하는 과정부터 오류로 실행이 안되네요 ㅠㅠbat 파일이 윈도우 보안에 걸려서 그런가 생각되어서 bat파일을 새롭게 직접 생성해줘도 문제가 해결되지 않네요.cmd 창에서 직접start GenProto.bat %cd% \Server\GameServer\Packet\Generated\ 1 과 같이 오류가 난 2줄의 명령어를 실행해서 진행해 보았는데, 자동생성되야하는 패킷매니저.cs파일도 자동생성이 안되는 걸로 보아 cmd 창에서 실행하는 방법도 안되는 것 같습니다.
-
해결됨비전공자도 이해할 수 있는 MySQL 성능 최적화 입문/실전 (SQL 튜닝편)
실행 계획 type / 정렬 방식
안녕하세요 강사님! 실행 계획 type에 대해서 궁금한 점이 있습니다. ref가 UNIQUE가 아닌 컬럼의 인덱스를 사용한 경우라고 해주셨는데, 그러면 UNIQUE가 아닌 컬럼의 인덱스이지만 index나 range의 경우에 해당하면 해당 타입으로 표시되는 거고 저 둘(index, range)이 아닐 때, ref 타입으로 표시되는 걸까요? 그리고 한 가지 더 궁금한 점이 있는데, 만약 데이터를 조회한 결과들을 바로 View로 보내는 게 아니고 자바 코드를 사용한 계산을 통해 가공해야 하는 상황이라면 굳이 ORDER BY를 쓰지 않고, 데이터 조회 후, Collections.sort()와 같은 자바 코드로 정렬하는 편이 나을까요?
-
해결됨Real MySQL 시즌 1 - Part 2
파티셔닝의 자원 사용 효율 증가 관련 질문
"테이블 파티셔닝이 필요한 이유"중에 "자원 사용 효율 증가 및 쿼리 성능 향상"을 언급주셨습니다.예를들어 최근에 저장된 데이터들 위주로 조회하는 경우 파티션 프루닝을 통해 최근 데이터만 접근하니까 효율적이라는 내용인데요, 효율적인 부분이 제가 생각했을 때 아래 2가지 정도인 것 같습니다.테이블의 모든 row를 접근 안해도 되고 더 적은 데이터만 읽어도 됨버퍼풀에 자주 사용되는 일부 데이터만 로드해도 됨여기서 질문이 있습니다. 파티셔닝키를 대상으로 인덱스를 걸면, 마찬가지로 최근 데이터만 접근가능하고, 버퍼풀에 최근 데이터만 올라가지 않나요?인덱스를 거는 방식이 파티셔닝을 사용하는 것에 비해 어떤 점에서 부족한가요?
-
해결됨Real MySQL 시즌 1 - Part 2
INSERT에서 shared lock을 거는 이유 질문
"DeadLock 예시(2)"에서 INSERT구문이 UNIQUE를 보장하기위해 shared lock을 걸고 확인한다고하였는데요, 그냥 처음부터 exclusive lock을 걸고 값을 확인하게 구현할 수도 있을 것 같은데, 그렇게 안되어있는 특별한 이유가 있을까요?exclusive lock을 건 상태에서는 값이 있는지 확인이 불가능하다 (shared lock을 걸었을때만 가능하다)그냥 어쩌다보니 MySQL이 그렇게 구현되어있다.lock경합을 줄이기위한 의도로 이렇게 구현했다?제가 생각나는 이유는 위 2개 정도인데, 어떤 이유인지 아실까요?
-
해결됨Real MySQL 시즌 1 - Part 2
안녕하세요. 인덱스 관련 질문 있습니다.
에피소드 15에서 복합 인덱스의 경우 순서가 중요하다고 하셨는데요.그럼 인덱스 생성 시 (account_type, joined_at) 와 같은 순서일때 조건에 joined_at account_type 순서로 주어지면 인덱스를 활용하지 못하는게 맞을까요??
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
강의 다 듣고 수료증 받을 수 있죠?
강의 다 들으면 수료증 받을 수 있죠?제출해야되서요..
-
해결됨[Rookiss 켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
(UI_SelectCharacterPopup) 히어로 선택창에서 클릭과 관련된 코드에서 질문이 하나 있습니다.
안녕하세요 루키스님^^ 요세 루키스님 강의 덕택에 매일매일이 너무 즐거운 하루를 보내고 있는 수강생입니다. 이번에도 강의를 복습하던 중 궁금한 점이 하나 생겨서 질문올리게 되었습니다. 히어로 목록창에서 하나를 클릭하게 되면 1. UI_CharacterSlotItem.cs에서 OnClickSelectHeroImage()가 실행 2. OnClickSelectHeroImage() 실행시 onHeroSelected에 등록된 UISelectCharacterPopup.cs의 OnHeroSelected()가 실행 3. OnHeroSelected()에서 UISelectCharacterPopup.cs의 RefreshUI()실행 4. RefreshUI()가 실행되면 각 slots를 순회하면서 UICharacterSlotItem.cs의 SetInfo()가 실행 5. SetInfo()에서 UICharacterSlotItem.cs의 RefreshUI()실행 6. OnClickSelectHeroImage()에서 다시 UICharacterSlotItem.cs의 RefreshUI()실행 이런 순서로 RefreshUI()가 2회 실행이 되는 것으로 이해했습니다. 위 코드에서 SetInfo() 내부에 RefreshUI()가 들어 있음에도, OnClickSelectHeroImage()에도 RefreshUI()가 들어있습니다. OnClickSelectHeroImage()에 RefreshUI()를 주석처리 해도 코드는 작동이 되는 것 같습니다. 혹시 OnClickSelectHeroImage()에 RefreshUI()를 넣어두신 다른 이유가 있으신가요?
-
미해결처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지] (업데이트)
Sakila PDF 파일 오류
안녕하세요 Sakila 관련 PDF파일 네 파일 모두다 위에 열수 없다는 메세지가 뜹니다. 혹시 다시 올려주실 수 있나요?
-
미해결처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지] (업데이트)
SQL table에 있는 Default 의미
SQL table을 생성하면 Field, Type, Null, Key, Default, Ext순으로 있는데 Field, Type, Null, Key, Ext은 테이블 만들때 다 다뤘던거라 알겠는데 Dafult는 항상 NULL이라고 되어있는데 어떤건지 잘 모르겠더라구요. 그리고 NOT NULL이라고 데이터 형식을 적으면 NULL 에 Yes라고 뜨는데 Default에는 NULL이라고 되어있어서 가끔 헷갈리기도 하는 것 같아요. Default가 의미하는게 무엇이고, 왜 항상 NULL이라고 되어있는지 궁금합니다
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
orElseThrow에 관해서
안녕하세요 강의 11:15초에 있는 예외 던지는 것에 대해서 질문이 있습니다.orElseThrow로 테이블에 데이터 없는 경우 예외가 터진다고 하셨는데 예외처리는 따로 안 해도 되는 건가요?
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
소셜로그인 User 테이블 관련 질문 있습니다.
소셜로그인을 구현하다가 의문점이 생긴 부분이 있어 어떠한 방식으로 접근하는 것이 궁금하여 질문을 남깁니다.상황일반 회원가입시에는, 이메일 비밀번호 + 해당 서비스에 필요한 필수 정보들을 받고, 해당 내용을 클라이언트로 부터 받아 user테이블에 저장하는 상황입니다.소셜 로그인 같은 경우에는, 정보를 받을 수 있는 것이 제한이 되어있어, 추가적으로 필요한 정보들을, 소셜 로그인 성공 이후, 클라이언트 측에서 회원가입시 필요한 정보들을 받을 수 있는 화면으로 이동시켜, 해당 정보를 받아서, 부족한 정보들을 채워넣는 것으로 알고 있습니다.궁금점.소셜로그인 로그인 후, 신규 유저이기에 서비스 이용에 필요한 필수 부가정보 입력을 받기위해, 회원가입 창으로 이동시켜, 부가 정보를 입력받는다면 크게 문제가 없습니다.하지만, 앱을 사용하다보면은 데이터가 끊긴다거나, 배터리가 방전된다거나, 알수없는 이유로, 로그인은 되었으나, 필수 부가정보를 입력하지 못하고, 꺼지는 경우가 있습니다. 필수 부가정보를 꼭 받아야 하는 경우라면 이 부분에 대해서 어떻게 처리해야하나요?필수 정보를 채웠는지 여부를 확인하는 column을 boolean으로 User 테이블에 추가하여, 클라이언트에서 해당 Column으로 부가정보를 입력받지 않았으면 메인화면으로 가지않고, 회원가입 스크린으로 리다이렉 시키는 이런 로직을 작성해야하나요?필수 정보를 채웠는지 여부를 확인하는 column 없이 이런 경우에 처리할 수 있는 방안이 있는지 궁금하고, 현업에서는 어떤식으로 테이블을 설계하는지 궁금합니다!
-
해결됨처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지] (업데이트)
인덱스 관련 질문!
인덱스에 대해서 약간의 의문을 질문드립니다. 인덱스가 조회의 성능 향상을 위한다는 점은 이해가 갑니다만..특정한 인덱스의 이름을 설정하는 부분이 약간 헷갈립니다. 가령 std_id 라는 인덱스를 학번을 저장 하는 column에 만들었을 때를 예시로 들겠습니다. 제가 학번의 데이터를 조회 하는경우 자체 프로그램에서 std_id의 인덱스만을 쉽게 찾는다는 의미이며, 이름설정은 단순 사용자들의 이해를 편하게 하기 위함인지가 궁금합니당
-
미해결[Rookiss 켠김에 출시까지] 유니티 캐주얼 모바일 MMORPG (M2)
(해결) 맥북 사용하시는 수강생 분이 계시다면 rider, protobuf 조언을 구합니다.
개발환경은 맥북, rider 사용중 입니다.rider 패키지 구성과 protobuf 구성에서 해결 방법을 찾고 있습니다.rider 패키지 구성 현황[구성완료]ServerGameServerServerCore[미구성]ToolsPacketGenerator : 솔루션은 만들었으나 bin 폴더 구성 못함CommonProtocol해결 방법을 알고계시다면, 레퍼런스 또는 조언 부탁드립니다.감사합니다.@추가 내용protobuf 설치는 homebrew 로 설치하였습니다.protoc --version : libprotoc 27.1protobuf 버전 변경 - 3.27.2