배치 처리, 시스템 종결의 서막 💀 장에서 중복된 문장 발견. 두 세계의 공존 웹은 실시간 상호작용의 최전선에서 사용자와 연결을 담당한다. 배치는 시스템의 후방에서 대규모 데이터 처리를 책임진다. 둘은 역할이 다르지만, 함께 작동할 때 시스템은 완벽해진다. 함께 작동할 때 시스템은 완벽해진다. 배치가 없다면 시스템의 무게를 견딜 수 없고, 웹이 없다면 사용자와의 연결이 끊어진다. 네가 이 두 세계를 모두 이해하고 다룰 수 있다면, 시스템의 모든 것을 지배할 수 있다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 기본 설정인 Gradle로 할때는 문제없는데, 번외로 알려주신 설정인 인텔리제이로 돌리게 되면 스프링부트가 작동하지 않습니다. 해결 방법이 있나요?
안녕하세요 토비님 처음 프로젝트를 실행하면 compose.yml 파일이 services: mysql: image: 'mysql:latest' environment: - 'MYSQL_DATABASE=mydatabase' - 'MYSQL_PASSWORD=secret' - 'MYSQL_ROOT_PASSWORD=verysecret' - 'MYSQL_USER=myuser' ports: - '3306' 이렇게 설정되어있는데 저기서 데이터베이스 이름이나 user 정보를 변경하면 빌드가 되지않습니다. 저 상태 그대로 놔두면 빌드는 되는데 인텔리제이의 데이터베이스 탭을 이용해서 접근해보면 splearn(제경우에는 이름을 변경하지 못했으니 아마 mydatabase) 데이터베이스가 생성되지 않고 Server Objects라는 폴더 하나만 존재합니다
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요. 복습 할겸, 새로운 헬로우 스프링을 만들어서 다시 영상을 보면서 치고 있었습니다. 그리고 나서 테스트 케이스 만드는 부분이 잇었는데, 여기에서 저는 그냥 하는 김에 전부다 테스트 케이스를 만들자! 라는 생각이 들어서 만들었습니다. 그리고 나서 통합 테스트 영상까지 따라 치고 나서,(메모리 테스트 케이스를 복사 붙여 놓기를 한다음 @SpringBootTest @Transactional @Autowired는 추가 햇음) 테스트 케이스를 실행햇는데 테스트 케이스에서 노랑색 에러 메시지가 뜹니다. 이렇게요. 그래서. 전에 만든 helloSpring어떤가 시범을 해봤는데(코드를 똑같이 완전히 복사 붙여 놓기 하고 코드에 문제 없는지 확인.) 잘 되더 라고요. 근데. 빈 을 안 건드린게 생각나서 jpa템플릿에서 jdbc로 바꾸니 똑같이 오류나는 것을 확인할 수 있었습니다.(전에는 getId 로 비교해서 테스트 케이스를 통과한 것 같습니다.) (jpa 메모리 에서 통합 테스트 한것) 여기서 궁금증이 왜 jdbc에서는 객체의 주소값 이 다른지 알고싶습니다. 테스트에서는 뭐 알수가 없더라고요. 답변 부탁 드립니다.
영상 52분에서 로그인이 성공되는 반면 저는 로그인이 계속 실패나와서 무엇이 문제인지 확인하는데 데이터베이스 테이블이 두 개가 생성된 것을 확인했습니다. 기존에 있던 테이블은 USER_MEMBER 인데, Entity 객체를 만들고 나서 user_member 테이블이 생성되었고 애플리케이션 실행 후 다시 가입을 하면 user_member 데이터베이스에 저장되며 기존 기능들은 에러 없이 정상 작동이 됩니다.. 궁금한 것은 데이터베이스 테이블이 저렇게 두 개 생성된건데 제가 무엇을 잘못해서 만들어졌는지 또 이대로 사용하는데 문제는 없는지 궁금합니다.. 코드는 선생님 코드랑 다른 부분이 없습니다 ㅠ
안녕하세요! 강의 절반을 본 수강생입니다. 뒷내용에 나올법한데 질문드려봅니다. 강의에서 거짓음성에 대한 경험때문에 테스트 코드에 @Transactional 를 안붙이신다고 하셨습니다. 그럼 예를 들어서 개발 디비기준으로 CRUD 테스트를 작성하시는건가요? 또 다른 질문으론 TDD 기법이 아닌 , 실무 회사 코드에서 기존 코드에 인터페이스 테스트를 작성하려고 합니다 TDD가 아닌 유닛테스트로 이해가 되는데, 이런 방법또한 상관 없을까요?
아래 설명에서 실무에서 어쩔 수 없이 실시간으로 변경된 데이터셋에 배치 처리를 한 사례를 알고싶다. "잠깐! 킬구형, JpaPagingItemReader의 문제가 아니라 실시간 데이터셋에 배치를 돌리는게 잘못된거 아냐?” 이상적으로는 맞는 말이다. 배치는 보통고정된 입력 데이터셋을 대상 으로 사용하는 것이 맞다. 하지만 실무에서는 어쩔 수 없이 실시간으로 변경되는 데이터셋에 대해서도 배치 처리를 해줘야 할 때가 있다. 이럴 때는 offset 기반 페이징 은 사용하지 않도록 하자.
안녕하세요! 미리 1탄부터 1.5탄 구매했고요, 2탄도 구매해서 수강예정입니다, 강의가 넘 재밌고 이해가 쉽습니다! 강사님이 웃으실 때 저도 덩달아 따라 웃게되네요 ^___^;; 앞으로 MSA 기반 Spring Cloud와 MSA 인프라 구현을 위한 도커 및 쿠버네티스도 강의 신청 드려도 되는 지 문의드립니다! 현재 강사님의 현업 업무 경험으로 MSA 와 Spring Cloud가 백엔드 취업에 어떠한 도움이 되는 지 궁금합니다! 그리고 JPA vs MyBatis 중에 현재 백엔드 취업 시장에서 강사님의 Pick이 어떠한 지 궁금합니다! 모든 기술을 통합하고 융합한 백엔드 취업용 초보 신입 개발자 포트폴리오용 프로젝트 강의를 언제쯤 출시해주시는 지 문의드립니다!
안녕하세요 선생님 강의 정말 잘들었습니다. 제가 이 강의를 듣고 게시판을 직접 만드는 것이 목표였는데, 프론트 코드를 만드는데 어려움을 겪고 있습니다. 혹시 뼈대만이라도 프론트엔드 코드를 제공해 주실 수 있을까요 ? 무리한 부탁인 것을 알고 있지만, 간절하여 질문글로 남깁니다
안녕하세요. 이번 강의를 들으며 스프링 시큐리티와 jwt 의 기본을 다시 익히면서 공부하였습니다. 강의를 들으며 코드를 보는 와중에 궁금증이 생겨 질문을 남기게 되었습니다. JwtFilter에 TokenProvider 를 선언 시 final 키워드를 빼신 이유에 대해 여쭤보고 싶습니다. 다른 클래스에서는 TokenProvider를 선언 시 final 키워드를 붙이신 것으로 확인이 되었는데 필터에서만 제외하신 이유가 있을까요?
저는 그래도 최신버전으로 테스트 하면서 비교를 해가며 학습하는게 좋겠다 싶어 학습중입니다. 현재 springboot 3.5으로 학습중이며 security는 6.3인것 같습니다. 그런데 학습 중 바뀐부분이 있는것 같아 확인 부탁 드리고 자 글을 남깁니다. 아래 내용이 맞는지 알고 싶어요..ㅠㅠ 🍜 비유로 설명: "라면 공장" 🥣 Spring Boot 3.2 (옛 구조) ** HttpSecurityConfiguration **이 먼저 출근해요 "물 끓이고, 면 넣고, 스프 넣고" 직접 다 해요 마지막에 포장(= SecurityFilterChain )도 본인이 함 즉, 한 사람이 보안 설정 전체를 다 하는 구조 🍱 Spring Boot 3.5 (새 구조) ** WebSecurityConfiguration **이라는 총괄 매니저 가 먼저 출근 이 사람이 여러 명의 담당자 ( HttpSecurity 설정)에게 일을 시켜요 그리고 포장은 SecurityFilterChain 으로 조립해서 내보냄 즉, 분업된 구조 — 공장은 커졌고, 매니저가 통제함 🔍 왜 이런 변화가 있었을까? 이유설명설정이 너무 복잡해졌음 HttpSecurityConfiguration 혼자 하다 보니 커지고 유지보수가 어려움커스터마이징이 어려웠음사용자 정의 체인 추가가 어렵고 제한적이었음다중 체인 지원 부족API별 다른 보안 적용이 힘들었음 ( /api/** , /admin/** )새 구조가 더 유연 SecurityFilterChain 을 빈으로 만들면 순서, 조건, 분리 모두 명확해짐 🧠 구조 비교 요약 항목Spring Boot 3.2 (Security 6.2)Spring Boot 3.5 (Security 6.3)먼저 실행 HttpSecurityConfigurationWebSecurityConfiguration 중심 클래스 HttpSecurityConfigurationWebSecurityConfiguration 책임 방식거의 혼자 다 함분업 (매니저 + 여러 체인)구성 방식내부적으로 HttpSecurity 설정외부에서 SecurityFilterChain 등록유연성다중 체인 어려움다중 체인, 조건부 설정 매우 쉬움 ✅ 결론 Spring Boot 3.2에서는 여전히 옛 구조(약간의 WebSecurityConfigurerAdapter 잔재)를 끌어와서 → HttpSecurityConfiguration 이 보안 설정의 진입점 역할을 했고, Spring Boot 3.5에서는 완전 리팩토링된 구조라서 → WebSecurityConfiguration 이 보안 설정의 시작점(매니저) 이 되었어요.
안녕하세요! 강의를 보면 콘솔 창에 DB 연결된 부분이 나오는데 처는 아래처럼 나오는데 어떻게 해결하면 좋을까요? 이 부분부터 막히니 다음으로 넘어갈 수가 없습니다 답변 기다리겠습니다! 감사합니다 Database JDBC URL [Connecting through datasource 'HikariDataSource (HikariPool-1)'] Database driver: undefined/unknown Database version: 8.0.42 Autocommit mode: undefined/unknown Isolation level: undefined/unknown Minimum pool size: undefined/unknown Maximum pool size: undefined/unknown
안녕하세요 우선 좋은 강의 정말 감사합니다. 풀스텍 강의라서 더 좋은거 같은데, 메일로 알람을 받았는데 선생님 강의 25%할인은 언제까지인가요? 지금 유료 강의 25%해서 24000원대 할인 기간이 안나와 있어서 기간이 궁금합니다. 아직 들어보지 못해서 무료 강의 한번 들어보고 유료강의도 진행하고 싶어서요 그리고 프로그램은 이클립스만 사용하시는거 같은데, 저는 인텔리제이 사용중인데 프로그램이 달라서 인텔리제이 사용자도 괜찮을까요?
Junit4 org.junt.Test 어노테이션을 사용하면 작동하지 않는 것 같습니다. 아래는 에러입니다. No matching tests found in any candidate test task. Requested tests: Test pattern jpabook.jpashop.service.MemberServiceTest in task :test * Try: > Run with --stacktrace option to get the stack trace. > Run with --info or --debug option to get more log output. > Run with --scan to get full insights. > Get more help at https://help.gradle.org. Deprecated Gradle features were used in this build, making it incompatible with Gradle 9.0. You can use '--warning-mode all' to show the individual deprecation warnings and determine if they come from your own scripts or plugins. For more on this, please refer to https://docs.gradle.org/8.11.1/userguide/command_line_interface.html#sec:command_line_warnings in the Gradle documentation. BUILD FAILED in 493ms 5 actionable tasks: 1 executed, 4 up-to-date
37강 5분 11초에서 "처음에는 null로 되어있지만 값을 한 번 세팅할 수 있게 해주고 싶다."라고 하셨는데 처음부터 null을 할당하지 않으면 lateinit을 사용 안 할 수도 있는 거 아닌가요? 테스트코드에 대한 이해가 하나도 없어서 고른 강의인지라 질문의 깊이가 너무 없지만 답변주시면 감사합니다!!