묻고 답해요
121만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
ManyToOne 관계 설정 시 궁금한 점이 있습니다.
[질문 내용]안녕하세요! 강의를 들으며 제 사이드 프로젝트의 데이터베이스를 설계하는 과정에서 궁금증이 생겨 질문드립니다. 저는 Content라는 엔티티 클래스를 만들고 이를 상속받는 Post, Comment 클래스를 만들었습니다. Content라는 부모 엔티티 클래스를 만든 이유는 내용을 담는 body라는 필드를 Post와 Content가 동일하게 가지기 때문입니다. 후에 프로젝트가 커지면 image, link등과 같은 여러 필드들이 Content에 추가될 예정입니다. 이때 Post는 title 필드를 추가적으로 가지고 있고 Comment를 여러 개 가질 수 있는데, 일반적인 상황에서 동일한 엔티티 클래스를 상속받은 클래스끼리도 이러한 ManyToOne 관계를 가지게 설계하는지 궁금합니다.
-
미해결지금 당장 NestJS 백엔드 개발 [사주 만세력]
manses.sql DB Import 하는데 오류가 납니다.
saju-db-prod.sql import 는 정상적으로 되었는데,이어서 manses.sql DB Import 하는데 오류가 납니다.ERROR 1062 (23000) at line 24: Duplicate entry '1' for key 'manses.PRIMARY'
-
미해결재고시스템으로 알아보는 동시성이슈 해결방법
ServiceException: Unable to create requested service 뜨는 분들 보세요
ServiceException: Unable to create requested serviceHibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set프로젝트 시작했는데 이런 에러 뜨시는 분들 해결책 공유 드립니다.우선 첫번째로 Mysql 서버가 켜져있는지를 확인해봅니다. Workbench를 켜서 Mysql connect를 해주세요.그래도 안 된다면, 두번째로 application.yaml에 아래처럼 코드를 추가해줍니다.이처럼 database:mysql을 추가해줍니다.이렇게 하면 대부분 해결되실겁니다. ps. 추가적으로 이후에 unknown database라는 주의 문구가 뜨는 분들은 해당 이름으로 database를 아직 만들지 않아서 그렇습니다. url에 들어가는 이름으로 mysql workbench에서 database를 만들어서 진행하세요.
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
트랜잭션 사용 전 후 / 수동 오토 커밋
1. 이전 강의에서는 트랜잭션을 사용하지 않아 오토커밋이 되었고, 이번 강의에서는 트랜잭션을 사용해서 수동커밋이 된것으로 이해했는데 맞을까요?2. 수동커밋이 맞다면, 수동 커밋이 되어서 롤백을 할 수 있는 건가요?3. 이전 강의 까지는 트랜잭션을 사용하지 않고 DB 커넥션만 사용했다고 이해하면 되는 걸까요?4. 제가 테스트 해보고 싶었던 것은 '스프링 DB 1편'에 있는 '트랜잭션 - DB 예제3 - 트랜잭션 실습'처럼 수동 커밋의 경우 한 세션에서는 데이터가 들어간것이 보이지만 다른 한 세션에서는 안 보이는 것을 테스트 해보고 싶었습니다.그래서 랜잭션 롤백 부분 코드( transactionManager.rollback(status); )를 주석처리 하였고, H2 DB를 2개 띄웠습니다. 이 상태에서 save(), updateItem(), findItems()를 각각 실행해서 확인해 보면 두 세션 모두 데이터가 보이는 것을 확인할 수 있었습니다.커밋을 안했고 롤백도 안했는데 둘다 데이터가 보이는 걸까요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
통합테스트에서 H2 Member테이블에 정보추가 X
통합테스트 진행하고있는데회원가입이 오류없이 잘 작동합니다.하지만 MEMBER테이블에 가보면 아무런 정보가 추가되지 않았습니다.어디에 문제가 있는걸까요? 다시 실행해보니 중복회원이라고 뜨긴합니다ㅠ그래도 테이블에는 내용이 없습니다
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
pgadmin
pgadmin 연결하는 자료를 보고 그대로 따라했는데 왜 저는 테이블이 없는 상태로 만들어질까요? pgadmin 마스터비밀번호와 docker postgres 비밀번호가 같아야 한다든지 그런 이유일까요??
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
DB와 Repository의 관계가 궁금합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요 스프링 MVC 수업을 수강한 학생입니다.Repository와 DB테이블 간에 관계가 궁금해서 질문올립니다.(1) 예를들어 AuthService 가 있을때 UserRepository를 사용하셨는데, 왜 AuthRepository를 만들지 않고 UserRepository를 사용하셨나요? (2) ReservationService를 구현하기 위해 Reservation 이라는 테이블과 ReservationRepostory가 있습니다. 만약 추가적으로 필요한 정보가 User 테이블에 있어서 UserRepository 가 필요하다면, ReservationService가 ReservationRepository와 UserRepository 을 DI 해서 사용ReservationRepository에 User 테이블에 접근하는 Query를 추가하여 사용[ReservationRepository, UserRepository 나눠서 구현 vs ReservationRepository에 추가로 구현]어떤게 맞을까요??아래는 예시코드입니다. @Service @RequiredArgsConstructor public class MyBatisReservationService implements ReservationService { private final ReservationRepository reservationRepository; private final RoomRepository roomRepository; private final RoomKindRepository roomKindRepository; private final PlaceRepository placeRepository; @Service @RequiredArgsConstructor public class MyBatisReservationService implements ReservationService { private final ReservationRepository reservationRepository;감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
cmd에서 h2.bat 실행한거 끄면 안되나요??
선생님께서 이제 이거를 끄면 정보가 날아가니까 끄면 안된다고 하셨는데 그럼 cmd에서 h2.bat을 실행해놓은 상태로 계속 cmd를 켜놔야하는건가요?? 나중에 insert를 많이 해서 정보를 DB에 많이 넣어놓은 상태면 노트북도 못끄나요??
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
db로 insert가 두 번 실행 됩니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 회원가입 페이지에서 이름을 입력하면 에러가 발생하여 중복확인 메소드를 지우고 실행해보니 입력한 이름이 2번 db에 입력됩니다. 콘솔 화면에 insert문이 반복되는걸로 보여지는데 어디서 잘못된걸까요ㅠㅠ
-
미해결[코드팩토리] [초급] Flutter 3.0 앱 개발 - 10개의 프로젝트로 오늘 초보 탈출!
플러터 DB(mysql) 값 가져오기
플러터와 <php,DB(mysql)>을 사용하여 로그인&회원가입을 구현했습니다. 로그인을 하면 닉네임을 표시하고 싶은데 DB에서 ID에 해당하는 닉네임 값을 어떻게 가져와야할지 모르겠습니다. 로그인하면 로그인유지는 shared_preferences 사용하여 (id,pw)를 저장했습니다.
-
미해결스프링부트 시큐리티 & JWT 강의
안녕하세요 DB 연결에 관해 문의드립니다
안녕하세요 데이터베이스 사용에 관한 설명이 없어 문의드립니다 데이터베이스의 설치나, 계정, 연결에 관해 설명이 없어서 어떻게 해야 하는지 잘 모르겠습니다. 이 부분은 검색을 해서 알아서 DB연결을 하고 진행해야하는 부분일까요?
-
미해결
php 회원가입 db 질문 드립니다.
Fatal error: Uncaught Error: Undefined class constant 'MYSQL_ATTR_INIT_COMMAND' in C:\Apache24\htdocs\dbcon.php:8 Stack trace: #0 C:\Apache24\htdocs\index.php(2): include() #1 {main} thrown in C:\Apache24\htdocs\dbcon.php on line 8. APM 환경에서 php로 회원가입을 구현하고 싶은데 위와 같은 오류가 뜹니다. 오류 문장에 언급된 php 파일 첨부합니다.. 찾아봐도 잘 안 나오고 뭐가 문제인지 모르겠습니다. ㅇ위에서 말한 line 8은 아래입니다. 오래 붙잡았는데도 도저히 모르겠습니다.. 도와주시면 감사하겠습니다. $options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'); dbcon.php <?php $host = 'localhost'; $username = ''; $password = ''; $dbname = 'userdb'; $options = array(PDO::MYSQL_ATTR_INIT_COMMAND => 'SET NAMES utf8'); try { $con = new PDO("mysql:host={$host};dbname={$dbname};charset=utf8",$username, $password); } catch(PDOException $e) { die("Failed to connect to the database: " . $e->getMessage()); } $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $con->setAttribute(PDO::ATTR_DEFAULT_FETCH_MODE, PDO::FETCH_ASSOC); if(function_exists('get_magic_quotes_gpc') && get_magic_quotes_gpc()) { function undo_magic_quotes_gpc(&$array) { foreach($array as &$value) { if(is_array($value)) { undo_magic_quotes_gpc($value); } else { $value = stripslashes($value); } } } undo_magic_quotes_gpc($_POST); undo_magic_quotes_gpc($_GET); undo_magic_quotes_gpc($_COOKIE); } header('Content-Type: text/html; charset=utf-8'); session_start(); ?> index.php <?php include('dbcon.php'); include('check.php'); if(is_login()){ if ($_SESSION['user_id'] == 'admin' && $_SESSION['is_admin']==1) header("Location: admin.php"); else header("Location: welcome.php"); } ?> <!DOCTYPE html> <html> <head> <title>로그인 예제</title> <link rel="stylesheet" href="bootstrap/css/bootstrap1.min.css"> </head> <body> <div class="container"> <h2 align="center">로그인</h2><hr> <form class="form-horizontal" method="POST"> <div class="form-group" style="padding: 10px 10px 10px 10px;"> <label for="user_name">아이디:</label> <input type="text" name="user_name" class="form-control" id="inputID" placeholder="아이디를 입력하세요." required autocomplete="off" readonly onfocus="this.removeAttribute('readonly');" /> </div> <div class="form-group" style="padding: 10px 10px 10px 10px;"> <label for="user_password">패스워드:</label> <input type="password" name="user_password" class="form-control" id="inputPassword" placeholder="패스워드를 입력하세요." required autocomplete="off" readonly onfocus="this.removeAttribute('readonly');" /> </div> <div class="checkbox"> <label><input type="checkbox"> 아이디 기억</label> </div> </br> <div class="from-group" style="padding: 10px 10px 10px 10px;" > <button type="submit" name="login" class="btn btn-success">로그인</button> <a class="btn btn-success" href="registration.php" style="margin-left: 50px"> <span class="glyphicon glyphicon-user"></span> 등록 </a> </div> </br> </form> </div> </body> </html> <?php $login_ok = false; if ( ($_SERVER['REQUEST_METHOD'] == 'POST') and isset($_POST['login']) ) { $username=$_POST['user_name']; $userpassowrd=$_POST['user_password']; if(empty($username)){ $errMSG = "아이디를 입력하세요."; }else if(empty($userpassowrd)){ $errMSG = "패스워드를 입력하세요."; }else{ try { $stmt = $con->prepare('select * from users where username=:username'); $stmt->bindParam(':username', $username); $stmt->execute(); } catch(PDOException $e) { die("Database error. " . $e->getMessage()); } $row = $stmt->fetch(); $salt = $row['salt']; $password = $row['password']; $decrypted_password = decrypt(base64_decode($password), $salt); if ( $userpassowrd == $decrypted_password) { $login_ok = true; } } if(isset($errMSG)) echo "<script>alert('$errMSG')</script>"; if ($login_ok){ if ($row['activate']==0) echo "<script>alert('$username 계정 활성이 안되었습니다. 관리자에게 문의하세요.')</script>"; else{ session_regenerate_id(); $_SESSION['user_id'] = $username; $_SESSION['is_admin'] = $row['is_admin']; if ($username=='admin' && $row['is_admin']==1 ) header('location:admin.php'); else header('location:welcome.php'); session_write_close(); } } else{ echo "<script>alert('$username 인증 오류')</script>"; } } ?>
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
mysql connection 오류
안녕하세요, 강의 잘 듣고 있습니다. 다름이 아니라 강의를 듣는 도중에 Mysql과 연결이 되지 않아서 도움을 구하고자 합니다. Workbench에서 Test Connection을 누르면 계속 could not connect to mysql at "주소" ~ 이렇게 뜨게 됩니다. Vi 편집기를 통해서 Error Log를 확인했는데도 Timestamp가 잘못 설정되어 있다는 에러밖에 확인하지 못했습니다. 그래서 이게 Mysql이 안켜진건가 해서 Putty에서 Mysql을 실행 시키고 접속을 해도 계속 Connection이 안됩니다. Configure Server Management를 해야하나 고민해봤는데 이걸 하면 가상 리눅스환경에 mysql을 연결하는게 아니라 Window 운영체제 자체의 mysql을 연결하는거니 이건 아닌거 같고 지금 요 연결때문에 구글링만 일주일째 하고 있는데 안되고 있습니다. mysql에 문제가 있는건가 싶어 Select host from mysql.user을 해도 % 로 나와 있는 root가 잘 출력 되고, putty에서 netstat -ntlp를 해도 :::3306으로 잘 돌아가고 있는것 같습니다. EC2 주소랑 인바운드 규칙도 잘 설정이 되어 있는 상태인데 더이상 진행이 되지 않습니다. 혹시 해결 방법을 아실까요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
JPA 사용시 DB 설계 관련 질문입니다!
안녕하세요 강사님. 보통의 프로젝트를 할 경우 DB 테이블 설계를 먼저 하는것으로 알고있는데요. JPA를 사용할 시에 테이블을 먼저 설계하고 그에 맞춰 엔티티를 작성하는지, 또는 먼저 엔티티를 중심으로 설계하는지 궁금합니다! 감사합니다.
-
해결됨Slack 클론 코딩[백엔드 with NestJS + TypeORM]
typeorm을 통해 db 생성을 하려고 하는데 에러가 발생합니다.
"start:dev": "nest build --webpack --webpackPath webpack-hmr.config.js --watch", 스크립트를 사용하여 실행했을 때 콘솔에 찍히는 에러입니다. // app.module.tsimport { MiddlewareConsumer, Module, NestModule } from '@nestjs/common';import { ConfigModule, ConfigService } from '@nestjs/config';import { AppController } from './app.controller';import { AppService } from './app.service';import { LoggerMiddleware } from './middlewares/logger.middleware';import { UsersModule } from './users/users.module';import { WorkspacesModule } from './workspaces/workspaces.module';import { ChannelsModule } from './channels/channels.module';import { DmsModule } from './dms/dms.module';import { TypeOrmModule } from '@nestjs/typeorm';@Module({ imports: [ ConfigModule.forRoot({ isGlobal: true }), TypeOrmModule.forRoot({ type: 'mysql', host: 'localhost', port: 3306, username: process.env.DB_USERNAME, password: process.env.DB_PASSWORD, database: process.env.DB_DATABASE, autoLoadEntities: true, keepConnectionAlive: true, migrations: [__dirname + '/migrations/*.ts'], charset: 'utf8mb4', synchronize: true, logging: true, }), UsersModule, WorkspacesModule, ChannelsModule, DmsModule, ], controllers: [AppController], providers: [AppService, ConfigService],})export class AppModule implements NestModule { configure(consumer: MiddlewareConsumer): any { consumer.apply(LoggerMiddleware).forRoutes('*'); }} TypeOrm 모듈 관련 부분입니다. mysql에 스키마는 직접 만들어야 한다고 하셔서 만들은 화면입니다. typeORM 0.3.0 을 사용을 하고 있으며, ormconfig.ts 파일 대신 dataSource.ts 파일로 바꾼 상태지만, app.module.ts를 확인해보면 dataSource.ts 파일을 사용하지 않고 직접 설정 정보를 넣어준 상태입니다.에러코드 관련해서 검색을 해보니 webpack 문제라는 글을 보긴 했는데, 정말 webpack 때문에 발생한 오류인지, 그렇다면 어떻게 해결해야하는지 모르겠습니다.
-
미해결데이터 분석 SQL Fundamentals
postgres db 연결 문제
postgres 비밀번호를 가이드대로 postgres로 설정했는데 비밀번호 에러가 나는 거 같습니다 이럴 경우 어떻게 해야 db가 연결이 될까요? - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
강사님께서 사용하시는 ERD 그리기 툴이 있을까요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 일부 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, 스프링 부트와 JPA 활용 강의를 듣고 토이프로젝트를 진행하려고 하는데, entity relation diagram을 간단하게 그릴 툴이 뭐가 있을까 싶어서 질문 남깁니다. Draw.io나 erdcloud 등의 사이트를 봤지만 초심자가 무턱대고 접하기엔 생각보다 벽이 있어서, 강사님께서 직접 사용하시는 툴은 어떤 것인지 궁금해 질문합니다.
-
해결됨남박사의 파이썬으로 실전 웹사이트 만들기
리눅스 우분투 서버에서 배포하기 강좌중 몽고db연동..
안녕하세요 남박사님 이번에 진도를 진행하다가... 우분투에서 몽고db연결하는 부분을 따라하다가 진행이 안되서 다시 질문 올립니다! 구글링 해봐도 몽고db사이트가서 봐도... 이해가 잘 안가더라구요.. 터미널에서 20:44초 처럼 코드를 작성하니까.. key값을 가지고 올수 없다고 하는데.. 기존방법에서 다른 방법으로 바뀌었을까요..? 버추얼 머신때문은 아니겠죠..? ms꺼는 설치가 아예안되서 버추얼박스로 잠깐 사용하다가 렉도심하고 잘안되서요.. 현재 내용에서 진도가 안나가서 지금은 VMware 설치해서 사용중입니다..!
-
미해결
MongoDB에서 mongoexport 질문
몽고디비에서 mongoexport를 사용하려하는데 데이터베이스 자체의 update를 사용하지 않고 mongoexport 사용시 field의 value값을 수정하여 csv로 export하는 방법이 있을까요?
-
미해결기출로 대비하는 개발자 전공면접 [CS 완전정복]
RDB의 INDEX를 B-Tree 구조로 가져가면 좋은 이유에 대해 궁금증이 있습니다.
RDB의 Index를 B-Tree 구조로 하면 삽입, 수정, 삭제 시 O(logN)의 시간복잡도를 갖는다고 하셨는데 어떻게 그렇게 되는지 궁금합니다.