묻고 답해요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
노션에 오타가 있는 거 같아요
[4주차] 꼬임을 막는 트랜잭션과 락 전략02.트랜잭션가 ACID7) 초기 DDL & DML 설정1000건인 거 같은데 50만이라고 적혀있어요
-
해결됨스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
DTO와 file 한 번에 요청시
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하십니까 선생님,파일 업로드에 대해서 질문있습니다.dto와 파일을 컨트롤러의 메서드 하나에서 전부 처리하도록 해봤습니다. @RequestPart로 각각의 Part를 구분지어서도, @ModelAttribute로 전부 Key와 value로 요청을 해보는 두 가지 방법을 시도하였으나 모두 오류가 발생했습니다.dto와 MultipartFile 모두@RequestPart로 : 사진과 같이 415 에러dto는 @ModelAttribute, MultipartFile은 @RequestPart : MethodArgumentNotValidException예외 발생, dto의 모든 필드 바인딩 실패(스택 트레이스 확인 결과 NULL로 넘어옴).어떤 이유로 오류가 발생했는지 도움 주시면 감사하겠습니다.
-
해결됨실전! 스프링 데이터 JPA
단건 update 질문
안녕하세요.단건 update관련 질문이 있습니다.update +연산update Member m set m.stock = m.stock + 1 where m.id = :id 이런식으로 해야하는 연산은 어떻게 처리하나요?벌크작업은 아니지만 개수를 증가시킬 때 할당으로 쓰면 덮어씌워질 수 있느니 + 1 로 처리하는 경우도 있는 것으로 아는데, 이런 경우는 영속성 컨텍스트에 반영이 안되는걸로 알고 있습니다.객체를 기반으로 업데이트 하는 경우 m.stock = n으로 할당이 되어서 이런 경우는 객체지향관점에서 어떻게 처리하고 설계하시는지 궁금합니다.업데이트 전 조회업데이트 전에 findOne 조회를 하시던데, 전 업데이트할 때 요청받은값만 덮어쓰면 되고 그게 더 안전할때도 있다고 생각이 듭니다.이런 경우에는 어떻게 처리하시는지 궁금합니다. 또한, 객체를 기반으로 업데이트하기에는 요청받은 데이터가 객체랑 필드가 정확히 매핑될것 같지 않아서 결국 update문 하나만 요청하는 방식으로 처리해야 할 것 같은데 어떻게 처리하시는지 궁금합니다.감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
강의 21:06의 코드
강의 21:06에서 작성하신대로 LAZY로 설정한 객체에 접근하면 프록시 객체가 초기화되면서 필요한 때에 DB에 쿼리를 날린다고 하셨는데요. 반복문 횟수만큼 order.getMember().getName()을 사용하니 여기서 N+1 문제가 발생하는건가요? (LAZY 로딩의 객체를 초기화할 때는 테이블 전체를 가져오는 게 아니라 객체 하나만 로딩해오는거죠?) 감사합니다.
-
해결됨서버개발자 과제전형 완벽가이드 - 1편
14번쨰 부분 중 질문드립니다..<ai답변으로 해도 안되요>
에러: org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'com.example.feign.NaverClientIntegrationTest': Unsatisfied dependency expressed through field 'naverClient': Error creating bean with name 'com.example.feign.NaverClient': FactoryBean threw exception on object creation NaverClientIntegrationTest파일 작동시 위와 같은 에러가 납니다. NaverClientInt 파일에서 컨피규레이션을 넣어도 위와 같은 에러가 나옵니다.제가 강의 자료 와 비교해도 NaverErrorDecoder(강의자료와 다름. 아직 진도 안나감)를 제외하고 나머지 다 똑같거든요.근데 에러가 나는 이유를 몰라서 질문올립니다. <jaytech108@gmail.com>이쪽으로 파일 보냈습니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
spring에서 maven을 사용하여 강의를 수강하는 것과...
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]지난 주 입사한 신입개발자입니다. 저는 STS에서 spring, maven으로 공부를 했었고, 현재 다니는 회사에서도 egovframework를 사용합니다. 현재 수업은 Spring Boot에서 gradle을 활용하는데, Spring에서 maven을 활용해서 수업을 진행해도 문제가 없는지 궁금합니다.(부트사용 X) 불가능 하다면 intelliJ에서 gradle을 활용해서 공부를 해도 현업에서 eclipse, spring, maven에서도 충분히 활용가능하게끔 강의가 구성되어있는지도 궁금합니다! 감사합니다!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
Error creating bean with name 'initDb': Invocation of init method failed
강의 보면서 작성한 코드에서 오류여서 , 수업자료 복사해서 실행해봤는데 동일하게 오류네요.어떤 부분에서 오류인지 알기 어려워 문의 드립니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
IntelliJ에서 devtools로 자동 재시작이 안 되네요
dependencies { implementation 'org.springframework.boot:spring-boot-starter-thymeleaf' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' testRuntimeOnly 'org.junit.platform:junit-platform-launcher' developmentOnly 'org.springframework.boot:spring-boot-devtools' }의존성에 맨 아랫줄 코드를 추가하고, Build project automatically 이 부분도 체크하고,Advanced Settings의 자동 시작 이 부분도 체크했는데 컨트롤러 파일 수정 후 저장을 해도브라우저엔 변경 사항이 적용이 안 됩니다.검색을 해서 application.properties 파일에 spring.thymeleaf.cache=false 이 코드를 추가도 해보고, 또 Settings > Build, Execution, Deployment > Compiler > Resource patterns에!?*.html를 추가해 봐도 안 되네요..참고로 제 프로젝트에선 Run/Debug Configurations 창에서 Modify options에 Spring Boot 항목이 없는데 이건 왜 그런 걸까요, 여기서 On 'Update' action에서 또 뭘 선택하라는 블로그들도 보긴 했는데 이 부분은 제 프로젝트에선 아예 없네요. Spring Boot 항목없이 바로Operating System부터 나옵니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
콘솔창 오류 ?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]H2 database 상에는 테이블이 잘 만들어졌고 오류도 안뜨는데 콘솔창에 create table~ 이 문장들이 출력되지가 않습니다.상관없는 것인지 아니면 뭐가 문제일까요 ?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Order, OrderItem
안녕하세요, 이번 실습 프로젝트 동안에 Order와 OrderItem은 N:1의 연관관계로 설계하셨습니다. OrderService의 order()안에서 OrderItem을 생성하고 Order를 생성하는 것으로 미루어 볼 때, 하나의 OrderItem이 하나의 Order와 대응되는 구조가 아닌가요? (즉 한 건의 주문 데이터는 한 건의 주문상세 데이터만 갖는 구조) 이런거라면 order에서 cancel할 때 OrderItem을 순회하며 cancel하는 것이 의미가 있는건지 궁금합니다! 즉, 일괄 주문이 안되는데 일괄 주문 취소가 의미가 있는건지 궁금합니다! 감사합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
createOrder() 생성 메서드
@OneToMany(mappedBy = "order", cascade = CascadeType.ALL) private List<OrderItem> orderItems = new ArrayList<>(); @OneToOne(cascade = CascadeType.ALL, fetch = FetchType.LAZY) @JoinColumn(name = "delivery_id") private Delivery delivery;보시는 바와 같이 Order의 생성 메서드에 필요한 파라미터에 들어가는 두 데이터입니다. 주문이 만들어지기 위해서는 OrderItem이 먼저 필요하기 때문에 인자로 주입하고 또 영속성 전이를 주는 것이 논리적이라 생각해 동의할 수 있었습니다. 그러나 Delivery 타입을 메서드로 주입받는 것은 배송이 있고 그 다음 주문이 존재한다는 흐름으로 받아들여집니다. 이 부분에 대한 조언을 얻을 수 있을까요? 감사합니다.
-
미해결자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
inteliJ 대신 VScode 설치해도 될까요?
inteliJ 대신 VScode 설치해도 될까요?
-
미해결스프링 핵심 원리 - 기본편
junit 초록색 재생버튼이 안보이는데 왜 그런건지 모르겠어요
junit 초록색 테스트 버튼이 안뜨는데 왜 그런걸까요 ??
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
Session 생성 타이밍에 대한 질문
안녕하세요, 궁금한점 이있는데 33~34 강의 편에서 보면 공격자가 세션 쿠키를 희생자의 브라우저에 삽입해서 희생자가 로그인하면 공격자도 희생자의 정보를 탈취하는 그런 내용의 강의가 있었는데요, 궁금한 점은 공격자는 왜 로그인 같은 기타 인증을 하지 않고 기본적으로 세션 쿠키가 생성이 되어있는걸까요? SessionCreation policy 가 always 가 아니고 if required 였던거 같은데 왜 이미 생성되어 있던 것인지 궁금합니다.
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
Cannot resolve variable 'member'
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]우선 처음에 500 에러가 나서 해당 문제를 찾아본 결과 스프링부트 3.0 이상은 // JSP 추가 시작 implementation 'org.apache.tomcat.embed:tomcat-embed-jasper' //implementation 'javax.servlet:jstl' //스프링부트 3.0 미만 implementation 'jakarta.servlet:jakarta.servlet-api' //스프링부트 3.0 이상 implementation 'jakarta.servlet.jsp.jstl:jakarta.servlet.jsp.jstl-api' //스프링부트 3.0 이상 implementation 'org.glassfish.web:jakarta.servlet.jsp.jstl' //스프링부트 3.0 이상 // JSP 추가 끝jstl을 새롭게 의존성 주입해야 해야한다고 하길래 그렇게 해주었고 <%@ page import="hello.servlet.domain.member.Member" %> <%@ page contentType="text/html;charset=UTF-8" language="java" %> <html> <head> <title>Title</title> </head> <body> 성공 <ul> <%--<li>id=<%=((Member)request.getAttribute("member")).getId()%></li> <li>username=<%=((Member)request.getAttribute("member")).getUsername()%></li> <li>age=<%=((Member)request.getAttribute("member")).getAge()%></li>--%> <li>id=${member.id}</li> <li>username=${member.username}</li> <li>age=${member.age}</li> </ul> <a href="/index.html">메인</a> </body> </html>jsp도 강의랑 똑같이 잘 작성해주었습니다 물론 출력도 정상적으로 잘 됩니다만..member 변수? 에 자꾸 Cannot resolve variable 'member' 라는 에러가 발생합니다. 실행에 지장은 없는데 무시해도 되는걸까요?
-
미해결[NarP Series] MVC 프레임워크는 내 손에 [나프2탄]
ping 연결관련
java.sql.SQLException: Access denied for user 'root'@'localhost' (using password: YES)at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:964)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3973)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3909)at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:873)at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:4420)at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1278)at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2194)at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2225)at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2024)at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:779)at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)at sun.reflect.GeneratedConstructorAccessor36.newInstance(Unknown Source)at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)at java.lang.reflect.Constructor.newInstance(Constructor.java:423)at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:389)at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:330)at org.eclipse.datatools.connectivity.drivers.jdbc.JDBCConnection.createConnection(JDBCConnection.java:328)at org.eclipse.datatools.connectivity.DriverConnectionBase.internalCreateConnection(DriverConnectionBase.java:105)at org.eclipse.datatools.connectivity.DriverConnectionBase.open(DriverConnectionBase.java:54)at org.eclipse.datatools.connectivity.drivers.jdbc.JDBCConnection.open(JDBCConnection.java:96)at org.eclipse.datatools.enablement.internal.mysql.connection.JDBCMySQLConnectionFactory.createConnection(JDBCMySQLConnectionFactory.java:28)at org.eclipse.datatools.connectivity.internal.ConnectionFactoryProvider.createConnection(ConnectionFactoryProvider.java:83)at org.eclipse.datatools.connectivity.internal.ConnectionProfile.createConnection(ConnectionProfile.java:359)at org.eclipse.datatools.connectivity.ui.PingJob.createTestConnection(PingJob.java:76)at org.eclipse.datatools.connectivity.ui.PingJob.run(PingJob.java:59)at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63) 열심히 찾아보고 있지만 모르겠네요.
-
해결됨스프링 DB 2편 - 데이터 접근 활용 기술
localhost:8080 연결이 안됨
[질문 내용]갑자기 localhost:8080 연결이 안됩니다. 강의 소스 그대로 다운받아서 열었는데요 ㅜ 에러들 좀 봐주십쇼
-
미해결토비의 스프링 6 - 이해와 원리
안녕하세요.
아래 코드에서 계속해서 테스트 오류가 뜹니다..이유가 무엇일까요?오히려 isequalto 를 사용했을때 테스트가 성공해버려요 @Test void Clock() { Clock clock = Clock.systemDefaultZone(); LocalDateTime dt1 = LocalDateTime.now(clock); LocalDateTime dt2 = LocalDateTime.now(clock); Assertions.assertThat(dt2).isAfter(dt1); } // 오류 메세지 java.lang.AssertionError: Expecting actual: 2025-05-09T16:54:49.066025800 (java.time.LocalDateTime) to be strictly after: 2025-05-09T16:54:49.066025800 (java.time.LocalDateTime) when comparing values using 'ChronoLocalDateTime.timeLineOrder()'
-
미해결Practical Testing: 실용적인 테스트 가이드
단위테스트와 통합테스트의 경계가 궁금합니다.
안녕하세요 우빈님 강의 너무나 잘 듣고 있습니다 🙂주니어에게 큰 힘이 되고 있습니다 감사합니다 공부를 하다보니 단위테스트와 통합테스트의 경계가 궁금하게 되었습니다.우빈님은 컨트롤러 / 서비스 / 리포지토리 각 계층에 대해 단위 / 통합 / 단위 테스트라고 구분하셨는데요 어떤 분은 컨트롤러 계층에서 작성한 테스트에 대해 통합테스트라고 주장하셨습니다@WebMvcTest 또는 @SpringBootTest를 사용해 스프링 컨텍스트의 일부(웹 계층) 또는 전체를 로드해야 한다.진정한 단위 테스트"는 스프링이나 다른 컨테이너 없이 new 연산자를 사용하여 객체를 인스턴스화하고 테스트하는 것을 의미한다고 하셨습니다. 테스트 대상 범위: 또한 테스트는 특정 컨트롤러 메서드의 로직만을 격리하여 테스트하는 것이 아니라, 특정 URL에 대한 HTTP 요청이 스프링 웹 계층을 통과하여 컨트롤러에 도달하고, 컨트롤러의 응답이 HTTP 응답으로 변환되어 반환되는 전체 과정 중 일부를 시뮬레이션하고 검증하는 관점에서 통합테스트다라고 주장하셨습니다. 정확한 구분은 어떻게 해야할까요? 사실 이러한 구분이 중요한가 고민도 됩니다. 어차피 테스트에 대한 목적과 경계 설정을 구분하는 것이 중요하지 않은가 싶긴 한데 우빈님 의견이 궁금합니다.
-
해결됨6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법
테스트코드 실행
2-10 강의에서 테스트코드? 실행하시는데 실행할 버튼이 없습니다.. 어떻게 하죠..?