해당 질문에 대한 답변에 대한 상세 질문 드립니다. 이전질문 https://www.inflearn.com/questions/255380 이전질문 답변 안녕하세요. Mincheol Ji님 전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요. 추가로 다음 내용도 코멘트 부탁드립니다. 1. 실행 방법을 알려주세요. 2. 어떻게 문제를 확인할 수 있는지 자세한 설명을 남겨주세요. 감사합니다. ------------------------------------------------------------------------------------------------ https://drive.google.com/file/d/1UzfBJvvymO-zxou_Ue3SKcLka_i933aZ/view?usp=sharing 샘플 프로젝트를 작성하여 만들었습니다. 1. 해당 스프링 부트를 싱행하여 localhost:8080/save rest api를 통해 데이터가 입력됩니다. 2. localhost:8080/select rest api를 통해 동록된 팀 & 멤버 정보를 조회합니다. 해당 문제점 List<Team> teams = teamRepository.findAll(); 위의 코드를 통해 team을 쿼리하여 팀 객체에 있는 맴버 객체를 가져올때 batch fetch size 옵션을 통하여 in쿼리를 통해 member쿼리로 member 정보를 가지고 옵니다. 여기까지는 문제가 없으나 member에 대한 in쿼리가 실행되고 member의 team에 대한 쿼리가 각각 실행되는 문제가 있습니다. @ManyToOne(fetch = FetchType.LAZY, optional = false, cascade = CascadeType.ALL) @JoinColumn(name = "TEAM_ID", referencedColumnName = "TEAM_ID", insertable = false, updatable = false) private Team team; member 엔티티에서 조인 컬럼이 pk가 아닌 컬럼과 조인을 하여 양방향을 해주었을때 이러한 문제가 나타나고 있습니다. pk가 아닌 컬럼과 조인을 해야하는 상황이 있는데 어떻게 해야할까요?
1. transaction_date를 string으로 하면 필터링할 때는 어떻게 하나요?? 예를 들어 2021-07-25 저장되어있으면 transaction_date >= "2021-07-01" and transactino_date <= "2021-08-01" 이렇게 하나요? 2. dynamodb 보면 유닛에 대해 가격을 측정한다고 되어있던데, 정확히 읽기와 쓰기 유닛이 무엇을 뜻하는건지 알려주실 수 있을까요?? 감사합니다.
안녕하세요! 강사님! 교재로 공부하다가 인강도 있다고 들어서 요번에 수강하게 된 학생입니다! 다름이 아니라 공부하면서 랜덤포레스트 회귀 모델을 한번 설계해보고 있는데요. 모델을 학습하고 예측한 후에 평가하는 과정에서 R2(결정계수)가 너무 큰 음수가 나와서 이게 무엇을 의미하는지 또 어떠한 점들이 잘못됐는지 궁금하여 이렇게 질문을 남깁니다. RMSE와 R2 결과 사진: 궁금한 점으로는 1. 회귀 모델에서 R2가 매우 큰 음수로 나온다는 것은 무슨 의미인가요? 2. 사이킷런에서 랜덤포레스트회귀 관련 함수중에 score함수도 R2를 계산해주는 함수인거 같던데 metrics의 r2_score 함수와 같은 기능을 하는건가요? 같다는 전제하에 두 함수를 사용해봤는데 위 사진처럼 값이 너무 다르게 나와서 무엇이 잘 못 됐는지 궁금합니다.. ㅠㅠ 3. 마지막으로 랜덤포레스트 회귀 score 함수를 잘 못 사용한거라면 혹시 입력한 매개 변수를 잘못 입력한건지 궁금합니다.. 다음 사진과 같이 X_test, y_test로 설정한것이 맞게 한건가요..? 항상 좋은 강의 들려주셔서 감사합니다..! 답변 부탁 드립니다 ㅠㅠ!!
DB에 role 저장시에는 ROLE_USER, ROLE_ADMIN 이렇게 저장했고, @PreAuthorize annotation을 사용할 땐 그냥 @PreAuthorize("hasAnyRole('USER', 'ADMIN')") 이렇게 ROLE_을 안붙이고 USER, ADMIN만 적어도 상관 없는 건가요? 아니면 @PreAuthorize("hasAnyRole('ROLE_USER', 'ROLE_ADMIN')") 이렇게 적어도 상관 없는건가요? 감사합니다!
강의에서 "뷰 어플리케이션이 구동되었을 때 브라우저 저장소를 확인한다. localstorage에 token이 있는지 없는지 체크한다." 라고 말씀해주셨습니다. 그래서 하단의 코드를 보시면, const store = new Vuex.Store({ ... }); const { token } = localStorage; store.commit("LOGIN", token); export default store; store라는 Vuex의 저장소 컨테이너를 선언해주었고, 밑에 localStorage에서 token을 불러왔습니다. 그리고 store의 commit 메소드를 이용하여 LOGIN mutations에 token을 전달하였죠. 제가 궁금한 건 1. 상태의 저장소를 담당하는 Vuex store에서 위와 같은 로직을 넣은 이유입니다. 쓸데 없는 질문일 수도 있지만 export default store; 전 저기에 선언을 해주면 Vuex의 store를 이용(e.g., state.isAddBoard, commit, ...)하는 모든 컴포넌트는 항상 localStorage에서 token을 받아 LOGIN mutations에게 전달하는 건가(?)라는 궁금증이 떠올랐습니다. 여기 챕터와는 무관하지만 아래 코드에 대해 질문이 있습니다. export const setAuthInHeader = token => { axios.defaults.headers.common["Authorization"] = token ? `Bearer ${token}` : null; }; const { token } = localStorage; if (token) setAuthInHeader(token); 답변을 찾아보는 도중 강사님께서 브라우져를 새로고침하면 메모리에 있는 토큰 정보가 초기화 되기 때문에 위의 코드를 넣어주셨다 하였습니다. 그렇다면 setAuthInHeader라는 함수안의 axios.defaults.headers.common이라는 함수(?)를 설정하고 아래의 코드 처럼 setAuthInHeader(token)을 선언해주면, 밑에 있는 auth의 login request api, board의 fetch, create request api를 사용할 때 자동으로 axios 헤더에 토큰을 장착하여 보내지게 되는 것인가요?
안녕하세요. 강의 열심히 잘 듣고있습니다. 스프링입문편 다 듣고 스프링기본 반정도 수강했는데 처음 들어서는 이해가 잘 안되다보니 한강의 듣고 강의 내용 복기하고 또 다음 강의듣고 내용 복기하고 이런 식으로 반복이 되니 강의 듣는 시간이 2~3배 길어지게 되었습니다. 그래서 새롭게 계획을 세워봤는데 일단 강의를 들으며 모르는 부분은 체크하고 넘어간 후 완강을 한 다음에 모르는 부분을 공부하고 책을 읽고 다시 강의를 들어보는거로 계획을 세웠습니다 혹시 영한님께서 추천해주시는 다른 공부 방법이 있을까요? 사람마다 맞는 방식이 다르다고 하지만 그래도 저보다 선배님으로써 가장 효율적인 방법을 알고싶습니다! 책은 토비의 스프링3.1 , 이것이 자바다, 이펙티브 자바 이렇게 3권 읽고있습니다.
#include <iostream> #include <algorithm> #include <queue> #include <stack> using namespace std; int arr[30][30]; int xx[8] = {0,1,1,1,0,-1,-1,-1}; int yy[8] = {-1,-1,0,1,1,1,0,-1}; struct LOC{ int x; int y; LOC(int a, int b){ x = a; y = b; } }; int main() { int n,cnt = 0; scanf("%d",&n); queue<LOC> q; for(int i = 1; i <= n; i++){ for(int j = 1; j <= n; j++){ scanf("%d",&arr[i][j]); // 지도 만들기 } } for(int i = 1; i <= n; i++){ for(int j = 1; j<= n; j++){ if(arr[i][j] == 1) { q.push(LOC(i,j)); arr[i][j] = 0; while(!q.empty()){ LOC tmp = q.front(); q.pop(); int x1 = tmp.x; int y1 = tmp.y; for(int k = 0; k < 8; k++){ int x2 = x1 + xx[k]; int y2 = y2 + yy[k]; if(arr[x2][y2] == 1){ q.push(LOC(x2,y2)); arr[x2][y2] = 0; } } } cnt++; } } } printf("%d",cnt); return 0; } - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 스스로 코드를 짠 뒤에 선생님의 답과 비교를 했는데 실행하는데 문제는 없으나 계속해서 답이 옳지 못하게 나옵니다. 계속 틀린부분을 찾으려 해봐도 보이지 않아 질문드립니다. 어디서 문제가 발생한거죠?ㅠㅠ