묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결Redux vs MobX (둘 다 배우자!)
redux-saga 깃헙 파일
제로초 쌤 혹시 redux-toolkit 쓰는 법을 배우고 나서 노드버드도 같이하고 싶어서 구매한 뒤 살펴보니 redux-saga도 쓴다고 하셔서 듣고있습니다.근데 redux-saga의 깃헙 파일은 어떤 폴더를 봐야하는지 안보이는데 혹시 어떤 파일을 보면 될까요..?!
-
미해결스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
토큰 인증 방식에 대해 질문이 있습니다.
안녕하세요. 선생님의 수업을 보고 좀 더 응용해 보고 싶은 부분이 있어 구현하는 과정에 궁금증이 생겼습니다.주변에 물어볼 사람이 없어서 수업 내용과 거리가 있는 감이 있음에도 여기에 질문하게 됐습니다.주 목표세션 방식의 인증에서 토큰 방식 인증으로 바꾸기하려는 이유대규모 프로젝트에선 세션보단 토큰 방식이 더 효과적이기 때문에 이를 미리 해보고 싶어서구현 목표구글, 네이버 같은 소셜 로그인이 성공하면 access, refresh 토큰을 만들어 DB에 저장해당 토큰들을 jwt로 만들고, XSS 공격에 토큰이 탈취되는 걸 대비하기 위해 http-only 쿠키로 전달jwt를 사용한 이유는 access 토큰의 expire 확인 같은 경우, DB를 거치는 것보단 서버 쪽에서 확인을 하는 것이 더 낫다고 생각했습니다.토큰 검증 과정expire된 토큰이라면 DB에서 해당 access 토큰을 가지는 refresh 토큰을 가져와 일치한다면 기간이 만료된 토큰으로 간주하고 새로운 access 토큰을 발급하는 방향으로 생각하고 있습니다.로그아웃을 할 땐 해당 토큰 정보를 테이블에서 삭제하려고 합니다.현재 구현된 것현재 유저와 토큰 도메인을 나눠서 관리하고 있고, 토큰 도메인은 유저 id를 외래 키로 가지고 있습니다.oauth2-client dependency를 사용해 소셜 로그인이 성공하면 관련 서비스를 호출해 유저 정보를 저장, 갱신하는 것을 구현했습니다.성공 후, successHandler를 통해 사용자에게 토큰 정보를 http-only 쿠키로 보내주려고 합니다. (handler 틀만 구현)궁금한 점jwt에 사용자 정보를 어디까지 담아야 하는지 모르겠습니다.jwt 공식 사이트의 설명을 보면 민감한 정보는 담지 말라고 적혀있기 때문에 토큰 값만 담아서 전달하려고 합니다.하지만, 이렇게 되면 유효한 토큰을 가지고 있더라도 전달한 사용자가 진짜 토큰의 주인인지 판단하는 게 어렵다고 생각했습니다.유효한 토큰이기만 하면 다른 계정이 해당 토큰을 사용해도 인증이 될 것이라고 생각합니다.여기에 관해 검색한 키워드들입니다.spring boot oauth 2.0 jwt auth best practicesspring boot oauth2 authenicationuser table auth table schemaspring boot security context관련 글들이 많았지만, 제가 본 글들은 대부분 jwt 토큰에 사용자 정보를 담아서 보내주고, 이 값들로 db에 매칭하는 식인 예제를 목적으로 만든 코드였습니다.종합한 결과, 인증 방식에 정론은 없지만, 제가 생각한 방식이 조금 동떨어져 있나란 생각이 들었습니다.혹시 현업에서는 이런 토큰 인증 방식을 어떻게 구현하는지에 대한 방향이라도 알고 싶습니다.여기서 설명하는게 어렵다면, 키워드라도 알려주시면 좀 더 찾아보고 노력하겠습니다.긴 글 읽어주셔서 감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
JPA와 NoSQL의 관계에 대해 질문드립니다.
안녕하세요.JPA를 공부하면서 궁금한점이 생겨서 질문드립니다.JPA는 ORM이므로 RDMS와 연결되는거로 알고있습니다. 현재 제가 사이드 프로젝트를 진행하고 있는데.. NoSQL와 JPA를 동시에 경험해볼 수 있는 프로젝트를 만들고자하는데.. NoSQL은 JPA와 아예 연결지을 수가 없는지 궁금합니다.강의 잘 듣고있습니다.항상 감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
JPA @Entity에 관한 질문입니다
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]여기에 질문 내용을 남겨주세요.JPA를 진행하기 위해 @Entity를 추가하려고 했는데 계속 빨간색이 뜨는것을 확인했고 단축키로 import했는데 import jakarta.persistence.Entity 만 import되어 혼란이왔습니다. 찾아보니 javax가 2019년도부터 jakarta로 이름을 바꿨다고하는데 이후 과정을 진행하는데에 jakarta로 해도 상관이 없는지 궁금합니다!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
DTO, 그리고 Result Generic Class 에 대해서
안녕하세요~ 질문 드리는 부분이 사실 알아서 하면 되는? 부분인 것 같긴 한데.. 보통 어떻게 하는지 궁금해서 질문을 올립니다. 다음과 같은 generic class 를 예시로 들어주셨습니다 static class Result<T>{ private T data; }이 때, count 같은 spec 을 추가적으로 요청한다면, 그 것에 대응하기 쉽기 때문이라고 설명해주셨는데요, 그러면 이런 Generic class 들도 API SPEC 에 맞춰서 하나씩 만들어 줘야 하나요? 아니면 보통 응답용? 모델을 만들고 (다음과 같이) DTO 에 세팅을 해주나요?예시를 들면, 다음과 같습니다. class ResponseModel<T>{ private int statusCode; private String responseType; private String responseDesc; private T data; } class MemberLookUpDto{ private int count; private List<MemberDto> memberDtos; }이렇게 하나 저렇게 하나 사실 개발자 마음이긴 할텐데, 제가 경험이 부족하다보니 보통 어떻게 하는지 궁금해서 문의 드리게 되었습니다.그리고 만들다 보니 위처럼 ResponseModel 이라는게 필요할까? 라는 생각도 드네요. 통신에 대한 정보는 이미 기본으로 다 담겨져 있지 않나 싶고 .. 그렇게 생각하다보면 강의에서 보여주신 것처럼 Result 같은 Generic class 도 메인 데이터만을 Generic 화 하고 요청하는 데이터들을 따로 더 담아줄 수 있도록 모델링 하는게 맞는 것 같기도 합니다. 근데 또 그러면 위에서 말씀드린 것처럼, 모든 요청마다 Generic class 가 있어야 하는 것일텐데... 보통 어떤 방식으로 실무에서 진행되는지 문의드려도 될까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 영화 사이트 만들기
Netlify + AWS Elastic Beanstalk 를 이용한 배포
혹시 저처럼 프로젝트를 배포해보고 싶어하시는 분이 계실까봐 글 올려요!만고의 삽질 끝에 성공해서 ㅠㅠ 열심히 글 작성했습니다. 프론트엔드는 Netlify로 배포했고, 백엔드는 AWS의 Elastic Beanstalk를 이용해 배포했습니다. AWS EB의 경우 https가 아닌 http를 기본으로 지원하기 때문에, Netlify와는 정상적으로 통신할 수 없습니다. 때문에 해당 부분을 해결하는 방법까지 캡쳐로 모두 정리해 두었으니 편하게 참고해 주세요! 제가 많은 도움을 받았던 것 처럼, 제 글이 많은 분께 도움이 되었으면 합니다.https://make-somthing.tistory.com/80
-
해결됨파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
안녕하세요 선생님 STATIC 설정 질문 드립니다!
STATIC_URL = '/static/' STATICFILES_DIRS = [ os.path.join(BASE_DIR / 'static') ] STATIC__ROOT = os.path.join(BASE_DIR / 'staticfiles')이렇게 settings.py에 설정해줬고,터미널에python manage.py collectstatic에 yes까지 해주었는데, 왜 합성 staticfiles 폴더로 취합본이 안생길까요?ㅠㅠ참고로 저는 선생님이 진행하는것과는 약간 다르게manage.py 파일과 동등선상에 static 폴더를 만들고그 안에 각 앱단위의 이름을 넣고 관리하고 있어서전체적으로 static 폴더는 1개만 존재합니다.
-
미해결핵심만 쉽게, 모두의 SQL 데이터 분석
HR 데이터베이스 생성관련
HR 데이터베이스 생성 후에 테이블이 자동으로 생성되었는데, Developer에서 지원하는 기능인가요?
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "기본편"
Vue3 Composition API - computed
안녕하세요 Vue3 Composition API - computed 파트에서 후반 9:35 ~ const fullName = computed({ get(){ return firstName.value + ' ' + lastName.value }, set(value){ [firstName.value, lastName.value] = value.split(' '); } })이런식으로 fullName에 대한 선언을 하고 fullName.value = '짐 코딩'이런식으로 fullName의 .value로 값을 넣으셨는데 set함수의 매개변수가 value로 지정되어있어서 그런것인가요 아니면 fullName이 ref메서드처럼 적용되어서 value로 접근한 것인가요? 아니면 예약어처럼 적용이 되는건가요?
-
미해결[파이토치] 실전 인공지능으로 이어지는 딥러닝 - 기초부터 논문 구현까지
4-3 cross validation 강의
안녕하세요! 늘 친절하게 설명해주셔서 감사드립니다.4-3 강의 코드에서validation_loss = [] for fold, (train_idx, val_idx) in enumerate(kfold.split(trainset)): train_subsampler = torch.utils.data.SubsetRandomSampler(train_idx) # index 생성 val_subsampler = torch.utils.data.SubsetRandomSampler(val_idx) # index 생성 # sampler를 이용한 DataLoader 정의 trainloader = torch.utils.data.DataLoader(trainset, batch_size=32, sampler=train_subsampler) valloader = torch.utils.data.DataLoader(trainset, batch_size=32, sampler=val_subsampler) # 모델 model = Regressor() optimizer = optim.Adam(model.parameters(), lr=0.001, weight_decay=1e-7) for epoch in range(400): # 400번 학습을 진행한다. for data in trainloader: # 무작위로 섞인 32개 데이터가 있는 배치가 하나 씩 들어온다. inputs, values = data # data에는 X, Y가 들어있다. optimizer.zero_grad() # 최적화 초기화 outputs = model(inputs) # 모델에 입력값 대입 후 예측값 산출 loss = criterion(outputs, values) # 손실 함수 계산 loss.backward() # 손실 함수 기준으로 역전파 설정 optimizer.step() # 역전파를 진행하고 가중치 업데이트 train_rmse = evaluation(trainloader) # 학습 데이터의 RMSE val_rmse = evaluation(valloader) print("k-fold", fold," Train Loss: %.4f, Validation Loss: %.4f" %(train_rmse, val_rmse)) validation_loss.append(val_rmse) validation_loss = np.array(validation_loss) mean = np.mean(validation_loss) std = np.std(validation_loss) print("Validation Score: %.4f, ± %.4f" %(mean, std)) 위 코드에서 이중 for 문이 있는데 제가 생각하기에는첫번째 for 문for fold, (train_idx, val_idx) in enumerate(kfold.split(trainset)):여기서 dataset에 있는 모든 데이터가 DataLoader에 담겨야지다음 for문인 for epoch in range(400): # 400번 학습을 진행이 되어야하는 거 같은데 위 코드 대로라면첫번째 for문 for fold, (train_idx, val_idx) in enumerate(kfold.split(trainset)) 에서train_idx, val_idx가 하나씩만 들어오게 되고 다음 for 문인 400번 학습 진행하는 for epoch in range(400): # 400번 학습을 진행한다. 가 오는데 제가 잘못이해한건가 싶어 질문드립니다.
-
미해결스프링 핵심 원리 - 기본편
PrototypeBean 실무에서는 어떨때사용되나요??
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]Singleton은 어떤 식으로 사용 되는 지가 와 닿지만 Prototype은 실무에서 어떤 식으로 활용될까 생각이 안 나서 와닿지 않네용 간단한 간단한 예시라도 설명해주신다면 감사하겠습니다.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트
안녕하세요 선생님 rgrok 관련하여 질문 드립니다.
우선은 settings.py의 ALLOWED_HOSTS에 링크 추가 시키고 파이썬 장고 서버가 실행중이지 않을때 뜨는 에러는ngrok8012에러로써, 해결법은 유튜브에 설명은 올라와있다고 했는데https://www.youtube.com/watch?v=OPPBz5QeMp4&t=39s봐도 잘 모르겠더라구요 ㅠㅠ 혹시몰라서 두번째 시도방법은 파이썬 장고를 실행하고 접속을 해봤는데요.ERR_NGROK_6022에러가 떴습니다.이를 해결하기 위해서 ngrok에 계정생성후 로그인도 했었는데, 강사님이 알려주신 방법과는 다른, 그냥 ngrok의 관리자 모드로 추정되는 화면에 들어와졌어요.강사님같이 진행하고 해결하려면 어떻게 해야할까요? ㅠㅠ해당 ngrok 관리자모드로 추정되는 페이지의 링크는https://dashboard.ngrok.com/get-started/setup이네요.
-
해결됨CS 지식의 정석 | 디자인패턴 네트워크 운영체제 데이터베이스 자료구조
질문 잇워오
MAC이 랜카드에 할당된다는 것은 랜카드를 변경하면 MAC주소도 변경된다는 거면 외부 랜카드나 메인보드 변경을 이용하여 MAC주소를 와리가리하는 보안이 가능한 건가요?그리고 MAC주소를 외우거나 메모한 상태로 메인보드를 당근해서 구매자에게 해킹을 시도하는 악질 녀석들도 존재할 수 있는 건가요?
-
해결됨만들면서 배우는 리액트 : 기초
고양이 이미지 에러
https://github.com/milooy/cat-jjal-maker 여기서 코드 가져왔는데요 ㅠ 고양이 이미지가 504 에러가 납니다😢
-
미해결[코드팩토리] [중급] Flutter 진짜 실전! 상태관리, 캐시관리, Code Generation, GoRouter, 인증로직 등 중수가 되기 위한 필수 스킬들!
git 주소가 어디에 있는거죠??
assets을 다운 받으려고 하는데 git 주소를 찾을수가 없습니다....
-
미해결DOM 기본
어제 수강평 남겼었는데요.
안녕하세요.어제 수강평남겼었는데요. 사실 강의 구매하기전에,강사님 다른강의들의 수강평들을 봤었습니다. 생각보다 나쁜글들이 많아서,살까 말까 고민했었습니다. 패키지로 구매했습니다.강의 사길 잘 했다고 생각합니다.추가로 JS 패키지 강의들도 구매할 예정입니다. 우선 나쁜글 적은분들 심정은 이해는 됩니다.근데, 이분들은 평소에 떠먹여 주는 강의들 많이 보신분들이라는 생각밖에 안듭니다.서비스받고 케어받는다는 기분에 젖어서 강의들으면실력 안 늡니다. 저는 강사님 강의 매우 좋았다고 생각합니다.강사님 소신있고 고집있으신 것 같습니다.이 부분 매우 좋게 생각합니다.우리나라에 기본기에,이 정도로 심도있고 진심으로 가르치는 분 없습니다. 사실 이런강의를 계속 찾아 다녔었습니다. 없습니다. 정말로.이 강의를 이제서야라도 발견하게 천만 다행입니다. 후배들에게 너무 양질의 강의입니다.저는 앞으로도 강의 더 많이 찍어주셨으면 합니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
안녕하세요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]아래 질문글 보다가 질문이 생겨서 글 남깁니다.스프링 데이터 JPA를 이해하기 위해서 repository 를 생성하는 실습을 진행하는 중이라고 하셨는데 그럼 이 강의 마지막 부분에 스프링 데이터 JPA를 사용하는 법이 나오나요? 이 강의가 아니라면 다른 강의에 있을까요? 실무에서 "스프링 데이터 JPA"를 주로 사용하는지, 아니면 김영한님 수업의 repository 과정까지 필요한지 궁금합니다. 감사합니다.
-
미해결10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트
시간초과 관련
- 학습 관련 질문을 남겨주세요. 상세히 작성하면 더 좋아요! - 먼저 유사한 질문이 있었는지 검색해보세요. - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.3474번 교수가 된 현우 문제에 궁금한 점이 있어 질문 드립니다.숫자를 나열하다가, 강의에서 말씀해주신 방법을 생각해서, 코드 짜다가 시간 초과가 떴는데,,https://www.acmicpc.net/source/share/3c9d463fe36f42c99af74c905cf07162https://www.acmicpc.net/source/share/e822ffb921674445b1098545cfa86544for문의 변수 여부가 시간 초과를 만들 정도로 큰 영향을 미치는지 궁금합니다. https://www.acmicpc.net/source/share/93e297d9280a42d09bde543ed7af790b이 코드의 경우에는 50%에서 시간 초과가 뜨는데, 어느 부분이 안 좋은 부분인지 큰돌님의 생각을 듣고 싶습니다!
-
해결됨쉽게 배우고, 포트폴리오로 만드는 반응형 웹! #설화수
초반 셋팅 어떻게하나요?
주로 이런강의는 html 작성하고 css 적용하고 js 적용하는데초반에 미리 css 작성해놓으시고 아이콘도 다 준비하셔서 시작부터 어떻게 해야할지 감이안오네요. 1강 헤더에서 링크만들고 앵글 업 다운 하는데 강사님은 디자인다 적용되어 있고 진행하시는데 저는 그냥 html입니다. 그래서 첨부된 헤더쪽 폴더 넣으면 이미 완성되어 있어서 다릅니다.초반에 html부터 차근히 가는게 아니라서 멀 어떻게 할지 모르겠네요. 폴더 다넣으면 앵글 업다운도 이미 완성되어서 다운만나옵니다. 초반 셋팅 어떻게 하는지 알려주시면 좋겠습니다.
-
미해결[개정3판] Node.js 교과서 - 기본부터 프로젝트 실습까지
호출스택에 아무것도 없을 때 백그라운드에서 테스트큐로 넘어가는 건가요?
호출스택에 아무것도 없을 때백그라운드에서 테스트 큐로 넘어가는건가요?아니면 테스트큐에서 호출스택으로 가는건가요?