묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[1.5탄] 옆집 개발자와 같이 진짜 이해하며 만들어보는 첫 Spring Boot 프로젝트
관리자 페이지 상품 삭제 API
섹션2 쿠키 영상의 관리자 페이지 상품 삭제 API 관련 질문입니다.삭제 버튼을 눌렀을 때: 상품 삭제 API 호출삭제 완료되어 반영되었을 때: 전체 상품 조회 API 호출맞나요...?
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
비관적 락 구현 방식 문의 건
1. 현재 학습 진도몇 챕터/몇 강을 수강 중이신가요? 여기까지 이해하신 내용은 무엇인가요?강사님 안녕하세요 :)현재 4-9 낙관적 락, 비관적 락 강의를 수강하는 중이며, 단일 행에 대해 배타 락을 거는 방식을 학습한 후 관련 문의 드립니다. 2. 어려움을 겪는 부분어느 부분에서 막히셨나요?코드의 어떤 로직이 이해가 안 되시나요?어떤 개념이 헷갈리시나요?만약비관적 락(PESSIMISTIC_WRITE) 방식으로 한 테이블의 여러 행에 락을 걸어야 한다면, 아래 두 방식 중 어느 방식이 적절한지 궁금합니다.N번의 DB 조회를 방지하기 위해 아래 1번 방식을 고려했으나, 관련 케이스가 많지 않아 제가 놓치는 부분이 있는지 여쭤보고 싶습니다. 더불어 실무에서는 어떤 방식으로 접근하시는지도 궁금합니다. :) 3. 시도해보신 내용문제 해결을 위해 어떤 시도를 해보셨나요?에러가 발생했다면 어떤 에러인가요?현재 작성하신 코드를 공유해주세요1. IN절 조회 후 락 걸기@Lock(LockModeType.PESSIMISTIC_WRITE)@Query("select p from Product p where p.productNumber in :productNumbers")List<Product> findAllByProductNumberIn(@Param("productNumbers") List<String> productNumbers);만약 1번 방식이 적절하다면, 데드락 방지를 위해 ORDER BY 정렬이 필수인지 궁금합니다.2. 루프를 돌며 조회 후 락 걸기for (String productNumber : productNumbers) { Product product = productRepository.findByProductNumberWithLock(productNumber) .orElseThrow( ··· ); ··· }@Lock(LockModeType.PESSIMISTIC_WRITE)@Query("SELECT p FROM Product p WHERE p.productNumber = :productNumber")Optional<Product> findByProductNumberWithLock(@Param("productNumber") String productNumber); 이렇게 구체적으로 알려주시면, 더 정확하고 도움이 되는 답변을 드릴 수 있습니다!
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
리액트 관련 질문이 있습니다.
안녕하세요. 선생님.너무 쉽게 설명해 주셔서 이해가 아주 잘되고즐겁게 강의를 듣고 있습니다. ^^ 그런데 강의를 듣다보니이미 만들어져 있는도서관리 애플리케이션 화면(index.html) 파일에 로드되어 있는 js파일을 보니잘 이해가 안되서 ai 에게 물어보니 리액트 라고 하더라고요. 제가 리액트를 한번도 해본적이 없는데이 강의를 들을 때 리액트를 몰라도 크게상관이 없을까요?
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
강의 관련 외 질문입니다.
질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]영한님의jpa로드맵을 진행하면서 jpa활용 2편부터 난이도가 어렵다고 느껴졌습니다. 스프링 데이터 jpa편을 먼저 공부해도 괜찮을까요? jpa책을 구매해서 jpa 기초를 다잡으려고 합니다.
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
update()에 사용하는 setter 질문드립니다.
엔티티 변경감지 기능을 사용하기 위해서setter를 사용하는데요. 제 기억으로는 setter는 잘 사용하지 않는게 좋다고 강의에서 들은 것 같은데이런 경우는 엔티티 업데이트를 위해서 용인되는건가요?
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
스프링부트 버전
안녕하세요. 선생님.선생님 강의를 들으면서 하고 있는데스트링 부트 어떤 버전을 받으면 될지 질의 드립니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
MessageSourceTest 코드
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.Expecting: <"??">to be equal to: <"안녕">but was not.필요:"안녕"실제 :"??"<클릭하여 차이점 확인> MessageSourceTest 테스트 코드에서 자꾸 오르뜨는데 이유를 모르겠어요. 강의랑 똑같이 해도 오류가 나네요.
-
해결됨실무 환경 그대로 주문게시판 만들기 웹개발 기초 마스터
아키타입 환경설정중 오류
이미 질문글에 비슷한 사례가 있었지만혹시나하여 질문드립니다.2026년 3월에도 해당 버전으로환경설정이 가능한가요? [INFO] [1;31mBUILD FAILURE[m[INFO] [1m------------------------------------------------------------------------[m[INFO] Total time: 2.339 s[INFO] Finished at: 2026-03-14T23:48:46+09:00[INFO] [1m------------------------------------------------------------------------[m[ERROR] Failed to execute goal [32morg.apache.maven.plugins:maven-archetype-plugin:3.4.1:generate[m [1m(default-cli)[m on project [36mstandalone-pom[m: [1;31mThe desired archetype does not exist (com.nexacro.archetype:uiadapter-spring-sample-archetype:1.0.1-20220603.053230-4)[m -> [1m[Help 1][m[ERROR][ERROR] To see the full stack trace of the errors, re-run Maven with the [1m-e[m switch.[ERROR] Re-run Maven using the [1m-X[m switch to enable full debug logging.[ERROR][ERROR] For more information about the errors and possible solutions, please read the following articles:[ERROR] [1m[Help 1][m http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
7강 강의를 들으려고 했는데 오류가 나서 서버가 안 켜지는거 같아요.
6강까지 강의를 들으면서 서버가 켜지고 POSTMAN으로 동작하는걸 확인했었는데 다음날부터 서버가 실행이 안되더라고요. 그래서 gpt한테 물어보니 resources 파일 안에 application.yml 폴더를 만들고 그 안에 spring.autoconfigure.exclude=org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration 이걸 쳐서 넣으니까 되더라고요. 오류는 2026-03-13 15:22:27.732 ERROR 7960 --- [ main] o.s.b.d.LoggingFailureAnalysisReporter : APPLICATION FAILED TO START Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. If you have database settings to be loaded from a particular profile you may need to activate it (no profiles are currently active). 종료 코드 1(으)로 완료된 프로세스이렇게 떴습니다. 제가 뭐 건드린게 없었는데 다음날 서버가 안켜지기도 하나요?
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
33강. UserLoanHistory의 관계성에 대한 질문
안녕하세요 선생님.강의를 듣던 중 궁금한 점이 생겨서 이렇게 글을 남기게되었습니다.UserLoanHistory라는 Entitiy는 강의에서 말씀하셨듯이 User와 ManyToOne의 관계를 가져가는데,이게 또 Book과의 관계를 보더라도 ManyToOne이 성립할수 있지 않나 싶습니다.(물론 UserLoanHistory의 변수로 pk인 bookId가 아닌 bookName을 쓰셔서 조금 다를수 있지만...) 따라서 user_loan_history 테이블을 설계할때 칼럼을 book_name이 아닌 book_id로 해서 만든다면 그게 좋은 선택일지 궁금합니다만일 1번의 테이블 설계가 나쁘지 않은 방식이라면 UserLoanHistory Entity에 Book에 대해서도 ManyToOne을 무조건 해주는게 좋은지,아니면 '유저'의 대출기록만 자주 쓰이고'책'의 대출기록은 거의 조회되지않을거 같으면 굳이 ManyToOne을 해줄 필요가 없을지 궁금합니다.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
인터셉터 에러 설정
서블릿 필터에서는 에러 설정 기본 값이 아래와 같다고 강의에서 말씀하셨는데,filterRegistrationBean.setDispatcherTypes(DispatcherType.REQUEST); 그렇다면 인터셉터는 기본값 설정이 어떻게 되어있나요?.excludePathPatterns("/css/**", "/*.ico", "/error", "/error-page/**"); 에러 페이지에 접근 하는 것을 인터셉터에서 접근 안하게 하려면 인터셉터는 /error 로 제외 시켜줘야하나요?4xx.html ,500.html 등등 다 /error 디렉토리 밑에 있으니 인터셉터는 excludePathPatterns()에서무조건 제외를 직접 시켜줘야 하나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
src/test/resources 테스트 경로 문제
spring boot4 + 이클립스를 사용중입니다.src/test/resources 경로에 applicaion.yaml파일을 넣어도 인식을 못해서 3시간을 해맸습니다..구글링으로 java build path에서 설정 경로를 확인할 수 있다는 사실을 알게되었는데src/test/java 경로로 설정이 되어있더군요.여기 경로에 넣으니까 잘 작동됩니다.어째서 src/test/resources 경로가 기본값이 아니였던걸까요..
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
[오타][3장][작전1] 형 이건 빨리 해줘
명령어에서 startDateTime, endDateTime 의 jobParameters 부재 코드에서 @StepScope 어노테이션과 startDateTime, endDateTime 의 jobParameters 파라미터 부재 1번은 다른 사람이 심지어 이전에 쓴 문제더라고 ? 아마 형이 반영 안한건 모아서 한번에 수정할 계획인거 같아 보이네.2번의 경우에는 @StepScope 도 빠져서 JobParameter 를 입력해도 오류가 발생했어. 또한 해당 메소드의 파라미터 부분을 1번과 마찬가지로 jobparameter로 받아야 할 것으로 보여져. 읽다가 하나씩 돌려보는데, 오류 터져서 놀라가지고 시간을 좀 썼어, 형. 1번은 내가 이해하는데, 2번은 형 실수가 좀 큰듯.
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
resolveArgument()메서드 질문
반환값이 Object로 Member 클래스 보다 상위 클래스인데 어떻게 @Login 어노테이션이 붙은 member 변수에 대입 될 수 있나요? public Object resolveArgument(MethodParameter methodParameter, @Nullable ModelAndViewContainer modelAndViewContainer, NativeWebRequest nativeWebRequest, @Nullable WebDataBinderFactory webDataBinderFactory) throws Exception { log.info("resolveArgument 실행"); HttpServletRequest request = (HttpServletRequest) nativeWebRequest.getNativeRequest(); HttpSession session = request.getSession(false); if (session == null) { return null; } return session.getAttribute(SessionConst.LOGIN_MEMBER); }
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
[오타] "리스너 활용: 시스템 완전 장악 매뉴얼" 부분
질문 가이드 읽고 삭제 후 오타제보 리스너 활용: 시스템 완전 장악 매뉴얼... 실행 결과에 따른 후속 처리: Job과 Step의 실행 상태를 리스너에서 직접 확인하고 그에 따른 조치를 수 있다.-> ~그에 따른 조치를 할 수 있다.-> 글자가 빠진듯?
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
[오타] "JobScope와 StepScope 사용 시 주의사항" 부분
질문 가이드 읽고 삭제 후 오타제보 JobScope와 StepScope 사용 시 주의사항... 2. Step 빈에는 @StepScope와 @JobScope와를 사용하지 말라.-> @Step 빈에는 @StepScope 와 @JobScope 와를 사용하지 말라-> 말이 확실히 이상해
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
api를 어느 컨트롤러에 작성해야하는지는 어떤 기준으로 해야하나요?
api 매핑 메소드를 어느 기준으로 어떤 컨트롤러에 작성해야하는지 궁금하여 질문좀 드립니다.먼저 글을 작성할 수 있는 웹사이트(게시판)가 있고, 홈화면에서 글쓰기 버튼을 눌러 글쓰기 페이지)로 이동 후 글을 쓰고 등록하면 글 데이터가 DB에 저장할 수 있는 사이트가 있다고 가정하겠습니다.그리고 프론트는 리액트이고 글쓰기 페이지로 이동시 프론트에서 요청 없이 페이지 이동을 하고 글 등록 버튼을 눌렀을 때에 /write 경로로 서버에 요청이 간다고 가정하겠습니다. 질문입니다.등록 버튼을 눌러 /write라는 url이 서버로 오면 이 url은 다음 중 어느 컨트롤러에서 매핑되어야할까요?홈 컨트롤러 - 홈화면에서 글쓰기 페이지(/write)로 이동한 것이니 홈 컨트롤러에서 매핑한다.유저 컨트롤러 - 글은 유저가 쓴 것이고 유저와 관련있으므로 유저 컨트롤러에서 매핑한다.글 컨트롤러 - 글 또한 별도로 DB에 관리되어야하므로 글 컨트롤러에서 매핑한다.이러한 비슷한 상황이 온다면 url은 어느 기준으로 컨트롤러에 매핑 시켜야하나요?감사합니다.
-
미해결죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.
spring boot 4 + spring batch 6 설정 변경?
형 스프링부트 4에서는 jdbc starter 추가 안하면 안되던데 뭐지```build.gradle.ktsdescription = "batch" dependencies { implementation("org.springframework.boot:spring-boot-starter-jdbc") implementation("org.springframework.boot:spring-boot-starter-batch") implementation("org.springframework.boot:spring-boot-h2console") runtimeOnly("com.h2database:h2") testImplementation("org.springframework.boot:spring-boot-starter-batch-test") }```implementation("org.springframework.boot:spring-boot-starter-jdbc")위 처럼 의존성 명시적으로 처리해주기 전에는 아래 에러떳었어.Could not autowire. No beans of 'PlatformTransactionManager' type found.
-
미해결토비의 클린 스프링 - 도메인 모델 패턴과 헥사고날 아키텍처 Part 1
헥사고날 아키텍처에서의 배치, 시큐리티, 비동기 이벤트 처리는 어떻게 하나요?
안녕하세요, 이번 강의를 통해 처음으로 헥사고날 아키텍처에 대해서 공부하고 있는 사람입니다. 헥사고날 아키텍쳐를 지키면서 배치, 시큐리티, 이벤트 처리 등등 다양한 기술을 어떻게 사용하나요?제가 공부해본 바로는1. 배치: 애플리케이션 계층에 배치를 통해 이루어질 api를 만들어두고, 어댑터 계층엔 배치(Job, Step, Writer, Reader등 )에 관한 설정들을 위치하게 한다.2. 시큐리티: 전부 어댑터에 위치한다. 이벤트 처리: 이벤트는 도메인으로 간주하고 도메인 계층에 위치시키고, 이벤트 리스너는 어댑터 계층에 위치시킨다. 이벤트를 발행시키는 로직은 애플리케이션 계층에 위치하고, ApplicationEventPublisher 같은 경우는 추상화됐다고 판단하고 그냥 사용하거나, 혹은 인터페이스를 따로 만들어서 사용한다.이정도인데 큰 흐름에서 제가 이해한 게 맞을까요? 특히 궁금한 건 "이벤트가 도메인으로 간주되어도 문제가 없는지" 입니다.(무조건 도메인이기 보다는 로직을 처리하기 위해 존재하는 dto로 볼 수도 있는 거 아닌가 싶어서요.)다른 기술들을 헥사고날 아키텍쳐에 적용시킬 때 주의할만한 사항들도 따로 존재를 할까요?
-
미해결스프링 핵심 원리 - 고급편
어드바이스 순서 디폴트 기준이 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.@Aspect 에서 @Order 를 따로 지정하지 않은 디폴트 기준으로, 로그/트랜잭션 선언 순서를 반대로 해도 로그가 먼저 찍히던데,디폴트 기준이 궁금합니다.포인트컷의 기준이 더 광범위한게 먼저 실행되는 느낌인데 이게 맞을까요?