묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결[Django] 장고로 인프런 따라만들기
파이참과 vscode
안녕하세요 현재 강의 수강을 시작한 사람입니다.제가 현재 vscode를 사용중입니다. 파이썬 기초강의를 몇 개 수강한 후에 html css javascript 등을 배우면서 가장 편한 에디터라고 생각했거든요.이번 강의를 들을때에도 파이참 대신 vscode로 진행하려고 하는데 문제가 없을까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
맥에서 실행할 때 에러
맥북에서도 c++을 쓸 일이 있어서 vscode를 깔고 파일을 다운받아 cpp_study 파일에서 빌드를 실행했는데 사진과 같은 에러가 발생하네요 ㅠㅠ 구글링을 해봐도 vscode가 비주얼 스튜디오랑은 많이 다른것 같아서 설정을 어찌 바꿔야 할 지 모르겠는데 혹시 알고계신다면 알려주시면 감사하겠습니다
-
해결됨mongoDB 기초부터 실무까지(feat. Node.js)
find한 다음에 console.log로 데이터 출력할 때
Pretty()라는게 있는데 nodejs에서 find뒤에 사용하니 pretty() is not a function이라고 나옵니다. 이걸 사용해서 원하는 데이터만 보이도록 출려하고 싶은데 pretty말고 다른 방법있을까요? 아, ! 그리고 실제 업무에서 pretty()를 잘 사용하나요?
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
user와 good 관계설정 질문드려요
user.js static associate(db) { db.User.hasMany(db.Auction); db.User.hasMany(db.Good, { as: 'Owner'}); db.User.hasMany(db.Good, { as: 'Sold'});} good.js static associate(db) { db.Good.hasMany(db.Auction); db.Good.belongsTo(db.User, { as: 'Owner'}); db.Good.belongsTo(db.User, {as: 'Sold'});} user 와 good 모델의 관계가 Owner, Sold 두개 인거 같은데실행 후에 goods 테이블보면 총 3개의 foreign key 가 생성되어있는데.. 혹시 왜 그런건가요??
-
미해결스프링과 JPA 기반 웹 애플리케이션 개발
REST API로 로그인 설정 시 remember-me 문제
안녕하세요, 기선님. 항상 강좌 잘 듣고 있습니다! 다름이 아니라, 제가 이 강좌를 바탕으로 현재 프로젝트를 진행중인데 프론트엔드는 Vue.js로 진행하므로 rest api를 사용하고 있습니다. 현재 postman으로도 테스트중인데 alwaysRemember 값을 true로 설정해도 remember-me 쿠키가 들어오지 않더라구요 ㅜㅜ 하지만 네이버 oauth2 로그인을 하면 또 멀쩡하게 들어옵니다.. 현재 일반 로그인에서는 리다이렉션을 막아뒀는데 혹시 그것과 관련이 있을까요? 며칠동안 이것저것 찾아보다 도저히 답이 안나와서 이렇게 질문 남깁니다.. 코드도 첨부하겠습니다 @Componentpublic class AuthSuccessHandler extends SavedRequestAwareAuthenticationSuccessHandler { @Override public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws ServletException, IOException { response.setStatus(HttpServletResponse.SC_OK); }} @Slf4jpublic class CustomAuthenticationFilter extends UsernamePasswordAuthenticationFilter { private boolean postOnly = true; private HashMap<String, String> jsonRequest; @Override protected String obtainPassword(HttpServletRequest request) { String passwordParameter = super.getPasswordParameter(); if(request.getHeader("Content-Type").equals(ContentType.APPLICATION_JSON.getMimeType())) { return jsonRequest.get(passwordParameter); } return request.getParameter(passwordParameter); } @Override protected String obtainUsername(HttpServletRequest request) { String usernameParameter = super.getUsernameParameter(); if(request.getHeader("Content-Type").equals(ContentType.APPLICATION_JSON.getMimeType())) { return jsonRequest.get(usernameParameter); } return request.getParameter(usernameParameter); } @Override public Authentication attemptAuthentication(HttpServletRequest request, HttpServletResponse response){ if(postOnly && !request.getMethod().equals("POST")) { throw new AuthenticationServiceException("Authentication method not supported : " + request.getMethod()); } if(request.getHeader("Content-Type").equals(ContentType.APPLICATION_JSON.getMimeType())) { ObjectMapper objectMapper = new ObjectMapper(); try { this.jsonRequest = (HashMap<String, String>) objectMapper.readValue(request.getReader().lines().collect(Collectors.joining()), new TypeReference<Map<String, String>>() { }); } catch (IOException e) { e.printStackTrace(); throw new AuthenticationServiceException("Request Content-Type(application/json) Parsing Error"); } } String username = obtainUsername(request); String password = obtainPassword(request); //String rememberMe = request.getParameter("remember-me"); if(username == null) username = ""; if(password == null) username = ""; username = username.trim(); UsernamePasswordAuthenticationToken authRequest = new UsernamePasswordAuthenticationToken(username, password); setDetails(request, authRequest); return this.getAuthenticationManager().authenticate(authRequest); } @Override public void setPostOnly(boolean postOnly) { this.postOnly = postOnly; }} @Overrideprotected void configure(HttpSecurity http) throws Exception { http.oauth2Login() .userInfoEndpoint() .userService(customOAuth2UserService); http.exceptionHandling() .authenticationEntryPoint(restAuthenticationEntryPoint); // 인증 실패시 401 http.formLogin().disable(); http.logout() .logoutSuccessUrl("/"); // 로그인 유지 String rememberKey = "remember_me"; http.rememberMe() .key(rememberKey) .rememberMeParameter(rememberKey) .rememberMeCookieName(rememberKey) .userDetailsService(memberService) .alwaysRemember(true) .tokenRepository(tokenRepository()); http.csrf().disable(); http.cors(); // Json http.addFilterBefore(customAuthenticationFilter(), UsernamePasswordAuthenticationFilter.class);}// Json@Beanpublic CustomAuthenticationFilter customAuthenticationFilter() throws Exception { CustomAuthenticationFilter filter = new CustomAuthenticationFilter(); try { filter.setFilterProcessesUrl("/login"); filter.setAuthenticationManager(this.authenticationManagerBean()); filter.setUsernameParameter("email"); filter.setPasswordParameter("password"); filter.setAuthenticationSuccessHandler(authSuccessHandler); //filter.setAuthenticationFailureHandler(authFailureHandler); } catch (Exception e) { e.printStackTrace(); } return filter;}@Beanpublic PersistentTokenRepository tokenRepository() { JdbcTokenRepositoryImpl jdbcTokenRepository = new JdbcTokenRepositoryImpl(); jdbcTokenRepository.setDataSource(dataSource); return jdbcTokenRepository;}
-
미해결데브옵스(DevOps)를 위한 쿠버네티스 마스터
안녕하세요...
동일하게 vm들을 생성했는데 ip가 안나오네요.. (네트워크에서 natnetwork로 선택하고 시작하면 네트워크 연결이 실패했습니다.. 라고 나오는데 이것과 연관이 있는걸까요??) 감사합니다.
-
해결됨실전 자바스크립트
2:30초 경 그림 질문
그림에 getYounger의 위치에 대해서 질문있습니다. static 메서드 getYounger는 Programmer가 아니라 Person으로 가야하는 것 아닌가요? 프로토타입 체인에 의해서 연결되어있기 때문에, Person이 가지고 있고, 이것을 Programmer가 프로토타입 체인을 통해서 접근가능한 것 아닌가요? 혹시 일반 클래스 필드처럼 값의 레퍼런스가 아니라 static의 경우에도 값을 복사해서 가지고 가나요? https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Public_class_fieldsmdn 문서에 따르면 `Public static fields are not reinitialized on subclasses, but can be accessed via the prototype chain.` 라고 나와 있어서 혼란스럽습니다 ㅜㅜ
-
해결됨홍정모의 따라하며 배우는 C언어
char *title char *authour 이 Not recommended 인 이유가 뭔가요?
바로 앞 강의에 이유가 나온다고 하셨는데 앞강의 보고왔는데 그런내용을 못본거같아서요..
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
bp관련 질문입니다.
스택에서 함수를 2개쓴다 가정하고 1번함수 이전bp값을 BP에 저장하고 2번함수로 넘어가서 2번함수의 이전bp값을 또 저장할때 BP에 넣는데 이러면 1번함수의 BP값을 에 2번함수의 BP값으로 덮어씌우는데 그러면 1번함수의 BP값이 소실되어 1번함수의 스택프레임 공간을 모르는게 아닌가요?
-
해결됨실전 자바스크립트
constructor 질문있습니다!
강의 마지막에 있는 constructor를 보고 궁금증이 생겨서 코드를 한번 만들어서 돌려봤는데, 제가 생각한것과 전혀 다른 ? 방식으로 동작해서 질문드립니다. 아래 코드를 보면, 생성자에 name을 받고, 상위의 클래스를 통해서 생성자호출을 하였는데, 왜 클래스 필드의 초기값이 p1.name이 iu가 아니라 다른 값이 나올까요? 참고: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Classes/Public_class_fieldsPublic instance fields are added with Object.defineProperty() either at construction time in the base class (before the constructor body runs), or just after super() returns in a subclass. 라고 되어있는데 이게 후자에 해당하는 부분인가요? 저는 이해가 안가는 부분이, 클래스필드를 생성자를 통해서 초기화를 해주어야 맞지 않나? 라는 생각을 하고 있거든요.. class Person { name = 'memberPerson'; constructor(name){ this.name = name; } } class Programmer extends Person { name = 'memberProgrammer'; constructor(name) { super(name); } } const p1 = new Programmer('iu'); p1.name; >>> memberProgrammer
-
미해결Javascript ES6+ 제대로 알아보기 - 중급
들어보니 자바의 클래스와 개념이 같은거 같은데 맞나요?
자바의 클래스와 개념이 같다고 이해하면 될 까요? 문법은 다른데 super를 써서 최상위 클래스를 초기화 한 후 사용하는 방식이랑 상속도 그렇고... 비슷한데 그러면 최상위 메서드 오버라이딩도 가능한가요? 그리고 다형성도 성립이 되나요 그럼?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 유튜브 사이트 만들기
npm run dev 에서 부터 막힙니다.
(node:5188) Warning: Accessing non-existent property 'count' of module exports inside circular dependency [0] (Use `node --trace-warnings ...` to show where the warning was created) [0] Server Listening on 5000 [0] (node:5188) Warning: Accessing non-existent property 'findOne' of module exports inside circular dependency [0] (node:5188) Warning: Accessing non-existent property 'remove' of module exports inside circular dependency [0] (node:5188) Warning: Accessing non-existent property 'updateOne' of module exports inside circular dependency [1] Failed to compile. [1] [1] ./src/components/views/LoginPage/LoginPage.js [1] Attempted import error: 'Icon' is not exported from 'antd'. [0] MongoDB Connected... 이러한 에러가 뜨고 ICON이 antd에서 익스포트되는게 아니라는데 어떻게 해결해야 되나요?
-
해결됨리액트로 나만의 블로그 만들기(MERN Stack)
이런 에러는 뭔가요
모달 창 띄우고 서브밋을 눌러보면 모달에서 msg로 나와야한데 안나오네요
-
미해결[백문이불여일타] 데이터 분석을 위한 중급 SQL
My-sql
My-sql은 보니까 EXCEPT, MINUS(차집합) INTERSECT(교집합) FULL OUTER JOIN 이런것들을 지원안하는데도 코딩테스트에서 My-sql을 쓰는게 좋은가요..? 오라클에 비해 지원 안되는게 벌써 3개니 더 불편해 보이긴 합니다 오히려 사용안하는게 실행시간을 단축하는데 좋은가요? 뭐 각자 취향차이겠지만 저는 둘다 초보라 하나를 메인으로 가려고 해서 여쭤봅니다. 원래 oracle을 약간 기본적인거만 써봤는데 초급반, 중급반 강의 my-sql쓰면서 다시 oracle로 바꾸기고 그렇네요
-
미해결진짜 현업에서 쓰이는 직장인의 실무 엑셀 - 데이터 가공부터 분석까지
expression Error: 열거형에 요소가 너무 적어 작업을 완료할 수 없습니다.
안녕하세요? url 주소 편집후, 탐색창에서 body 부분 클릭시 [Expression Error: 열거형에 요소가 너무 적어 작업을 완료할 수 없습니다.]라고 되고 로드할 수 없는데 무슨 문제일까요? ㅠㅠ
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 쇼핑몰 사이트 만들기[전체 리뉴얼]
local에서 terminal이나 aws에서 서버를 백그라운드로 돌리는 방법 문의
서버를 백그라운드로 어떻게 돌리나요? aws에서 npm run start 로 하면 서버가 백그라운드에서 돌지 않아서 cli 창을 끄면 서버가 종료됩니다. pm2 start server/index.js 로 하면 서버가 계속 돌아가긴 하지만 이미지를 못 찾아서 not found 에러가 발생합니다. 해결 방법 말씀해주시면 감사하겠습니다.
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
상품주문 테스트에 대한 질문있습니다.
안녕하세요 선생님 테스트에 관한 질문 하나 올립니다. 1. 상품 주문 관련테스트를 진행할 때 그전에 Member와 Item을 insert하는 과정에서 영속성 컨텍스트에 저장해두고서 실제 아래와 같이 findeOne과 같이 영속성 컨텍스트에서 조회해온다라고 이해하고 있습니다. 다음 줄에 영속성 컨텍스트를 지워주고 난후에 조회시 em.flush();em.clear(); assertEquals부분에서 오류가 납니다 오류 내용은 아래와 같습니다. 테이블을 확인해보니 order_item에 oder_id값이 null이여서 그런거였습니다. 왜 null 이들어가는지 확인이 안되네요 ..ㅠㅠㅠ Order Entity에는 아래와 설정이 되어있습니다. 생성메소드에서 무언가 수정해줘야할까요 ..
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
주인이 아닌 관계에서 읽기 질문
안녕하세요 강사님, 수강 중 궁금증이 생겨 질문을 남깁니다. 지금까지 설명해주신 연관관계 주인이 왜 존재해야 하는지, 또 어떤 식으로 주인을 설정해야 하는지는 모두 이해했습니다. 설명하신 내용 중에 아래와 같은 내용이 있었는데요. "연관관계 주인이 아닌 관계로는 읽기 기능만 사용이 가능하다. 그 외의 모든 관리는 관계의 주인이 처리한다." 이와 관련하여 팀에 새로운 멤버를 추가하고 싶을 때 team.getMembers().add(member)를 하면 DB에 반영되지 않고, member.setTeam(team)을 해야만 제대로 반영되는 부분까지 이해했습니다. 그런데, member.setTeam(team)으로 멤버가 팀을 가지도록 하고, 트랜잭션 커밋까지 완료해 해당 내용이 DB에 정상적으로 반영이 되었다면.. 그 이후에 따로 team.getMembers().add(member)를 하지 않아도 Team이 가지고있는 List<Member> members에서 방금 추가한 member를 조회할 수 있어야 하는 것이 맞지 않나요? 이를 확인하기 위해 아래와 같은 코드로 실습을 진행하였습니다. try { Team team = new Team(); team.setName("TeamA"); em.persist(team); Member member = new Member(); member.setName("MemberA"); member.setTeam(team); em.persist(member); tx.commit(); Team findTeam = em.find(Team.class, member.getTeam().getId()); List<Member> members = findTeam.getMembers(); for(Member m : members) { System.out.println("Name : " + m.getName()); }}catch(Exception e) { tx.rollback();}finally { em.close();} team을 생성하고 member를 생성하여 member에 team을 할당해줬습니다. em.persist를 통해 해당 객체들을 영속상태로 만들었고 tx.commit으로 flush처리까지 해주었습니다. 하지만 Name : MemberA는 출력되지 않습니다. 물론 DB에는 정상적으로 저장되었더라도 메모리에는 저장되지 않았기 때문에 조회가 안 된다고 말씀하시기는 했지만.. 이 코드의 경우에는 Team과 Member가 정상적으로 DB에 적용된 후에 em.find()를 통해 새롭게 받아온 Team으로 조회한 것인데.. 왜 제대로 조회되지 않는 것인지 모르겠습니다. ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ 추가 질문 하나만 더 드리겠습니다. 관계의 주인이 아닌 List<Member> members는 읽기 전용으로만 사용하기 때문에 members.add(member)를 아무리 해도 DB에 영향을 끼치지는 않겠지만.. 쓰기 권한이 없는 녀석에게 쓰기 메서드가(list.add()) 존재하는 것 자체만으로 어떠한 문제가 야기될 수도 있지는 않을지 궁금합니다. 이 부분에 대해서도 함께 답변해주시면 감사하겠습니다.
-
미해결밑바닥 부터 시작하는 머신러닝 입문
Python 코드 실행을 위한 코드 다운로드 관련
상세한 강의와 설명에 감사드립니다. 강의 내용 중에 코드 설명을 해 주시는 Python 코드를 내려 받을 수 있는 Github 같은 곳이 있으면 안내 부탁 드리겠습니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
POST 요청에 멱등성 적용에 대하여
최근에 결제관련 개발을 하던중에, 클라이언트사의 강력한 요청으로 POST 요청에 대해서 멱등성(Idempotency)을 보장해준 경우가 있었는데요. 클라이언트사의 특수한?(실제 사유는 설명해주지 않음) 환경으로 인해, 동일한 요청이 중복해서 발생할 수 있기 때문에, 요청 Body내용이 완전히 동일한 경우에는 두번이든 천번이든 동일하게 응답 해달라는 요구가 있었습니다. 물론 POST 요청으로 인해서 일어나는 비즈니스 로직은 수행하지 않고 동일 응답만 달라는 요구사항이었는데요. 이런 경우엔 POST에도 멱등성이 적용된 것으로 봐야할까요?