묻고 답해요
160만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
- 
      
        
    미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]deleteUser 관련 질문현재 코드에서는 name을 기준으로 delete를 하는데요, findByName(name)을 이용한 코드에서 DB 안에 같은 이름의 회원이 2명 이상인 경우엔 오류가 생깁니다. 그 이유가 find는 return 개수가 1건이기 때문에 rollback 된다고 생각했습니다.이 버그를 수정하기 위해서 deleteUser의 파라미터는 Long id 로 수정했는데, 또 안 되더라고요...?findAll을 쓰면 같은 이름을 가진 모든 회원이 삭제될 것 같고... 어떻게 하면 동명이인의 회원 중에서 내가 원하는 한 회원만 삭제할 수 있나요? + 추가 방금 다른 학생분의 질문과 답변을 읽었습니다. 같은 내용의 질문인 것 같네요!그러면 파라미터를 Long id 로 변경하되, 현재 실습 중인 UI에서도 코드를 수정해야하는 부분이 있기에 삭제가 안 되는 게 맞다고 이해하면 될까요? 
- 
      
        
    미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지채팅방을 만든 브라우저에서 모두 나갔을 경우 문의드립니다.채팅방에 모두 나가기를 했는데요, 이상하게 채팅방을 만든 브라우저에서는 방이 바로 없어지지않고, 새로고침을 해야 제거가되는데 이러면 안되는건가요..? 
- 
      
        
    미해결PHP 프로그래밍 실무 완전 정복! with MySQL이 강의에 앞서 봐야하는 기본편 링크 좀 알 수 있을까요?이 강의에 앞서 봐야하는 기본편 링크 좀 알 수 있을까요? 
- 
      
        
    미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]궁금한점 있습니다안녕하세요 강사님 궁금한것이 있어서 질문 남깁니다 public void returnBook(String bookName) { UserLoanHistory targetHistory = this.userLoanHistories.stream() .filter(history -> history.getBookName().equals(bookName)) .findFirst() .orElseThrow(IllegalAccessError::new); //findFist()는 옵셔널로 반홚나다 targetHistory.doReturn(); }이 로직에서 만약 한 책을 빌렸다가 반납하면 그 히스토리를 반납완료 상태로 만들어주고 끝내고다시 그 책을 빌리려고 한다면 새로운 히스토리를 만들어서 List에 저장할텐데 그럼 다시 그책을 반납할 경우 findFirst()를 해서 그 히스토리를 찾아왔을때 이미 반납된 책을 다시 반납하는 행위가 되는것이 아닌건지 궁금해서 질문 드립니다! 
- 
      
        
    미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지몽구스 쿼리 remove 에러 문제Room.remove 이 부분에서 계속해서 TypeError: Room.remove is not a function 발생하길래 docs를 살펴봤는데 deleteMany나 deleteOne만 있더라구요! 현재 코드를 deleteMany로 수정해서 잘 동작이 됩니다!그런데 remove가 deleteOne이나 deleteMany로 분리된것은 꽤 오래전 일이라서 docs를 봐도 왜 나는 remove가 안되는데 불과 몇개월 전에 코드에서는 remove가 잘 돌아간건지 궁금해서 질문 남깁니다!! ㅜㅜ 
- 
      
        
    미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]사용자 이름 수정에서 막힙니다강의 코드를 그대로 따라가고 있지는 않고 기존에 알고 있던 내용이랑 합쳐서 코드를 작성하고 있습니다.Controller@PutMapping("/user") public void updateUserName(@RequestBody UpdateUserDto updateDto) { userService.updateUserName(updateDto.getId(), updateDto.getName()); }Dtopublic class UpdateUserDto { private long id; private String name; public long getId() { return id; } public String getName() { return name; }Repository@Override public void updateUserName(long id, String name) { String sql = "update user set name = ? where id = ?"; jdbcTemplate.update(sql, name, id); }Service@Override public void updateUserName(long id, String name) { userRepository.updateUserName(id, name); } 수정을 눌렀을 때 name은 정상적으로 값이 넘어오는데 id가 계속 0으로 넘어옵니다,,등록 시에는 DB에 id가 정상적으로 입력되고 있는데 뭐가 문제일까요? 
- 
      
        
    미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]등록 시 질문등록 id가 1번과 2번이 있었다가 2번을 삭제하고 다시 등록을 하면 id가 3번으로 등록이 됩니다. 제가 잘못한 걸까요..?? 아니면 혹시 원래 이렇게 돌아가도록 설정하신건가요?? 
