묻고 답해요
143만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨백엔드 개발자 성능 개선 초석 다지기
비동기 방식시 주의사항 관련해서 (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 데이터가 없습니다. 강의 보면 그냥 더미데이터로 진행하시는 것으로 보여 저도 그냥 아무 데이터 여러 개 넣어서 진행에는 문제가 없습니다만 데이터에 관한 설명이 전혀 없는 점 아쉽습니다.. 이거 찾느라고 인프런, 노션, 깃허브에 분산된 자료를 왔다갔다 하느라 시간도 뺏겼슴다.. 시간 나실 때 다른 분들을 위해 더미데이터나 관련 설명이라도 추가 부탁드립니다.
-
해결됨비전공자의 전공자 따라잡기 - 데이터베이스,SQL
외래키 On Delete SET NULL 관련
안녕하세요~ 타임어택 2주차 수강하고 있습니다~"섹션2의 처음 만나는 DDL" 강의 9분 32초에서employee 테이블에서 외래키 생성에 필요한role_id 컬럼 만드실 때 NOT NULL을 체크하셨는데요~그 다음 강의(on update, on delete)에서는 이게 해제되었더라구요.외래키 설정에서 On Delete - SET NULL을 하면NOT NULL 속성이 문제가 되는데 강의에서는 그 설명이 없어 보이더라구요.아마 강의 편집 과정에서 NOT NULL을 적용하면 중간에 서로 모순되어 에러가 나는 부분을 덜어낸 것으로 보여집니다.SET NULL을 하면 employee.role_id의 값만 지워지는 점을 강의시간 때 설명 해주셨기 때문에 NOT NULL을 선택하면 안되는 게 맞을거라 생각합니다.제가 맞게 알고 있는지 궁금해서 질문 드립니다. 감사합니다!
-
미해결[2024 리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
mysql프로젝트 관련 크롤링 질문
https://davelee-fun.github.io/ 이 사이트 크롤링을 1번 사진처럼 4파트로 분리해서 크롤링후 2번 사진 처럼 만들어놓은 DB 테이블에 insert하는 코드를 작성해보았는데, (3번사진) 크롤링부분에서 잘못된건지 코드가 잘 돌아가지 않습니다. 혹시 어느부분이 잘못됬는지 알수있을까요?import requests from bs4 import BeautifulSoup import re pg=1 if pg==1: #1페이지 크롤링시 res = requests.get('https://davelee-fun.github.io/') #웹사이트 get request 1페이지 soup = BeautifulSoup(res.content, 'html.parser') #html 파싱 items = soup.select('div.card h') product_id=17890001 #promary key 임의설정 page_num=pg for item in items: recom_info=item.select_one('a.text-dark') #추천 product_name=item.select_one('h4.card-text') #상품명 provider=item.select_one('a[target="_blank"]') #제공자 -> teddy register_date=item.select_one('span.post-date') #등록일자 -> 05 jun 2020 SQL = """INSERT INTO product_info VALUES('"""+product_id+"""', '""" + str(recom_info.get_text()) + """','""" + str(product_name.get_text()) + """','""" + str(provider.get_text()) + """', '""" + str(register_date.get_text()) + """','""" +page_num+ """'); """ print(SQL) cursor.execute(SQL)우선 1페이지를 크롤링한 값을 넣어보려고 했습니다.
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
entity 객체에 기본생성자를 넣어주는 이유
안녕하세요User객체에 기본생성자를 넣어야 작동하는 이유가 궁금합니다혹시 필드에 아무값도 넣지않을때를 대비해서 기본생성자를 사용하는건가요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
자바 스프링부트 버전 선택
스프링부트 버전이 2.7x 버전은 없는데 무엇으로 선택해야 하나요?