평소에는 바로 insert , delete 됐는데 등록 버튼을 눌러도 한참 기다리다가 갑자기 timeout에러가 뜨네요ㅜ 그래서 테이블 자체를 drop하려고 해도 sql의 status창에 started 라고 뜨고 succeed나 failed도 안뜨구요..ㅠ어떻게하면 좋을까요..
안녕하세요! 질문 좀 드리려고 합니다 엔티티 매니저 프록시는 프록시를 싱글톤으로 주입해서 동시성 문제를 해결하고 실제 엔티티 매니저 인스턴스를 ThreadLocal로 관리하는 역할 정도로 생각해도 괜찮을까요? 추가적으로 실제 엔티티 매니저는 @Transactional을 사용하면 JpaTransactionManager에서 생성이 되는데 @Transactional을 사용하지 않으면 처음 엔티티 매니저를 사용할 때 생성이 되나요?
안녕하세요. 큰돌님 강의 잘 보고있습니다. import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.Arrays; public class Main { static int[][] board; static boolean[][] visited; static int[] dy = {-1, 0, 1, 0}; static int[] dx = {0, 1, 0, -1}; static int yLen; static int xLen; static int cnt; public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(br.readLine()); StringBuilder sb = new StringBuilder(); while (n-- > 0) { int[] given = Arrays.stream(br.readLine().split(" ")).mapToInt(Integer::parseInt).toArray(); if (given[2] == 1) { sb.append(1).append(System.lineSeparator()); continue; } board = new int[given[0]][given[1]]; visited = new boolean[given[0]][given[1]]; yLen = given[0]; xLen = given[1]; for (int i = 0; i < given[2]; i++) { String[] numStr = br.readLine().split(" "); int y = Integer.parseInt(numStr[0]); int x = Integer.parseInt(numStr[1]); board[y][x] = 1; } for (int i = 0; i < yLen; i++) { for (int j = 0; j < xLen; j++) { if (!visited[i][j] && board[i][j] == 1) { dfs(i, j); cnt++; } } } sb.append(cnt).append(System.lineSeparator()); } System.out.print(sb.substring(0, sb.length() - 1)); } public static void dfs(int y, int x) { visited[y][x] = true; for (int i = 0; i < 4; i++) { int ny = y + dy[i]; int nx = x + dx[i]; if (ny < 0 || ny >= yLen || nx < 0 || nx >= xLen) continue; if (visited[ny][nx] || board[ny][nx] == 0) continue; dfs(ny, nx); } } } 위 코드를 실행하면 12%, ArrayIndexOutOfBounds가 발생하는데 어떤 부분인지 알 수 있을까요?
안녕하십니까 강사님. 좋은 강의 정말 감사합니다. 이번에 강사님께 강의를 듣고 현업에 적용하는 도중 궁금한 사항이 있어 문의하게 되었습니다. 저희는 현재 DDD 를 적용하려고 합니다. DDD 에서는 애그리거트끼리의 관계를 맵핑하는 것을 지양하는 것으로 알고 있습니다. 따라서 저희는 ERD 기준으로 도메인을 설계해보니 실제 나온 도메인을 보면 테이블이 전부 도메인 클래스가 되었고 서로간의 관계를 코딩으로 맺는 부분 (@ManyToOne 등)이 존재 하지 않습니다. 현업에서도 ERD 를 기준으로 도메인 클래스를 나누면 테이블 당 하나의 애그리거트가 나오는 것이 보편적인 사항일까요? DDD 로 개발하다보면 도메인 클래스에 관계를 맺는 부분이 없는게 보편적일까요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (에) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요, 강의를 듣고 혼자 따로 생각해보다가 의문점이 들어 질문드립니다. 컴포넌트 스캔과 자동 의존관계 설정 강의의 6분 40초대에서 설명하시는 내용중 Service의 생성자에 의해 의존관계가 형성된다 설명해주셨습니다. 저는 생성자가 의존관계를 형성해주는 것이 아니라 import를 통해 Service 객체가 Controller 객체안에 포함이 되어 의존관계가 되는 것이 아닌가 하는 의문점에 질문 드립니다. 아니라면 Service를 import를 왜 하는 건지 잘 모르겠습니다.
안녕하세요 먼저 강사님께서 보여주신 예외처리 흐름 이미지를 보고 ExceptionHandlerrExceptionResolver 는 handler를 통해 올라온 예외만 처리할 수 있다고 이해하였습니다.(호출 주체가 DispatcherServlet이기 때문) 질문은 아래와 같습니다. 등록된 ExceptionResolver 들이가 handler에서 올라온 예외에 대해서만 처리 가능한지? 아니면 DispatcherServlet내부에서 발생하는 에러 전체에 대해 포괄적으로 처리해주는지 @ControllerAdvice에 선언된 @ExceptionHandler도 ExceptionHandlerrExceptionResolver 가 처리하는가? controller에 선언된 @ExceptionHandler에 대한 설명은 해주셨는데, @ControllerAdvice에 선언된 @ExceptionHandler의 처리 흐름은 설명을 안 해주셨네요. @ControllerAdvice의 처리 흐름은 고급편 AOP부분을 이해해야할까요? 1번이 맞다면 결국 DispatcherServlet내에서 발생하지 않은 예외는 @ControllerAdvice에 선언된 @ExceptionHandler가 실행되지 않는가? ex) DispatcherServlet이 호출되기 전인 Spring Security filter단계에서 Service레이어 코드를 호출하고 예외가 발생한 경우 -> 이 경우 논리대로라면 예외가 발생하더라도 ExceptionHandler가 호출되지 않을 것 같은데 맞나요?
안녕하세요,선생님 습하고 더운 여름 몸 건강히 계시길 바랍니다. 강의를 듣는 도중 궁금한 부분이 생겼습니다. DIP와 IoC가 다르다고 말씀하신 부분이, DIP가 의존성 주입을 역전함으로써 제어의 흐름을 바꾸지만 IoC가 의존성을 주입해주는 것은 아니어서 그렇다고 이해되는데 제대로 이해한 게 맞을까요? ㅜㅜ 또, Open-Closed 법칙을 설명해주시는 1:32초 부분에 수정에는 열려있어야 한다는 말씀을 하셨는데 수정 시 많은 메소드 혹은 클래스를 수정해야 하는 경우가 수정에 열려있는 것이 아닌지요 ㅜㅜ... 제가 잘 모르다보니 헷갈려서 질문드립니다!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 1. assertThrows(obj1, obj2) obj1,2의 파라미트의미 2. IllegalStateException.class의 의미가 뭔지 궁금합니다. IllegalStateException 찾아보니깐 또 클래스이더라고요!
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 안녕하세요, 프론트컨트롤러를 도입하게 되면서 Servlet Container에는 어떤것이 담기게되는지 의문이 들어 질문을 남깁니다. 기존 ServletMVC 패턴을 사용할 때는 각 URL 마다 Servlet을 구현하면서, 구현한 Servlet들이 Servlet Container에 싱글톤 패턴으로 담기고, 쓰레드들이 사용하는 것 으로 이해했습니다. 그런데 FrontController를 도입하게 되면서 각 URL 에 맵핑되던 Servlet들이 전부 Controller로 변하게 되고, FrontController만 Servlet으로 남게된 것으로 이해했는데 이게 맞는 설명일까요..? 또 Controller로 변하게된 컨트롤러들은 @Controller 어노테이션을 통해 스프링 빈으로 관리되는 것으로 이해했는데, 이러면 Servlet Container 에는 FrontController를 구현한 Dispatcherservlet 만 들어있고 나머지 Controller는 스프링 컨테이너에 들어가는게 맞을까요? 처음 접하는 개념이어서 뒤죽박죽 섞인 것 같은데,, 답변 주시면 감사하겠습니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] //Header 모든 정보 private void printHeaders(HttpServletRequest request) { System.out.println("--- Headers - start ---"); /* Enumeration<String> headerNames = request.getHeaderNames(); while (headerNames.hasMoreElements()) { String headerName = headerNames.nextElement(); System.out.println(headerName + ": " + headerName); } */ request.getHeaderNames().asIterator() .forEachRemaining(headerName -> System.out.println(headerName + ": " + headerName)); 의 결과 내용이 다음과 같습니다. --- Headers - start --- content-type: content-type user-agent: user-agent accept: accept postman-token: postman-token host: host accept-encoding: accept-encoding connection: connection content-length: content-length --- Headers - end --- 실제 값이 나오는 것이 아닌, 필드명을 그대로 찍습니다. 강의내용에서도 그렇고 제공해주신 코드로 돌려봐도 위와 같이 나옵니다. 확인 부탁드리겠습니다.
sqliteBrowser 사용하는 수업에서 db.sqlite3를 열려고 하니, database is locked 라는 메시지가 뜹니다. 그래서 ChatGPT나 Bard... Googling을 이용해봤지만, 저에게 해당될만한 내용이 없네요. 혹시 몰라 재부팅도 해봤습니다. 이거 DB부분만 지웠다가 다시 까는 방법이 있을까요? (makemigrations, migrate 부분)
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요 글이 갑자기 날라가서 한번더 남깁니다 jpa 임포트 후에 테스트코드에있는 junit, assertj, test 관련된것들이 임포트가 싹 날아가고 그다음부터 임포트도안되는데 어떻게해야할까요
========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 강의를 수강하던 중 강사님이 하라는데로 build.gradle 에 implementation 'org.springframework.boot:spring-boot-starter-jdbc' runtimeOnly 'com.h2database:h2' 도 추가하고 gradle도 다시 시작해보고 프로젝트 닫았다가 File -> Open -> build.gradle 선택 -> Open as Project 했는데도 여전히 Cannot resolve class or package 'h2' Cannot resolve class 'Driver' 라는 오류가 뜨는데 어떻게 해야 하나요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 안녕하세요 수업 잘 듣고있습니다 다른게아니라 지금 assert, junit, test 임포트한것들에 다 오류가납니다 그게 jpa를 gradle에 추가하고나서부터 오류가 쫙나는데 어떻게 해야할까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 네 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 네 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 네 [질문 내용] intellij console 로그 창이 없는데 어떻게 보나요? intellij community Edition 버전으로 다운해서 사용중입니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] Hello 서블릿 강의 초반에 아래의 내용을 작성하고, public class HelloServlet extends HttpServlet { @Override protected void service(HttpServletRequest req, HttpServletResponse resp) throws ServletException, IOException { System.out.println("HelloServlet.service"); } } chrome 브라우저에서 " localhost:8080/hello"으로 실행시키면 "HelloServlet.service" 이 2번 출력됩니다. 그런데 Edge에서 실행시키면 1번 출력됩니다. 무엇이 잘못되었는 지 알려주시면 감사하겠습니다...
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] IntelliJ Ultimate Edition 을 사용하는데요. IntelliJ 는 html 에서 Thymeleaf 자동완성 기능이 없나요? Thymeleaf Plugin 은 설치했습니다.
안녕하세요. 프로젝트 진행 중 궁금한 부분이 생겨 질문 드립니다. 클라이언트 요청 데이터를 @RequestBody 등으로 DTO 클래스에 매핑하여 사용할 때 DTO 클래스를 각 요청 유형( 생성, 수정, 삭제, 기타, ... )마다 핏하게 생성하는 게 좋은지, 하나의 DTO 클래스에 입력 받은 후 필요한 것만 뽑아 사용하는 것이 좋은지 질문 드립니다. 저는 각 요청 유형마다 핏하게 생성한 후 알맞은 유효성 검사를 적용하는 것이 코드 파악 등 유지보수 관점에서 좋다 생각했습니다. 다만 다른 개발자 분께서 요청마다 DTO를 생성하면 클래스가 너무 많아진다는 의견을 주셔서 고민입니다. 저도 느꼈던 부분이기도 했구요. 영한님 혹은 다른 서포터즈 분들은 어떤 방법을 선호하시나요? 좋은 방법이 있다면 추천부탁드립니다.