- 
      
        
    미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지10.4 토큰테스트에는 표시되지만 api 서버에는 유효하지 않다고 나와요.질문1)4000/test에서는 토큰이 표시되지만, 8002/v1/test 에서는 유효하지 않은 토큰으로 뜨는 이유가 무엇일까요?로그에서는 401코드가 뜨다가 4000/test 접속 후 새로고침을 하면 200 코드가 로그에 다시 뜹니다. api 코딩 내용 첨부합니다.app.jscontrollers/v1middleware/v1routes/v1 
- 
      
        
    해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)docker mysql or mariadb 실행 에러 참고하세요mariadb 최신버전 사용시 Dockerfile 그대로 작성시 실행 에러가 발생합니다.저는 sql 을 백업해서 스키마랑 테이블 새로 만들도록 수정해서 해결했습니다.추가로 실행후 mysql 접속도 mysql 명령어가 아닌 mariadb 로 작성하셔야 됩니다.mariadb -h127.0.0.1 -uroot -pmysqldump -u root -p mydb > mydb.sqlFROM mariadb ENV MYSQL_ROOT_PASSWORD test1357 ENV MYSQL_DATABASE mydb COPY ./mydb.sql /docker-entrypoint-initdb.d/ EXPOSE 3306 
- 
      
        
    해결됨[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지섹션3.http 모듈로 서버 만들기 관련 질문입니다.섹션3.http 모듈로 서버 만들기 관련 질문입니다.코드를 보면, 클라이언트가 서버에 요청하는 get()함수를 사용할 때get("/users"), 즉 users라는 url을 클라이언트 측에 전달하도록 설정했는데,클라이언트가 서버에 데이터를 신규로 등록하거나, 수정, 삭제를요청할 때에는 post("/user", {name})이렇게 작성하는 이유가 뭘까요?그냥 생각하기에 클라이언트가 요청할 때, 서버측에서 전달할 페이지 url이/users 이니까, 그냥 수정 및 삭제도 동일한 /users 주소에서 하면 안되는건지 궁금해서요. 그리고, 두 번째 질문입니다. 만약 위 질문이 애초에 불가능한 것이라고 한다면서버에서는 /user에 수정. 삭제된 데이터 값을 어떻게 /users에 전달해서 새롭게변경된 값으로 업데이트하는 것인지 궁금합니다.(*서버에 대한 개념부족으로 인해 문의드립니다.) 
- 
      
        
    미해결자바 ORM 표준 JPA 프로그래밍 - 기본편이러한 상황에서는 복합키와 대리키 중 어느것을 사용해야 하나요?안녕하세요 현재 한 사용자가 한 상점에 대해서 특정 유형의 주문을 몇 번 했는지 조회하는 기능을 구현하고 있습니다.처음에는 주문 테이블의 모든 튜플을 조회하면서 shopid, userid, orderType이 일치하는 경우 값을 누적하는 방식으로 구현을 했는데요,테이블이 갈수록 커지고 이러한 조회가 기획 상 굉장히 빈번하기 때문에 한 유저가 한 상점에 대해 특정 유형의 주문을 몇번 했는지 기억하는 별도의 테이블을 생성하기로 하였습니다.테이블은 userId, shopId, reservationCount, pickupCount, noShowCount 를 필드로 갖도록 구현했습니다.그런데 여기서 기본키를 설정해야 하는데 저는 userId, shopId를 복합키로 하는 것이 좋다고 생각했습니다. 그 이유는 이러한 통계성 테이블이 join을 하는 상황이 없고, 한 유저가 특정 샵을 처음 이용할 때만 튜플이 생기고 이후에는 필드 값만 변경이 이루어지며, 조회가 매우 빈번하기 때문에 userId, shopId를 기본키로 하여 인덱싱을 활용하면 좋다고 생각했기 때문입니다.근데 강사님이 설명하시기를 실무에서는 복합키를 거의 사용하지 않는다고 말씀해주셨는데 이러한 상황에서도 그냥 대리키를 쓰는 것이 낫나요?복합키를 활용한 인덱싱 vs 대리키 + shopId, userId 추가 인덱싱이 둘 중 하나를 적용할 거 같은데 무엇을 기준으로 어떻게 판단해야 할 지 잘 모르겠습니다. 도움 주시면 감사하겠습니다. 참고로 db는 mysql사용중입니다. 
- 
      
        
    미해결[NarP Series] MVC 프레임워크는 내 손에 [나프1탄]Mysql 연결 문제..Could not connect to New MySQL. Error creating SQL Model Connection connection to New MySQL. (Error: Could not create connection to database server.) Could not create connection to database server. Error creating JDBC Connection connection to New MySQL. (Error: Could not create connection to database server.) Could not create connection to database server.계속 이 에러가 뜨면서 Mysql 연결이 안됩니다..구글링 해봤는데도 해결이 안되네요.. 
- 
      
        
    미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지강의자료 ppt는 어디서 받을 수 있나요?안녕하세요 11강에서 강의자료 ppt 파일을 올려주신다고 했는데 어디서 다운로드 받을수 있나요? 
- 
      
        
    해결됨SQL 왕초보를 위한 해커랭크로 배우는 실전 SQL6번문제6번문제 이렇게 작성해도 정답인가요?select *From CITYwhere POPULATION > 100000AND COUNTRYCODE ='USA' 
- 
      
        
    해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]리눅스 mysql 설치 오류 뜨시는 분들저도 설치할 때 아래와 같은 문제가 발생 했었는데요Error: Problem: conflicting requests - nothing provides libcrypto.so.10()(64bit) needed by mysql-community-server-8.0.11-1.el7.x86_64 - nothing provides libssl.so.10()(64bit) needed by mysql-community-server-8.0.11-1.el7.x86_64 - nothing provides libcrypto.so.10(libcrypto.so.10)(64bit) needed by mysql-community-server-8.0.11-1.el7.x86_64...... 아마존 리눅스 2023을 쓸 때는 el9 버전 레포지토리를 사용해주어야 한다고 합니다! [ wget dev.mysql.com/get/mysql80-commuity-release-e17-5.noarch.rpmrpm -ivh mysql-community-release-e17.5.noarch.rpm] 이렇게 작성하던 부분을[sudo dnf install https://dev.mysql.com/get/mysql80-community-release-el9-1.noarch.rpmsudo dnf install mysql-community-server]이렇게 작성하시면 잘 설치 돼요! 출처: https://dev.classmethod.jp/articles/ec2-mysql-install-confilicting-requests-error-kr/ 
- 
      
        
    해결됨[코드캠프] 부트캠프에서 만든 고농축 백엔드 코스mysql entity 입력 후 dbeaver query 로 쿼리문 확인할때 질문있습니다.section2910-2(mysql-query)강의에 질문이 있습니다 ! mysql에서 entity를 입력한 후에 mysql에서 확인할때와 dbeaver로 column들을 확인할때에 나오는 순서가 다르던데강의에서 보여주셨던 내용들과 비교할때도 강의에서는 id가 먼저나오게 되는데 저같은 경우는 id가 가장 나중에 나오더라구요.쿼리문이에 별도로 column에 위치한 쿼리문(after other column)이 아니고 강의에 나왔던 내용으로 보았을때 id가 먼저오지 않은 이유와 id column이 먼저 오도록 하기 위해 할 수 있는것이 어떤건지 궁금합니다. ⬆️ 강의내용(dbeaver로 select를 하게되면 id column이 가장 먼저 옵니다) ⬆️ 제 dbeaver는 id가 가장 뒤에 옵니다.(수업시에 했던 내용 그대로 따라해서 작업했다고 생각하고 작업했습니다.) ⬆️ mysql에서도 id가 가장 뒤에 옵니다. 도와주세요~~~~~~~~ 
- 
      
        
    해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]컨트롤러 반환 타입 질문입니다.안녕하세요, 강사님. 컨트롤러 코드 관련 질문입니다.작성한 코드는 컨트롤러의 메소드 반환 타입을 void로 해서 아무것도 반환하지 않는데요, 만약 postmapping 관련 메소드 작성 시, 작성한 게시글의 id값을 반환해주는 코드와 큰 차이가 있을까요?그리고 찾아보던 중, ResponseEntity를 사용해서 반환해주는 메소드를 보았는데, 메소드의 반환 타입에 따라 기능에 큰 차이가 있는지, 아니면 API 명세의 차이만 있고 기능에는 크게 차이가 없는지 궁금합니다! 
- 
      
        
    미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]인텔리제이 무료 버전에서 mysql 콘솔 오류 관련 질문인텔리제이 무료버전에서 Database 탭이 없는 것 같아서 무료 plug-in을 통해 작업 중인데 DDL, DML 제외하고 sql 명령어가 먹지 않습니다. 해결 방법이 없을까요..? 
- 
      
        
    미해결1064 오류 원인을 못 찾겠어요위 이미지에서 출력 된 문자 : '('abcd1234'), mb_name = '이름', mb_nick =' 글쓴이가 생각하는 아마도 오류라고 생각되는 부분 : ('$admin_pass'), mb_name = '$admin_name', mb_nick = 이것저것 건드려봤지만 잘 모르겠네요;; 
- 
      
        
    미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]15강 질문 드립니다!15강 람다식 질문 드립니다!선생님 안녕하세요!15강에서 작성해주신 람다식이 있는데람다식을 사용하지 않은 코드도 댓글로 알려주실 수 있으실까요~!자바 공부를 시작한 지 얼마 되지 않아서 혼자 해보려 해도 잘 안되네요..! 부탁 드리겠습니다!! 감사합니다! 
