묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
pragmatic/accountapp/urls.py 의 path 함수 질문드립니다.
안녕하세요. 강의 중 궁금한 점이 생겨 질문 올립니다. pragmatic/accountapp/urls.py 에서 path를 쓰는데 path('hello_world/', hello_world, name='hello_world') 이때 1번째 매개변수는 주소창에 url 입력을 나타내는것 같고2번째 매개변수는 함수를 뜻하는 것 같습니다.그렇다면 3번 째 name은 뭔지 궁금합니다. ㅡㅡㅡ질문ㅡㅡㅡ 1, 제가 생각하는 매개변수 첫번째와 두번째의 의미가 맞나요? 2. 3번 째 매개변수 name은 무엇을 나타내는 건가요? ㅡㅡㅡㅡㅡㅡ
-
미해결실전! Querydsl
querydsl gradle 의존성 충돌
안녕하세요, 영한님 JPA 강의 잘 듣고있습니다. 다름이 아니라, 강의에 나온 query dsl의존성 설정하엿는데 org.gradle.api.artifacts.ResolveException: Could not resolve all dependencies for configuration ':compileClasspath'. ... Caused by: org.gradle.api.internal.artifacts.ivyservice.resolveengine.graph.conflicts.VersionConflictException: A conflict was found between the following modules: - org.javassist:javassist:3.24.0-GA - org.javassist:javassist:3.18.2-GA A conflict was found between the following modules: - com.google.guava:guava:18.0 - com.google.guava:guava:15.0 Run with: --scan or :dependencyInsight --configuration compileClasspath --dependency org.javassist:javassist 위와 같은 에러가 생깁니다. guava와 의존성이 충돌하는것 같은데.. 해결할 수 있는 방법이 있을까요?
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
_maxSessionCount 질문있습니다
const int32 acceptCount = _service->GetMaxSessionCount(); for (int32 i = 0; i < acceptCount; i++) { AcceptEvent* acceptEvent = xnew<AcceptEvent>(); acceptEvent->owner = shared_from_this(); _acceptEvents.push_back(acceptEvent); RegisterAccept(acceptEvent); } 제가 코드를 제데로 이해했는지 몰라서 질문드립니다 _maxSessionCount가 session의 최대개수를 의미하는 것은 아닌게 맞나요? 저는 _maxSessionCount 가AcceptEvent객체의 개수가 되니까 accept가 병렬적으로 처리될 수 있는 최대 개수로 이해를 했습니다
-
미해결it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비
10번 자릿수의 합에서 질문이 있습니다.
main 코드는 정답에 있는 그대로 작성하고 digit_sum만 제가 작성한것으로 돌렸는데 에러는 발생하지 않지만 실행이 안됩니다(print가 아예 안됩니다ㅠ) int digit_sum(int x){ int n, sum=0; for(;x>10;x/10){ n = x%10; sum += n; } sum += x%10; return sum; } 어떤것에 문제가 생긴건가요? 제가 의심되는 부분은 for문 (;;) 안에서 변화식을 x/10으로 작성한 부분이 걸립니다. 구글링으로 본 다른 코드에서는 for문에서 선언한 변수를 제어하는 부분이라고 i++과 비슷한 형태로만 작성되었더군요. 저는 단순히 for(반복문 돌리기전 초기 실행 ; 조건식 ; 1회 반복 후 실행) 으로 생각하고 작성했는데 혹시 for(;;)에서 작성할때 유의사항이 있나요? 다음은 전체 코드입니다. #include <iostream> using namespace std; int digit_sum(int); int main(){ freopen("input.txt", "rt", stdin); int n, num, i, sum, max=-2147000000, res; scanf("%d", &n); for(i=0; i<n; i++){ scanf("%d", &num); sum=digit_sum(num); if(sum>max){ max=sum; res=num; } else if(sum==max){ if(num>res) res=num; } } printf("%d\n",res); return 0; } int digit_sum(int x){ int n, sum=0; for(;x>10;x/10){ n = x%10; sum += n; } sum += x%10; return sum; }
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
post를 통해서 넘어오는 데이터 처리 관련 부분 질문 드립니다
안녕하세요 강의 잘 듣고 있습니다 post를 통해서 json 객체가 넘어져 올때 만약 memeber 관련 데이터가 넘어올경우 @RequestBody를 사용해서 Member 클래스 매개변수에 주입이 되는 것으로 알고 있습니다. 이때 @PutMapping("/api/v2/members/{id}")public UpdateMemberResponse updateMemberResponse(@PathVariable("id") Long id, @RequestBody @Valid UpdateMemberRequest request){ memberService.update(id, request.getName()); Member member = memberService.findOne(id); return new UpdateMemberResponse(id, member.getName());} 부분에서 request 객체가 @Datastatic private class UpdateMemberRequest { private String name;} 에서 어떤 생성자를 통해서 주입이 되는지 잘 모르겠습니다. 해당 updateMemberRequest클래스에는 기본 생성자 와 @Data에 있는 RequiredArgsConstructor 정도만 있는 것으로 알고 있는데 name에 어느 방식으로 주입이 되는지 궁금합니다 추가로 RequiredArgsConstructor는 NotNull이나 final 로만 지정된 변수들에 대해서만 초기화가 진행되는 것으로 알고있는데 이게 notnull이 아니라 notnull에도 적용 되는지 궁금합니다 감사합니다.
-
미해결[C++과 언리얼로 만드는 MMORPG 게임 개발 시리즈] Part1: C++ 프로그래밍 입문
간접 멤버 연산자 질문 있습니다
struct Player { int hp; int damage; } int main() { Player* playPtr = &player; playerPtr->hp = 200; playerPtr->damage = 200; return; } 이 코드에서 간단하게 생각하면 Player라는 구조체에 있는 변수 hp, damage의 값을 hp = 200, damage = 200으로 바꾼다 라고 이해했는데 이게 제대로 맞게 이해했는지 궁금해서 질문드립니다
-
해결됨실전! 스프링 데이터 JPA
역할과 구현
안녕하세요. 방학기간을 통해 스프링에 대해 공부하고 있는 대학생입니다. 다름이 아니라 스프링 핵심원리 강의에서 역할과 구현을 분리하라고 배웠습니다. 그래서 만약 '회원 저장소'를 만든다고 하면 pubic interface MemberRepository{ void save(Member member); Member findById(Long memberId); } 을 만들고 필요한 구현체를 따로 만들었습니다. 메모리를 이용한다면 public class MemoryMemberRepository implements MemberRepository { private static Map<Long, Member> store = new HashMap<>(); @Override public void save(Member member) { store.put(member.getId(), member); } @Override public Member findById(Long memberId) { return store.get(memberId); } } 이런 식으로 만들고, 만약 JPA를 이용한다면 public class MemberJpaRepository implements MemberRepository { @PersistenceContext private EntityManager em; public void save(Member member) { em.persist(member); } public Member findById(Long id) { Member member = em.find(Member.class, id); return member; } } 이런 식으로 만들어서 사용했습니다. 여기서 스프링데이터JPA를 사용하기 위해선 인터페이스에 JpaRepository를 상속받아야하는데 그러면 기존에 있던 MemberRepository에 상속받아서 사용하면 되나요? 그런데 MemberRepository에서 JpaRepository를 상속받게 되면 기존에 MemberRepository 구현체들이 JpaRepository까지 모두 구현해야하는 문제가 있고, MemberReposity에서 사용하는 메소드 이름과 JpaRepository에서 사용하는 메소드 이름이 같으면 MemberRepository를 주입받아 사용하는 다른 클래스에도 문제가 발생했습니다. 이래저래 글이 길었지만 그래서 어떻게 스프링데이터 JPA를 사용하면서 역할과 구현을 구분할 수 있을까요?
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
54강. nginx-gunicorn 연결
안녕하세요. 54강에서 실행중인 장고 컨테이너에 nginx를 붙였는데요. nginx를 붙였음에도 static 파일을 못가져 온 이유를 모르겠습니다. 여기서는 nginx와 django를 동기화하는 수단이 볼륨이고, 볼륨을 생성해서 도커 자체에서 제공한다는 개념인거같은데 nginx자체에서 static 파일들을 제공할 수 있어야 하는거 아닌가요?? 당장 안 된다면 그렇게 되도록 설정할 수 있는지 궁금합니다! 그리고 볼륨없이 nginx가 django에 요청을 통해서 static 파일들을 가져오지 못 하는지 궁금합니다.
-
미해결자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
강의를 보기 전에 해봤는데
삭제된 글입니다
-
미해결Axure RP 9,10 - 서비스 기획자를 위한 최적의 프로토타이핑 툴
선택 박스 질문 (모든선택/모든선택 해제)
전체선택 (체크/언체크) 구현은 했는데..[전체 선택]된 상태에서, [체크 박스]를 한개씩 뺀다던가[체크 박스]를 일일이 체크해서 전체선택이 되었다던가커스텀하게 체크박스를 조작했을때도 전체선택 박스가 일반적인 사용성과 동일했으면 좋겠는데 구현에 어려움이 있네요..ㅠㅠ [전체 선택] 영역을 여러가지 다이내믹 패널로 만들면 가능할것 같긴한데.. 생각만해도 복잡해질것 같아서 좋은 방법이나 힌트가 있을까 해서 문의 드려봅니다!
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
@Transactional(readOnly = true)에 대해 궁금한 점 있습니다!
안녕하세요. 강의를 듣던 중 궁금한 것이 생겨서 질문 드립니다! @Service@Transactional(readOnly = true) 이 옵션을 Service 계층에만 붙이던데 사실 진짜 DB에 쿼리를 날리는 계층은 repository 계층인데 왜 Service 계층에 붙이는지 궁금합니다!
-
미해결[기초-응용] 다양한 환경을 앤서블(Ansible)로 관리하기 with 베이그런트(Vagrant)
베이그런트 vs 도커
필드에서 베이그런트 많이 사용하나요? 뭔가 도커가 사용이 편한거 같아서요 !
-
미해결작정하고 장고! Django로 Pinterest 따라만들기 : 바닥부터 배포까지
시크릿 키의 용도가 궁금합니다.
안녕하세요. 강의를 듣는 중 시크릿 키가 궁금해서 질문드립니다. 시크릿 키가 생성된 이유와 어디에 쓰이는 지 왜 필요한지 등 전반적인 개념이 궁금합니다.
-
미해결Vue.js 완벽 가이드 - 실습과 리팩토링으로 배우는 실전 개념
New를 호출하는 경우 데이터가 두번 호출되는 상황인가요?
/news를 호출할 경우 아래와 같이 데이터를 두번 호출하게 된게 맞나요? 1. routes/index.js의 beforeEnter에서 'FETCH_LIST' 2. ListMixin.js의 create()에서 'FETCH_LIST' 제가 강의를 잘못 따라간건지, 강의를 따라가 보면 자연스럽게 /news는 fetch를 두번 하는건.... 헷갈리네요
-
미해결현존 최강 크롤링 기술: Scrapy와 Selenium 정복
동영상 강의 만드실 때 사용한 툴을 알려주실 수 있을까요?
강의를 수강하며 저도 자극을 받아, 제가 알고있는 지식을 가지고 강의를 만들어 보고 싶은데 사용하신 툴을 알 수 있을까요? 좋은 강의 감사드립니다. 윤정환 드림
-
미해결mongoDB 기초부터 실무까지(feat. Node.js)
transaction 제거 후 코드가 성공한 이유
안녕하세요, 선생님 초반에 transaction을 제거하고 성능을 높이는 방법을 보여주셨는데, transaction을 적용하기 이전의 코드와 1:52초 즈음에 알려주시는 코드의 차이가 궁금합니다. mongodb에서 직접 수정을 하냐 아니면 nodejs로 데이터를 가져와서 조작을 하냐의 차이 때문에 성공 실패가 갈리는거죠? 제 생각에는 아무래도 nodejs로 데이터를 가져온 상태에서 조작을 한다면, 조작해서 저장하는 시점엔 데이터베이스의 내용이 달라져서 덮어씌워지는 건데, 반대로 직접 데이터베이스에서 조작하면 항상 데이터베이스의 현재 내용물을 조작하니깐 일관성이 생기는거죠. 제가 잘 이해한게 맞을까요?
-
미해결mongoDB 기초부터 실무까지(feat. Node.js)
session.abortTransaction 명시
안녕하세요, 선생님. 공부하다가 궁금한게 생겨서 질문드립니다. transaction이 Atomicity를 유지할 수 있도록 abortTransaction을 쓰는 것 같은데, transaction의 에러 처리 부분에서 반드시 명시해줘야하는거죠? 혹시 {session}을 명시해준 mongoose api 중 하나라도 실패한다면 이전 것들이 자동으로 롤백되는 것이 아니라 abortTransaction을 명시해줘야 롤백되는건지 궁금합니다.
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
로그인 시도중 에러 발생
import produce from '../util/produce'; export const initialState = { followLoading: false, // 팔로우 시도중 followDone: false, followError: null, unfollowLoading: false, // 언팔로우 시도중 unfollowDone: false, unfollowError: null, logInLoading: false, // 로그인 시도중 logInDone: false, logInError: null, logOutLoading: false, // 로그아웃 시도중 logOutDone: false, logOutError: null, signUpLoading: false, // 회원가입 시도중 signUpDone: false, signUpError: null, changeNicknameLoading: false, // 닉네임 변경 시도중 changeNicknameDone: false, changeNicknameError: null, me: null, signUpData: {}, loginData: {}, }; export const LOG_IN_REQUEST = 'LOG_IN_REQUEST'; export const LOG_IN_SUCCESS = 'LOG_IN_SUCCESS'; export const LOG_IN_FAILURE = 'LOG_IN_FAILURE'; export const LOG_OUT_REQUEST = 'LOG_OUT_REQUEST'; export const LOG_OUT_SUCCESS = 'LOG_OUT_SUCCESS'; export const LOG_OUT_FAILURE = 'LOG_OUT_FAILURE'; export const SIGN_UP_REQUEST = 'SIGN_UP_REQUEST'; export const SIGN_UP_SUCCESS = 'SIGN_UP_SUCCESS'; export const SIGN_UP_FAILURE = 'SIGN_UP_FAILURE'; export const CHANGE_NICKNAME_REQUEST = 'CHANGE_NICKNAME_REQUEST'; export const CHANGE_NICKNAME_SUCCESS = 'CHANGE_NICKNAME_SUCCESS'; export const CHANGE_NICKNAME_FAILURE = 'CHANGE_NICKNAME_FAILURE'; export const FOLLOW_REQUEST = 'FOLLOW_REQUEST'; export const FOLLOW_SUCCESS = 'FOLLOW_SUCCESS'; export const FOLLOW_FAILURE = 'FOLLOW_FAILURE'; export const UNFOLLOW_REQUEST = 'UNFOLLOW_REQUEST'; export const UNFOLLOW_SUCCESS = 'UNFOLLOW_SUCCESS'; export const UNFOLLOW_FAILURE = 'UNFOLLOW_FAILURE'; export const ADD_POST_TO_ME = 'ADD_POST_TO_ME'; export const REMOVE_POST_OF_ME = 'REMOVE_POST_OF_ME'; // const dummyUser = (data) => ({ // ...data, // nickname: 'xodnd2378', // id: 1, // Posts: [{ id: 1 }], // Followings: [{ nickname: '강태웅' }, { nickname: 'ktw2378' }, { nickname: 'xodndxnxn' }], // Followers: [{ nickname: '강태웅' }, { nickname: 'ktw2378' }, { nickname: 'xodndxnxn' }], // }); export const loginRequestAction = (data) => ({ type: LOG_IN_REQUEST, data, }); export const logoutRequestAction = () => ({ type: LOG_OUT_REQUEST, }); const reducer = (state = initialState, action) => produce(state, (draft) => { switch (action.type) { case FOLLOW_REQUEST: draft.followLoading = true; draft.followError = null; draft.followDone = false; break; case FOLLOW_SUCCESS: draft.followLoading = false; draft.me.Followings.push({ id: action.data }); draft.followDone = true; break; case FOLLOW_FAILURE: draft.followLoading = false; draft.followError = action.error; break; case UNFOLLOW_REQUEST: draft.unfollowLoading = true; draft.unfollowError = null; draft.unfollowDone = false; break; case UNFOLLOW_SUCCESS: draft.unfollowLoading = false; draft.me.Followings = draft.me.Followings.filter((v) => v.id !== action.data); draft.unfollowDone = true; break; case UNFOLLOW_FAILURE: draft.unfollowLoading = false; draft.unfollowError = action.error; break; case LOG_IN_REQUEST: draft.logInLoading = true; draft.logInError = null; draft.logInDone = false; break; case LOG_IN_SUCCESS: draft.logInLoading = false; draft.me = action.data; draft.logInDone = true; break; case LOG_IN_FAILURE: draft.logInLoading = false; draft.logInError = action.error; break; case LOG_OUT_REQUEST: draft.logOutLoading = true; draft.logOutError = null; draft.logOutDone = false; break; case LOG_OUT_SUCCESS: draft.logOutLoading = false; draft.logOutDone = true; draft.me = null; break; case LOG_OUT_FAILURE: draft.logOutLoading = false; draft.logOutError = action.error; break; case SIGN_UP_REQUEST: draft.signUpLoading = true; draft.signUpError = null; draft.signUpDone = false; break; case SIGN_UP_SUCCESS: draft.signUpLoading = false; draft.signUpDone = true; break; case SIGN_UP_FAILURE: draft.signUpLoading = false; draft.signUpError = action.error; break; case CHANGE_NICKNAME_REQUEST: draft.changeNicknameLoading = true; draft.changeNicknameError = null; draft.changeNicknameDone = false; break; case CHANGE_NICKNAME_SUCCESS: draft.me.nickname = action.data.nickname; draft.changeNicknameLoading = false; draft.changeNicknameDone = true; break; case CHANGE_NICKNAME_FAILURE: draft.changeNicknameLoading = false; draft.changeNicknameError = action.error; break; case ADD_POST_TO_ME: draft.me.Posts.unshift({ id: action.data }); break; // return { // ...state, // me: { // ...state.me, // Posts: [{ id: action.data }, ...state.me.Posts], // }, // }; case REMOVE_POST_OF_ME: draft.me.Posts = draft.me.Posts.filter((v) => v.id !== action.data); break; // return { // ...state, // me: { // ...state.me, // Posts: state.me.Posts.filter((v) => v.id !== action.data), // }, // }; default: break; } }); export default reducer; 로그인을 시도할 경우, length나 find가 undefined 라고 나옵니다. 더미데이터를 사용하다가 reducers/user.js의 LOG_IN_SUCCESS를 더미데이터를 사용하지 않고action.data를 받아서 사용한 이후로 해당 오류가 계속해서 발생합니다. me.Posts나 me.Followings 등이 null이기 때문에 나오는 오류인 것 같은데 혹시 해결방법이 있을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
카테고리 연관관계
카테고리 끼리 parent child로 양방향으로 연관 관계를 맺었다고하고 category1 --category2 --category3 category4 만약 category1과 3 연관관계를 끊고 category4 -- category3과 같은 연관관계를 다시 맺고 싶다면 category1에 있는 child list에서 category3을 삭제하고 category3과 category4가 연관관계를 맺으면 될까요?
-
미해결팀 개발을 위한 Git, GitHub 입문
ppt 자료 부탁드립니다!
수업 ppt 자료 부탁드립니다. ecvheo@naver.com 입니다. 감사합니다.