묻고 답해요
169만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨실전! 스프링 데이터 JPA
[질문 X] @Setter에 일괄적으로 AccessLevel 설정
@Setter에 왠만하면 private로 해두고 필요할 때만 그 개개별만 열어두고 싶었는데,@Setter(AccessLevel.PRIVATE)이렇게 클래스레벨에 넣어두면 다 private로 생성되는 듯 해요.만약 따로 @Setter를 열어두고 싶은 필드가 있다면 @Setter(AccessLevel.PUBLIC) private String username;그 필드에 이렇게.. 자세할 수록 우선 반영이니..
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
m2 폴더 질문
현재 maven이 아닌 gradle로 빌드 환경을 구성하고 있습니다.m2/repository/org 폴더는 존재하지만 그 안에 mariaDB가 없습니다. build.gradle에서 mariadb-client를 추가해준다고 해서 제 PC 환경에 설치되는 것이 아닌것 같은데 어떻게 해야 할까요..
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
memberService에서 회원 서비스 테스트 하려고 하는데 No test subjects found가 뜹니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용] 테스트를 위해 만들고 싶은데 단축키를 눌러도 똑같이 뜹니다....코드 드립니다ㅜㅜ package hello.hellospring.service; import hello.hellospring.domain.Member; import hello.hellospring.repository.MemberRepository; import hello.hellospring.repository.MemoryMemberRepository; import java.util.List; import java.util.Optional; public class MemberService { // 회원 서비스를 개발하려면 일단 회원 repository가 있어야 한다 private final MemberRepository memberRepository = new MemoryMemberRepository(); // 회원 가입 // member 에 저장하고 id를 반환하면 된다 public Long join(Member member) { validateDuplicateMember(member); //중복 회원 검증 memberRepository.save(member); return member.getId(); } // 중복 검증 private void validateDuplicateMember(Member member) { memberRepository.findByName(member.getName()) .ifPresent(m -> { throw new IllegalStateException("이미 존재하는 회원입니다."); }); } // 전체 회원 조회 public List<Member> findMembers() { return memberRepository.findAll(); } public Optional<Member> findOne(Long memberId) { return memberRepository.findById(memberId); } }
-
미해결스프링 부트 - 핵심 원리와 활용
설정 데이터1 - 외부 파일 강의에서 질문
안녕하세요. 강의를 듣던중 궁금한 점이 생겨 질문합니다. 강의에서 터미널에서 java 커맨드를 이용해서 jar파일을 실행시킬 때(java -jar ex.jar), 별도의 추가 옵션을 주지 않았는데, jar 파일과 같은 경로에 있는 application.properties 파일을 읽어 값을 가져오는 것을 볼 수 있는데, 이는 스프링 부트의 어느 코드에서 처리해주는 것인지 궁금합니다. (만약 같은 경로에 있지 않다면 사용되지 않는건가요?)
-
해결됨실전! 스프링 데이터 JPA
flush() 와 clear()
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]1. 스프링 데이터 JPA 가 지원하는 save를 호출하면 flush()가 나가는건가요 아니면 save를 하고 bulkAgePlus()를 호출하면서 bulkAgePlus() 에 있는 JQPL이 실행되서 flush() 가 나가는건가요 ? bulkAgePlus()를 실행하면 JPQL 실행이되고, JPQL 이 실행이 되면 flush() 가 호출이 되는데 이때 SQL쿼리문이 DB에 전송이대서 DB에는 업데이트가 되어있지만 영속성 컨텍스트는 업데이트가 안되기 때문에 clear()를 해주는게 맞는건가요 ?
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
질문
@requestHeader 에 first-request를 지우면 filter 가 안되니 분기가 안되려나요?
-
미해결[개념은 호옹~, 실습 빡] 스프링 부트, 입문!
로그창에 내용이 출력이 안됩니다.
강사님과 똑같이 제목과 내용을 입력하고 submit 버튼을 눌러도 제 로그에는 변화가 없는데 뭐가 문제인지 모르겠습니다ㅜ.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
setter 관련 함수
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. // item.setName(name); // item.setPrice(price); // item.setStockQuantity(stockQuantity); //요런식으로 바꿔라 item.change(name,price,stockQuantity); 라고 강의에서 봤는데 그러면 item 엔티티 클래스에서 change 함수에서 item.setName(name); // item.setPrice(price); // item.setStockQuantity(stockQuantity);이걸 넣는건가요 ??
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
준영속상태 ? 영속상태 질문있어요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.준영속상태랑 영속상태랑 차이점은 알겠는데요 .. Book book = new Book(); book.setId(form.getId()); book.setName ... ... 이게 기존 디비를 갔다왔다 ?라는데 BookForm 객체중에 저장된 id를 가져와서 그런건가요 ??? 그러면 객체에서 findById로 가져와서 객체새로 만든거에 아이디를 셋하는 형태는 전부 준영속 상태인건지 ... jpa가 관리하는지 안하는지 코드로 어떻게 알수있는지 정확히 모르겠어요 애가 영속성엔티티 인지 준영속성 상태인지 알수있는방법좀 알려주세요 코드상으로 봤을떄..다른글에 공통으로 걸어주신 링크봤는데도 이해가 안되요 ..ㅠㅠ Book book = new Book(); book.setId(form.getId()); book.setName ... ... 위 코드를 그러면 영속성이라고 볼려면 어디가 바껴야되요 ? 그냥 코드상 보면 BookForm이 엔티티고 이게 아이디를 가지고 있으니 디비에 저장되어 있는거고 그 아이디를 가지고 왔으니 준영속성이라고 보는건가요? 그럼 그냥 제가 임의로 Book book= new Book(); book.setId(12);이러면 어떻게 되는건가요???
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
gradle 설정에 레드박스 칸이 없습니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.gradle 레드박스 부분이 존재 하지 않는데 어떻게 해야 하나요?
-
해결됨스프링부트 JUnit 테스트 - 시큐리티를 활용한 Bank 애플리케이션
계좌 조회 질문드립니다
강의 마지막에 첨부해주신 깃허브엔 Account 관련 패키지가 아예 없네요 ㅜ.ㅜ 이전 강의에서 계좌 조회 컨트롤러, 서비스 숙제 내주신 것 해보고 있는데 잘 안돼서요. 혹시 깃허브 주소가 있을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
테스트 에러 질문드립니다.
package com.service.com.service; import static org.junit.Assert.assertEquals; import javax.persistence.EntityManager; import javax.transaction.Transactional; import org.junit.Test; import org.junit.runner.RunWith; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.junit4.SpringRunner; import com.service.com.domain.Member; import com.service.com.repository.MemberRepository; @RunWith(SpringRunner.class) @SpringBootTest @Transactional public class MemberServiceTest { @Autowired MemberService memberService; @Autowired MemberRepository memberRepository; @Autowired EntityManager em; @Test public void 회원가입() throws Exception{ Member member = new Member(); member.setName("Kim"); // when Long saveId = memberService.join(member); // then assertEquals(member, memberRepository.findOne(saveId)); } @Test(expected = IllegalStateException.class) public void 중복_회원_예외() throws Exception { Member member1 = new Member(); member1.setName("kim"); Member member2 = new Member(); member2.setName("kim"); fail("예외가 발생해야 한다"); } } 2023-11-16 20:00:08.269 INFO 22664 --- [ main] o.s.t.c.transaction.TransactionContext : Rolled back transaction for test: [DefaultTestContext@1c3b9394 testClass = MemberServiceTest, testInstance = com.service.com.service.MemberServiceTest@5cc152f9, testMethod = 중복_회원_예외@MemberServiceTest, testException = java.lang.AssertionError: Expected exception: java.lang.IllegalStateException, mergedContextConfiguration = [WebMergedContextConfiguration@6f2cfcc2 testClass = MemberServiceTest, locations = '{}', classes = '{class com.service.com.JpashopApplication}', contextInitializerClasses = '[]', activeProfiles = '{}', propertySourceLocations = '{}', propertySourceProperties = '{org.springframework.boot.test.context.SpringBootTestContextBootstrapper=true}', contextCustomizers = set[org.springframework.boot.test.autoconfigure.actuate.metrics.MetricsExportContextCustomizerFactory$DisableMetricExportContextCustomizer@4310d43, org.springframework.boot.test.autoconfigure.properties.PropertyMappingContextCustomizer@0, org.springframework.boot.test.autoconfigure.web.servlet.WebDriverContextCustomizerFactory$Customizer@3527942a, org.springframework.boot.test.context.filter.ExcludeFilterContextCustomizer@4f80542f, org.springframework.boot.test.json.DuplicateJsonObjectContextCustomizerFactory$DuplicateJsonObjectContextCustomizer@576d5deb, org.springframework.boot.test.mock.mockito.MockitoContextCustomizer@0, org.springframework.boot.test.web.client.TestRestTemplateContextCustomizer@2794eab6, org.springframework.boot.test.context.SpringBootTestArgs@1, org.springframework.boot.test.context.SpringBootTestWebEnvironment@3972a855], resourceBasePath = 'src/main/webapp', contextLoader = 'org.springframework.boot.test.context.SpringBootContextLoader', parent = [null]], attributes = map['org.springframework.test.context.web.ServletTestExecutionListener.activateListener' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.populatedRequestContextHolder' -> true, 'org.springframework.test.context.web.ServletTestExecutionListener.resetRequestContextHolder' -> true, 'org.springframework.test.context.event.ApplicationEventsTestExecutionListener.recordApplicationEvents' -> false]]java.lang.NoSuchMethodError: org.junit.platform.engine.TestDescriptor.getAncestors()Ljava/util/Set;at org.junit.platform.launcher.core.StackTracePruningEngineExecutionListener.getTestClassNames(StackTracePruningEngineExecutionListener.java:50)at org.junit.platform.launcher.core.StackTracePruningEngineExecutionListener.executionFinished(StackTracePruningEngineExecutionListener.java:39)at org.junit.platform.launcher.core.DelegatingEngineExecutionListener.executionFinished(DelegatingEngineExecutionListener.java:46)at org.junit.platform.launcher.core.OutcomeDelayingEngineExecutionListener.reportEngineFailure(OutcomeDelayingEngineExecutionListener.java:83)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:203)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:169)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:93)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.lambda$execute$0(EngineExecutionOrchestrator.java:58)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.withInterceptedStreams(EngineExecutionOrchestrator.java:141)at org.junit.platform.launcher.core.EngineExecutionOrchestrator.execute(EngineExecutionOrchestrator.java:57)at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:103)at org.junit.platform.launcher.core.DefaultLauncher.execute(DefaultLauncher.java:94)at org.junit.platform.launcher.core.DelegatingLauncher.execute(DelegatingLauncher.java:52)at org.junit.platform.launcher.core.SessionPerRequestLauncher.execute(SessionPerRequestLauncher.java:70)at org.eclipse.jdt.internal.junit5.runner.JUnit5TestReference.run(JUnit5TestReference.java:98)at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:40)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:529)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:756)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:452)at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:210)plugins {id 'java'id 'org.springframework.boot' version '2.7.17'id 'io.spring.dependency-management' version '1.0.15.RELEASE'} group = 'com.example'version = '0.0.1-SNAPSHOT' java {sourceCompatibility = '11'} repositories {mavenCentral()} dependencies {implementation 'org.springframework.boot:spring-boot-starter-data-jpa'implementation 'org.springframework.boot:spring-boot-starter-thymeleaf'implementation 'org.springframework.boot:spring-boot-starter-validation'implementation 'org.springframework.boot:spring-boot-starter-web'implementation 'org.projectlombok:lombok'runtimeOnly 'com.h2database:h2'developmentOnly 'org.springframework.boot:spring-boot-devtools'testImplementation 'org.springframework.boot:spring-boot-starter-test'//JUnit4 추가testImplementation 'org.junit.jupiter:junit-jupiter-api:5.6.0'testRuntimeOnly 'org.junit.jupiter:junit-jupiter-engine' tasks.named('bootBuildImage') {builder = 'paketobuildpacks/builder-jammy-base:latest'} tasks.named('test') {useJUnitPlatform()}이거 어디가 잘못된걸까요 예제 파일 다운받아서 4로 해도 마찬가지고 5로 해도 마찬가지로 나오네요 ..
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
데이터베이스쪽 이해가 안가요
안녕하세요 자바 기초를 공부하고 SPRING입문 강의를 듣고 있는 학생입니다.웹mvc와 기능 구현까지는 어찌어찌해서 흐름은 이해가 되었는데, 데이터베이스 쪽부터는 이해가 너무 안되서 힘듭니다 ㅠㅠ 데이터베이스쪽을 공부해 본적이 없어서 그런거 같은데.. 어떻게 해결하는게 좋을까요?
-
미해결실전! 스프링 데이터 JPA
QueryHint와 update 관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. 강의와 자료를 병행하며 공부하고있는 학생입니다. 음.. 개념에 대해 헷갈리는 부분이 있어서 질문드리는데,queryHint를 통해서 읽기전용이라고 하이버네이트에 인식 시키고 em.flush()에 update쿼리가 먹히지 않는다.라고 이해했는데 비슷한 질문글을 보니 db에는 "member2"로 들어가있다는 질문을 보고 의문이 들었습니다. 이름이 바뀌지 않아야 정상아닌가요?
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
[질문X] orderV6 for문으로 발라내기
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]복붙 하려다 못참아서 그만.. ㅎㅎ @GetMapping("/api/v6/orders") public List<OrderQueryDto> ordersV6(){ List<OrderFlatDto> orderFlats = orderQueryRepository.findAllByDto_flat(); Map<Long, List<OrderItemQueryDto>> orderItemMap = new HashMap<>(); Map<Long, OrderQueryDto> orderMap = new HashMap<>(); orderFlats.forEach(orderFlat -> { Long orderId = orderFlat.getOrderId(); if(orderMap.get(orderId) == null){ orderMap.put(orderId,new OrderQueryDto(orderId, orderFlat.getName(), orderFlat.getOrderDate(), orderFlat.getOrderStatus(), orderFlat.getAddress())); } if(orderItemMap.get(orderId) == null){ orderItemMap.put(orderId,new ArrayList<OrderItemQueryDto>()); } orderItemMap.get(orderId).add(new OrderItemQueryDto(orderId, orderFlat.getItemName(), orderFlat.getOrderPrice(), orderFlat.getCount())); }); orderItemMap.forEach((orderId, orderItem)->{ orderMap.get(orderId).setOrderItems(orderItem); }); return new ArrayList<OrderQueryDto>(orderMap.values()); }stream 저처럼 잘 모르시는 분들은 이게 더 와 닿으실 거임.. 아 보람차다 ㅎㅎㅎ
-
해결됨Spring Boot JWT Tutorial
유효한 JWT 토큰이 없습니다
UsernamePasswordAuthenticationToken authenticationToken = new UsernamePasswordAuthenticationToken(signIn.userId(), registerUser(signIn.password())); Authentication authentication = authenticationManagerBuilder.getObject().authenticate(authenticationToken); SecurityContextHolder.getContext().setAuthentication(authentication); String jwt = tokenProvider.createToken(authentication); HttpHeaders httpHeaders = new HttpHeaders(); httpHeaders.add(JwtFilter.AUTHORIZATION_HEADER, "Bearer " + jwt); 위 코드에서 [authentication] 부분에 아래와 같은 오류가 발생합니다.org.springframework.security.authentication.BadCredentialsException: 자격 증명에 실패하였습니다. 어떻게 처리하면 되는지 잘 모르겠습니다... 이 문제에 대해 아시는 분들은 저에게 도움 부탁드립니다 ㅜㅜ
-
해결됨실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
batch는 정확히 등록된 엔티티를 조회해 올때만 작동되는 건가요?
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]from 해서 엔티티에서 가져오는 거니 Dto로 가져와도 왠지 먹힐 줄 알았는데 아니었네요..정확히 fetch 등이나 엔티티 자체를 가져올 때만 되는 거 맞나요?
-
미해결스프링 배치
Spring Batch Test 강의에서 clear()함수 질문드립니다.
Spring Batch Test 강의를 보면@Afterpublic void clear() 함수를 만들어서 insert한 데이터를 직접 삭제하는데 테스트코드에서 자동으로 트랜잭션 롤백이 안되는건가요?안된다면 할 수 있는 방법은 없나요?
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
인증서버를 겸하는 api gateway로 구성하려면
안녕하세요. 강의 초반부 수강 중인데 궁금한 게 생겨서 질문드립니다.Spring Security, JWT, OAuth 등을 사용한 인증서버를 api gateway가 겸하게 하고자 하는데요, UserMicroService의 내용을 Spring Cloud Gateway 프로젝트에서 진행하면 되는 걸까요?해당 강의를 참고해서 api gateway를 사용한 프로젝트를 Aws에 올릴 예정이다보니 비용에 대해 고려하게 되는데요, 해당 강의에서 api gateway와 관련해서 사용하게 될 서버 개수가 궁금합니다. 섹션7 까지 강의대로 하면 마이크로서비스나 DB는 제외하고, Spring Cloud Gateway와 관련한 서버만 총 3개 사용하게 되는 건가요? (Eureka, Spring Cloud Gateway, Spring Config Cloud Server)
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
springframework를 import하는 곳에서 빨간색이 나옵니다.
aws 하기 전에 다시 복습해보고 싶어서springboot를 하나 다시 만들었습니다. 이때 버전을 3.0.12로 생성을 했구요 그렇게 생성해서 새로운 프로젝트를 열기만 했는데 어떤 에러가 나서 찾아보니 사용자 폴더에 있는 .gradle을 삭제하고 다시 프로젝트를 열어보라고 하더라고요. 그래서 삭제하고 새로 만든 프로젝트를 열어보니까 오류 없이 아주 잘 실행이 됩니다. 그렇게 혼자 배운 것들을 연습하다가 다시 강의 들으면서 작성했던 프로젝트를 열어보니 다 빨간색으로 나오네요.. 스프링에 관련된 거는 모두 빨간색으로 나오는거 같아요 사용자 폴더에 있던 .dradle 폴더를 지워서 이렇게 오류가 나오는 걸까요? 버전에 다른 프로젝트를 만들어서 충돌이 생긴 건지 어떤 이유인지 모르겠습니다. 기존 프로젝트 코드는 건들인게 하나도 없는데 왜 그런거죠? 아 그리고 강의 듣기 전에도 다른 책을 보면서 만든 프로젝트도 있는데 그 프로젝트를 열어보니 똑같이 빨간색으로 나오더라구요. 그 프로젝트도 버전이 3인가 그랬는데... 살려주세요 선생님!!