[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 비슷한 질문과 답변을 많이 봤는데 한번 정리한 것을 확인 받고 싶습니다. 너무 많이 질문 받아 번거로우시겠지만 확인해주시면 감사합니다 스프링 빈의 이벤트 라이프사이클은 다음과 같았습니다 스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백(@PostConstruct) -> 사용 -> 소멸전 콜백 -> 스프링 종료 김영한님이 답변에서 정리해주신 말씀은 다음과 같습니다 @PostConstruct는 해당 빈 자체만 생성되었다고 가정하고 호출된다. 해당 빈에 관련된 AOP등을 포함한, 전체 스프링 애플리케이션 컨텍스트가 초기화 된 것을 의미하지는 않습니다. 트랜잭션을 처리하는 AOP등은 스프링의 후 처리기(post processer)가 완전히 동작을 끝내서, 스프링 애플리케이션 컨텍스트의 초기화가 완료되어야 적용된다. 이를 종합해서 일어나는 순서를 더 세분화 하면 다음과 같다고 생각합니다. 스프링 컨테이너 생성 -> 스프링 빈 생성 -> 의존관계 주입 -> 초기화 콜백(@PostConstruct) -> 스프링의 후처리기 적용(트랜잭션 AOP 등 프록시 객체 생성) -> 후 처리가 완료된 후 빈 등록 -> 스프링 애플리케이션 컨텍스트의 초기화가 완료 되어 어플리케이션 실행-> 사용 -> 소멸전 콜백 -> 스프링 종료 예제 코드에서 위처럼 hello 클래스 로그를 찍어보면 프록시 객체라고 나오는 이유는 해당 메서드가 실행되는 시점이 사용 시점에 해당하기 때문이다 전체적인 내용이 맞을까요?
case 5 만족해서 len-= 1; 로직을 통해 len 값이 4로 된거까지는 이해했는데 case 6 부터는 조건값이 만족하지않는데도 로직 내용대로 사칙연산이 적용되어서 최종값이 7이 되는게 맞나요? 아래 케이스로 내려가는건 맞는데 조건값이 일치해야 안에 내용이 실행 되지않나 싶어서요.
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 안녕하세요 강사님 강의 잘 듣고있습니다 감사합니다. 다름이 아니라 DP 강좌 네트워크 선 자르기 12분 부분에서 설명하신 대로면 dy[4]는 3짜리를 자르는 방법에 1 짜리를 자르는 방법 추가하고, 마지막 토막이 2짜리면 앞 부분도 2짜리니까 dy[4] = dy[3] + dy[1] + dy[2] + dy[2] 이렇게 되어야 하는거 아닌가요? 왜 dy[4]= dy[3] + dy[2]인지 잘 이해가 가지 않습니다.
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 스프링에서 @Transactional을 사용하게 되면 원본 클래스자체의 인스턴스와 클래스의 프록시 객체의 인스턴스 모두 힙 영역에 생성되는데, 프록시 객체만 스프링 컨테이너에 등록되고, 프록시 객체가 클래스 원본 인스턴스 참조를 가진다 라고 이해하면 될까요?
테스트는 성공을 했는데 ItemServiceApplication을 실행했는데 실행이 되질 않습니다... 제가 처음에 스프링부트는 3.x.x 버전을 사용하고 있는줄 알고 MyBatis 버전을 3.0.3으로 설정하고 "테스트 실행 도중" 오류가 생겼습니다. 그래서 막 build.gradle에서 이것저것 건드리다가 강사님께서 올려주신 코드를 그대로 실행한걸 깨닫고 MyBatis 버전을 2.2.0으로 낮추고 다시 build.gradle을 원래대로 돌리니 테스트 코드가 정상 실행됐는데 이제는 애플리케이션 실행이 되질 않습니다 ㅠㅠ 뭐가 문제인걸까요.. 오류 코드는 아래와 같이 뜹니다.. org.h2.jdbc.JdbcSQLNonTransientConnectionException: Connection is broken: "java.net.ConnectException: Connection refused: localhost" [90067-200] 제가 작성한 코드는 아래에 구글 드라이브 링크로 첨부하겠습니다. https://drive.google.com/file/d/1w5ys_ZxhtNr5-vgNq9-B_j1Y2CEkiktR/view?usp=sharing 그리고 에러 메시지는 전부 붙여넣기 하려고 했는데 본문 글자수가 초과되서 실을수가 없어요...ㅠㅠ 어떤게 문제인지 알려주시면 감사하겠습니다 ㅠㅠㅠ MyBatis에서 갑자기 문제가 생겼어요....
질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야 어떤 강좌에서 질문하셨는지 알 수 있습니다. 영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다. 이미 다른 누군가가 질문을 한 이력 이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다. 학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다. 제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다. 시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산) 질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요.
11:57 쯤 나와있는 예제 에서 char lower = ‘a' 는 a라는 문자를 문자형태로 lower에 입력한다 로 이해했습니다. char upper = (char)(lower -32) 는 lower-32의 문자값을 upper에 입력한다. 로 이해했습니다. lower-32에서 왜 lower은 숫자 97로 대입해서 괄호를 풀어야 하나요? 위에서 a로 입력된 게 아닌가요? (char) 과 같이 괄호를 써주는 이유가 뭔가요? char upper와 같이 띄어쓰기로 구분을 안해주는 건가요? 17:25 예제 관련하여 printf("%s\n“, p+1) 질문입니다. 문장을 출력할땐 널값을 만날때까지 출력이므로 KOREA 로 나오는건 이해가 갑니다. p+1의 경우 어떻게해석해야하나요. ? 문장의 시작점을 한칸뒤로가서 잡고 출력하라..로 이해해야하나요? 아직 선언, 변수 등 표현이 익숙치않아 질문에서 사용한 표현이 강사님께서 사용한 표현과 다를 수 있습니다...양해 부탁드립니다.
안녕하세요 강사님. 강사님의 강의를 토대로 kaggle, dacon에서 제공하는 데이터를 가지고 분석을 하면서 궁금한 점이 생겼습니다. 데이터를 예측할 때 가장 좋은 모델을 비교를 하지 않고 선택할 수 있는 방법이 있을까요? 예를 들어 분류에서는 boosting 알고리즘에서도 XGBoost, LightGBM, CatBoost 등 여러 모델이 있는데 이 중에서 가장 좋은 모델 즉, 해당 데이터 셋에서 가장 적절한 모델을 찾을 수 있는 방법이 있을까요?? 데이터의 크기가 현재는 모든 모델을 사용하면서 성능을 비교할 수 있는 크기지만, 나중에는 매우 많은 데이터를 다루게 된다면 비교하기에 어려울 것 같다는 생각이 들어서 이렇게 질문을 남깁니다.
안녕하세요, 강의를 듣고 계신 여러분! 여러분의 학습을 돕기 위해 질문 안내를 드리고자 합니다. 1. chatGPT를 이용해보기 단순한 의문은 chatGPT를 이용해도 해답을 찾을 수 있는 경우가 종종 있습니다! 2. 강의의 어떤 부분에 대한 질문이고, 어떤 부분이 궁금한지 명확히 알려주세요! 강의의 어느 파트에서 의문을 느끼고, 어떤 부분이 궁금한지 를 명확히 제시해 주시면 답변에 도움이 됩니다! 자신은 어떻게 이해했는지 또한 적어주면 좋습니다! ex) 섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의 에서 DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해 했습니다. 그러면 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요? 어느 파트 섹션5의 '그래프 순회 (DFS & BFS) [개념]' 강의 자신은 어떻게 이해했는지 DFS와 BFS 모두 그래프의 모든 노드를 탐색하는 알고리즘이라고 하셨고 시간 복잡도 또한 똑같다고 이해 어떤 부분이 궁금한지 DFS와 BFS 중에서 어떤 알고리즘이 더 효율적인지 구별하는 것은 의미가 없는 것일까요? 일단, 강의 내용에서 약간 벗어난 질문이긴 합니다. 백준 11054번 문제를 먼저 풀었는데, 선택하거나 선택하지 않았을 경우를 분리해서 dp1과 dp2를 튜플 쌍으로 갱신해주었는데요, 근데 딱히 필요가 없는데, 하던 대로 하게 된 것 같아서요,, 그래서, 질문은 `구현 없이 생각만으로 타당성을 따져보는 것이 엄밀하고 구체적으로 따져지지 않다보니 생각이 뭔가 추상적이고 편하거나 해오던 방식에서 벗어나지 못하는 것 같습니다. 구체성 있게 따져보는 방법과 정리에 대한 조언 부탁 드려도 될까요??`입니다. 항상 답변 감사합니다. 아래는 참고 코드입니다. #boj11054 import sys input = lambda : sys.stdin.readline().rstrip() n = int(input()) arr = list(map(int, input().split())) increase = [[0, 0] for _ in range(n)] decrease = [[0, 0] for _ in range(n)] total = [0 for _ in range(n)] for i in range(n): for j in range(i): if arr[j] < arr[i]: increase[i][0] = max(increase[i][0], increase[j][0] + 1) increase[i][1] = max(increase[j][0], increase[j][1]) for i in range(n, -1, -1): for j in range(n - 1, i, -1): if arr[i] > arr[j]: decrease[i][0] = max(decrease[i][0], decrease[j][0] + 1) decrease[i][1] = max(decrease[j][0], decrease[j][1]) for i in range(n): total[i] = max(increase[i][0], increase[i][1]) + max(decrease[i][0], decrease[i][1]) print(max(total) + 1)