package hello.core.member; import hello.core.AppConfig; import org.assertj.core.api.Assertions; import org.junit.jupiter.api.BeforeEach; import org.junit.jupiter.api.Test; public class MemberServiceTest { AppConfig appConfig = new AppConfig(); MemberService memberService = appConfig.memberService(); @BeforeEach public void beforeEach() { } @Test void join() { // given Member member = new Member(1L, "memberA", Grade.VIP); // when memberService.join(member); Member findMember = memberService.findMember(1L); //then Assertions.assertThat(member).isEqualTo(findMember); } } beforeEach에서 인스턴스 매번 안만들고 한번 만들어서 써도 되지 않나요?
go func() { for i := 0; i < 5; i++ { fmt.Println("check : ", i) ch <- true } close(ch) // 5회 채널에 값 전송 후 채널 닫기 }() for i := range ch { // 채널에서 값을 꺼내온다. 닫힐 때 까지 fmt.Println("ex1 : ", i) } 코드 출력 check : 0 check : 1 ex1 : true ex1 : true check : 2 check : 3 ex1 : true ex1 : true check : 4 ex1 : true 위 코드가 아래와 같이 출력됩니다. 왜 2개씩 출력이 되는 걸까요?.. 제 생각에는 check가 0부터 하나씩 출력이 되야 할 것 같은데.. ch := make(chan bool, 2) 이렇게 버퍼(?)를 추가해 주면 3개 3을 추가하면 4개씩 늘어나네요. 기본이 2개씩 모아서 실행을 하고 추가되는 값 만큼 처리를 한다고 생각하면 될까요? +) 개인적으로 강사님 의견이 궁금한 부분인데요. restAPI를 Java-Spring 대신 Go로 짠다고 했을 때 비동기가 중요한 작업이라고 하면 Go가 더 괜찮은 선택이 될 수 있을까요?
안녕하세요! 강의 잘 수강하고 있습니다. ApplicationContext 통해서 객체 추출하면 컴파일 타임에서 오류를 찾기 어려운 단점이 있는 것 같아서, 정말 단점이 맞는지 확인하고 싶어서 질문드립니다. Spring을 적용하기 전 AppConfig를 직접 사용하던 경우에는 method 호출로 객체를 생성하기 때문에 method 이름이 변경된다면 컴파일 에러로 발견할 수 있습니다. 그런데 AnnotationConfigApplicationContext을 사용하고 나서는 등록된 Bean을 이름으로 검색해서 찾아오기 때문에 런타임 에러가 발생할 가능성이 생깁니다. 만약 제가 AppConfig 내의 method 이름을 변경하면 아래 코드는 에러를 만들게 됩니다. ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); MemberService memberService = applicationContext.getBean("memberService", MemberService.class); @Configuration public class AppConfig { @Bean public MemberService emberService() { // 오타 발생 return new MemberServiceImpl(memberRepository()); } } 이렇게 되면 정적 타입 언어의 장점을 상쇄시키는게 아닌지 의문이 들었습니다. 그리고 서버 운영중에 Bean을 찾지 못해서 장애가 발생하는 경우는 없는지도 궁금합니다! 제가 뭔가 이해를 잘못했거나 내용을 놓쳤을 수도 있을 것 같습니다. 답변 기다리겠습니다 🙏
안녕하세요 훌륭한 강의를 잘 듣고있는 학생입니다. 다름이 아니라 제가 oauth로그인을 하면 오류가 발생하여 문의드립니다. 우선 저는 jdk11과 Gradle을 사용하고있습니다. 위와 같이 잘 작동하다가 아래와 같이 oauth로그인을 사용하면 에러가 발생합니다. Parameter 0 of method setFilterChains in org.springframework.security .config.annotation.web.configuration.WebSecurityConfiguration required a bean of type ' org.springframework.security .oauth2.client.registration.ClientRegistrationRepository' that could not be found. 에러의 총 내용은 위와 같습니다. 그래서 다른 질문들의 답변을 보니 라이브러리의 충돌 및 다운로드의 문제인거 같아 intelliJ에서 제공하는 invalidate cache기능을 사용하여 다시 재빌드를 하였지만 같은 에러가 발생하고 .\gradlew --refresh-dependencies를 사용하여 재빌드 또한 진행하였지만 같은 결과가 나왔습니다. 마지막으로 toolbox 및 인텔리제이를 다시 실행해도 같은 현상이 발생합니다. 혹시 방법을 알 수 있을까요??
웹스톰 ES lint " 양 따옴표로 자동 만들어지는 오류 문제 해결 법 문의드려요 / import 부분이 자동으로 만들어지면서 "" 양따옴표로 만들어지면서 빨간줄 오류가 뜨는데, 이거 양따옴표 말고 홀따옴표로 설정 바꿀 수 있는 방법 있을까요? @Injectable() 만들었더니 자동으로 임포트 되면서 from 이후에 양따옴표로 만들어지네요 구글링 하거나 웹스톰에서 설정 찾아봐도 어떻게 바꿔야 될지 몰라서 문의드려봅니다.
강의 내용처럼 dependency를 추가하려고 spring-boot-starter-data-jpa를 입력했는데 빨간 글씨로 나타나네요 마우스 커서를 올려보니 종속성 'org.springframework.boot:spring-boot-starter-data-jpa:2.7.7을(를) 찾을수 없습니다' 이렇게 뜹니다 구글링을 해봤지만 이 부분에 대한 해답을 찾기 어려워 질문 드립니다
자유주제가 맞을 것 같은데, 보통 질문 찾아보실 거 같아서 해당 카테고리에 올려둡니다. 작년 말, 스프링부트가 3.0 버전으로 올라오면서 WebSecurityConfigurerAdapter를 사용 못하게 된 것 같습니다. 방법 1. build.gradle의 스프링 부트 버전을 2.7 이하로 낮추니 deprecated 상태로 쓸 수 있었습니다. 방법 2. 부트 버전을 낮추지 않고 3.0에서 쓰려면 아래와 같이 SecurityFilterChain을 Bean으로 쓰면 될 것 같습니다. 참고: Spring Security without the WebSecurityConfigurerAdapter 잘못된 내용이 있으면 댓글로 알려주세요!
.========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 4분쯤에 실행했을 때 오류가 납니다. JAVA 11버전이라 dependency 에 추가도 했습니다. 영속성 강의 까지는 연동이 잘 되다가 안되네요 데이터 베이스 스키마 자동생성 강의에서는 코드를 추가로 입력 안했는데 필요한가요?
.========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 4분쯤에 실행했을 때 오류가 납니다. JAVA 11버전이라 dependency 에 추가도 했습니다. 영속성 강의 까지는 연동이 잘 되다가 안되네요 데이터 베이스 스키마 자동생성 강의에서는 코드를 추가로 입력 안했는데 필요한가요?
module 안에 controller, service가 포함되는 것으로 이해하고 있습니다. 예를 들어, 최초에 nest new 하면 user module/contoller/service 가 생성됩니다. 이후, 새로운 기능에 대해 nest cli 로 module을 생성해야 할지? controller를 생성해야 할지, 혹은 service를 생성해야 할지 고민이 됩니다. (역할이 있겠지만, 새로운 service를 만들때, 반드시 새로운 module 기반에서 새로운 service를 만들어야 하는 것인지 등등) entity를 포함하여, 디렉토리 tree도 어떻게 가져가는게 좋은지 권고 사항 있을까요? module, controller, service의 관계에 대한 질문 같기도 하구요, 설계관점 일지도 모르겠습니다. 새로운 화일(module, controller, service)을 생성할 때, 어떤 식으로 진행하는게 좋을지 문의 드립니다.
module 안에 controller, service가 포함되는 것으로 이해하고 있습니다. 예를 들어, 최초에 nest new 하면 user module/contoller/service 가 생성됩니다. 이후, 새로운 기능에 대해 nest cli 로 module을 생성해야 할지? controller를 생성해야 할지, 혹은 service를 생성해야 할지 고민이 됩니다. (역할이 있겠지만, 새로운 service를 만들때, 반드시 새로운 module 기반에서 새로운 service를 만들어야 하는 것인지 등등) entity를 포함하여, 디렉토리 tree도 어떻게 가져가는게 좋은지 권고 사항 있을까요? module, controller, service의 관계에 대한 질문 같기도 하구요, 설계관점 일지도 모르겠습니다. 새로운 화일(module, controller, service)을 생성할 때, 어떤 식으로 진행하는게 좋을지 문의 드립니다.