묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
setter없이 생성메서드 생성하는 방법
안녕하세요 강사님, 서포터즈님들 JPA 실전까지 모두 완강하고 개인 프로젝트를 진행 중입니다. 강사님께서 강의 때 setter의 사용을 지양하라고 하셨는데, 생성메서드 생성 시 setter를 사용하지 않고 제가 짠 코드대로 해도 문제가 없을까요? --------- 생각해보니까 이것도 setter를 사용한거나 다름 없는 것 같은데, 생성메서드 생성할 때 setter없이 하는 방법이 있나요? @Id @GeneratedValue @Column(name = "fileId") private Long id; private String fileNm; private String path; private Long size; private String extension; private String fileType; @JoinColumn(name = "restaurantId") @OneToOne(fetch = FetchType.LAZY) private Restaurant restaurant; @JoinColumn(name = "menuId") @OneToOne(fetch = FetchType.LAZY) private Menu menu; //생성메서드 public static FileEntity createFile(FileEntity fileInfo) { FileEntity file = new FileEntity(); file.setFile(fileInfo.getFileNm(), fileInfo.getPath(), fileInfo.getSize(), fileInfo.getExtension(), fileInfo.getFileType()); return file; } public void setFile(String fileNm, String path, Long size, String extension, String fileType) { this.fileNm = fileNm; this.path = path; this.size = size; this.extension = extension; this.fileType = fileType; }
-
미해결실전! Querydsl
QueryDsl 메소드에 대한 질문있습니다.
이해를 돕기위해 코드 첨삭합니다. 대략적인 코드의 내용은 유저가 시험을 풀고 유저가 푼 문제를 긁어와서 그 문제들의 한 필드(Temporary) 업데이트 즉, 제출한 시험문제 전체를 업데이트하는 그런코드입니다. Service ------------------------------------------------------------------------------------------ @Transactional @Override public ExamMultiSubjectUpdateResponseDto updateExamTemporary(Long courseUserSeq,Long examSeq) { CourseUser courseUser = courseUserRepository.findById(courseUserSeq) .orElseThrow(() -> new RestException(HttpStatus.NOT_FOUND, "찾을 수 없는 유저-과정 입니다. courseUserSeq = " + courseUserSeq)); Exam exam = examRepository.findBySeq(examSeq) .orElseThrow(() -> new RestException(HttpStatus.NOT_FOUND, "일치하는 시험을 찾을 수 없습니다. examSeq=" + examSeq)); //유저가 시험보기를 누른 첫 스타트 시작시간 가져오기 // (객관식 개수가 0 일수도 있고 주관식개수가 0 일수도 있기때문에 2개의 메소드진행) timeCheckMultiple(courseUserSeq, exam); timeCheckSubjective(courseUserSeq, exam); //유저-과정에 등록된 유저가 객관식, 주관식에 모든 임시데이터를 가져온다. String tYn = "Y"; List<ExamMultipleChoiceResult> multiEntityList = examMultipleChoiceResultRepository.findAllByCourseUserSeqAndTemporaryYn(courseUserSeq,tYn); List<ExamSubjectiveResult> subjectEntityList = examSubjectiveResultRepository.findAllByCourseUserSeqAndTemporaryYn(courseUserSeq,tYn); //시험 테이블에 등록된 주관식 객관식 개수 Integer objCnt = exam.getObjCnt(); Integer subCnt = exam.getSubCnt(); log.info("해당과정을 듣는 유저가 입력한 객관식 = {} :: 해당과정을 듣는 유저가 입력한 등록한 주관식 = {}",multiEntityList.size(),subjectEntityList.size()); // 시험 테이블에 등록된 개수들과 유저가 입력한 개수의 조건 비교 if (multiEntityList.size() + subjectEntityList.size() == objCnt+subCnt){ ExamMultiSubjectUpdateResponseDto examMultiSubjectUpdateResponseDto = examRepository.updateTemporary(multiEntityList, subjectEntityList,courseUser); return examMultiSubjectUpdateResponseDto; } else if (!(multiEntityList.size() + subjectEntityList.size() > 0)){ throw new RestException(HttpStatus.BAD_REQUEST,"제출해야 할 주관식,객관식 데이터가 없습니다."); } else { throw new RestException(HttpStatus.BAD_REQUEST,"모든 객관식, 주관식에 답을 입력해주세요."); } } QueryDsl ---------------------------------------------------------------------------------------- @Override public ExamMultiSubjectUpdateResponseDto updateTemporary(List<ExamMultipleChoiceResult> multiEntityList, List<ExamSubjectiveResult> subjectEntityList, CourseUser courseUser) { //유저가 체크한 문제를 임시 상태(temporaryYn)에서 제출상태로 변경 Y 면 임시 저장상태 N 이면 제출한상태 long multi = queryFactory .update(qExamMultipleChoiceResult) .set(qExamMultipleChoiceResult.temporaryYn, "N") .where(qExamMultipleChoiceResult.in(multiEntityList)) .execute(); long subject = queryFactory .update(qExamSubjectiveResult) .set(qExamSubjectiveResult.temporaryYn, "N") .where(qExamSubjectiveResult.in(subjectEntityList)) .execute(); em.flush(); em.clear(); if (multi == 0 || subject == 0){ throw new RestException(HttpStatus.BAD_REQUEST,"시험 제출에 실패하였습니다."); } //Ip주소가 프록시나 로드밸런서를 통해 호출되는 경우 로드밸런서의 IP가 나온다 //이 경우를 방지하기 위해 X-Forwarded-For 값을 확인하고 없을 경우 getRemoteAddr()을 사용한다. HttpServletRequest req = ((ServletRequestAttributes)RequestContextHolder.currentRequestAttributes()).getRequest(); String ip = ClientsUtils.getRemoteIP(req); //유저 시험 채점 테이블 기본값 세팅 (유저가 시험 제출을하면 관리자가 어떤유저가 제출한건지 알기위함.) //유저가 이미 제출했던 시험이 있는지 검증 if (!examUserRepository.existsByCourseUserSeq(courseUser.getSeq())){ examUserRepository.save(new ExamUser(courseUser,0.0,null,"Y","N",null, LocalDateTime.now(),null,ip,null)); } else { throw new RestException(HttpStatus.NOT_FOUND,"이미 제출하셨던 시험이 있습니다."); } //위 em.flush(),em.clear() 로 인해 //ExamMultiSubjectUpdateResponseDto 에 업데이트한 쿼리가 담기지않아 새로 호출 List<ExamMultipleChoiceResult> reFindMulti = examMultipleChoiceResultRepository.findAllByCourseUserSeq(courseUser.getSeq()); List<ExamSubjectiveResult> reFindSubject = examSubjectiveResultRepository.findAllByCourseUserSeq(courseUser.getSeq()); return ExamMultiSubjectUpdateResponseDto.builder() .multiEntityList(reFindMulti) .subjectEntityList(reFindSubject) .build(); } 위 코드에서 제가 궁금한 점은 1. QueryDsl 메소드안에서 위처럼 examUserRepository(DI :: 의존성주입)를 써도되는지..혹은 서비스단에서 처리하는게 맞는지.. 2. 위 코드에서 지양해야 하는점이있는지.. 피드백주시면 감사하겠습니다..
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Valid 사용이유
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]안녕하세요 Valid 사용 이유에 대해 자세하게 이해하지 못했는데 , 프론트단에서 해당 형식에 맞지 않는 경우 제출이 불가능하도록 만들어주는 방법 외에 제출 후 형식에 맞지 않는다고 다시 화면으로 돌려주는 경우에 사용하면 되는 건가요? React 와 협업시에도 사용이 가능한가요?
-
미해결
스프링 부트 톰캣 로그 설정 질문
안녕하세요.! 톰캣의 스레드, 작업 큐의 갯수를 설정할 수 있다는 사실을 알게되어 이를 런타임에서 확인 해보고 싶은데 방법이 있을까요? server: port: 8081 tomcat: threads: max: 20 # 생성할 수 있는 thread의 총 개수 min-spare: 10 # 항상 활성화 되어있는(idle) thread의 개수 accept-count: 5 # 작업 큐의 사이즈 감사합니다.!
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Junit 테스트관련 질문을 드려요
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용] 안녕하세요 강의가 테스트가 중점은아니지만 강의에서는 mocking에대해 간단하게 언급하고 넘어가주셨는데,, 궁굼한게 조금 있어서 질문드립니다.ㅠ jUnit 테스트 작성시 Controller에 대해 작성할 수도있고, Service를 mocking할수도있고, service도 테스트하고.. 말씀하신 Entity에 비즈니스 로직도 테스트코드를 작성할 수 있을것 같습니다. 여러 테스트 코드를 짤수가 있는데 실무에서는 어디서부터 어디까지를 중점에 두고 작성하는지 궁굼합니다.. 저는 이강의를 보고 어플리케이션을 간단하게 작성하고있는데 Postman으로 하던 테스트를 Controller 테스트를 작성해서 통합테스트라고 하나요?? 그런식으로 작성하고있습니다. 무조건 mocking을해서 테스트를 작성하는게 올바른 방향인가요?? 단위테스트에 단위를 어떻게보면 좋을지 질문드려용,,, 감사합니다.
-
해결됨스프링 핵심 원리 - 고급편
강의 학습 중 공통(부가)기능 처리 방법에 대한 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 아니오2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요. 스프링 핵심원리 고급편에서 다루는 주요 내용인 핵심기능과 공통(부가)기능을 어떻게 나눌 것인가를 듣다보니 어느덧 AOP 챕터까지 다다르게 되었습니다. 강의를 통해 부가기능의 종류에는 크게 로깅, 트랜잭션처리, 접근권한확인이 있다고 생각이 들었습니다. 이것들은 앞에서 다룬 개발 패턴이나 AOP를 사용하지 않고도 유틸리티성 클래스를 통해 처리가 가능한 것으로도 알고 있지만 SOLID 원칙, 유지보수 효율 증대, 중복 코드 제거 등의 많은 이점을 가져다주기 때문에 AOP와 같은 기술을 사용하는 것은 이해를 했습니다. 그러나 Filter/HandlerInterceptor를 사용해서도 부가기능을 처리할 수 있을 것으로도 생각이 드는데요.(스프링 MVC 강의 학습을 통해 느낀 점입니다.) 저와 비슷한 생각을 가지고 계신 다른 분께서 질문한 글의 답변을 인용하자면 웹과 관련된 공통(부가)기능(특정 메뉴 접근권한 확인, 로그인 여부 확인 등)는 Filter/HandlerInterceptor를 통해 처리하고, 순수한 자바 코드를 통한 공통(부가)기능은 AOP를 이용하는 것이 맞는 것인지 궁금합니다. (참고 질문: https://www.inflearn.com/questions/495293) 물론 더 나아가 시큐리티를 알고 있다면 이런 질문 내용도 다른 방식으로 해결이 가능하겠지만, 만약, 시큐리티를 현재 모르고 있다라는 가정하에 위와 같이 실무에서도 처리하는게 맞는지 첨언 부탁드리겠습니다. 미리 답변 감사드립니다.
-
해결됨스프링 핵심 원리 - 기본편
빈 스코프 강의에서 '웹 관련 스코프(request, session, application)'의 사용에 대한 질문입니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예[질문 내용]안녕하세요, 빈 스코프 강의 02:20분 부터 '웹 관련 스코프'에 대해 설명하는 영상을 볼 수 있었습니다. request, session, application 각 스코프의 특징에 대해서 알게 되었지만 application 스코프의 실제 사용 방식에 질문하고자 글을 작성해 봅니다. request, session 스코프의 사용은 각각 요청과 응답, 로그인 상태 확인 등에 사용하는 것은 이전 MVC 강의와 현업에서의 코딩 등을 통해 알게 되었습니다. 다만, application 스코프에 대해서는 현업에서도 다루는 코드를 볼 수가 없어 자세히 언제 사용하는지 궁금증이 생기게 되었는데요. 아래 제가 생각하는 기능 구현(설계)시 application 스코프를 사용하는 것이 맞는지 첨언 부탁드립니다. =============================================== [기능 구현(설계)] 요구사항: 홈페이지를 개발하되, 홈페이지의 기본정보(홈페이지명, 고객센터 번호, 소재지, 서비스 이용약관 등)는 '관리자 페이지 > 사이트 기본환경설정' 메뉴를 통해 관리할 수 있게 한다. 구현(설계): 1. 데이터베이스(MySQL, Oracle 등)에서 '홈페이지 기본정보'와 관련된 테이블 설계 2. CRUD 프로그래밍 ㄴ 여기서 '홈페이지 기본정보'를 Read할 때에는 application 스코프에 그 정보를 담아둬서 모든 사용자들이 동일한 정보를 볼 수 있게 함. ** application 스코프에 담는 이유는? 애플리케이션이 종료되기 전까지 딱 한번 자료를 로딩시켜 놓으면 다음부터는 조회할 필요가 없기 때문. ** 우려되는 사항은? 혹시 application 스코프를 사용하는 것이 메모리 부담을 증진시키는지와 만약 '홈페이지 기본정보'가 수정되는 경우 기존에 application 스코프에 등록된 데이터는 어떻게 처리할 것인지...
-
미해결
gradle build 중 complieJava 멈춤현상
안녕하세요. ec2 로 인스턴스를 생성 후 git 에 있는 springboot 기반의 프로젝트를 clone 후 .jar 로 배포를 시키려던 참이였습니다. ec2에는 openjdk11, mysql-server, git 설치 후 clone을 진행하고, 프로젝트 내부에 gradlew 파일에 chmod로 777 권한을 주고 build 를 진행시켰습니다. 보통 전에 하던 프로젝트는 빌드시간이 1분채 걸리지 않았는데, build 중에 complieJava 에서 지금 45분째 넘어가지 않고, 서버가 멈춘듯 합니다. 어떤 문제를 살펴봐야 할까요?
-
미해결Kotlin으로 개발하는 Spring Boot Web MVC
build() 는 무엇인가요?
안녕하세요. 강의 잘 듣고 있습니다. 스프링 부터를 잘 모르다보니 질문이 생기네요.혹시 중간에 작성하셨던 return ResponseEntity.status(200).build<Any>() 여기서 build()는 어떤 동작인가요?
-
미해결스프링 시큐리티
본인글 삭제 아래 질문 이어서..
안녕하세요. 댓글로 다시 질문드렸는데 못보시는것 같아서 한번 더 질문드립니다. 인증을 받은 상태라서 로그인 유저 정보를 가져오는데는 어려움이 없습니다. 그럼 작성한 게시글의 작성자 id는 어떻게 가져오는가가 문제입니다. @PreAuthorize("isAuthenticated() and (( #board.createdBy == principal.userId ) or hasRole('ROLE_ADMIN'))") @RequestMapping( value = "/{id}", method = RequestMethod.PUT) public ResponseEntity<Message> updateUser(Board board, @Pathvariable String id){ messageService.updateMessage(id); return new ResponseEntity<Message>( new Message("수정성공"), HttpStatus.OK ); } 구글링을 해보니 바디에 삭제 혹은 수정할 글의 정보를 담아서 위 코드와 같이 요청을 보내더라구요.. 그럼 의미가 없는게 아닌가 싶습니다. 해당 글쓴이의 id(pk)를 제 id와 같게 담아서 보내면 삭제할수 있는 권한만 있으면 다른 글도 삭제 혹은 수정이 되지 않는가? 라는 생각이 들더라구요.. 제가 이상하게 생각하는건가요??ㅎㅎ;;
-
미해결스프링 시큐리티
spring sercurity를 통해서 특정 행위 허용
안녕하세요. 강사님 좋은 강의해주셔서 감사합니다. 제가 시큐리티에 jwt를 사용해서 rest api 를 개발중인데요.제가 강의를 아직 덜 보았지만 DB를 통해서 권한 관리하는 방법을 사용중입니다..아래 처럼 사용중입니다. 개발중 문제가 하나 있는데 게시판 같은 글을 삭제 할때 보통 해당 url과 method까지 추가해서 권한을 부여 하고있거든요. 예를 들어 /api/posts/*, DELETE를 추가하고 권한은 ROLE_ADMIN, 과 ROLE_USER를 설정 했습니다. 그럼 해당 url의 method는 권한을 체크하여 허용하거나 불허 합니다. 다만 이 글이 작성자 혹은 관리자만 삭제 할수 있어야 하는데 매번 컨트롤러에서 유저 체크하고 권한 체크하는 코드를 넣어줘야 하는가 궁금증이 생겨 찾아보니 인터셉터에서 url과 method 를 체크하는 벙법이 있었고 아래 처럼 다른 분의 질문에 이런식으로 예시를 들어주셨더라구요. 그런데 아래 메소드의 파라미터의 user는 로그인한 user객체일텐데 제가 지우거나 수정 해야 할 글의 생정자id는 어떻게 가져와 비교를 하시는건가요? @PeAuthorize에 있는걸로는 잘 이해가 안되더라구요. rest api로 개발 하다보니 url은 /api/posts/1 과 같이 게시글 id만 보내는 상황입니다., 답변 부탁드리겠습니다. 감사합니다. // 로그인한 사용자이고 본인인 경우나 혹은 전체 관리자인 경우 수정 메서드가 실행되고 그렇지 않을 경우엔// 403 에러 발생함@PreAuthorize("isAuthenticated() and (( #user.name == principal.name ) or hasRole('ROLE_ADMIN'))")@RequestMapping( value = "", method = RequestMethod.PUT)public ResponseEntity<Message> updateUser(User user ){ messageService.updateMessage( "메시지 저장"); return new ResponseEntity<Message>( new Message("수정성공"), HttpStatus.OK );}
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
회원 테스트 NullPointException 에러
강의자료로 제공해주신 소스코드를 모두 확인했는데도 계속 NullPointException 에러가 납니다. 한 가지 다른 점이 있다면 @RunWith를 @ExtendWith으로 변경했습니다. 이유를 알 수 있을까요? java.lang.NullPointerException at jpabook.jpashop.service.MemberServiceTest.회원가입(MemberServiceTest.java:30) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.base/java.lang.reflect.Method.invoke(Method.java:566) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100) at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:235) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54)
-
미해결
안녕하세요 spring boot 무료강의 보고 진행하는중인데 사이트에 연결할 수 없음이라고 뜨면서 실행이 안됩니다.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. spring boot 프로젝트 build하고 main 메소드 실행하면 console창에 아래와같이 뜨면서 http://localhost:8080/ 로 실행했을때 사이트에 연결할 수 없음이라고 뜹니다.. (settings 에서 jdk11 설정, gradle - IntelliJ IDEA 설정도 다 하였습니다)
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
intellij 실행버튼으로 서버 실행 vs gradlew 빌드 후 실행 차이점
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]안녕하세요, 스프링 입문 강의를 듣다가 빌드 관련 궁금한 점이 생겨서 질문합니다. 인텔리제이에서 실행 버튼을 눌러서 서버를 실행하는 것과 gradle 빌드를 해서 실행을 하는 것의 차이점이 궁금합니다. 또, 인텔리제이 settings > Build,Execution,Deployment에서 gradle로 실행할지 intellij로 실행할지 선택이 가능하던데 만약 여기서 gradle을 선택하면 인텔리제이 실행버튼을 누를 때 자동으로 gradle을 빌드하고 실행하는 건가요??
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
변경감지로 코드를 변경할 때
지금 예제에서는 Book만 수정을 하니 만약에 Book만 가지고 있는 멤버인 ISBN과 작가를 수정하려면 이렇게 케스팅 해주는 방법밖에 없을까요? updateItem 메소드 하나로 item을 상속 받는 구현체들인 Book, Album, Movie를 업데이트 하는 방법이 있는지 궁금하고 혹은 있더라도 그것 보다는 각각을 따로 Dto를 만들어서 updateBook 이런식으로 하는게 더 좋나요? 저는 일단 다운캐스팅으로 Dto 따로 안만들고 했습니다.
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
Spring boot 1.x.x 버전 프로젝트 생성하시는법 아시는가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/)[질문 내용]안녕하세요 김영한님 혹시 Spring boot 1.x.x 버전으로 프로젝트 생성하시는 법 아시나요? jdk 1.7 사용하는 프로젝트를 받았는데 초반부터 쉽지않네요...
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
db 설정 datasource 를 springboot application 시작후 사용자 입력
사용자에게 datasource 를 입력 받도록 할 수 있을까요? springboot application 이 시작하기 전에 db 관련 된 정보를 저장해 두는데 사용자에게 화면 UI 제공한 다음 입력 받아서 db 를 사용하도록 할 수 있나요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
Validation (JSR-303 validation with Hibernate validator) 모듈 추가
제목 그대로 스프링 부트 스타터 설정에서 저 모듈을 추가하라는 말씀이 어떻게 해야하는 건지 잘 모르겠네요..코드를 추가하는건가요? 혹시 스프링부트 스타터에서 추가하는건가요?
-
미해결스프링 기반 REST API 개발
추후 어떤 강좌를 봐야할지 추천좀 부탁드립니다.
현재 제가 본 강의는 아래와 같습니다. -스프링 기반 REST API 개발 -스프링 부트 개념과 활용 -더 자바 Java8 -더 자바, 코드를 조작하는 다양한 방법 -스프링 웹 MVC (절반정도..) 물론 모든 내용을 이해했다고 하긴 어렵고 코드를 따라가고 이해하려고 노력은 했습니다.... 제가 추후 프로젝트에서 Springboot, JPA, Web, RestAPI, Embbed Tomcat, TDD, Test코드(mvn test 구현) 이렇게 구성한 backend를 추진하고 싶습니다. JPA가 부족해서 강의를 따라가며 학습해야 할거 같은데, 지금 시점에 어떤 강의를 보는게 좋을까요?
-
미해결대세는 쿠버네티스 [Helm편]
강의 잘 듣고 있습니다.
먼저 올려주신 대세는 쿠버네티스를 수강하고 현재 이 헬름 강의를 수강하고 있습니다. 저는 react(javascript) 나 spring boot(java) 로 web 개발에 관심이 많습니다. 가능하시면 실제 배포를 예로 구성해주시면 실제 실무환경과 가깝게 구성하는 연습을 할수 있을것 같습니다. 간단하게 실제 어플리케이션을 배포하는 환경을 구성해 보아주시면 안될까요 ^^ 부탁드립니다.