묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
docker-compose up 시 에러
docker-compose up 을 실행하면 아래와 같은 에러가 발생하고,nginx: [emerg] host not found in upstream "frontend:3000" in /etc/nginx/conf.d/default.conf:3docker ps 를 해봤을 때, nginx와 mysql 이름으로된 컨테이너는 있는데 frontend, backend는 없는걸로 봐서 호스트나 포트를 못찾는게 맞는 것 같긴해요.깃헙에 있는 파일들 비교했을 때는 틀린부분이 없는 것 같은데, 어떤부분을 확인해보는게 좋을지 알려주실 수 있나요 ? 구글링한 정보 를 적용해봐도 같은 에러가 나오네용..ㅠㅠ
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
treat 관련 질문이 있습니다.
JOINED 전략을 명시한 Item 클래스와그런 Item 클래스를 상속한 Album, Book, Movie 클래스를 생성 후 코드를 다음과 같이 작성했습니다. EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); //애플리케이션 전체 공유 (persistence.xml 참조) EntityManager em = emf.createEntityManager(); //한번 쓰고 버려야함, 쓰레드간 공유하지 않음 EntityTransaction tx = em.getTransaction(); //조회를 제외한 DML 작업시 필수로 사용 tx.begin(); try { Album album = new Album(); album.setName("album"); album.setPrice(10000); album.setArtist("artist"); em.persist(album); Book book = new Book(); book.setName("book"); book.setPrice(20000); book.setAuthor("author"); book.setIsbn("isbn"); em.persist(book); Movie movie = new Movie(); movie.setName("movie"); movie.setPrice(30000); movie.setDirector("director"); movie.setActor("actor"); em.persist(movie); em.flush(); em.clear(); //1번 String jpql = "select i from Item i where type(i) in (Book, Movie)"; List<Item> items = em.createQuery(jpql, Item.class).getResultList(); for (Item data : items) { System.out.println("data : " + data); } em.clear(); //2번 jpql = "select i from Item i where treat(i as Book).author = 'author'"; //SINGLE_TABLE에서는 되는데 JOINED에서는 안 먹힘 items = em.createQuery(jpql, Item.class).getResultList(); for (Item data : items) { System.out.println("data : " + data); } tx.commit(); } catch (Exception e) { e.printStackTrace(); tx.rollback(); } finally { em.close(); } emf.close();1번의 경우에는 다음과 같이 정상적으로 동작합니다.Hibernate: /* select i from Item i where type(i) in (Book, Movie) */ select i1_0.Id, i1_0.DTYPE, i1_0.name, i1_0.price, i1_1.artist, i1_2.author, i1_2.isbn, i1_3.actor, i1_3.director from Item i1_0 left join Album i1_1 on i1_0.Id=i1_1.Id left join Book i1_2 on i1_0.Id=i1_2.Id left join Movie i1_3 on i1_0.Id=i1_3.Id where i1_0.DTYPE in('B','M') data : Book(author=author, isbn=isbn) data : Movie(director=director, actor=actor)그런데 2번의 경우에는 다음과 같은 현상이 발생하고 있습니다.Hibernate: /* select i from Item i where treat(i as Book).author = 'author' */ select i1_0.Id, i1_0.DTYPE, i1_0.name, i1_0.price, i1_1.artist, i1_2.author, i1_2.isbn, i1_3.actor, i1_3.director from Item i1_0 join Book i1_2 on i1_0.Id=i1_2.Id where i1_2.author='author'존재하지 않는 i1_1과 i1_3을 참조있어서 오류가 나는데왜 이런 현상이 발생하는지 궁금합니다. 그와 별개로 SINGLE_TABLE 전략을 사용했을 때2번을 실행하면 저같은 경우에는 다음과 같은 쿼리가 실행됩니다.Hibernate: /* select i from Item i where treat(i as Book).author = 'author' */ select i1_0.Id, i1_0.DTYPE, i1_0.name, i1_0.price, i1_0.artist, i1_0.author, i1_0.isbn, i1_0.actor, i1_0.director from (select * from Item t where t.DTYPE='B') i1_0 where i1_0.author='author' 그런데 강사님께서 제공해주신 pdf 파일에 보면원래는 쿼리가 다음과 같이 실행된다고 말씀해주셨는데select i.* from Item i where i.DTYPE = ‘B’ and i.author = ‘kim’제가 sql 실행했을 때와 강사님이 적어주신 sql이다른 이유가 제 생각에는 하이버네이트 버전차이때문일것 같긴한데 혹시 제 생각이 맞는지 질문드리고 싶습니다.※ 저는 하이버네이트 6버전을 쓰고 있습니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
kafka sink 생성 시 tasks state failed
안녕하세요 강사님!강의 잘보고 있습니다.강의시간 18:58에 sink 생성 후 status 확인 값에서 tasks.state 값이 failed라고 뜹니다.그래서 connect 로그를 보면 아래와 같이 뜹니다.[2023-05-02 00:04:12,636] ERROR [my-order-sink-connect|task-0] WorkerSinkTask{id=my-order-sink-connect-0} Task threw an uncaught and unrecoverable exception. Task is being killed and will not recover until manually restarted (org.apache.kafka.connect.runtime.WorkerTask:196) org.apache.kafka.connect.errors.ConnectException: Tolerance exceeded in error handler at org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndHandleError(RetryWithToleranceOperator.java:223) at org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execute(RetryWithToleranceOperator.java:149) at org.apache.kafka.connect.runtime.WorkerSinkTask.convertAndTransformRecord(WorkerSinkTask.java:516) at org.apache.kafka.connect.runtime.WorkerSinkTask.convertMessages(WorkerSinkTask.java:493) at org.apache.kafka.connect.runtime.WorkerSinkTask.poll(WorkerSinkTask.java:332) at org.apache.kafka.connect.runtime.WorkerSinkTask.iteration(WorkerSinkTask.java:234) at org.apache.kafka.connect.runtime.WorkerSinkTask.execute(WorkerSinkTask.java:203) at org.apache.kafka.connect.runtime.WorkerTask.doRun(WorkerTask.java:189) at org.apache.kafka.connect.runtime.WorkerTask.run(WorkerTask.java:244) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: org.apache.kafka.connect.errors.DataException: JsonConverter with schemas.enable requires "schema" and "payload" fields and may not contain additional fields. If you are trying to deserialize plain JSON data, set schemas.enable=false in your converter configuration. at org.apache.kafka.connect.json.JsonConverter.toConnectData(JsonConverter.java:328) at org.apache.kafka.connect.storage.Converter.toConnectData(Converter.java:88) at org.apache.kafka.connect.runtime.WorkerSinkTask.lambda$convertAndTransformRecord$4(WorkerSinkTask.java:516) at org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndRetry(RetryWithToleranceOperator.java:173) at org.apache.kafka.connect.runtime.errors.RetryWithToleranceOperator.execAndHandleError(RetryWithToleranceOperator.java:207) ... 13 more 구글링 해봐도 원하는 답변들이 없어 남겨봅니다.
-
미해결홍정모의 따라하며 배우는 C++
13:00쯤에서 getline 이슈
#include <iostream> #include <string> using namespace std; int main() { // CASE 1 cout << "Your name?: "; string name; // std::string cin >> name; // NO white space; jack jack cout << "Age?: "; string age; cin >> age; // jack cout << "CASE 1 " << name << " & " << age << endl; cout << endl; // CASE 2 cout << "Your name?: "; string name2; // std::string std::getline(std::cin, name2); cout << "Age?: "; string age2; std::getline(std::cin, age2); cout << "CASE 2 " << name2 << " & " << age2 << endl; cout << endl; return 0; } >> Your name?: jack Age?: 1 CASE 1 jack & 1 Your name?: Age?: 2 CASE 2 & 2 안녕하세요, 위 코드를 입력하면 CASE1에서 엔터치면, CASE2에서 name2는 그냥 넘어가 age2와 같은 값을 갖게 되는 이유가 무엇인가요? 제가 추론하기로는, cin >> age에서, ">>" operator가 age의 string만 읽고 delimiter인 line breaker를 buffer로 가지고 있는 것 같습니다. 그래서 std::getline에서 delimiter(즉, remaining line breaker)를 읽는 것 같습니다.그런데 name2는 어떻게 age2와 같은 값을 갖게 되는지 전혀 모르겠습니다.
-
해결됨탄탄한 백엔드 NestJS, 기초부터 심화까지
한글파일명 업로드시 파일명 깨짐 현상
안녕하세요.강의를 듣고 포스트맨으로 파일을 올리고 있습니다.영어파일명은 파일명이 정상적을 변환되는데한글파일명은 파일명이 깨져서 변환됩니다.-물리적 파일명도 깨지고 디비에도 깨진파일명이 저장됩니다. 깨진파일명으로 크롬에서 불러오면 에러가 납니다.한글파일명을 해결할수 있는 방법이 있을까요?
-
미해결[리뉴얼] 처음하는 SQL과 데이터베이스(MySQL) 부트캠프 [입문부터 활용까지]
크롤링에서 sub_category가 작동되지 않습니다
"[참고] 크롤링과 데이터베이스 - 크롤링 코드 작성 시작 (업데이트)" 5분10초에서, G마켓 내용이 일부 변동이 발생해서 인지 sub_category가 작동되지 않습니다. sub_categories = soup.select('div.navi.group ul li a')이 부분이 작동 되지 않는 것 같은데 제가 웹크롤링이 초보라서 해결할수가 없네요 ㅠ
-
해결됨스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션
순수 EntityManager vs Spring Data JPA 테스트
프로젝트를 하면서 궁금한 점이 생겨 질문드립니다.@AutoConfigureMockMvc와 @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK) 만 적용한 상태로 테스트 코드를 작성했습니다. 그리고 @Autowired를 통해 순수 EntityManager를 주입받아서 직접 영속성을 관리하는 레포지토리가 있습니다. 그런데 직접 EntityManager를 주입받은 Repository 빈은 테스트 주입 시 EntityManager가 없다는 오류가 발생합니다. 하지만 Spring Data JPA의 JpaRepository를 상속받은 인터페이스를 @Autowired로 주입받으면 이는 문제없이 테스트가 동작합니다. 혹시 어떤 차이점이 있는지 알 수 있을까요? @Repository public class UserRepository { @PersistenceContext private EntityManager em; public User save(final User user) { em.persist(user); return user; } public Optional<User> findByEmail(final String email) { List<User> users = em.createQuery("select u from User u where u.email=:email", User.class) .setParameter("email", email) .getResultList();return users.isEmpty() ? Optional.empty() : Optional.of(users.get(0)); } } public interface UserJpaRepository extends JpaRepository<User, Long> { public Optional<User> findByEmail(final String email); } @ActiveProfiles("test") @AutoConfigureMockMvc @SpringBootTest(webEnvironment = SpringBootTest.WebEnvironment.MOCK) class AjaxEmailPasswordAuthenticationFilterTests extends DummyObject { @Autowired private ObjectMapper objectMapper; @Autowired private MockMvc mockMvc; @Autowired private UserJpaRepository userJpaRepository; @Autowired private PasswordEncoder passwordEncoder; @BeforeEach void setup() { userJpaRepository.save(User.builder() .email("test@gmail.com") .username("test") .password(passwordEncoder.encode("1234")).build()); } @DisplayName("이메일 기반 회원가입 유저 로그인") @Nested class LoginByEmailTests { @DisplayName("로그인 성공") @Test void success_test() throws Exception { //given String url = Endpoint.Api.LOGIN_WITH_EMAIL; EmailLoginUserRequestDto requestDto = EmailLoginUserRequestDto.builder() .email("test@gmail.com") .password("1234") .build(); //when ResultActions resultActions = mockMvc.perform( post(url) .contentType(MediaType.APPLICATION_JSON) .content(objectMapper.writeValueAsString(requestDto)) ); //then resultActions .andExpect(status().isOk()) .andExpect(jsonPath("$.id").exists()) .andExpect(jsonPath("$.redirectUrl").exists()); } } }
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
첨부파일이 코랩에 안올라가요 ㅜ
학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요!질문과 관련된 영상 위치를 알려주면 더 빠르게 답변할 수 있어요먼저 유사한 질문이 있었는지 검색해보세요이제까지는 잘 해왔는데, 이번 회차부터 파일이 안올라가네요... 다른 거 설정해야할 게 있을까요??
-
미해결스프링 핵심 원리 - 기본편
안녕하세요! 인텔리제이 파일구조 관련하여 질문하고 싶습니다
강의 도중에 compact middle package 옵션을 사용한다고 하셔서 사용하고 있는데 파일 생성 단축키를 누르면 패키지, 클래스 따로 구분해서 만들 수 있는 창이 안나오고 파일, 디렉토리 단위로 뜨네요 ㅠㅠ 이 방법 어떻게 해결해야 할까요..?
-
미해결[2026년 출제기준] 웹디자인개발기능사 실기시험 완벽 가이드
css 작성 위치
.items{ display : flex; } .items > div{ border: 1px solid green; height : 200px; }강의에서는 위와 같이 스타일을 주셨는데,.items > div에 들어갈 내용을 .item에 넣어도 레이아웃이 똑같이 잡히더라구요. 혹시 .items > div에 작성한 border 과 height를 .items에 넣어도 괜찮은지 궁금합니다.■ 질문 남기실 때 꼭! 참고해주세요.- 먼저 유사한 질문이 있었는지 검색해주세요.- 궁금한 부분이 있으시면 해당 강의의 타임라인 부분을 표시해주시면 좋습니다.- HTML, CSS, JQUERY 코드 소스를 텍스트 형태로 첨부해주시고 스크린샷도 첨부해주세요.- 다운로드가 필요한 파일은 해당 강의의 마지막 섹션에 모두 있습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
테스트 범위 관련해서 궁금한 점이 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]테스트 범위 관련해서 궁금한 점이 있습니다. 영한님 강의 들어보면, 보통 controller-service-repository 구조인데, , 보통 service만 하시나요? controller, repository 다하시나요?
-
미해결카프카 완벽 가이드 - 커넥트(Connect) 편
안녕 하세요
안녕 하세요 궁금한 사항이 있어서 문의드립니다.Debezium CDC source connector 강의 내용중redo 로그에 commit되지 않은 데이터도 쓰여진다고 말씀해주셨는데요저보다 당연히 잘 아시겠지만 제가 알기로는 commit하면 버퍼에 쌓이고 디스크에는 반영되지 않고 그 이후에 주기적으로redo log에 쌓이는 것으로 알고 있습니다즉 commit이 되어야 redo log에 쌓이는 걸로 알고 있는데 제가 잘못알고 있는걸까요? 감사합니다.
-
미해결
WSL에서 Vitis 실행 후 Launch Hardware 클릭 시 에러
WLS에서 /dev/ttyS5 at 115200으로 환경이 잡힌 것 같고 JTAG 핀도 올바르게 연결 된 것 갔습니다. 그리고 build project도 완료했습니다. 그러나 Launch hardware를 클릭하면 다음사진과 같이 나옵니다.무슨이유인지 알 수 있을까요?
-
해결됨Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
무슨 에러인지...ㅡㅡ
안녕하세요. 강사님 열심히 따라해보고 있는데..여기서 막혀서 넘어가질 못하네요ㅜㅜVue Router 학습 : 게시판 UI 만들기 강의에서게시글 목록을 뿌려줄 때 우리가 어떤 데이터를 조회했다고 가정하고 v-for를 돌면서 뿌려줘본다고 하고 따라하고 있는데, 몇번을 봐도 오타는 없는거 같은데...ㅠㅠ그 전단계에서 목록이 5개 뜨는걸 확인한 후의 작업입니다. 뭐가 문제일까요???
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
1 - E 질문입니다
안녕하세요 선생님, 수업 잘 듣고 있습니다.문제 내용 중에 '첫 글자가 같은 5명의 선수를 비교' 해야 할 것 같은데, 이건 해설풀이 중에 어느부분에서 해석할 수 있을까요?선수이름(s)을 받아서 앞쪽으로 당긴 다음에 더해간다, 나중에 'a'값을 더해서 원래 소문자를 구해서 출력한다, 까지는 이해하겠는데 문의드린 부분이 이해가 안가서요ㅜ 아니면 선생님 코드는 비교 안해도 값이 나오는 건가요..?
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
테스트 코드에 대한 질문
안녕하세요. 강의를 보고 있는 학생입니다.현재 강의를 보고 간단한 앱을 만들고 있는데, 테스트 코드를 작성하면서 궁금한 점이 생겨서 질문을 남깁니다. 질문given에서 테스트 데이터들을 준비할 때, sql문으로 준비하는 것이 맞는 건가요? (멤버를 db에 insert하거나 게시글을 insert 하는 것들)아니면 test코드 내에서 엔티티를 만들어서 repository로 save하는 방식으로 하는 것이 맞는 건가요?현재 약간 복잡한 서비스 클래스를 테스트 하느라 여러 테이블에 데이터를 많이 넣고 시작해야 하는데, 어떤 방식이 맞는 지 궁금합니다.
-
미해결
Youtube 댓글 수집에 관한 건
안녕하세요.Youtube API를 이용하여 댓글을 수집하고 있는데,해당 키워드에서 최대 50개의 영상과 500개의 댓글이 수집되게 코드를 짜보았습니다.하지만 수집된 데이터를 확인해 보니, 댓글들이 전부 수집이 되지 않았더라구요.next_page_token을 사용하였는데 어디서 잘못된건지 모르겠습니다.(API 할당량 때문인지도 궁금합니다..!)코드를 아래 첨부하였습니다.괜찮으시다면 피드백 한 번씩 부탁드립니다...!확인해주셔서 감사합니다.추운 날씨 건강 조심하세요! <해당 코드>import csv from googleapiclient.discovery import build from googleapiclient.errors import HttpError def youtube_search(api_key, keyword, max_video_results, max_comment_results, published_after=None, published_before=None): youtube = build('youtube', 'v3', developerKey=api_key) search_response = youtube.search().list( q=keyword, part='id,snippet', maxResults=max_video_results, type='video', publishedAfter=published_after, publishedBefore=published_before ).execute() video_ids = [] video_details = [] for item in search_response['items']: video_ids.append(item['id']['videoId']) video_details.append({'title': item['snippet']['title'], 'description': item['snippet']['description'], 'published_at': item['snippet']['publishedAt']}) comments = [] for video_id in video_ids: next_page_token = None try: for _ in range(5): comment_response = youtube.commentThreads().list( videoId=video_id, part='snippet', maxResults=max_comment_results, pageToken=next_page_token ).execute() comments.extend(comment_response['items']) next_page_token = comment_response.get('nextPageToken') if not next_page_token: break except HttpError as error: if error.resp.status in [403, 404]: continue else: raise error return video_details, comments def save_to_csv(video_details, comments, output_file): with open(output_file, 'w', newline='', encoding='utf-8') as file: writer = csv.writer(file) writer.writerow(['Video Title', 'Video Description', 'Published At', 'Comment']) for video, comment in zip(video_details, comments): writer.writerow([video['title'], video['description'], video['published_at'], comment['snippet']['topLevelComment']['snippet']['textDisplay']]) api_key = "API Key" keyword = "스니커즈 리셀" max_video_results = 50 max_comment_results = 500 years = [2019, 2020, 2021, 2022] # 해당 월의 마지막 날을 계산하는 함수 def days_in_month(year, month): if month == 2: if year % 4 == 0 and (year % 100 != 0 or year % 400 == 0): return 29 else: return 28 elif month in [4, 6, 9, 11]: return 30 else: return 31 for year in years: for month in range(1, 13): # 해당 월의 시작일과 종료일 설정 first_day = f'{year}-{month:02d}-01T00:00:00Z' last_day = f'{year}-{month:02d}-{days_in_month(year, month):02d}T23:59:59Z' video_response, comments = youtube_search(api_key, keyword, max_video_results, max_comment_results, published_after=first_day, published_before=last_day) output_file = f"youtube_search_results_{year}_{month:02d}.csv" save_to_csv(video_response, comments, output_file)
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
상품등록 조회가 되지 않아요
[질문 내용]여기에 질문 내용을 남겨주세요.회원가입과 회원 조회는 문제없이 되는데상품등록은 작성은 되지만 db에 담기지도 않고 그래서 조회도 안됩니다 ㅠㅠ 상품등록 조회 영상 코드가 잘못인가 하고 복붙을 했는데도 안됩니다 ㅠㅠ무엇이 문제일까요??ㅠㅠ]제가 지금 야생형으로 따라 하고있어서 아무것도 몰라서 어느부분이 문제인지 알수없어서 남겨봅니다
-
해결됨스프링 핵심 원리 - 기본편
@Bean 질문드립니다!
@Configuration 없이, @Bean만 붙어있을 경우에 스프링 빈으로는 등록이 되지만, 스프링 컨테이너에는 들어가지 않아서 스프링 컨테이너에 의해 관리되지 않는 것이 맞나요? @Bean만 붙일 경우, 일단은 스프링 컨테이너에는 들어가게 되지만, @Configuration까지 붙은 경우 CGLIB 형태로 들어가게 되는 것인가요? @Configuration이 붙지 않으면, 빈으로 등록된 객체들이 스프링 컨테이너에 의해 관리되지 않는다라고 설명해주셔서,빈으로는 등록되었지만 스프링 컨테이너에는 주입이 안된 것인지,아니면 @Bean을 통해 빈으로 등록됨과 동시에 스프링 컨테이너에는 들어가지만, 그저 관리만 안되는 것인지 궁금합니다!
-
미해결[신규 개정판] 이것이 진짜 엑셀자동화다 - 기본편
셀레니움 기초 사용법
6분20초쯤 설명해주시는 웹브라우저로 이동시키는거 하고 있는데요.주소를 입력한 웹사이트가 나타났다가 다시 사라집니다. 왜 그런 걸까요?