안녕하세요 Rookiss님, 언제나 좋은 강의를 만들어주셔서 감사합니다. 강의에서 배울 수 있는 정보들을 블로그에 정리하고자 합니다. 하지만 그전에 먼저 Rookiss님의 허락이 필요하다고 생각되어 이렇게 글을 쓰게 되었습니다. 언제나 건강하시고 다시 한번 좋은 배움의 기회를 제공해주셔서 감사드립니다.
[제로초 강좌 질문 필독 사항입니다] 질문에는 여러분에게 도움이 되는 질문과 도움이 되지 않는 질문이 있습니다. 도움이 되는 질문을 하는 방법을 알려드립니다. https://www.youtube.com/watch?v=PUKOWrOuC0c 0. 숫자 0부터 시작한 이유는 1보다 더 중요한 것이기 때문입니다. 에러가 났을 때 해결을 하는 게 중요한 게 아닙니다. 왜 여러분은 해결을 못 하고 저는 해결을 하는지, 어디서 힌트를 얻은 것이고 어떻게 해결한 건지 그걸 알아가셔야 합니다. 그렇지 못한 질문은 무의미한 질문입니다. 1. 에러 메시지를 올리기 전에 반드시 스스로 번역을 해야 합니다. 번역기 요즘 잘 되어 있습니다. 에러 메시지가 에러 해결 단서의 90%를 차지합니다. 한글로 번역만 해도 대부분 풀립니다. 그냥 에러메시지를 올리고(심지어 안 올리는 분도 있습니다. 저는 독심술사가 아닙니다) 해결해달라고 하시면 아무런 도움이 안 됩니다. 2. 에러 메시지를 잘라서 올리지 않아야 합니다. 입문자일수록 에러메시지에서 어떤 부분이 가장 중요한 부분인지 모르실 겁니다. 그러니 통째로 올리셔야 합니다. 3. 코드도 같이 올려주세요. 다만 코드 전체를 다 올리거나, 깃헙 주소만 띡 던지지는 마세요. 여러분이 "가장" 의심스럽다고 생각하는 코드를 올려주세요. 4. 이 강좌를 바탕으로 여러분이 응용을 해보다가 막히는 부분, 여러 개의 선택지 중에서 조언이 필요한 부분, 제 경험이 궁금한 부분에 대한 질문은 대환영입니다. 다만 여러분의 회사 일은 질문하지 마세요. 5. 강좌 하나 끝날 때마다 남의 질문들을 읽어보세요. 여러분이 곧 만나게 될 에러들입니다. 6. 위에 적은 내용을 명심하지 않으시면 백날 강좌를 봐도(제 강좌가 아니더라도) 실력이 늘지 않고 그냥 코딩쇼 관람 및 한컴타자연습을 한 셈이 될 겁니다. Last login: Thu Oct 10 11:24:20 on ttys000 gimjaewon@gimjaewon-ui-MacBookAir ~ npm start npm error code ENOENT npm error syscall open npm error path /Users/gimjaewon/package.json npm error errno -2 npm error enoent Could not read package.json: Error: ENOENT: no such file or directory, open '/Users/gimjaewon/package.json' npm error enoent This is related to npm not being able to find a file. npm error enoent npm error A complete log of this run can be found in: /Users/gimjaewon/.npm/_logs/2024-10-10T02_26_21_944Z-debug-0.log ✘ gimjaewon@gimjaewon-ui-MacBookAir ~ 이전 과정까지 잘 마쳤는데 npm start 입력시 이런 오류가 떠서 막혔습니다.
안녕하세요. 문제가 있는데 해결 방법이 떠오르지 않아 문의드립니다. 현재 스프링 배치 4.1.4 버전을 사용하고 있고, 스프링 부트는 2.1.4 버전을 회사에서 사용하고 있습니다. 스프링 배치에서 JobListener를 이용해 에러가 발생할 시 잡의 마지막 부분에서 SMS 전송 시스템을 세팅해서 SMS 전송하도록 사용하려고 하는데요. 문제는 아래와 같습니다. @Scope("step") 어노테이션을 사용해야 Spel 의 값을 가져올 수 있음 @Component 어노테이션을 달고, JobListener에서 @AutoWired 어노테이션을 사용하려고 할 때 @Scope("step") 영향 때문인지 해당 bean을 찾지 못함 즉 문제를 정리하자면, SMS class에서 Spel 의 값을 가져와야 값을 세팅할 수 있으므로, @Scope("step") 어노테이션을 달아야하는데 이 어노테이션을 붙이면 bean의 생명주기 영향으로 @AutoWired 어노테이션이 작동하지 않는 것 같습니다. 이럴 땐 어떻게 해결해야 하나요? 그리고 @Scope("step")을 아직 학습하진 않았으나 찾아보니 스프링 배치에서 사용하는 특별한 scope로 step이 실행되고 있을 때에만 해당 bean이 컨텍스트에서 유지되는 것으로 학습했습니다. 이것이 맞나요? --추가 JobExecutionLisener - beforeJob 메서드 부분에 jobExecution.getExecutionContext(); 로 ExecutionContext 인스턴스를 가져온 뒤, 해당 인스턴스에 Map 형태로 값을 집어 넣습니다. 예를 들어, jobContext.put("jobId", jobId) 이런 형식으로 값을 세팅해놓고, 각 스텝에서 이 값들을 사용할 땐 @Value("#{jobExecutionContext['jobId']}" 이런 형태로 Spel를 사용합니다. 추가적으로 궁금한 부분은 Value 어노테이션에 어떻게 jobExecutionContext 값이 먹히는지 모르겠습니다. 원래는 이름이 똑같아야 하지 않나요? ExecutionContext 인스턴스니까 @Value("#{ExecutionContext['jobId']} 이렇게 사용을 해야할 거 같은데 왜 앞에 job이 붙어야 하는지 잘 모르겠습니다.
[질문 내용] 강의에서 배운대로 JpaRepository 인터페이스에 findAll(), findByName(), findById(), save() 메소드들이 다 수록이 되어 있어 개발자가 임의로 새로운 이름의 메소드만 선언할 때 작성하는 것으로 알고 있습니다. 그렇다면 SpringDataJpaMemberRepository 인터페이스에서 MemberRepository 인터페이스를 상속하니까 findbyName(String name)메소드도 생략해도 상관없지 않나요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 3:40초 근처에 h2/bin폴더안에서 cmd를열고 ./ h2.sh 를 입력하는 것을 따라 했으니 visual studio에서 h2.sh 파일이 열린것 외엔 아무것도 나오지 않았습니다. cmd를 확인해보니 이러한 문구가 나와 있었습니다. [main 2024-10-09T21:04:03.696Z] update#setState idle [main 2024-10-09T21:04:33.705Z] update#setState checking for updates [main 2024-10-09T21:04:33.793Z] update#setState idle 큰 문제는 없는것 같은데 왜 아무것도 안나오는지 모르겠습니다 ㅠㅠ 이러한 문제는 어떻게 해결해야할까요?
Scope 에 openid 가 포함되어 있으면 OidcAuthorizationCodeAuthenticationProvider 를 호출하고 아니면 OAuth2AuthorizationCodeAuthenticationProvider 를 호출하도록 제어된다고 돼있는데, 최신버전의 keycloak에선 scope에 openid가 없으면 에러가 발생하도록 돼있어서 반드시 openid를 포함시켜줘야 하는데, 그러면 인가서버로 keycloak 쓸때는 OidcAuthorizationCodeAuthenticationProvider 가 호출된다고 보면 되겠네요?
The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server. 2024-10-09T14:59:40.805Z WARN 1 --- [ main] o.h.e.j.e.i.JdbcEnvironmentInitiator : HHH000342: Could not obtain connection to query metadata org.hibernate.exception.JDBCConnectionException: unable to obtain isolated JDBC connection [Communications link failure The last packet sent successfully to the server was 0 milliseconds ago. The driver has not received any packets from the server.] [n/a] at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:100) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final] at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final] at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final] at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:94) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final] at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:116) ~[hibernate-core-6.5.3.Final.jar!/:6.5.3.Final] 안녕하세요. 강사님. 늘 퀄리티 좋은 강의 감사드립니다. 섹션 6. Docker Compose를 활용해 2개 이상의 컨테이너 관리기 에서 스프링부트와 MySQL을 동시에 띄워보는데 위와 같은 예외가 나서 문의드립니다. application.yml 에서 url: jdbc:mysql://my-db:3306/mydb 로 바꿔도 같은 상황입니다. 이후 계속 시도를 하다가, build.gradle 에 있는 jpa관련 의존성을 빼고 도커를 올리니 성공하였습니다. 그리고 다시 도커를 내리고 jpa의존성을 다시 추가하고 도커를 올리니 이제는 redis까지 올려서 운용 중입니다. 하지만 원인이 궁금하여 이렇게 문의 남깁니다. 감사합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 질문 1) intelli j 설정 중 setting에 들어가서 gradle을 검색하고 설정에 들어가니까 영한님이 띄운 설정 화면과 다르게 나와서 질문 드립니다 저는 왜 밑에 설정 하는게 안뜰까요? +혹시 몰라서 dependency 부분도 올립니다. 질문 2) sdk 설정에서 jdk 분명 23설정하고 혹시 몰라서 21 oracle 꺼로 하나 더 설치하고 servletApplication.java 파일을 실행하려고 해도 안되서 나갔다도 와보고 했는데 설정이 안바뀝니다. 그래서 혹시 src 디렉토리에 넣어야하나 싶어서 거기 설치하려고하니까 '타겟경로가 비어있지않은 기존디렉토리입니다' 라고 뜹니다. 어떻게 해야할까요?
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 저는 이 문제를 조합으로 풀려고 시도했는데 조합으로 풀 수가 없나요?? 다른 분들 풀이를 보니까 순열로만 푸시는데 조합으로는 풀 수 있는지 궁금합니다.
사물인터넷 통신은 내 손에 (Arduino, MQTT, Nodejs, MongoDB, Android,VS Code)
Drivers를 선택해서 나온 url주소로도 MongoDB for VS Code를 선택해서 나온 url주소로도 접속이 실패합니다. Node.js 코드는 다음과 같이 작성했습니다. const mongoose = require("mongoose"); const MONGODB_URL = "mongodb+srv://root:1234@education.sidnf.mongodb.net/"; mongoose .connect(MONGODB_URL) .then(() => console.log("Connected to database!")) .catch(() => console.log("Connection failed...")) Connection failed... 라고 나옵니다. Network Access에서도 0.0.0.0으로도 해보고, 제 컴퓨터의 IP주소로도 해보았습니다. 전부 접속 실패가 뜹니다. 이유를 알 수 있을까요?!