묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션
UserControllerTest 테스트 실패 문의
안녕하세요, 강사님!강사님 쉬운 설명 덕분에 재밌게 강의 듣고 있습니다. 항상 감사드립니다.Purpose다름이 아니라, UserControllerTest 관련 질문이 있어서 이렇게 문의 드립니다.링크: https://github.com/codingspecialist/junit-bank-class/blob/main/src/test/java/shop/mtcoding/bank/web/UserControllerTest.java Situation강의에서 나온 대로 `join_success_test()`와 `join_fail_test()` 따로 실행시키면 정상적으로 테스트가 통과합니다.다만 궁금한 점이 둘이 동시에 테스트를 진행하면(UserControllerTest 클래스 단위로 테스트를 실행하면) `join_success_test()` 테스트에서 실패가 뜨는데요.Approach제 생각에는 테스트 진행 시 `join_fail_test()`이 먼저 실행된다면, repository에 "ssar"이 먼저 등록되고,@BeforeEach public void setUp() { dataSetting(); } private void dataSetting() { userRepository.save(newUser("ssar", "쌀")); }그 다음 `join_success_test()`가 진행될 때 `dataSetting()` 에서 "Unique index or primary key violation"이 발생하는 게 아닐까 생각이 드는데요. 제가 유추한 것이 맞을까요?Question맞다면, 하나 더 궁금한 점이 매번 @BeforeEach로 돌면서userRepository.save(newUser("ssar", "쌀"));가 등록이 된다면, 하나의 repository에 계속해서 중복된 값이 저장되기 때문에 오류가 생기진 않나요?질문이 길어졌습니다.매번 친절하게 답변해주셔서 감사합니다.
-
미해결스프링 부트 개념과 활용
HateOas 가 업데이트가 되어서, "Spring HATEOAS" 코드를 아래처럼 하셔야 될겁니다.
package hello.hateoas; import org.springframework.hateoas.RepresentationModel; public class Hello extends RepresentationModel<Hello> { private String prefix; private String name; public String getPrefix() { return prefix; } public void setPrefix(String prefix) { this.prefix = prefix; } public String getName() { return name; } public void setName(String name) { this.name = name; } @Override public String toString() { return prefix + name; } } package hello.hateoas; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.linkTo; import static org.springframework.hateoas.server.mvc.WebMvcLinkBuilder.methodOn; @RestController public class SampleController { @GetMapping("hello") public Hello hello() { Hello hello = new Hello(); hello.setPrefix("Hey."); hello.setName("keesun"); hello.add(linkTo(methodOn(SampleController.class).hello()).withSelfRel()); return hello; } } Test Code 는 동일 합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Edge는 home.html이 실행안되고 index.html이 실행됩니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의를 보며 코드를 따라하며 실행해보는 도중, Microsoft Edge 에서 home.html 은 실행이안되고 계속 index.html이 실행이 되는 문제가 발생해서 Chrome으로 실행을 해보았더니 Chrome에서는 정상적으로 home.html이 실행이 됩니다. 뭐가 문제인걸까요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
컴포넌트 스캔과 자동 의존관계 설정 듣던 중 발생한 오류
에러 : \service\MemberServiceTest.java:18:35java: constructor MemberService in class hello.hellospring.service.MemberService cannot be applied to given types; required: hello.hellospring.repository.MemberRepository found: no arguments reason: actual and formal argument lists differ in length 안녕하세요 강의를 수강하던 중 에러의 이유를 알 수 없어 이렇게 질문 남기게 되었습니다.찾아보니까 롬복 문제라는것 같기도 한데?? 안쓴거같은데 잘 모르겠습니다.감사합니다.
-
해결됨인프라공방 - 그럴듯한 서비스 만들기
강의자료
안녕하세요 강의자료를 다운받으려 하는데 압축파일에 문제가 있는 것 같아요파일 확인 부탁드립니다. !!!
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
자바 스프링입문 환경설정 질문입니다. 도와주세요ㅠ
안녕하세요 지난번에 질문드렸는데 정확하게 설명이 안되어서 다시한번 질문합니다ㅜ다름이 아니라 환경설정할때 강의에서는 자바11 권장으로 되어있는데 자료를 보니 17이상이면된다고 써있었습니다.지금 제 프로젝트 셋팅과, execution,build,deployment 셋팅, 그리고 라이브러리에대해서 잘 설정되어있는지 궁금해서 질문합니다.1. 자바11권장이라고 되어있고 cmd창에서 자바버젼을 확인해보니 없다고 나옵니다. 자바 입문->기본편까지 듣고 가비지컬렉션과 예외처리를 공부한 후 스프링 입문 강의를 들으려고 하는데 제가 자바를 처음에 설치를 했는지 잘모르겠습니다. 자바 입문편과 기본편 강의들을때는 인텔리제이 설치후 jdk설정도 맞춰놓고 강의를 잘 들었습니다. 이 상태로 스프링 강의들을때 환경설정을 시키는대로 하면 별 문제가 없이 강의를 들을수 있는걸까요?제 프로젝트 셋팅과, execution,build,deployment 셋팅이 사진처럼 되어있는데 잘 되어있는건지 궁금합니다!라이브러리 설명을 해주시는데 제꺼랑 다른 라이브러리들이 제꺼에는 있고 강의에는 없는것들도 반대인 상황도 많아서 라이브러리가 이렇게 설정되어있어도 상관없는건지 잘 모르겠어서 질문합니다. 항상 친절하신 답변 감사합니다. 답변 기다리겠습니다.!
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
Jpa 데이터베이스 매칭 관련 질문입니다.
안녕하세요 강사님.인프런 스터디 과제 7일차 문제 1번 jpa 코드로 변환하던 중 warehousingDate 컬럼 부분에서 문제가 발생하였습니다.Fruits의 테이블 컬럼 이름은 warehousingDate 입니다. { "name":"바나나", "warehousingDate":"2024-02-25", "price":7000 }jpa 코드로 바꾼 후 위에처럼 post 하였더니 아래와 같은 결과가 나왔습니다.Unknown column warehousing_date in field list라고 에러가 뜹니다. 처음에는 @Column(name="warehousing_date") 을 붙이지 않아서 에러가 나는 줄 알고 @Column(name="warehousing_date") 을 붙이고도 진행하였더니 똑같은 에러가 발생하였습니다.그래서 Fruits 앤티티 warehousingDate 변수명을 warehousing_date로도 변경을 해봤더니 똑같은 에러가 발생하였습니다. Fruits 엔티티는 아래와 같습니다.@Entity public class Fruits { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @Column(name="warehousing_date") private LocalDate warehousingDate; private long price; @Column(nullable = true) private boolean sales; public Fruits() { } public Fruits(String name, LocalDate warehousingDate, long price, boolean sales) { this.name = name; this.warehousingDate = warehousingDate; this.price = price; this.sales = sales; } public String getName() { return name; } public void setName(String name) { this.name = name; } public LocalDate getWarehousingDate() { return warehousingDate; } public void setWarehousingDate(LocalDate warehousingDate) { this.warehousingDate = warehousingDate; } public long getPrice() { return price; } public void setPrice(long price) { this.price = price; } public boolean isSales() { return sales; } public void setSales(boolean sales) { this.sales = sales; } public Long getId() { return id; } public void setId(Long id) { this.id = id; } }컨트롤러 코드는 아래와 같습니다.@PostMapping("/api/v1/fruit") public void fruitInformation(@RequestBody FruitCreateRequest information){ fruitService.saveInformation(information); }서비스 코드는 아래와 같습니다.private final FruitJpaRepository fruitRepository; public FruitService(FruitJpaRepository fruitRepository) { this.fruitRepository = fruitRepository; } public void saveInformation(FruitCreateRequest request){ fruitRepository.save(new Fruits(request.getName(),request.getWarehousingDate(), request.getPrice(), request.getSales())); }RequestDto 코드는 아래와 같습니다.public class FruitCreateRequest { private String name; private LocalDate warehousingDate; private long price; private boolean sales; @JsonIgnore private Long id; public String getName() { return name; } public void setName(String name) { this.name = name; } public LocalDate getWarehousingDate() { return warehousingDate; } public void setWarehousingDate(LocalDate warehousingDate) { this.warehousingDate = warehousingDate; } public long getPrice() { return price; } public void setPrice(long price) { this.price = price; } public void setSales(boolean sales) { this.sales = sales; } public void setId(Long id) { this.id = id; } public Long getId() { return id; } public void setId(long id) { this.id = id; } public boolean getSales(){ return sales; } } 혹여나 제가 놓친 부분이 없는 지 확인해 주시면 감사하겠습니다. 그리고 fruits 컬럼명은 warehousingDate 라 적었는 데 hibernate는 warehousing_date과 매칭할려는지 알고싶습니다.질문이 서투른 점 양해바랍니다..
-
미해결생산성을 향상시키는 스프링부트 기반의 API 템플릿 프로젝트 구현
Xss 에서 WebConfig 오류 발생됩니다.
WebConfig 에 필터 등록 하는 부분에서 오류? 가 생깁니다.현재 스프링 부트 3.2.2 버전입니다. 혹시 버전으로 인한 문제일까요?해결방법 부탁드리겠습니다.
-
미해결백엔드 개발자 성능 개선 초석 다지기
DB 데이터 부탁드립니다.
캐싱 쪽 하고 있는데 테이블만 주시고 DB 데이터가 없습니다. 강의 보면 그냥 더미데이터로 진행하시는 것으로 보여 저도 그냥 아무 데이터 여러 개 넣어서 진행에는 문제가 없습니다만 데이터에 관한 설명이 전혀 없는 점 아쉽습니다.. 이거 찾느라고 인프런, 노션, 깃허브에 분산된 자료를 왔다갔다 하느라 시간도 뺏겼슴다.. 시간 나실 때 다른 분들을 위해 더미데이터나 관련 설명이라도 추가 부탁드립니다.
-
해결됨스프링 배치
fileItemReader(null) 미호출 이슈
안녕하세요 강사님 강의 항상 잘듣고 있습니다.애플리케이션(2) 강의를 보며 실습하는데 아래 상황에서 진행이 되지 않아 질문 드립니다. 아래 이미지처럼 fileStep1() 메서드는 정상적으로 실행되었지만,fileItemReader(null) 메서드가 호출되지 않아서 그 후 진행을 못하고 있는 상황입니다. 브레이크 포인터로 따라가보니 reader가 제대로 넘어오지 않는 것 같습니다,상세한 내용은 아래와 같습니다. Method threw 'org.springframework.beans.factory.support.ScopeNotActiveException' exception. Cannot evaluate org.springframework.batch.item.file.FlatFileItemReader$$EnhancerBySpringCGLIB$$83a3aa5e.toString() 깃헙에 올려주신 Part11 branch 를 checkout 받아서 실행해보았지만 위와 동일한 증상이 있었습니다.혹시 원인이 무엇일까?좋은 강의 만들어주셔서 감사합니다.
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
ZIPKIN에서 오류 나시는분들
Spring 3버전대에서 zipkin 설정이 바뀌면서 # zipkin: # base-url: http://13.124.192.188:9411 # enabled: true이 부분을 주석처리하고management: tracing: sampling: probability: 1.0 propagation: type: b3 zipkin: tracing: endpoint: "http://localhost:9411/api/v2/spans"위와 같이 설정하였다면 docker run 할때 문제가 생길 수 있습니다! 해당 내용을 토대로 환경변수를 주고 실행을 시켜야 합니다(저도 깜빡하고 왜 오류나지 고민만 했는데.. 설정을 바꿨었더라구요!)user-service docker rundocker run -d --network ecommerce-network \ --name user-service \ -e "spring.cloud.config.uri=http://config-server:8888" \ -e "spring.rabbitmq.host=rabbitmq" \ -e "management.zipkin.tracing.endpoint=http://zipkin:9411/api/v2/spans" \ -e "eureka.client.serviceUrl.defaultZone=http://discovery-service:8761/eureka/" \ -e "logging.file=/api-logs/users-ws.log" \ kimtaeheon/user-service:1.0order-service docker rundocker run -d --network ecommerce-network \ --name order-service \ -e "spring.cloud.config.uri=http://config-server:8888" \ -e "spring.rabbitmq.host=rabbitmq" \ -e "management.zipkin.tracing.endpoint=http://zipkin:9411/api/v2/spans" \ -e "eureka.client.serviceUrl.defaultZone=http://discovery-service:8761/eureka/" \ -e "spring.datasource.url=jdbc:mariadb://mariadb:3306/mydb" \ -e "logging.file=/api-logs/orders-ws.log" \ kimtaeheon/order-service:1.0
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
h2 아이콘
[질문 내용]제가 h2 db를 껐다 켜고 싶어서, 하단 트레이 쪽에 있는 h2 아이콘을 우클릭>exit을 했더니 아예 아이콘이 사라졌습니다..다시 키려고 h2.bat을 재실행은 했는데 아이콘이 없어서 create a new db를 어떻게 해야하는지 모르겠습니다.도움 부탁드립니다!
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
clearStore가 소용이 없습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. 이렇게 영상에 나온대로 clearStore을 작성했음에도계속 오류가 뜹니다clearStore의 문제가 아닌건가요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
need more stock
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]상품주문 test에서 코드를 똑같이 따라 쳤는데 need more stock exception이 나요그리고 그 아래 상품주문_재고수량초과 테스트를 적을 때 @Test 에 expected를 적는데 expected라는 메소드를 해결할 수 없다고 빨간줄이 떠요링크 공유합니다https://drive.google.com/file/d/1Yr0w6SZWSH3Usqd8Gbx8bhQTcfRmmWHz/view?usp=sharing
-
미해결실습으로 배우는 선착순 이벤트 시스템
DB Lock 대신 Redis를 이용하는 이유
DB Lock을 이용하면 시간이 오래 걸린다는 성능 저하 문제가 발생하기 때문에 Redis를 써야 한다고 이해하였습니다. 하지만 강의 영상에서는 Redis가 싱글스레드를 이용한다고 하셨는데 그럼 똑같이 DB Lock과 마찬가지로 시간이 오래걸리는 것이 아닌가요..?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
mariadb 접속 관련해서 질문 있습니다.
강의에서 권한을 주는 부분을 보기 전에 작성해주신 아래와 같은 Dockerfile을 사용하였을 경우 실행이 되지 않았습니다.1번FROM mariadb ENV MYSQL_ROOT_PASSWORD rlaxogjs8312 ENV MYSQL_DATABASE mydb COPY ./mysql_data/mysql /var/lib/mysql EXPOSE 3306그래서 저는 복사하는 폴더가 문제인가 해서 COPY부분을 아래와 같이 바꿔서 mydb만을 복사하도록 하였습니다.2번FROM mariadb ENV MYSQL_ROOT_PASSWORD rlaxogjs8312 ENV MYSQL_DATABASE mydb COPY ./mysql_data/mysql/mydb /var/lib/mysql EXPOSE 3306이렇게 하였더니 db가 제대로 복사가 되지는 않았지만 로컬에서 접속이 가능하였습니다.그래서 왜 복사가 안되는거지.. 고민하다가 나머지 강의를 듣고 다시 1번으로 빌드 후 실행한 뒤에는 복사도 잘 되었음을 확인하였습니다.궁금한 점은 다음과 같습니다.왜 2번 Dockerfile의 경우 복사는 제대로 되지 않았는데 로컬호스트에서 DB에 접속이 가능했었던 건지 궁금합니다.만약 COPY가 아니라 VOLUME을 적용해서 한 과거 기억을 되살려보면 권한은 문제가 없었던 것 같은데 권한은 해당 Docker Container에 어떤 이유때문에 적용해야하는 것인지 궁금합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
에러
[질문 내용]위와 같이 application.properties도 공백없이, 빠짐없이 작성하고 나머지 코드도 강의교재 복붙해서 넣었는데 이름 등록 버튼 누르면 다음과 같은 에러가 뜹니다...도움 부탁드립니다! 2024-02-27T15:02:44.697+09:00 INFO 10564 --- [nio-8080-exec-7] com.zaxxer.hikari.HikariDataSource : HikariPool-1 - Starting...2024-02-27T15:02:46.290+09:00 ERROR 10564 --- [nio-8080-exec-7] com.zaxxer.hikari.pool.HikariPool : HikariPool-1 - Exception during pool initialization.org.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-224] 2024-02-27T15:02:46.293+09:00 ERROR 10564 --- [nio-8080-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.IllegalStateException: org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection] with root causeorg.h2.jdbc.JdbcSQLInvalidAuthorizationSpecException: Wrong user name or password [28000-224]
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
윈도우 db 끄기
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]강의에서 선생님이 db끄면 실행안된다면서 보여주셨는데, 윈도우에서는 db 끄는 명령어가 뭔가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
환경설정 질문입니다.
안녕하세요 환경설정에서 제가 자바17을 이용하고 있는데 자바11을 권장하다고 하셔서 상관없는지 유무를 알고 싶습니다.그리고 build,execution,deployment 빌드 툴에서 gradle로 들어가서 intelliJ로 바꾸는과정을 해보았는데 그 아래 gradle JVM이 강의에서는 자바11로 체크가 되어있는데 전 Project SDK openjdk-21로 되어있습니다 이경우는 상관이없을까요? 또 distribution에 Wrapper로 되어있습니다 이것도 상관없을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
상품수정 바꿀 사항은 적고 수정했는데 원래값도 존재
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.가격과 재고수량을 바꾸고 submit을 했는데 원래값도 그대로 있어요