묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨350개의 개인 앱을 만들어 월급의 7배 수익을 달성한 방법
과연 그 상황이 같을까요?
좀비님의 노력과 업적은 훌륭하다고 생각하지만 과연 다른 사람이 잘하는 것을 나도 잘할 수 있다고 막연히 믿어도 될지는 의문입니다
-
미해결Java 마이크로서비스(MSA) 프로젝트 실습
SpringCloud Gateway 연동
https://github.dev/ishrhrl39/3-3.Microservice강의중 유레카 대쉬보드에는 아이템 서비스가 잘 표현되는데 왜 postman 요청은 404가 뜨는지 원인을 못찾겠네요..라우팅쪽 문제인것같은데..
-
해결됨실전 연습으로 익히는 고급 타입스크립트 기술
행운동전!
안녕하세요 타입스크립트에 대해 몰랐던 사실을 알고 공부하고있습니다.꽝인지 에러인지?!몰라서 일단 남겨봅니다좋은 강의감사합니다!
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
r2_score
r2_score는 확률값이 높으면 높을수록 좋은건가요?
-
미해결
컬렉션 조회 시 영속성 컨텍스트
게시글 프로젝트를 하다가 컬렉션 조회 관련 영속성 컨텍스트가 이해가 가지 않는 부분이 있어서 질문을 드리게 되었습니다. getRecommedPosts2메서드에서 findAllByMemePostId로 태그 정보를 미리 가져오면 영속성 컨텍스트에 MemePostTag와 Tag가 같이 불려와지니까 이후에 memePost.getTagNames()를 했을때 따로 쿼리가 나가지 않을 거라고 생각했는데, 별도로 또 쿼리가 나가는 것을 확인했습니다.그래서 getRecommedPosts3메서드에서 findByIdWithTags와 같이 MemePostTag와 Tag를 같이 fetch join하면 따로 쿼리가 나가지 않더라구요 혹시 이유가 무엇인가요? 제가 어떤 개념을 잘 모르는 것 같은데 뭘 모르는 것인지 모르겠어요. 저는 getTagNames()를 하면 memePostTags 컬렉션이 필요할때 id로 영속성 컨텍스트에 있는지 조회한다고 생각해서 필요한 엔티티들을 미리 불러와 놓으면 따로 쿼리가 나가지 않을 것이라고 생각했습니다. public List<MemePostSummaryResponse> getRecommendedPosts2(Long memePostId, int size) { MemePost memePost = getMemePostById(memePostId); //fetch join으로 memePost의 태그 정보 미리 가져오기 memePostTagRepository.findAllByMemePostId(memePost.getId()); //tag 이름으로 관련있는 포스트 찾기 List<MemePost> recommendedPosts = memePostRepository.findRelatedPostsByTagNames(memePost.getTagNames(), memePostId, PageRequest.of(0, size)); memePostTagRepository.findTagsByMemePostIdIn(getPostIds(recommendedPosts)); return recommendedPosts.stream() .map(mp -> new MemePostSummaryResponse(mp, false, mp.getTagNames())) .toList(); } public interface MemePostTagRepository extends JpaRepository<MemePostTag, Long> { @EntityGraph(attributePaths = {"tag"}) List<MemePostTag> findAllByMemePostId(Long postId); }public class MemePost { public List<String> getTagNames() { return memePostTags.stream() .map(mpt -> mpt.getTag().getName()) .toList(); } }public List<MemePostSummaryResponse> getRecommendedPosts3(Long memePostId, int size) { MemePost memePost = memePostRepository.findByIdWithTags(memePostId) .orElseThrow(() -> new FindMyMemeException(ErrorCode.NOT_FOUND_MEME_POST)); //fetch join으로 memePost의 태그 정보 미리 가져오기 //tag 이름으로 관련있는 포스트 찾기 List<MemePost> recommendedPosts = memePostRepository.findRelatedPostsByTagNames(memePost.getTagNames(), memePostId, PageRequest.of(0, size)); memePostRepository.findAllWithTagsInPostIds(getPostIds(recommendedPosts)); return recommendedPosts.stream() .map(mp -> new MemePostSummaryResponse(mp, false, mp.getTagNames())) .toList(); }@Query("select distinct m from MemePost m " + "left join fetch m.memePostTags mpt " + "left join fetch mpt.tag t " + "where m.id = :id and m.deletedAt is null") Optional<MemePost> findByIdWithTags(@Param("id") Long id);
-
해결됨실전! 스프링 데이터 JPA
컬렉션 조회 관련
배운거를 적용하면서 쿼리 개선을 하고 있었는데, 혼자 해결해보려고 했으나 컬렉션 조회가 같이 섞이면서 이해가 잘 안 되는 것 같아 질문을 남기게 되었습니다.게시글 목록을 불러올때 태그이름 리스트를 같이 필요하기 때문에 관련 memePostTags와 Tag까지 같이 조회를 해야하는 상황입니다.테이블 관계가 MemePost 1 : N MemePostTag 1 : 1 Tag 이렇게 되어있을때getMemePost5 메서드와 getMemePost6메서드 둘 중에 어느 것이 더 나은 방법인지, 아니면 더 나은 다른 방법이 있는지 궁금합니다.getMemePost5의 경우는 MemePostTagRepository에서 Tag까지 fetch join으로 불러오고, Map 객체에 postId를 key로 저장해서 태그 이름을 조회합니다.getMemePost6의 경우는 페이징으로 조회한 후 postIds를 in절로 postTag와 tag를 fetch join합니다. 컬렉션 조회의 경우 페이징을 안할 경우 fetch join으로, 페이징을 할 경우 batch size로 하라는 것까지는 이해가 되었는데, 이 경우에는 postTags를 batch size로 가져오고, 그에 다한 tag도 batchsize로 가져와 추가로 두번의 쿼리가 더 나가게 되어서 다른 방법을 고안해내다가 점점 미궁으로 빠지는 것 같아서 질문을 남기게 되었습니다 😂 public Slice<MemePostSummaryResponse> getMemePosts5(int page, int size, MemePostSort postSort, Long userId) { Pageable pageable = PageRequest.of(page, size, postSort.toSort()); Slice<MemePost> memePostSlice = memePostRepository.findSliceAll(pageable); List<Long> postIds = getPostIds(memePostSlice.getContent()); // MemePostTag와 Tag를 한번에 fetch join 하나의 쿼리로 하되, MemePostTagRepository에서 entitygraph를 통해 fetch join Map<Long, List<String>> postTagNames = memePostTagRepository.findTagsByMemePostIdIn(postIds) .stream() .collect(groupingBy(tag -> tag.getMemePost().getId(), mapping(tag -> tag.getTag().getName(), toList()))); //좋아요도 하나의 쿼리로 Set<Long> likedPostIds = new HashSet<>(memePostRepository.findLikedPostIds(postIds, user)); List<MemePostSummaryResponse> responses = memePostSlice.getContent().stream() .map(mp -> new MemePostSummaryResponse( mp, likedPostIds.contains(mp.getId()), postTagNames.getOrDefault(mp.getId(), Collections.emptyList()) )) .toList(); return new SliceImpl<>(responses, pageable, memePostSlice.hasNext()); } public Slice<MemePostSummaryResponse> getMemePosts6(int page, int size, MemePostSort postSort, Long userId) { Pageable pageable = PageRequest.of(page, size, postSort.toSort()); Slice<MemePost> memePostSlice = memePostRepository.findSliceAll(pageable); List<Long> postIds = getPostIds(memePostSlice.getContent()); // MemePostTag와 Tag를 한번에 fetch join memePostRepository.findAllWithTagsInPostIds(postIds); //좋아요도 하나의 쿼리로 Set<Long> likedPostIds = new HashSet<>(memePostRepository.findLikedPostIds(postIds, user)); List<MemePostSummaryResponse> responses = memePostSlice.getContent().stream() .map(mp -> new MemePostSummaryResponse( mp, likedPostIds.contains(mp.getId()), mp.getTagNames() )) .toList(); return new SliceImpl<>(responses, pageable, memePostSlice.hasNext()); } public interface MemePostRepository extends JpaRepository<MemePost, Long>, MemePostRepositoryCustom { @Query("SELECT mp FROM MemePost mp where mp.deletedAt IS NULL") Slice<MemePost> findSliceAll(Pageable pageable); @Query("SELECT mp.id FROM MemePost mp " + "JOIN MemePostLike mpl ON mpl.memePost = mp " + "WHERE mp.id IN :postIds AND mpl.user = :user") List<Long> findLikedPostIds(@Param("postIds") List<Long> postIds, @Param("user") User user); @Query("SELECT mp FROM MemePost mp " + "LEFT JOIN FETCH mp.memePostTags mpt " + "LEFT JOIN FETCH mpt.tag " + "WHERE mp.id In :postIds") List<MemePost> findAllWithTagsInPostIds(@Param("postIds") List<Long> postIds); } public interface MemePostTagRepository extends JpaRepository<MemePostTag, Long> { @EntityGraph(attributePaths = {"tag"}) List<MemePostTag> findAllByMemePostId(Long postId); @EntityGraph(attributePaths = {"tag"}) List<MemePostTag> findTagsByMemePostIdIn(List<Long> memePostIds); } public class MemePost { public List<String> getTagNames() { return memePostTags.stream() .map(mpt -> mpt.getTag().getName()) .toList(); } }
-
미해결실전! Querydsl
Querydsl 취약점 관련 질문입니다.
안녕하세요. 최근 querydsl 공부를 시작하려고 정보를 찾던 중 querydsl에 대한 SQL Injection 에 관한 내용을 보고 김영한님의 생각이 궁금합니다!그리고 querydsl 지원중단 얘기를 보기도 해서 이런 취약점이 나올 때마다 빠른 대응이 되는지 역시 궁금합니다!! https://www.csirt.sk/querydsl-java-library-vulnerability-permits-sql-hql-injection.html
-
미해결스프링 부트 - 핵심 원리와 활용
스프링 컨테이너 등록 스프링 라이브러리 오류
가이드대로 스프링 mvc를 추가하는데 추가가 되지 않아서 이후 진행이 안되고 있습니다. 코드를 작성하고 저장하면 자동으로 라이브러리가 생성되는 방식이 아닌가요? 어떻게 해야하는지 알려주시면 감사하겠습니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
데이터 핸들링을 위한 판다스 기초1 강의 중 type(df) 관련 에러
데이터 핸들링을 위한 판다스 기초1 강의 중 type(df)를 적으면pandas.core.frame.DataFrame 말고도 뭔가 가 뜹니다. 그냥 print(type(df))를 적으면 아래와 같은게 안뜨는데, 무슨 에러인가요? pandas.core.frame.DataFrame def __init__(data=None, index: Axes | None=None, columns: Axes | None=None, dtype: Dtype | None=None, copy: bool | None=None) -> None/usr/local/lib/python3.10/dist-packages/pandas/core/frame.pyTwo-dimensional, size-mutable, potentially heterogeneous tabular data. Data structure also contains labeled axes (rows and columns). Arithmetic operations align on both row and column labels. Can be thought of as a dict-like container for Series objects. The primary
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
시험환경
시험에서 문제 제출했는데 코드 수정하고 다시 제출해도 되나요?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
3유형
3유형은 문제에서 로지스틱회귀인지 회귀분석인지 알려주나요,,,?
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
확률값 제출시
문제에서 답안 예시를 0또는 1로 명기하고 있는데요Roc auc로 평가한다고 했기때문에 1일 확률값을 답안으로 제출해도 되는건지요 ?
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
proba 를 사용하는 이유
ROC AUC로 평가 할때, 예측을 확률로 하는 이유가 있을까요? 그냥 0또는 1로 예측하면 안될까요?여자 0, 남자 1로 성별이 정해지면 여자일 확률을 예측하는지, 남자일 확률을 예측하는지 문제에서 정의되지 않았는데, 강사님께서 남자일 확률을 예측하는 것으로 정한 이유가 궁금합니다.
-
미해결파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트 (장고 4.2 기준)
13-14 pytest 코드 실행 오류
질문을 온전히 이해할 수 있도록, 모든 맥락을 전달해주세요.질문은 질문자가 번거로워야 보다 좋은 답변을 얻으실 수 있습니다.시행착오를 알려주시면 곧바로 원하는 문제에 집중할 수 있습니다.오류 메시지는 일부만 알려주시기보다 전체 오류 메시지를 캡처해서 주시면, 오류 파악에 도움이 됩니다. 당신의 파이썬/장고 페이스메이커가 되겠습니다. ;-)인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요. postgresql 을 다른 서버에 연결하여 사용중인데요.runserver 시에는 정상 작동하나 강사님이 올려주신 pytest를 똑같이 설정하고 실행하면, schema가 없어서 table을 생성할 수 없다는 오류가 발생합니다.MigrationSchemaMissing("Unable to create the django_migrations table 일단은 settings.py를 sqlite3로 변경하여 정상 작동은 시켰는데요 어떻게 수정할 수 있을까요? 또한 올려주신 소스코드에서import factory from accounts.models import User class UserFactory(factory.django.DjangoModelFactory): class Meta: model = User django_get_or_create = ("username",) username = factory.Sequence(lambda n: f"user{n}") email = factory.LazyAttribute(lambda user: f"{user.username}@example.com") # UserFactory 인스턴스 생성 시에, 암호 입력을 지원하기 위함 # raw_password 필드가 아니라 password 필드로 지정하면, 암호화없이 입력값 그대로 저장됩니다. raw_password = factory.Faker("password") @classmethod def _create(cls, model_class, *args, **kwargs): # raw_password 필드값을 암호화하여 password 필드에 저장합니다. # User 모델에는 raw_password 이름의 필드가 없으므로 kwargs 사전에서 제거해줘야만 합니다. raw_password = kwargs.pop("raw_password", None) if raw_password: kwargs["password"] = make_password(raw_password) return super()._create(model_class, *args, **kwargs)make_password 부분이 import 되어 있지 않습니다. git에서는 수정되어 있는 모양인데 참고 부탁드립니다.
-
해결됨[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
x_train, y_train 분리 시
현재는 train.csv로 출제되기에,인코딩 전 타겟데이터를 분리해서target = train.pop('col') 하잖아요? 만약 x_train, y_train 분리 시, 인코딩 전에(혹은 아무 과정에서나)target = y_train.pop('col') 처럼 분리해도 되죠?이 과정이 모델링 시,model.fit(x_train, y_train['col'])과 마찬가지인 것이죠??
-
해결됨직장인에게 꼭 필요한 파이썬-아래아한글 자동화 레시피
개요 스타일 없음지정
어떤문장을 찾아가서 개요 수준 1로 지정이가능할까요??개요스타일을. 없음으로 변경하는 방법이 있을까요? 감사합니다.
-
해결됨[임베디드 입문용] 임베디드 개발은 실제로 이렇게 해요.
안녕하세요! 선생님 ST-LINK가 연결되지 않아서 글 올립니다!
우선 보드에 불은 잘들어오는데 ST-LINK가 장치 관리자에서 잡히지가 않습니다.컴퓨터로 진행한 모습입니다.혹시나 컴퓨터가 문제인가 싶어서 노트북으로도 해보았는데 여기서도 장치 관리자에 ST-LINK가 잡히지 않았습니다.무엇이 문제인지 알려주시면 감사하겠습니다.
-
미해결
[백엔드 개발자 모집]러닝 SNS 플랫폼 웹/어플 구축러닝 SNS 플랫폼 웹/어플 구축
카이스트 MBA출신이 창업한 SNS기반 커뮤니티 종합 러닝 플랫폼 "심플리런" 초기 단계에 직간접적으로 참여하고 함께 성장할 팀원들을 모집합니다! 네트워크 및 전반적인 의사결정에 참여 가능하며, 좋아하는 일을 통해 유의미한 역할을 수행 할 것 입니다.경력이 적어도 상관 없습니다.-저를 포함한1. 현재 백엔드 두분과 같이 작업 진행하실 두분 AWS 인프라 담당자, 백엔드 개발자 모집· Github, notion pg JAVA 스프링부트 를 활용2. 6년차 프론트엔드 개발자 팀원 1명과 + 같이 작업하시는 1명(미국)+1분 한국 진행중· Next.js 13 경험자 선호, 리액트 ok3. 저랑 같이 기획하셔서 화면설계서에 디자이너분들과 같이 일하실 0분 모집 (PPT, Pigma)· 팀원들과 밀접하게 교류4. UI-UX design 1명 모집 (PPT, figma)· VER2. 에 대한 설계 반영 등 PC ver 화면설계 , 어드민 페이지 로직 가능하신분 선호 ✅ 저희는 직접 발로 뛰며 Simply Run(심플리런) SNS 기반 종합 커뮤니티 플랫폼 서비스를 만들고 있는 10명의 팀원입니다🏃♀👟✅ 과거 여러번의 도전과 성공 경험은 데이터와 같이 미래의 성공을 나타냅니다. 팀원은 현재까지 글로벌 종합 컨설팅, 전략기획 및 프로젝트 리딩 경험이 있는 기획자 & 현업/경력/주니어 개발들로 구성되어 있으며 다양한 인프라와 네트워크 또한 보유하고 있어 아이디어 실현 가능성이 매우 높습니다. 이에 심플리런 기획과 시스템을 구체적으로 진행하여 세상에 내놓을 수 있는 개발/UI-UX 디자인 팀원들을 모집합니다.✅ 러닝 오프라인 모임들이 점점 더 많아지는 것과는 달리 소통 공간의 파편화, 온라인 상의 정보가 분산되어 있어 현재 저희는 체계적인 심플리런 닷컴 커뮤니티 베타 사이트 구축 단계부터 이제는 러너들에게 실용적인 공간과 유익한 정보들을 제공하기 위해 러닝 전문 플랫폼 개발중에 있습니다.✅ 세상에 보다 새로운 러닝 문화가 자리잡고 효율적으로 운영될 수 있도록, 러너 커뮤니티를 통합적으로 지원할 예정입니다. 마라톤 대회 관련된 정보 공유는 물론 향후 체계적인 결제 시스템을 구축하여 대회에 손쉽게 등록하고, 체계적인 기록 관리를 도울 예정입니다.✅ 아래와 같이 기본적인 1차적인 컨셉 기획 및 디자인 밑작업 완료하여 Phase 1 완료한 상태이고 Phase 2 기획서를 바탕으로 이를 저희와 함께 고도화하여 순차적 서비스 활성화부터 투자유치 활동까지 같이 동행할 개발자와 디자이너를 찾습니다. (스타트업 네트워킹, 데모데이 함께 참가 etc.)✅ 꼭 앱을 런칭해본 경험이 필수는 아닙니다. 서비스를 런칭하고, 유지 보수를 해가는 경험을 통해 구성원 모두가 성장할 수 있는 사이드 프로젝트를 만들어가고자 합니다.✅ 구글 설문 (https://docs.google.com/forms/d/1SN00jaeeUYACid5FcZtSJKgfiKVRrmARcstqQQFrFa0/viewform?pli=1&pli=1&edit_requested=true) 작성후 01076534751으로 문자 연락 주시면 최대한 빠르게 연락드리겠습니다! 개발자와 디자이너들의 의견에 항상 귀를 기울이며 같이 한 시간들을 "유의미한 시간"으로 만들어 드릴 것을 약속합니다.감사합니다SIMPLY RUN조석진 드림
-
미해결[게임 프로그래머 입문 올인원] C++ & 자료구조/알고리즘 & STL & 게임 수학 & Windows API & 게임 서버
bmp 파일 알파 처리 방법 질문
애니메이션 강의 부분에서 알파 채널 있는 bmp파일의 경우는 어떤 함수를 사용하나요?검색해봐도 잘 나오지 않고 강의에서 다룬다고 언급은 되어 있는데 해당 부분은 영상에 나와있지 않아서 질문드립니다.
-
미해결[퇴근후딴짓] 빅데이터 분석기사 실기 (작업형1,2,3)
6회 기출 작업형3 2-2 번문제
solar 와 o3 가 고정된 상태의 다중선형회귀 분석이면 temperture ~ wind 로 회귀분석을 해야 하는거 라고 생각했습니다그냥 위에서 한거 그대로 활용해서 pvalue 값만 가져와도 되는건가요