묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
DTO를 API마다 만들어야 하는건가요?
프로젝트를 할때도 그렇고, 이번 강의에서도 그렇고 API를 위해request, response 각각 DTO를 설정해주었습니다.그러면 API의 개수가 많아지는 경우에도 그에 따라 각각 요청,응답의 DTO를 만들면 너무 복잡해지지는 않을까 하는걱정이 있습니다. 그럼에도 불구하고 DTO를 API 마다 만들어야 하는건가요?
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
index.html때문에 빌드 실패한다는데 도와주세요
왜이럴까요..?index.html을 지워도 복구해도 절대 빌드가 안됩니다 ㅠㅠ
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
회원 서비스 테스트
코드 다 입력하고 실행했는데 MemberService memberService; ^ symbol: class MemberService location: class MemberServiceTest이런 오류가 납니다어떻게 해결해야 하나요?
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
빌드가 안돼요
여러가지 바꿔가면서 입력해봐도 다 안 돼요윈도우 사용중이에요
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
프로젝트 환경 변수 설정 에서 복사 붙여넣기 application-docker.yml
application-default.ymlapplication-docker.yml프로젝트 환경 변수 설정 에서 복사 붙여넣기 할때 들여쓰기 적용이 안되어. 일일이 적용했습니다.-windows-그리고 아래와 같이 추가 설명을 달아주셨으면 좋겠네요spring: # Spring 프레임워크 설정 jpa: # JPA (Java Persistence API) 설정 database: h2 # 사용할 데이터베이스로 H2를 지정 open-in-view: false # "Open EntityManager in View" 패턴 비활성화 show-sql: true # SQL 쿼리를 콘솔에 출력 hibernate: # Hibernate 관련 설정 ddl-auto: create # 데이터베이스 스키마를 자동으로 생성 properties: # 추가적인 Hibernate 속성 설정 hibernate: format_sql: false # SQL 쿼리를 포맷하지 않음 # default_batch_fetch_size: 10 # 주석 처리된 설정, 배치로 가져올 때 한 번에 가져올 개수 (사용되지 않음) datasource: # 데이터 소스 설정 url: jdbc:h2:mem:portfolio # H2 메모리 데이터베이스의 JDBC URL username: sa # 데이터베이스 사용자 이름 password: # 데이터베이스 비밀번호 (빈 값) driver-class-name: org.h2.Driver # H2 데이터베이스 드라이버 클래스 이름 h2: # H2 데이터베이스 관련 추가 설정 console: # H2 콘솔 설정 enabled: true # H2 콘솔을 활성화 path: /h2-console # H2 콘솔에 접근할 경로
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
프로젝트 생성 강의 듣고 있는데 원래 실행하는 시간이 오래걸리나요?
build and run using, run tests using을Gradle(default)로 하든IntelliJ IDEA로 바꾸든 실행은 되는데 작업이 종료가 안되고 계속 돌아갑니다.위에 오류는 너무 오래 걸려서 중간에 제가 종료하면 뜨는 오류 메세지입니다 5분 넘게 걸리는데 원래그런건지 모르겠습니다 ㅠㅠ실행도 한 번도 성공한 적도 없습니다제 노트북 사양이 나빠서 그런걸까요?
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
mysql connector ? 오류 ㅠㅠ
communications link failure 오류가 나는데 mysql 재설치를 몇 번해도 연결이 안되네요 어떻게 해결해야할까요..?
-
해결됨입문자를 위한 Spring Boot with Kotlin - 나만의 포트폴리오 사이트 만들기
프로그램 수정해서 다시 docker에 이미지를 올릴땐 내용처럼 이렇게 하면되나요??
안녕하세요. 이젠 기본적인 spring 기능은 이 강의로 많이 알게 되었습니다.감사합니다. 빨리 강좌 하나 더 내주세요.... 코틀린 & spring 강좌가 너무 없어서 강의 찾아 다니느것도 일이네요 ...====================================Docker로 프로젝트 빌드 하기 . 강좌중에 만약 프로그램 수정하면 아래 처럼 하면 되나요?step 1) Gradle에서 jar 파일을 다시 만든다. ...참고 ) 빌드중에 에러가 없어야함... test 코드에서도 에러가 없어야함step2) docker-compose.yml 파일 새로고침 한다.step3) Dockerfile을 재 실행한다.step4) 도커가 잘 올라갔는지 확인한다.프로그램 수정후엔 위 4개의 절차대로 진행하면 되나요??이걸로 회사의 개인 서버를 가지고 있는곳에 도커 깔고 동작 하면 서버의 기능으로 완벽할꺼 같은데 ....그리고 구글 클라우드에도 프로그램 수정하면 도커에서 push up hub 를 누르고 docker-compose.yml 누르면 되나요??버전 수정 안해줘도 되나요?추가 질문) 이건 뭐 제가 잘 모르고 좀 시간을 두고 확인해봐야 하는거라서 질문드리기 어렵지만 그래도 아시면 답변 부탁 드려용 ^^)))테스트 코드 작성중 아래처럼 DSL로 작성하는 경우를 봤는데 꽤나 직관적이고 편리하게 되어 있더라구요...아래 같은 테스트 코드 많이 사용하나요??비동기 방식에서만 사용하나요??테스트 코드 작성하는 방법이 꽤나 많아서 이걸 다 익혀야하는 생기네요 ㅠ.ㅠ감사합니다. 다음 강의 꼭 내주세요. ^^
-
해결됨실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
테스트 코드와 관련하여 질문이 있습니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.안녕하세요 강사님!테스트 코드와 관련하여 질문이 있습니다. 프로젝트를 해보면서 고민이 되었던 것 중 하나가 테스트 코드를 작성할 때 명확한 메서드명을 작성해야하는가에 대해서 고민이었습니다.@Dipslay로 어떤 테스트인지 명시를 하고 있음에도 메서드명이 명확한 것이 좋을까요?
-
해결됨spring boot actuator 파헤치기
다음 강의를 준비하신다면 음질좀 높여주실 수 있으신가요..?ㅠㅠㅠ
강의 내용에 대해 질문해 주세요에러가 날 경우 본인 코드가 있는 git 주소를 알려주거나 최대한 상세히 적어주세요
-
해결됨실전! 스프링 데이터 JPA
양방향 @OneToMany 에서의 단순 delete(Instance) 에 대해 질문있습니다.
안녕하세요! 정말 오랜만에 질문 올립니다. 다름이 아니라 아래와 같이 Parent, Child 가 있고 이 둘을 양방향으로 맺었을때@Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity public class Parent { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @OneToMany(mappedBy = "parent", cascade = CascadeType.PERSIST) private final Set<Child> children = new HashSet<>(); public Parent(String name) { this.name = name; } public void addChild(Child... childs) { for (Child c : childs) { c.addParent(this); children.add(c); } } } @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) @Entity public class Child { @Id @GeneratedValue(strategy = GenerationType.IDENTITY) private Long id; private String name; @ManyToOne(fetch = FetchType.LAZY) @JoinColumn(name = "parent_id", nullable = false) private Parent parent; public Child(String name) { this.name = name; } public void addParent(Parent parent) { this.parent = parent; } }아래와 같이 테스트코드를 짜면@AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE) @DataJpaTest(showSql = false) class ParentRepositoryTest { @Autowired ParentRepository parentRepository; @Autowired ChildRepository childRepository; @Rollback(false) @Test @DisplayName("delete, deleteAll, deleteAllInBatch 를 비교한다.") public void differenceBetweenDeleteAllAndDeleteAllInBatch2() { Parent parent1 = new Parent("부모 1"); Child child1 = new Child("자식 1"); Child child2 = new Child("자식 2"); Child child3 = new Child("자식 3"); parent1.addChild(child1, child2, child3); parentRepository.save(parent1); Parent parent = parentRepository.findAllWithChildren("부모 1").get(); parent.getChildren().remove(child1); childRepository.delete(child1); } }parent.getChildren().remove(child1); 의 존재 여부에 따라 delete 쿼리가 나갈지 말지 결정되더라구요.이거에 대해서 고민을 해봤습니다. 제가 내린 결론은"하나의 tx 에서 Parent 가 속한 Child 들 중 하나를 childRepository.delete(Child) 혹은 deleteAll() 을 통해 지우려할때, Parent 의 Child 의 컬렉션에서 지울 Child 를 먼저 remove 하여 부모 자식간의 연결관계를 끊어주는 작업이 선행되어야 한다. 그 이유는 삭제할 Child 를 repository 에서 지우기만 하면 Parent 에 남아있는 컬렉션에는 지워진 데이터가 카컬렉션에 남아있어 로직에 문제가 발생할 수 있기 때문이다. 그래서 Parent 에서 지울 Child 를 먼저 remove 를 사용하지 않으면 delete 쿼리가 나가지 않는 것이고, 먼저 remove 를 하면 delete 쿼리가 나가는 것이다"라고 결정지었습니다. 아무래도 JPA 에서 최고 권위자인 김영한강사님의 조언이 필요합니다. 감사합니다.(고아객체 제거인 orphanRemoval 은 일부러 사용하지 않았습니다. 순수 delete 에서만 그 원리를 알고싶습니다. 항상 무지성으로 querydsl 혹은 in 절로 지우기만해서 근본을 까먹은거같네요 ㅠㅠ)
-
미해결스프링 시큐리티 완전 정복 [6.x 개정판]
csrf Post 요청 시 에러
안녕하세요.csrf.http 파일로 /csrf post 방식에 헤더에 값을 넣어서 테스트 중인데요.강사님이 말씀해주신 방법으로 해도 테스트가 진행이 안되서 질문드립니다.login 페이지에 생성된 토큰 값을 요청 시에 같이 전달했는데 왜작동이 되지 않을까요??### GET request with a header GET http://localhost:8080 Content-Type: application/json ### POST request with a header POST http://localhost:8080/csrf Content-Type: application/json ### POST request with a header POST http://localhost:8080/csrf Content-Type: application/x-www-form-urlencoded _csrf = GQUnQECQsPrRDBd53iPaRAYfoKozqh0dZfg91MeDiOKw3OOtKjUQcHb00578aiNN6A7ufTEpjZMAyXswV85b4KSyutqB7IeY ### Send GET request with json body GET http://localhost:8080/csrfToken Content-Type: application/json위는 csrf.http 파일입니다.강사님은 요청이 성공적으로 되는데 저는 똑같이 로그인 페이지가 계속 나오더라구요..
-
미해결백엔드 개발을 위한 필수 강의 - 스프링 부트3
h2 console 뭔짓을 해봐도 안되네요,..
This application has no explicit mapping for /error, so you are seeing this as a fallback.404 뜹니다.. spring.application.name=sbbspring.h2.console.enabled=truespring.h2.console.path=/h2-consolespring.datasource.url=jdbc:h2:~/localspring.datasource.driverClassName=org.h2.Driverspring.datasource.username=saspring.datasource.password=application.properties 입니다.. 뭐가 문제일까요 ㅠ
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Failed to load ApplicationContext 오류
[질문 내용]h2 db랑 연결이 되지 않는 것 같은데어제 gradle에서 TRUE 설정을 뺐을 때는 작동이 잘 됐는데 오늘 다시 작동시켜보려 하니 작동이 안됩니다..MemberRepositoryTest 에서 run을 돌렸을 때 다음과 같은 오류가 발생합니다. 오류는 사진과 같고zip파일 드라이브에 첨부하겠습니다.https://drive.google.com/file/d/126dOVMwaCPYOSqD4f7XOC0BkCUqtONAK/view그리고 제가 노트북을 2대를 사용해서 깃으로 관리하고 있는데 그건 큰 관계 없겠죠..?답변 기다리겠습니다. 감사합니다.
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
Web server failed to start. Port 8080 was already in use.
이게 뭘까요? 사이트엔 Unauthorized 글자만 나타납니다인터넷에서 검색해서 포트종료도 시켜봤는데그게 안됩니다.. 도와주세요 ㅠㅠㅠ
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
FeignErrorDecoder.decode로 호출이 안될떄 확인해볼 부분이 있을까요??
강의해주신 거의 그대로 따라해보고 서칭도 좀 해봤는데, 원인 파악이 힘듭니다..서버 구동시 bean 생성도 되고 있는거 같은데, decode 메소드가 호출되지 않는 이유는 무엇일까요??
-
해결됨스프링 시큐리티 완전 정복 [6.x 개정판]
SecurityContextRepository / SecurityContextHolderFilter - 2 강의 질문 있습니다
13분 40초에 세션에서 Context 객체가 있는지 확인하고세션에 없어서 request 를 확인한다고 하셨는데, request 확인하는 부분을 건너뛰고 바로 AnonymousAuthenticationToken 을 만드는 부분으로 넘어가셨네요인증이 없는 상태에서 요청하면 SecurityContext를 찾을 때, reuqest는 확인하지 않고 세션만 확인하는걸까요 ?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Failed to load ApplicationContext 오류
[질문 내용]h2 db랑 연결이 되지 않는 것 같은데어제 gradle에서 TRUE 설정을 뺐을 때는 작동이 잘 됐는데 오늘 다시 작동시켜보려 하니 작동이 안됩니다.. 오류는10000자가 넘어가서 사진으로 첨부합니다.. zip파일 드라이브에 첨부하겠습니다.https://drive.google.com/file/d/126dOVMwaCPYOSqD4f7XOC0BkCUqtONAK/view
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
게이트웨이가 307 Redirect 를 자동으로 재요청하도록 설정할 수 있을까요?
연결된 서비스 중 307 응답을 주는 서비스가 있습니다. 이 때, 이 응답에 포함된 로케이션으로 자동으로 재요청하도록 설정할 수가 있을까요? Zuul 을 사용할 경우, 동일 요청에 대해 정상적으로 리다이렉트되어 최종적으로 200 이 응답되는데, SCG의 Flux 를 사용하니, 리다이렉트가 되지 않습니다. 찾아보니, webClient 에 구성할 수 있다고 하는데요, SCG에서 구성된 빈을 사용하지 않는 것 같기도 합니다. WebClient.builder() .clientConnector(new ReactorClientHttpConnector( HttpClient.create().followRedirect(true) ))게이트웨이가 307 Redirect 를 자동으로 재요청하도록 설정할 수 있을까요? 감사합니다.
-
해결됨Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
Eureka와 API gateway 관계에 관련해서 궁금한 것이 있습니다.
안녕하세요. 수업 잘 듣고 있습니다.굉장히 흥미롭게 수업을 듣던 도중 궁금한 것이 이것저것 생겨서 질문드립니다. 수업에서 좀 벗어난 이야기일 수도 있는데 찾아보니 잘 찾을 수가 없어서 질문 드립니다.(혹시 답변하기 힘드시면 안하셔도 괜찮습니다.)구조를 보니 API gateway는 서비스 ID만 알고있고, 해당 서비스의 실제 ip 주소와 포트 번호를 알기위해서는 Eureka에게 request를 요청해야하는 것 같습니다. 그렇다면 API gateway는 사용자 요청이 들어 올 때마다 매번 Eureka에게 물어보는 방식인가요? 이렇게 되면 통신 오버헤드가 상당이 클 것 같다는 생각이 들어서 질문드립니다.Eureka와 서비스들 간에는 지속적으로 heartbeat message나 서비스 정보 등을 교환하기위해 통신하는 것 같습니다. 혹시 이런 통신은 전부 HTTP 프로토콜을 통해서 이루어지는 것인가요? 혹은 다른 프로토콜을 사용하여 정보를 주고 받나요?