묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
ProjectSkill은 데이터가 안들어가고 있습니다.
안녕하세요. 데이터베이스 초기화에서 질문 남깁니다.현재 Project 엔티티에서 ProjectSkill 간의 참조가 아래와 같습니다.@OneToMany(mappedBy = "project") var skills: MutableList<ProjectSkill> = mutableListOf()위 관계는 project_skill 테이블이 연관관계의 주인이 되고, Project 엔티티는 그저 거울(mappedBy 속성에 의해)이 되는 걸로 알고 있습니다.위 상태에서는 project.skills.addAll() 로 값을 넣어줘도 project_skill 테이블에 데이터가 들어가지 않고 projectSkill을 직접 save해줘야 insert 쿼리가 날아가는 것으로 알고 있습니다.그러나 DataInitializer에서는 project.skills.addAll()로 넣어주고 있습니다. 그래서 실제로 데이터베이스를 확인해보면 project_skill 테이블에는 값이 들어가지 않고 있는 걸 확인할 수 있습니다. 다른 테이블에는 의도한대로 데이터베이스 들어가는 반면에 말입니다.혹시 제가 잘못 알고 있는 거라면 바로잡아주시길 바랍니다.
-
미해결백엔드 개발자 성능 개선 초석 다지기
findNoticeByDates 실행 에러
인덱싱 ngrinder 성능테스트를 하기 위해서 findNoticesByDates에서 dates?startDate=2023-01-15%2000:00:00&endDate=2023-02-14%2023:59:59로 파라미터 값을 넘기는 과정에서 org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.example.performancecache.mapper.NoticeReadMapper.findNoticesByDates가 발생하는데 혹시 NoticeReadMapper.xml에 따로 설정을 해줘야 하는건지 아니면은 강의를 따라가며 제가 놓친 부분이 있는건지 궁금합니다 해결방법도 같이 질문드립니다!
-
미해결백엔드 개발자 성능 개선 초석 다지기
gradle
안녕하세요! 혹시 캐시 설정 관련해서도 gradle 설정 파일도 올려주실 수 있을까요!?
-
해결됨백엔드 개발자 성능 개선 초석 다지기
5000건에 대한 부하테스트 중 5000건 관련
올려주신 코드를 확인해보면SELECT * FROM notice limit 1000;findAll 쿼리는 1000건만 가져오도록 되어있습니다.5000건의 데이터를 조회하는 API라 하신 것은 5천건의 데이터를 가진 테이블에서 1000건을 조회하는 쿼리라고 이해하면 될까요?
-
해결됨백엔드 개발자 성능 개선 초석 다지기
비동기 방식시 주의사항 관련해서 (Common Pool)
비동기 방식 사용시 별도의 thread pool을 설정하지 않는다면 common pool을 사용하기 때문에, thread pool의 thread를 사용하도록 설정해야 하셨는데, common pool을 사용하면 안되는 이유와 thread pool의 thread를 사용했을 떄 어떤 차이점이 있는지 궁금합니다. 제가 배경지식이 부족해서 그런지 모르겠지만 이 부분에 대한 설명이 없어서 아쉬웠습니다.
-
미해결백엔드 개발자 성능 개선 초석 다지기
MySQL 인덱스 관련해서
안녕하세요 incu님, 강의 잘 듣고있습니다.인덱스 면접대비하기 부분에서 2가지 질문이 있습니다.첫번째, MySQL 인덱스의 자료구조는 b-Tree라고 하셨는데, b+Tree 아닌가요? b+Tree의 개념을 포함해서 쓰신건지 궁금합니다. 두번째, 인덱스를 생성하고 그 인덱스를 WHERE 조건절에 사용했음에도 인덱스를 타지 않는 경우 중에 not eq 조건도 있는 것으로 알고있습니다. 이 경우에는 Table Full Scan하는 것이 맞는거죠? 아니면 not eq 조건에서 인덱스를 타지 않는데, 성능을 개선할 수 있는 방안이 어떤 것이 있는지 궁금합니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
질문있습니다.
강사님 안녕하세요.혹시 개인적인 질문이 있는데 메일 주소 하나 알 수 있을까요 ? 감사합니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
45강 dev 연결 에러
java -jar build/libs/library-app-0.0.1-SNAPSHOT.jar --spring.profiles.active=dev 2024-03-06 06:57:53.124 ERROR 3375 --- [ main] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization.com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. at com.mysql.cj.jdbc.exceptions.SQLError.createCommunicationsException(SQLError.java:174) ~[mysql-connector-j-8.0.31.jar!/:8.0.31] at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:64) ~[mysql-connector-j-8.0.31.jar!/:8.0.31] at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:828) ~[mysql-connector-j-8.0.31.jar!/:8.0.31] at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:448) ~[mysql-connector-j-8.0.31.jar!/:8.0.31] at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:241) ~[mysql-connector-j-8.0.31.jar!/:8.0.31] at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:198) ~[mysql-connector-j-8.0.31.jar!/:8.0.31]2024-03-06 06:34:35.506 WARN 24251 --- [ main] o.h.e.j.e.i.JdbcEnvironmentInitiator : HHH000342: Could not obtain connection to query metadatacom.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failureThe last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.2024-03-06 06:57:53.140 ERROR 3375 --- [ main] j.LocalContainerEntityManagerFactoryBean : Failed to initialize JPA EntityManagerFactory: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]2024-03-06 06:57:53.140 WARN 3375 --- [ main] ConfigServletWebServerApplicationContext : Exception encountered during context initialization - cancelling refresh attempt: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment]2024-03-06 06:57:53.152 INFO 3375 --- [ main] o.apache.catalina.core.StandardService : Stopping service [Tomcat]2024-03-06 06:57:53.185 INFO 3375 --- [ main] ConditionEvaluationReportLoggingListener :Error starting ApplicationContext. To display the conditions report re-run your application with 'debug' enabled.2024-03-06 06:57:53.233 ERROR 3375 --- [ main] o.s.boot.SpringApplication : Application run failedorg.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] 제 컴퓨터 mysql로 연결되어서 com.mysql.cj.jdbc.exceptions.CommunicationsException: Communications link failure 이런 에러가 나온 것 같은데 AWS에서 빌린 컴퓨터에서 mysql연결하려면 어떻게 해야하나요? 아니면 제 컴퓨터 mysql로 연결하고 진행하나요?
-
미해결백엔드 개발자 성능 개선 초석 다지기
host.sh 실행 오류
MAC 환경에서 CPU 정보를 확인하기 위해 ./host.sh 명령어를 실행하였으나 다음과 같은 오류가 뜹니다.혹시 libsigar-universal64-macosx.dylib 파일 읽기 권한이 문제인가 싶어서 권한도 추가하였으나 동일한 에러가 발생합니다.두번 째로 환경 변수 설정도 해봤으나 동일한 에러가 발생합니다.export DYLD_LIBRARY_PATH=/Users/hyeonsu/util/scouter/agent.host/lib:$DYLD_LIBRARY_PATH
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
Entity 객체에 접근제어자로 protected를 사용하는 이유가 궁금합니다.
안녕하세요. 30강 강의를 수강하고 한가지 궁금한 점이 있어 질문드립니다.book 테이블에 매핑되는 Entitiy객체인 Book.java 클래스 생성 시 JPA 사용을 위해 기본 생성자를 넣어주는데 이때 접근 제어자를 protected를 사용하는 것을 확인했습니다.protected 접근 제어자가 본래 상속관계에 있는 객체에 접근할 때 쓰는 것으로 알고 있는데 BookRepository 인터페이스가 JpaRepository를 상속받고 Map 구조에 Book이 들어가서 protected를 사용하는 것인지 궁금합니다.또한 protected 접근 제어자 외에 public, default 접근 제어자를 사용해도 되는 것인지 궁금합니다.
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
기타 질문
워밍업 통해 너무 잘 듣고 있습니다😊강의 관련 질문은 아니고 기타적인 질문인데요혹시 이 강의의 후속강의나 스프링 백엔드 관련 강의 더 내실 계획은 없으신가요?강사님 강의 더 듣고 싶어서요..!
-
미해결백엔드 개발자 성능 개선 초석 다지기
nGrinder 실습 중 발생하는 오류
nGrinder에서 script를 작성하고 validate하면 정상적으로 수행 되는 것이 아닌 아래와 같은 오류가 발생합니다.구글링을 통해서 얻은 정보로는 자바 11버전을 사용하라 하였지만 현재 자바 11 버전을 사용하고 있기에 기존에 다른 분들의 오류 해결과는 맞지 않아 질문을 남깁니다.
-
미해결MySQL 성능 최적화
강의에 사용된 노션 링크 받을 수 있을까요?
강의에 사용된 노션 링크 받을 수 있을까요?
-
해결됨Vue로 Nodebird SNS 만들기
강의는 언제까지 업데이트 된 내용인가요?
오랜만에 다시 강의를 들어보려고 하는데 최근 Vue 업데이트가 많아서 최신버전에서도 문제 없이 작동할지 모르겠네요. Vue3 기반으로 작업해도 문제 없을까요?
-
해결됨Backend 멀티쓰레드 이해하고 통찰력 키우기
어떻게 상호배제가 이루어지는지 잘 이해가 안갑니다
private void Write(){// 다른 스레드가 읽기나 쓰는지 검증 ...var request = DateTime.Now.ToString();Interlocked.Increment(ref writeCount);//...쓰기작업}03:40 부분의 내용입니다스레드1 이 var request = DateTime.Now.ToString();이 부분을 실행할때는 아직 writeCount 가 0인 상태인데이때 스레드2가 writeCount와 readCount 0인거 확인하고들어올 위험은 없는건가요? 어떻게 상호배제 되는지 이해가 안갑니다!
-
해결됨Backend 멀티쓰레드 이해하고 통찰력 키우기
임계영역에 2개 이상의 스레드가 올 수 있는지요?
안녕하세요섹션4 코드를 보면 requests 라는 오브젝트 키를 사용해서스레드1과 스레드2가 임계영역을 이용중인데서버 함수를 보면 일이 없으면 lock 안에서 wait 즉 대기 상태로 빠집니다 그리고 클라 함수를 보면 일을 넣어주고 다른 스레드를 깨웁니다여기서 의문인게 임계영역 안에서 대기중인 스레드와 실행중인 스레드가 공존할 수 있나요 https://www.inflearn.com/questions/1046075제가 다른 수업에서 한 질문인데 답변에는 ai 답변이긴 하지만그럴 수 없다고 들어서 질문드립니다
-
미해결백엔드 개발자 성능 개선 초석 다지기
왜 인덱스를 타지 않는걸까요?
explain select * from notice where createDate BETWEEN '2024-01-15 00:00:00' AND '2024-02-29 23:59:59'; ```실행했을 때possible_keys는 인덱스를 가져오는데 type은 ALL로, 풀 스캔을 해버리네요.
-
해결됨인프라공방 - 그럴듯한 서비스 만들기
강의자료
안녕하세요 강의자료를 다운받으려 하는데 압축파일에 문제가 있는 것 같아요파일 확인 부탁드립니다. !!!
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
Jpa 데이터베이스 매칭 관련 질문입니다.
안녕하세요 강사님.인프런 스터디 과제 7일차 문제 1번 jpa 코드로 변환하던 중 warehousingDate 컬럼 부분에서 문제가 발생하였습니다.Fruits의 테이블 컬럼 이름은 warehousingDate 입니다. { "name":"바나나", "warehousingDate":"2024-02-25", "price":7000 }jpa 코드로 바꾼 후 위에처럼 post 하였더니 아래와 같은 결과가 나왔습니다.Unknown column warehousing_date in field list라고 에러가 뜹니다. 처음에는 @Column(name="warehousing_date") 을 붙이지 않아서 에러가 나는 줄 알고 @Column(name="warehousing_date") 을 붙이고도 진행하였더니 똑같은 에러가 발생하였습니다.그래서 Fruits 앤티티 warehousingDate 변수명을 warehousing_date로도 변경을 해봤더니 똑같은 에러가 발생하였습니다. Fruits 엔티티는 아래와 같습니다.@Entity public class Fruits { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @Column(name="warehousing_date") private LocalDate warehousingDate; private long price; @Column(nullable = true) private boolean sales; public Fruits() { } public Fruits(String name, LocalDate warehousingDate, long price, boolean sales) { this.name = name; this.warehousingDate = warehousingDate; this.price = price; this.sales = sales; } public String getName() { return name; } public void setName(String name) { this.name = name; } public LocalDate getWarehousingDate() { return warehousingDate; } public void setWarehousingDate(LocalDate warehousingDate) { this.warehousingDate = warehousingDate; } public long getPrice() { return price; } public void setPrice(long price) { this.price = price; } public boolean isSales() { return sales; } public void setSales(boolean sales) { this.sales = sales; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } }컨트롤러 코드는 아래와 같습니다.@PostMapping("/api/v1/fruit") public void fruitInformation(@RequestBody FruitCreateRequest information){ fruitService.saveInformation(information); }서비스 코드는 아래와 같습니다.private final FruitJpaRepository fruitRepository; public FruitService(FruitJpaRepository fruitRepository) { this.fruitRepository = fruitRepository; } public void saveInformation(FruitCreateRequest request){ fruitRepository.save(new Fruits(request.getName(),request.getWarehousingDate(), request.getPrice(), request.getSales())); }RequestDto 코드는 아래와 같습니다.public class FruitCreateRequest { private String name; private LocalDate warehousingDate; private long price; private boolean sales; @JsonIgnore private Long id; public String getName() { return name; } public void setName(String name) { this.name = name; } public LocalDate getWarehousingDate() { return warehousingDate; } public void setWarehousingDate(LocalDate warehousingDate) { this.warehousingDate = warehousingDate; } public long getPrice() { return price; } public void setPrice(long price) { this.price = price; } public void setSales(boolean sales) { this.sales = sales; } public void setId(Long id) { this.id = id; } public Long getId() { return id; } public void setId(long id) { this.id = id; } public boolean getSales(){ return sales; } } 혹여나 제가 놓친 부분이 없는 지 확인해 주시면 감사하겠습니다. 그리고 fruits 컬럼명은 warehousingDate 라 적었는 데 hibernate는 warehousing_date과 매칭할려는지 알고싶습니다.질문이 서투른 점 양해바랍니다..
-
미해결백엔드 개발자 성능 개선 초석 다지기
DB 데이터 부탁드립니다.
캐싱 쪽 하고 있는데 테이블만 주시고 DB 데이터가 없습니다. 강의 보면 그냥 더미데이터로 진행하시는 것으로 보여 저도 그냥 아무 데이터 여러 개 넣어서 진행에는 문제가 없습니다만 데이터에 관한 설명이 전혀 없는 점 아쉽습니다.. 이거 찾느라고 인프런, 노션, 깃허브에 분산된 자료를 왔다갔다 하느라 시간도 뺏겼슴다.. 시간 나실 때 다른 분들을 위해 더미데이터나 관련 설명이라도 추가 부탁드립니다.