안녕하세요! 강의를 듣다가 헷갈려서 질문드립니다. 일단 스프링 부트 2.5.4 최신 버전으로 시큐리티 의존성 추가하여 테스트 하였습니다. 동시 세션 제어에서 두 가지 정책을 디버깅 모드에서 코드의 흐름을 테스트 하였는데요. 이전 사용자 세션 만료 혹은 현재 사용자 인증 실패 두 가지 모두 테스트 하였을때요. 일단 첫 번째 사용자가 인증을 받은 상태에서, 두 번째 사용자가 인증을 시도하는 시점에 필터의 실행 흐름을 제가 브레이크 포인트를 사용해서 확인하여 보았습니다. 이 때 SessionManagementFilter 에서 이전 사용자 세션 만료 또는 현재 사용자 인증실패가 동작하지 않구요. 인증 필터인 UsernamePasswordAuthenticationFilter 의 doFilter 메서드(코드는 부모 클래스인 AbstractAuthenticationProcessingFilter에 정의되어 있습니다.)안에서 sessionStrategy 참조 값(CompositeSessionAuthenticationStrategy 객체)의 onAuthentication 메서드를 통해서 처리합니다. 이 때 4가지 전략이 순차적으로 실행되는 것 같습니다. (ConcurrentSessionControlAuthenticationStrategy, ChangeSessionIdAuthenticationStrategy, RegisterSessionAuthenticationStrategy, CsrfAuthenticationStrategy) 강의에서는 SessionManagementFilter에서 이전 사용자 만료 또는 현재 사용자 인증실패를 처리하는 것으로 이해하였는데요. 실제 동작을 시뮬레이션 해보니 인증 필터인 UsernamePasswordAuthenticationFilter 에서 동작하는 것 같아서요. 제가 잘못 이해한걸까요? 아니면 버전이 달라서 코드가 변경된걸까요? 아니면 SessionManagementFilter 가 동작하는 조건이 다른걸까요? 조언 부탁드립니다. 감사합니다.
1회 1번 공통 문자열 문제에서 N개의 모든 문자열에서 같은 부분 문자열을 가지고 있다는 설명이 없어서 아래와 같이 unordered_map으로 어렵게 풀이하였습니다. 출제 의도에 맞게 N개의 모든 문자열에서 같은 부분 문자열이 있다고 적혀있으면 더 좋을 것 같아요! #include <iostream> #include <string> #include <unordered_map> using namespace std; int main() { ios_base::sync_with_stdio(false); cin.tie(NULL); freopen("input.txt", "rt", stdin); unordered_map<string, int> uM; string str, answer; int t, max = 0; cin >> t; while (t--) { cin >> str; string temp; for (int i = 0; i < str.size(); i++) { temp += str[i]; uM[temp]++; } } for (auto iter = uM.begin(); iter != uM.end(); iter++) { if (max < iter->second) max = iter->second; } for (auto iter = uM.begin(); iter != uM.end(); iter++) { if (iter->second == max && (answer.size() < (iter->first).size())) answer = iter->first; } cout << answer; return 0; }
보안 단계 article이 이전 수업 (mySQL실습) 과정에 비해 많이 바뀌어있습니다. 코드를 따라 치니 article에 Fatal error : Uncaught TypeError: mysqli_fetch_assoc(): Argument #1 ($result) must be of type mysqli_result, bool given 오류가 발생하네요 https://opentutorials.org/ 웹애플리케이션 만들기에 관계형 데이터베이스 이론/ 실습 수업이 인프런엔 올라와있지 않은데 인프런에서 누락된 걸까요? 수업 수정이 어렵다면 강의 노트에 언급이라도 됐음 합니다.
유익한 강의 감사합니다! 이클립스 IDE 내 Spring Web MVC 프로젝트를 다루면서 서블릿 또는 bean 설정할 때 java configuration class 파일말고 XML 파일을 사용하는 이유(장점)가 궁금합니다. 개인적으로 구글링을 해보니 프로젝트 실행할 때 컴파일을 하지않는 이점이 있다고 하는데 저한테 크게 와닿지 않아서 질문드립니다
사실 지금까지 실행하고 테스트하는데에는 전혀 문제가 없었습니다. 그런데 계속 처음 프로젝트를 실행 했을 때부터 빨간색으로 오류가 나듯이 나타납니다. 따로 오류가 뜨지도 않구요. 이게 나중에 큰 문제가 되는게 아닌가 싶기도해서 여쭤봅니다. 이 색들을 정상적으로 돌리려면 어떻게 해야되나요?
안녕하세요 강사님.. 강사님 코드를 하나하나 따라하던 중에 문의 사항이 있습니다. 아래 부분에서.. @GetMapping ( "/profile/{nickname}" ) public String viewProfile ( @PathVariable String nickname , Model model , @CurrentUser Account account) { Account byNickname = accountRepository .findByNickname(nickname) ; if (nickname == null ) { throw new IllegalArgumentException(nickname + " 에 해당하는 사용자가 없습니다 ." ) ; } model.addAttribute(byNickname) ; model.addAttribute( "isOwner" , byNickname.equals(account)) ; return "account/profile" ; } if (nickname == null ) 이 부분은 nickname 이 아니라. byNickname 이 아닌지요? 감사합니다.
복식호흡을 할 때 다른건 괜찮은데 배가 들어가는걸 이해를 못하겠어요ㅠ 숨을 들어마신 후 아~ 하면 자연스럽게 배가 들어가는것 아닌가요? 배를 등쪽으로 쪼인다는게 이해가 잘 가지 않습니다ㅠ 또 배에 힘을 준다는 건 배가 원래 가려는 방향에 반대로 힘을 준다는걸 뜻하는데 배에 힘을 준다는건 배가 등쪽이아니라 더 팽팽해지도록 힘주는게 아닌가요?
안녕하세요 장기효 강사님 우선 vue 강의 잘 듣고 있습니다. 감사합니다. 바로 질문 드리자면 저는 django 와 jquery 기반으로 웹개발 프로젝트를 하고 있는 개발자 입니다. 항상 비동기방식에 대한 갈증이 있던 차 vue를 학습하게 되었고 vue 의 간결함에 매료되었습니다. 다만 djang 구조에서 vue 연동하는게 쉽지 만은 않아 보여서 고민 입니다. django에 대한 연동 경험이나 참고 url 정도 가이드 해주실 부분이 있다면 감사드립니다. - 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.
[리뉴얼] 처음하는 파이썬 백엔드와 웹기술 입문 (파이썬 중급, flask[플라스크] 로 이해하는 백엔드 및 웹기술 기본) [풀스택 Part1-1]
안녕하세요! 질 좋은 강의에 감사 인사 드립니다. 다름이 아니라 질문이 있어서요! 제가 웹 개발은 처음이라서 강사님께서 말씀하시는 부분을 주석으로 일일이 적어놓고 회고하면서 이해하고 있는데요! 어느정도 이해한 느낌인데 약간의 궁금증이 있어 질문드려요! 제가 질문이 생기는 부분은 아래의 사고의 흐름 중에 발생하는데요! 1. blog.py의 set_email 데코레이터 함수 내부에서는... user = User.create(request.form['user_email'], 'A') -> 신규 유저에 대한 정보를 생성해 로컬 MySQL에 넣고 유저 객체 생성 login_user(user) -> Flask에서 위에서 만든 유저 객체를 세션으로 만든 후 Flask 웹 서버로 http 전송. 그리고 이 세션을 저장해놓고 난 후 나중에 동일한 유저가 리퀘스트를 날리면 Flask 웹서버에서는 기존에 저장해놓은 세션을 꺼내어 확인 후 그에 맞은 response를 클라이언트에게 응답해주도록 해줌 return redirect(url_for('blog.test_blog')) -> 해당 URI로 리다이렉션해서 접근 Q. 이 때, login_user(user)를 해주고 웹 서버를 호스팅했을 때랑 login_user(user)를 그냥 주석처리하고 적용하지 않은 상태에서 웹 서버를 호스팅했을 때랑 어떤 차이점이 있는 건가요? 제가 직접 비교 실험을 해보긴 했는데 잘 와닿지 않아서 질문 드립니다!
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? ( 예 /아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? ( 예 /아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? ( 예 /아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 안녕하세요. 일반 조인 쿼리 실행과 관련하여 질문을 드리고자 합니다. 일반 조인시에 로그에 표시되는 쿼리는 아래과 같음을 확인하였습니다. Hibernate: /* select m From Member m join m.team t */ select member0_.MEMBER_ID as MEMBER_I1_0_, member0_.age as age2_0_, member0_.TEAM_ID as TEAM_ID4_0_, member0_.username as username3_0_ from Member member0_ inner join Team team1_ on member0_.TEAM_ID=team1_.team_id 이 부분에서 의문점이 몇 가지 생겼습니다. 1. 쿼리를 보면 DBMS에서 join 작업을 수행할 것으로 예상이 되는데 제 예상이 맞는지 궁금합니다. 2. 1번의 예상이 맞다면 join 작업의 결과물을 버리고 이후에 N번의 select 쿼리를 요청하는 것인데 왜 이렇게 하는지 궁금합니다. 3. 1번의 예상이 틀리다면 하이버네이트에서 보여주는 쿼리와 실제 DBMS에 전송하는 쿼리의 차이가 존재하는지, 그렇다면 실제 쿼리는 어떻게 확인할 수 있는지 궁금합니다. 감사합니다.
강사님이 object에서 알트 엔터를 치면 override fun onDateSet (view : DatePicker?, year : Int, month : Int, dayOfMonth : Int) { TODO ( "Not yet implemented" ) } 라고 나옵니다. override fun onDateSet (p0: DatePicker? , p1: Int , p2: Int , p3: Int) { TODO ( "Not yet implemented" ) } 그리고 이것은 제가 똑같이 했을 떄입니다. onDateSet (p0: DatePicker? , p1: Int , p2: Int , p3: Int) { 이부분이 다르게 나오는데, 지난 강의(어떤 강의인지는 기억 안 남)에서 비슷한 경우가 있어서, 제가 p0를 position으로 p1, p2도 강사님 화면에서 한 것과 같이 하니까 진행이 됐습니다. 이 차이가 무슨차이인지, 그리고 어떻게 해야하는지가 궁금합니다. 그냥 매번 똑같이 치고 하면 될지 ㅎㅎ 감사합니다.
안녕하세요. 강의에서 eureka client 서비스 예시로 user-service 스프링 부트 프로젝트를 만들고 설정을 진행해주셨는데요 application.yml에 eureka.client.fetch-registry 프로퍼티를 외부에서 검색 가능하도록 하기 위해 true로 설정한다고 설명해주셨는데, 저 프로퍼티가 설명해주신 용도로 쓰이는게 맞나요? javadoc에는 '클라이언트가 eureka 서버에서 eureka 레지스트리 정보를 가져올지 여부를 설정하는 프로퍼티'라고 라고 설명이 되어있는데요. 설명해주신 것과 자바독 내용이 다른듯해서 잘 이해가 안됩니다. 감사합니다.