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 문의하기를 이용해주세요. 스스로 코드를 짠 뒤에 선생님의 답과 비교를 했는데 실행하는데 문제는 없으나 계속해서 답이 옳지 못하게 나옵니다. 계속 틀린부분을 찾으려 해봐도 보이지 않아 질문드립니다. 어디서 문제가 발생한거죠?ㅠㅠ
다름이 아니라 현재 강의를 redux 부분까지 들었는데, 현재까지 배운바에 따르면 redux를 중앙저장소로 하여 더미데이터를 생성하고 이를 각 컴포넌트에 뿌려주며 사용하고 있는 것으로 보입니다! 그런데 만약 백엔드 쪽을 공부해서 알고 있다면 굳이 더미데이터를 생성할 필요성이 없으니 redux가 필요하지 않나요? 아니면 백엔드, DB 분야를 알고 있다하더라도 빠른 프론트의 개발을 위해 Redux로 더미데이터를 생성해놓고 개발하는 편인가요? Redux와 백엔드 사이에 약간의 혼선이 생겨 질문드립니다!
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. 회원 저장소와 할인 정책은 바뀔 수 있기 때문에 역할과 구현체로 나뉘는게 이해가 되었는데 주문 서비스는 바뀔 일이 없어서(구현체가 하나라) 그냥 나누지 않고 하나로 구현해도 되지 않나요?
강의에서 class설정 시, class_net만 제외하고 class개수가 2개라고만 지정했습니다 이때, 90개의 class중 어느 것을 detect해달라고 말 안해도 알아서 가장 많이 검출되는 두 가지만 나타내는 건가요? 즉, 90개중 알아서 car와 swimming pool을 검출하는 건가요?
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.util.LinkedList; import java.util.Queue; public class Main { public static void main(String[] args) throws IOException { Main main = new Main(); BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String requiredSub = br.readLine(); String subjects = br.readLine(); System.out.println(main.solution2(requiredSub, subjects)); } private String solution2(String requiredSub, String subjects) { Queue<Character> queue = new LinkedList<>(); for (char x : requiredSub.toCharArray()) { queue.offer(x); } for (char sub : subjects.toCharArray()) { if (queue.contains(sub)) queue.poll(); } String result = queue.isEmpty() ? "YES" : "NO"; return result; } } 안녕하세요. 코딩채점에 문제가 있는 것 같습니다. 두번째 forEach문 내에 조건문에서 수업계획이 필수과목에 포함되어있는지만 검사하고, 순서는 따로 검사하지않아서 정답이 될 수 없습니다. 예시입력으로 CQA / CBDAAE 입력하면 필수과목인 Q가 수강계획에 없어서 NO로 나와야하지만 해당코드는 YES를 출력해주는 그냥 말이 안되는 코드인데, 정답채점을 해보니 정답으로 뜨더라고요.