묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨스프링 핵심 원리 - 기본편
단위 테스트 관련 질문
안녕하세요 강의를 쭉 듣다가 단위테스트가 어렵다는 단점이 잘 이해가 가지 않아 질문드려봅니다.예를 들어 빈스코프 파트-DL 부분 중 스프링 컨테이너를 주입하여 프로토타입 빈을 계속 새롭게 생성했때 - 단점이 스프링 컨테이너에 종속적이어서 단위테스트가 어려운것으로 설명이 되어 있습니다.여기에서 다른 부분에서도 (의존성 필드 주입) 단위테스트가 어렵다 이런부분이 나오는데, 이것이 왜 어려운 것인지 잘 모르겠습니다.DL 방식 중 Provider 를 사용하지 않고 스프링 컨테이너를 필드에 저장해서 새로운 프로토타입 빈을 생성하는 방법 역시 필드에 @Autowired 해서 의존성 주입을 받는데, 이것이 필드 주입때문에 단위테스트가 어렵다고 연계되는것일까요?
-
미해결리눅스 입문 - 개념으로 탄탄히!!
동적 라이브러리 사용 중 궁금한 사항
A 프로그램과 B 프로그램이 쉐어드 라이브러리를 사용한다고 할 때 필요한 쉐어드 라이브러리의 버전이 다를 경우 오작동이 나는 경우는 없을 까요?
-
미해결중상급 퍼블리싱을 위한 CSS3의 모든 것
선생님 질문이 있습니다. (float 속성)
안녕하세요 선생님. 질문이 있습니다..logo .menu 부분의 float를 저렇게 설정을 해주었는데요,float: right 가 오른쪽으로 이동하질 않아서요...아무리봐도 오타는 보이지 않는데 뭐가 문제인걸까요?..
-
미해결풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
파일을 찾을수 없어요
docker 주요명령어익히기 5에서 설명하시는 index.html 파일을 제공해주셨다고 했는데 저는 다운로드 받은 파일 중에 말씀하신 파일을 쉽게 찾을 수가 없습니다. 어디에 있는지 알려주실 수 있을까요?
-
미해결마인크래프트 게임을 활용한 파이썬 프로그래밍 완벽 이해
127.0.0.1 에러
127.0.0.1 아이피로 서버로 멀티플레이를 열어보려고 해도 서버에 연결할 수 없습니다-만 뜨네요어떻게하면 고칠수 있나요?
-
미해결우리를 위한 프로그래밍 : 파이썬 중급 (Inflearn Original)
dir 과 __dict__의 차이
안녕하세요 dir --> 클래스 안의 모든 메소드를 보여준다.__dict_ --> 선언된 변수의 인스턴스 메소드의 키와 밸류를 보여준다. 라고 이해하면 될까요?
-
미해결[개정판] 파이썬 머신러닝 완벽 가이드
XGBoost and LightGBM 질문입니다!
선생님 안녕하세요, 퀄리티 너무 좋은 수업 덕분에 하루하루 배우는 재미가 있네요. 이런 기회를 주셔서 정말 감사드립니다.공부를 하다가 질문이 있어서 질문을 남겨요!제가 적용하려는 데이터의 타겟값이 -1 or 1 인 상태입니다. 현재 logloss가 eval_metric이어서 그런지, 타겟값이 -1 or 1 인 상태로 넣으면 에러가 나와서, 첫 3줄의 코드를 통해서 타겟값이 -1 인 경우는 0으로 바꾸었더니 돌아갑니다.여기서 궁금한게 생긴게,1) validation-logloss 값이 음수가 나오더군요! (똑같은 데이터를 Dmatrix를 구해서 똑같이 XGBoost를 적용할 때는 그러지 않았는데 wrapper를 사용할때는 왜 음수가 나오기 시작하는지 조언을 주실 수 있을까요?) 또한, logloss 값 자체가 음수가 나올 수 없는게 아닌가 싶어서 좀 찾아보니, https://stackoverflow.com/questions/26282884/why-is-the-logloss-negative 에서 설명이 나와있던데, 이 설명으로서는 잘 이해가 안되네요.2) 똑같은 데이터에 대해서 아래와 같이 LightGBM를 적용하려고 하였습니다. n_estimator = 1000 이고, early_stopping_rounds = 50 인데도 100번째 이터레이션 이후로 값들이 나오지 않더군요. 이럴때는 그냥 100번째 이터레이션이 optimal 한것인가요?
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
클라이언트 서버에서 소셜 로그인
현재 상황클라이언트와 서버를 각자 다른 도메인에 배포했습니다.소셜 로그인은 passport 모듈과 session을 사용했습니다.서버에서 소셜 로그인이 성공해도 클라이언트에는 세션 쿠키가 전달되지 않습니다.클라이언트axios get 요청을 보내면 cors 에러가 떠서 a 태그를 사용했습니다.<a href="http://서버ip/auth/github">깃 헙 로그인<a/>서버아래의 코드는 강의의 내용과 동일합니다. passport 모듈을 활용해 소셜 로그인을 구현했습니다.import express from "express"; import passport from "passport"; import { isLoggedIn, isNotLoggedIn } from "../middlewares/authMiddleware.js"; const router = express.Router(); router.get("/github", passport.authenticate("github")); router.get( "/github/callback", passport.authenticate("github", { failureRedirect: "/", }), (req, res) => { res.redirect(`http://localhost:3000`); } ); router.get("/logout", isLoggedIn, (req, res) => { req.logout(); req.session.destroy(); res.json({ message: "logout" }); }); export default router;소셜 로그인에 성공하면 클라이언트 서버의 메인 페이지로 redirect 시키고 있습니다.문의서버에서 소셜 로그인 성공시 클라이언트 서버에도 session 쿠키를 전달하고 싶습니다.두 개의 다른 서버에서 소셜 로그인을 어떻게 구현해야될지 모르겠습니다.
-
미해결[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part4: 게임 서버
이제 이번 강의 보려고 하는데요..
이번 강의가 연동을 위해서 클라이언트를 만드는 것이 맞나요? 저희가 여태 만든 C# 서버는 그대로 사용하고 서버에서 만들었던 여러 파트 중 클라이언트에 필요한걸 가져와서 사용하는 것인가요?
-
미해결[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
nodemon 실행이 안됩니다!
안녕하세요! 강의 잘 듣고있습니다. express서버사용해보기 편에서 제로초님이 쓰신 코드 그대로 따라쳐보고 있는데요! nodemon app 을 cmd에 실행했을때 실행이 되지 않는데요 package에서도 nodemon이 확인이 되는데 왜 접근이 안되는 걸까요 ? 감사합니다
-
미해결[리뉴얼] React로 NodeBird SNS 만들기
오류 설명 부탁드리겠습니다.
찾아봐도 antd에 관련된 내용이 나오는데 해결방법이 안나와있어서 혹시 설명 부탁드려도 될까요?
-
미해결실전! Querydsl
쿼리에 대해 고민이 있습니다.
아직 현업을 겪어보지 못한 취준생입니다.강의를 보고 공부를 하던 중 querydsl을 이용해 dto에 fit한 쿼리를 한번에 나오게끔 어찌저찌 짜봤는데요.공부를 하다 궁금한 점이 생겨서 질문 드립니다.로직을 위해 한 3번 정도의 쿼리가 나간 뒤 자바 코드로 로직에 맞게 수정하는 것과,로직을 위해 한번의 쿼리가 나가면서 쿼리가 복잡해지는 것 중 어느게 좋은 쿼리일까요?제 생각에는 3번의 가독성 좋은 쿼리가 나가는 것이 좋을 것 같습니다.혹시 현업에서는 아니면 저보다 선배님들은 어떤 식으로 하시는지 궁금합니다.
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
기술질문드립니다!
강의를 들으면서 생각이들었는데제가 지금 jsp를 배우고있는데 혹시 현재 강의내용을 후에 jsp와 톰캣 오라클로 응용할수 있을까요??
-
미해결비전공자를 위한 개발자 취업 올인원 가이드 [통합편]
부트캠프 온라인 vs 서울 고시원 살며 국비, 뭐가 좋을까요?
안녕하세요. 강사님!지방 사는 비전공자이고 6개월 정도의 교육 후에 취업하고 싶습니다.자금 상황 때문에부트캠프 온라인 vs 서울 고시원 살며 국비지원 받기 중 하나를 택하려 합니다.(42서울 등 교육들은 될지로 모르는데다 시기도 좀 기다려야 해서요.100퍼 된다는 보장이 없어서 일단 둘만 놓고 고민합니다)뭐가 더 나을까요....? 강사님이나 수업 종류에 따라 다를까요?
-
미해결따라하며 배우는 노드, 리액트 시리즈 - 레딧 사이트 만들기(NextJS)(Pages Router)
process.env 에러
process.env 변수 작성시 위아 같은 에러가 납니다
-
미해결실전! Querydsl
search Test 관련 - JPAQueryFactory와 EntityManager
안녕하세요 강의 항상 잘 보고 있습니다.몇가지 궁금한 점이 있어서 질문 드립니다!public static void main(String[] args) { SpringApplication.run(QuerydslApplication.class, args); } @Bean JPAQueryFactory jpaQueryFactory(EntityManager em){ return new JPAQueryFactory(em); }이전 MemberJpaRepository에서 보여주셨던 것과 같이 시작 메소드에서 em을 주입받은 queryFactory를 Bean으로 등록하고,private final JPAQueryFactory queryFactory; public MemberRepositoryImpl(JPAQueryFactory queryFactory){ this.queryFactory = queryFactory; }MemberRepositoryImpl에서 위와 같이 작성하였습니다.이 상황에서, em이 주입된 queryFactory 싱글톤 빈을 받아서 MemberRepositoryImpl이 생성될 때 그 queryFactory를 주입한다고 생각하면 될까요??이렇게 작성하였을 때, basicTest는 통과하였습니다.하지만 searchTest에서는 result가 비어있었습니다.그래서 처음에 생각했을 때는, 시작메소드에서 JPAQueryFactory를 빈으로 등록했지만, 여기는 Test이기 때문에 시작 메소드를 실행하지 않았고 따라서 제대로 동작하지 않았다고 생각했었습니다.하지만 그렇다면 뭔가 컴파일 오류가 난다던지, basicTest가 불통과된다던지 했었을 텐데, 그러지 않은 것을 보니 무언가 다른 이유가 있을거라 생각합니다.조금 난해한 질문일 수는 있지만, 위와 같은 제 생각의 흐름에서 어떤 부분이 잘못되었는지 말씀해 주실 수 있으실까요??또한 condition에서 setTeamName을 제거했을 때는, result를 출력했을 때, member3와 member4가 나왔고 assertThat을 그에 맞게 수정하였더니 Test가 통과되었습니다.즉, setTeamName 조건을 더했을 때, search가 제대로 동작하지 않는 것인데, 이유가 무엇인지 모르겠습니다. 아래에 전체 코드를 첨부하겠습니다.MemberRepositoryImplpackage study.querydsl.repository; import com.querydsl.core.types.dsl.BooleanExpression; import com.querydsl.jpa.impl.JPAQueryFactory; import study.querydsl.dto.MemberSearchCondition; import study.querydsl.dto.MemberTeamDto; import study.querydsl.dto.QMemberTeamDto; import javax.persistence.EntityManager; import java.util.List; import static org.springframework.util.StringUtils.hasText; import static study.querydsl.entity.QMember.member; import static study.querydsl.entity.QTeam.team; //MemberRepository + "Impl" 형식을 맞춰야 한다. public class MemberRepositoryImpl implements MemberRepositoryCustom{ private final JPAQueryFactory queryFactory; //시작 메소드에서 JPAQueryFactory를 스프링 빈으로 등록해둠 //em이 주입된 queryFactory 싱글톤 빈을 받아온 것 //MemberRepositoryImpl이 생성될 때 그 queryFactory를 주입한다. public MemberRepositoryImpl(JPAQueryFactory queryFactory){ this.queryFactory = queryFactory; } @Override //회원명, 팀명, 나이(ageGoe, ageLoe) public List<MemberTeamDto> search(MemberSearchCondition condition) { return queryFactory .select(new QMemberTeamDto( member.id, member.username, member.age, team.id, team.name)) .from(member) .leftJoin(member.team, team) .where(usernameEq(condition.getUsername()), teamNameEq(condition.getTeamName()), ageGoe(condition.getAgeGoe()), ageLoe(condition.getAgeLoe())) .fetch(); } private BooleanExpression usernameEq(String username) { return hasText(username) ? member.username.eq(username) : null; } private BooleanExpression teamNameEq(String teamName) { return hasText(teamName) ? member.username.eq(teamName) : null; } private BooleanExpression ageGoe(Integer ageGoe) { return ageGoe == null ? null : member.age.goe(ageGoe); } private BooleanExpression ageLoe(Integer ageLoe) { return ageLoe == null ? null : member.age.loe(ageLoe); } } MemberRepositoryTestpackage study.querydsl.repository; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.transaction.annotation.Transactional; import study.querydsl.dto.MemberSearchCondition; import study.querydsl.dto.MemberTeamDto; import study.querydsl.entity.Member; import study.querydsl.entity.Team; import javax.persistence.EntityManager; import java.util.List; import static org.assertj.core.api.Assertions.assertThat; import static org.junit.jupiter.api.Assertions.*; @SpringBootTest @Transactional class MemberRepositoryTest { @Autowired EntityManager em; @Autowired MemberRepository memberRepository; @Test public void basicTest() { Member member = new Member("member1", 10); memberRepository.save(member); Member findMember = memberRepository.findById(member.getId()).get(); assertThat(findMember).isEqualTo(member); List<Member> result1 = memberRepository.findAll(); assertThat(result1).containsExactly(member); List<Member> result2 = memberRepository.findByUsername("member1"); assertThat(result2).containsExactly(member); } @Test public void searchTest() { Team teamA = new Team("teamA"); Team teamB = new Team("teamB"); em.persist(teamA); em.persist(teamB); Member member1 = new Member("member1", 10, teamA); Member member2 = new Member("member2", 20, teamA); Member member3 = new Member("member3", 30, teamB); Member member4 = new Member("member4", 40, teamB); em.persist(member1); em.persist(member2); em.persist(member3); em.persist(member4); MemberSearchCondition condition = new MemberSearchCondition(); condition.setAgeGoe(35); condition.setAgeLoe(40); condition.setTeamName("teamB"); List<Member> all = memberRepository.findAll(); List<MemberTeamDto> result = memberRepository.search(condition); System.out.println("all = " + all); System.out.println("result = " + result); assertThat(result).extracting("username").containsExactly("member4"); } } 이때 다음과 같이 변경하면 테스트가 통과됩니다. @Test public void searchTest() { Team teamA = new Team("teamA"); Team teamB = new Team("teamB"); em.persist(teamA); em.persist(teamB); Member member1 = new Member("member1", 10, teamA); Member member2 = new Member("member2", 20, teamA); Member member3 = new Member("member3", 30, teamB); Member member4 = new Member("member4", 40, teamB); em.persist(member1); em.persist(member2); em.persist(member3); em.persist(member4); MemberSearchCondition condition = new MemberSearchCondition(); condition.setAgeGoe(30); condition.setAgeLoe(40); // condition.setTeamName("teamB"); List<Member> all = memberRepository.findAll(); List<MemberTeamDto> result = memberRepository.search(condition); System.out.println("all = " + all); System.out.println("result = " + result); assertThat(result).extracting("username").containsExactly("member3", "member4"); }
-
미해결시스템엔지니어가 알려주는 리눅스 실전편 Bash Shell Script
varant up cent2 시 mariadb 다운로드 time out
cent2: MariaDB 0.0 B/s | 0 B 02:04 cent2: Errors during downloading metadata for repository 'mariadb': cent2: - Curl error (28): Timeout was reached for https://ftp.harukasan.org/mariadb/mariadb-10.4.26/yum/rhel/8/x86_64/repodata/repomd.xml [Connection timed out after 30757 milliseconds] cent2: - Curl error (28): Timeout was reached for https://ftp.harukasan.org/mariadb/mariadb-10.4.26/yum/rhel/8/x86_64/repodata/repomd.xml [Connection timed out after 30727 milliseconds] cent2: - Curl error (28): Timeout was reached for https://ftp.harukasan.org/mariadb/mariadb-10.4.26/yum/rhel/8/x86_64/repodata/repomd.xml [Connection timed out after 30464 milliseconds] cent2: - Curl error (28): Timeout was reached for https://ftp.harukasan.org/mariadb/mariadb-10.4.26/yum/rhel/8/x86_64/repodata/repomd.xml [Connection timed out after 30723 milliseconds] cent2: Error: Failed to download metadata for repo 'mariadb': Cannot download repomd.xml: Cannot download repodata/repomd.xml: All mirrors were tried cent2: No repository match: AppStream위와 같이 마리아 디비를 다운로드 받지 못하네요..
-
미해결Vue3 완벽 마스터: 기초부터 실전까지 - "실전편"
Url로 직접 접근시, 404 Return 문제
안녕하세요? 강의를 듣고 복습하던 중 발견한 골치아픈 문제가 있어서 질문드립니다.Vue-Router를 이용하여 routing하였고, 페이지 내에서 클릭하고 들어가면 잘 동작하지만,브라우저에서 새로고침 버튼을 누르거나, url을 직접 치고 들어가면 페이지를 찾을 수 없다는 에러가 반환됩니다.실무에서는 종종 url로 직접 연동되는 page도 필요할텐데, 항상 root path로 일단 들어가서 click 등으로 다른 view로 이동해야 하는지 궁금합니다.SPA의 한계로 인해, root path외에 다른 route는 url을 통한 직접 접근이 불가능한가요?이런 문제를 어떻게 해결할 수 있는지 답변주심 매우 감사드리겠습니다!
-
해결됨
javascript 'document.writeln' 출력문에 관한 질문
안녕하십니까.javascript를 배운지 얼마 안된 초보자입니다.document.writeln 이라는 출력문을 이용해서, 수식계산행을 이하와 같이 4개 만들어보았는데요.<script> document.writeln(1==1); document.writeln(1!=1); document.writeln(1>2); document.writeln(1<2); </script>결과값(구글크롬에서 본 결과값)을 아래와 같이 개행(줄바꿈) 시키고 싶습니다.truefalsefalsetrue이것저것 시도해보았지만 잘 되지 않았습니다. 혹시 해당 출력문을 이용하여 개행을 할 수 있을까요?\그 외에 제가 시도해 본건 아래와 같습니다.<script>태그 사이에 <pre>태그 추가document.write를 이용하여 각 행 마다 \n 추가괄호안에 <br>태그 추가혹시 해당 출력문이 아니라 다른 방법이 있다면 알려주시면 감사합니다.그리고 추가로 하나 더 질문이 있습니다만, 각 출력문마다 끝에 세미콜론을 꼭 붙여야하나요?이 부분도 알려주시면 정말 감사하겠습니다.
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
AWS 배포 관련 질문
안녕하세요.저 리액트 파트 AWS 배포 했는데Gateway 502 에러가 떠서혹시 해결 방법을 알 수 있을지 질문 드리고 싶습니다ㅎㅎ제 github은 다음과 같습니다.감사합니다!https://github.com/LeeJongbokz/docker-react-app