묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결
인텔리 제이 초기화면이 이상해요.
IntelliJ IDEA Community Edition > .dmg(intel) 순서로 다운받았습니다. 실행화면에 아무것도 없어요 어떻게 해야 설정화면이 나올까요? 잘못다운받은 걸까요?
-
미해결
QueryDSL 에서 중복된 데이터를 제거하고, 집계함수(count, sum 등)을 적용하는 방법에 대해 조언 구합니다!
JOIN으로 인해서, 아래와 같이 중복되는 데이터가 발생했습니다.id | price1 50001 50002 60002 6000따라서, Distinct를 통해 아래와 같이 중복데이터를 제외하고, groupBy(id)를 통해 id별로 price의 sum을 구해야 합니다.id | price1 50002 6000이를 쿼리로 짜야한다면... JOIN 이후 Distinct를 적용한 서브쿼리를 From으로 조회해서 다시 groupBy(id) 를 통해 price의 sum을 구해야하는데요...위와 같이, subquery를 from 으로 조회해야 한다면... QueryDSL 을 통해 subquery를 from으로 조회하는 문법과 관련한 내내용을 아시는 분 계실까요 ㅠ(링크라도 부탁드립니다 ㅠ)아니면 혹시 다른 방법이 있을까요?- 본래 집계함(count, sum 등)수와 distinct 를 동시에 사용할 수 있는 것으로 압니다. 그런데 QueryDSL의 경우 countDistinct() 는 존재하는데... sumDisctinct()는 없는 것 같더라고요. 선배님들의 도움 절실히 부탁드립니다 ㅠ
-
미해결
자바 comparable & comparator..
안녕하세요 현재 자바의 정석 : 기초편으로 컬렉션 프레임워크를 학습하고 있습니다.학습 중 comparable과 comparaor가 잘 이해가 되지 않아서 질문을 드립니다. public static void main(String[] args) { String[] strArr = {"cat" , "Dog" , "lion" , "tiger"}; Integer[] intArr = {1,5,3,4,7,2,6}; Arrays.sort(intArr); System.out.println(Arrays.toString(intArr)); Arrays.sort(intArr, new Descending()); System.out.println(Arrays.toString(intArr)); Arrays.sort(strArr); System.out.println("Arrays.sort(strArr) = " + Arrays.toString(strArr)); //정렬한 후 [Dog, cat, lion, tiger] Arrays.sort(strArr , String.CASE_INSENSITIVE_ORDER); System.out.println("strArr = " + Arrays.toString(strArr)); //대소문자 구별 X = > [cat, Dog, lion, tiger] System.out.println(Arrays.toString(strArr)); Arrays.sort(strArr , new Descending()); System.out.println("strArr = " + Arrays.toString(strArr)); } class Descending implements Comparator{ @Override public int compare(Object o1, Object o2) { if(o1 instanceof Comparable && o2 instanceof Comparable ){ Comparable c1 = (Comparable)o1; Comparable c2 = (Comparable)o2; return c1.compareTo(c2)*-1; } return -1; } 현재 제가 이해한 부분은 다음과 같습니다.정렬은 두 대상을 비교하고 자리바꿈을 하는 것정렬을 위해서는 정렬에 대한 기준이 필요하다 하지만 Array.sort(strArr);정렬에 대한 대상은 존재하지만 정렬에 대한 기준이 없다.String , Integer 등과 같은 클래스는 comparable이 구현되어 있다. 따라서 sort메서드를 실행할 때 정렬에 대한 기준이 x => 기본적으로 오름차순으로 정렬한다.strArr은 오름차순으로 정렬된 값이다.Arraty.sort(strArr , String.CASE_INSENSTIVE_ORDER);strArr([Dog, cat, lion, tiger])을 대소문자 상관없이 정렬따라서 strArr = {cat,Dog, lion, tiger} 순으로 정렬된다. Array.sort(strArr , new Descending());strArr를 사용자 정의 정렬 기준으로 정렬한다. 제가 이해가 되지 않는 부분은 다음과 같습니다.Descending 클래스를 디버깅을 해보았으며 o1에는 Dog가 들어오고 o2는 cat이 들어가는데 왜 그런지 모르겠습니다.strArr = {cat,Dog, lion, tiger}인데 왜 Dog가 o1에 들어가고 cat이 o2에 들어가고 또한 o2가 더 크니 음수를 리턴하는데 각 각 char의 총합의 차를 반환하는 것인가요?디버깅 이후 스텝 오버를 해봤습니다. o1에는 lion이 들어가고 o2에는 Dog가 들어가던데 왜 그러한지 잘 모르겠습니다. 그리고 int[]도 확인해보았는데 오름차순으로 정렬되었으니 [1,2,3,4,5,6,7] 이며 Descending에 디버깅을 해보았는데 o1에는 2가 o2에는1이 스텝오버를 하니 o1에는 3이 o2에는 2가 대입되더라구요 이것 또한 잘 이해가 되지 않아서 질문을 드립니다.
-
미해결
안드로이드 스튜디오 오류입니다
안드로이드 스튜디오 arctic fox를 다운받고 첫 프로젝트를 생성했는데 코드가 쭉 빨간줄이 쳐지면서 밑에 사진과 같이 32개정도의 오류가 생기네요 뭐가 문제일까요? 아 그리고 이건 오류랑 다른 질문인데저 arctic fox 버전에서 새로운 프로젝트를 생성했을때 생성되는 기본코드랑지금 최신 버전인 Hedgehog 버전에서 만들어지는 기본코드랑 다르던데 원래 그런걸까요? 강의를 들을때 기본코드가 달라서 헷갈리더라구요
-
미해결
트랜잭션 전파 속성 REQUIRES_NEW 관련 질문
안녕하세요 트랜잭션 관련해서 질문이 있어서 글을 남깁니다.트랜잭션매니저 2개(Jpatxmanager, datasourcetxamanger)를 만들어서 테스트 중입니다. 1개는 전반적인 일반 비지니스 로직에 적용되는 트랜잭션 매니저이고, 다른 1개는 API 호출시 관련 데이터를 DB에 저장하는 로직에 사용되는 트랜잭션 매니저입니다.파일에 다음과 같이 선언 되어있습니다. //로그 저장 하는 메소드 호출시 관리하는 트랜잭션매니저 <bean id="logTxManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager"> <property name="dataSource" ref="egov.dataSource"/> </bean> <tx:advice id="logTxAdvice" transaction-manager="logTxManager"> <tx:attributes> <tx:method name="*" propagation="REQUIRES_NEW" rollback-for="Exception"/> </tx:attributes> </tx:advice> ... aop config 생략 //JPA트랜잭션매니저를 커스터마이징 한 트랜잭션매니저 <bean id="nbpmTxManager" class="com.nkia.itg.nbpm.common.NbpmTransactionManager" /> <tx:advice id="nbpmTxAdvice" transaction-manager="nbpmTxManager"> <tx:attributes> <tx:method name="*" propagation="REQUIRED" rollback-for="Exception" /> </tx:attributes> </tx:advice> 실행 순서는 다음과 같습니다.1. A라는 비지니스 로직이 실행된다(A 트랜잭션매니저, 트랜잭션 전파 : REQUIRES)2. B라는 로직(API 관련 데이터 저장)이 실행된다(B 트랜잭션매니저, 트랜잭션 전파 : REQUIRES_NEW)제가 기대한 바로는 API 데이터 저장 메소드가 호출되면 새로운 db 커넥션을 획득해서 별도의 트랜잭션으로 관리 되는 것이었는데, 테스트를 해보니까 같은 커넥션을 공유하는것같습니다. A라는 비지니스 로직이 실패해서 예외가 발생해도 API관련 데이터 저장 로직에 영향을 주지 않기 위해서 별도로 분리하려고합니다.제가 한 테스트 결과는, A 비지니스 로직(특정 테이블에 데이터 INSERT) 호출 하고 B라는 비지니스 로직(API 데이터 INSERT) 호출 후 B 메소드가 종료되고 COMMIT을 하면 A 로직에서 INSERT한 데이터도 COMMIT이 됩니다. 즉, REQUIRES_NEW 전파속성이 실행되지않는것같습니다.예시)finally { B();}원인은 도저히 모르겠습니다 .. 답변 부탁드립니다.
-
해결됨자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
스트림 질문 있습니다.
구글링 해봤는데 명확하게 이해가 되지 않아서 질문 남깁니다.기존의 코드에서 메서드 참조, 여기서는 생성자 참조를 사용하는 코드로 변경해보려고 했는데 안 되더라구요.map(아이디, 이름, 나이) 부분에 어쨌든 user.getId() 이런 식으로 해야 하는데 user 참조변수를 가져올 방법도 없고.. 이런 경우에는 메서드 참조를 사용하면 안 되는 건가요??users.stream().map(UserResponse::new(User::getId, User::getName, User::getAge)) -> 이것도 안되네요 names 리스트를 메서드 참조 사용할 때는 names의 지네릭 타입이 String이니까 별도의 변수를 생성할 필요 없이 생성자 참조로 사용할 수 있는 것인지 궁금합니다.결론은 메서드 참조가 명확하게 이해가 안되네요..
-
미해결
Datasource와 JPA를 같이 사용 할 경우 트랜잭션매니저
안녕하세요 스프링 데이터 접근 기본 1편 에 강의 내용 중 JpaTransactionManager와 DatasourceTransactionManager를 같이 사용할 경우 JpaTransactionManager 를 사용하면 된다고 하셨는데 관련해서 궁금한 것이있습니다. Jpa와 myBatis를 같이 사용 할 경우 반드시 JpaTransactionManager를 사용해야 하는지 궁금합니다. 현재 JBPM 이라는 오픈소스를 근간으로 하는 솔루션을 개발 중인데 해당 오픈소스 엔진영역은 JPA를 사용하고 나머지 Service class에는 myBatis를 사용 중입니다. 현재 직면하고있는 문제는 일반 서비스 클래스에서 DatasourceTransactionManager로 트랜잭션이 이어지는 중에 JpaTransactionManager를 사용하고 있는 클래스를 호출 하게 되면 JpaTransactionManager 의 getTransaction() 메서드에서 unable to begin transaction 이라는 에러가 발생합니다. 현재 AOP 로 일괄적으로 2개의 트랜잭션매니저를 사용 하고 있는데, AOP DatasourceTransactionManager 를 주석 처리 하니까 에러가 발생하지 않습니다. 2개의 트랜잭션매니저를 사용해서 발생하는 문제 일까요? 그렇다면 JpaTransactionManager 하나만 사용하면 될까요 ?영한님 께서 트랜잭션이 시작되면 TransactionManager에서 커넥션을 생성하고 쓰레드로컬에 해당 커넥션을 저장한다고 하셨는데, 2개의 트랜잭션 매니저를 사용해서, A 라는 트랜잭션매니저를 사용하고있는 메서드에서 B라는 트랜잭션매니저를 사용하는 메서드를 호출하면, 2개의 커넥션이 생성되는 것인가요 ?
-
미해결
백엔드 개발자 커리큘럼이 어떻게 되나요?? (인프런강의)
강의가 다양해서 어느 순서로 공부해야하는지 잘 모르겠습니다.인프런 내에서 들을 수 있는 강의로 커리큘럼을 짜주세요.혼자서 개인프로젝트 만들 수 있는 수준으로 커리큘럼 짜고 싶습니다.
-
미해결실전! 스프링 데이터 JPA
JPA페이징 공부를 하다가 궁금한점이 있습니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]JPA를 이용한 페이징 처리를 공부하다가 문득 궁금한점이 생겼습니다. Page 및 Slice, Sort의 처리와 더불어 Repository의 기능을 통해서 값을 처리하는것을 배웠는데요.그런데 만약 2개 이상의 테이블을 Join한 상태라면 페이징 처리를 어떤 방법으로 하는지 궁금합니다.예를들어 Page<Member, Order> 이런식으로는 어렵고, 1개의 Repository 안에 직접적인 조인쿼리 방식으로 값을 불러와서 적용해야 할까요?아니면 MappingTable을 이용하거나 Member와 Order라는 조인쿼리에서 실질적으로 보여주는 필드값들만 DTO형태로 만들어서 Page<MemberViewDTO> 이런식으로 적용해야되는것일까요?!아니면 이럴때 적용하는것이 QueryDSL이라는것인지 궁금합니다.(아직 QueryDSL을 배우진 않았고, 들어만 봤습니다.) 2개의 테이블에서 뽑아낸 DB값들을 Page 처리하기위해선 어떠한 방식으로 할 수 있는지 궁금합니다.
-
미해결
스프링 ComponentScan 관련 질문
안녕하세요 초급개발자입니다.최근 전자정부표준프레임워크 기반으로 개발된 어떤 소스를 보면서 componentScan에 관해 궁금한것이있었습니다.우선, WEB-INF 아래의 dispatcher-servlet.xml에 명시되어있는 componentScan에는 Controller가 include 되어있고, service와 repository가 exclude 되어있습니다.<context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Service"/><context:exclude-filter type="annotation" expression="org.springframework.stereotype.Repository"/>제가 알기로는 controller, service, repository 어노테이션에는 component 어노테이션이 포함되어있어서 component scan시 전부 bean으로 올리는 것으로 알고있는데 저렇게 exclude를 해놓으면 빈으로 등록이 안되는것 아닌가요 ?basepackage는 최상위 디렉터리가 맞습니다. 또한, web.xml에 명시되어있는 다른 설정 xml파일도 있는데(context-common.xml) 이 파일에도 componenScan이 있습니다.basepackage는 dispatcher-servlet에 명시되어있는 값과 같고, exclude filter로 컨트롤러는 빈 으로 올리지 않는다고 되어있습니다. 그리고 default filter는 따로 설정 해놓지 않아서 default 값인 true로 되어있기 때문에 기본 어노테이션(서비스, 레포지토리)는 빈으로 올린다고 알고 있습니다.<context:exclude-filter expression="org.springframework.stereotype.Controller" type="annotation"/> 결론으로는 두 개의 컴포넌트 스캔(dispatcher-servlet.xml, context-common.xml)의 스캔 조건이 상반되게 되어있는데, 왜 그런지 이유가 궁금합니다 ....
-
미해결스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
실무에서도 예제처럼 익셉션을 내도 되는지 궁금합니다.
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]1. 강의 회차: 섹션4 > 유연한 컨트롤러1 - v5파일명: FrontControllerServletV5함수: getHandlerAdapter궁금한 소스 : throw new IllegalArgumentException("핸들러 어댑터를 찾을 수 없습니다");현재 해당 함수에서 핸들러에 맞는 핸들러 어댑터를 찾지 못했을 경우 익셉션을 내주고 있습니다. 실무에서도 실제로 이렇게 사용할 수 있는지 궁금합니다.
-
미해결Java TPC 실전프로젝트 (Java API 활용)
채팅관련 질문입니다
안녕하세요 !! 자바 TPC부터 스프1탄, 2탄 등 좋은 강의 잘 보고 있는 학생입니다 !항상 좋은 가르침 주셔서 감사드려요 ㅎㅎ다름이 아니라 해당 자바 기술을 통해 Spring FrameWork 환경에서 채팅 기능을 구현하고자 하는데요..아직 초보라서 어떤 객체에 어떤 내용을 담아야 하는지,화면에 구현할 때 실시간으로 대화가 진행되게 하려면 감이 안오는 상황입니다.. 명령 프롬프트에서가 아닌 웹 뷰 페이지 내에서도 채팅 기능 구현이 가능할까요 ,,?가능하다면 어떻게 할 수 있을까요 ..? ㅠㅠ주제에 조금 벗어난 질문일지 모르지만 웹 페이지에서도 구현이 하고 싶어 여쭈었습니다..!답변 남겨주시면 정말 감사드리겠습니다 ㅠㅠ
-
미해결
javaFX 이 오류는 어떻게 해결해야 하나요?
Scenebuilder로 fxml파일 만들어서 실행시키니까 이 에러가 뜨네요빌드패스에 javaFX 라이브러리 유저라이브러리로 생성해서 JavaFX SDK파일 jar 다 불러왔고Run => VM arguments 에도 --module-path "C:\Program Files\Java\javafx-sdk-19" --add-modules=javafx.controls,javafx.fxml 이렇게 붙여넣는데도 해결이 안됩니다.. 도와주세요
-
해결됨스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
산 넘어 산 ㅠ java -jar 무반응 에러
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.build 성공 후 jar 실행 했는데 무반응 입니다.에러도 안 뜨고 아무 반응이 없어요ㅠ
-
미해결
블록체인 개발 무료교육이 필요할때?
블록체인 고급 프로젝트과정 참여자 모집 공고를 아래와 같이 안내 드리오니,참여 희망자는 해당 홈페이지로 참가 신청서를 제출하시길 바랍니다.블록체인 고급 프로젝트과정 > 블록체인 | AI배울랑교_동남권ICT이노베이션스퀘어 (baeulang.kr)조기 신청자가 많기에, 빠른 지원 바랍니다. ※ 경상권 거주자분들은 즉시 신청 가능하며, 타 지역거주자는 신청 전에 오픈카톡으로 문의를 주시기 바랍니다. (경상권 거주자 즉시 참여가능)- 블록체인 훈련과정 문의 [ https://open.kakao.com/o/sctcWywe ] [모집 개요]* 사업명: 블록체인 고급 프로젝트 과정* 대상인원: 30명* 모집대상: 블록체인 분야에 관심있는 누구나 / 블록체인 관련 스타트업을 준비하는 사람* 모집기간: 2022년 08월 17일 ~ 2022년 09월 27일* 교육기간: 2022년 09월 28일 ~ 2022년 11월 19일* 교육장소: 경남테크노파크 정보산업진흥본부(봉암동) (실시간 온라인 수강 가능)* 교육내용: 암호기술, 스마트 컨트랙트 및 보안 취약점 사례 분석 등 자세한 내용 첨부파일 참조* 교육비: 전액 무료* 수강혜택: 교육비 전액 무료 , 수료증 발급, 블록체인 민간 자격증 응시 기회 제공 [교육 문의 사항]- 블록체인 훈련과정 문의 [ https://open.kakao.com/o/sctcWywe ]- E-MAIL : by.choi@k-abc.com/hi.kang@k-abc.com- 전화번호 : 02 - 6101 - 9956 / 8855 자세한 내용은 블록체인 고급 프로젝트과정 > 블록체인 | AI배울랑교_동남권ICT이노베이션스퀘어 (baeulang.kr) 에서 확인하시기 바랍니다.문의사항이 있으신 경우연락주시길 바랍니다.감사합니다.
-
미해결
[스프링 부트 테스트 질문] 스프링 어플리케이션 컴포넌트에 대한 테스트 방법 ( mock 을 안쓰는게 맞나요? )
질문 상황 1) 스프링 어플리케이션에 대한 테스트를 진행할 때, @SpringBootTest 를 적용함 2) 이 경우 테스트 코드 실행 시, 스프링 실행 환경에 필요한 객체들을 생성 3) 스프링 컴포넌트로 선언할 경우 객체 생성에 필요한 코드가 준비되어 있지 않은 경우, 스프링 부트가 실행되는 과정에서 에러가 발생-> 강의의 예시에선 StudyService 에 @Service 어노테이션을 붙이는 경우, private final MemberService memberService 를 불러오는 과정에서 에러가 발생.( Error creating bean with name 'studyService' defined in file ..... No qualifying bean of type 'app.member.MemberService' available) ------------------------------------------------------------------------------------------ 질문 : 스프링 부트 컴포넌트에 대한 mockito 사용방법 구체적인 질문 1) 위의 상황을 제가 잘 이해한게 맞나요 ? 2) 스프링 컴포넌트에 대한 테스트 방법을 대략적으로 알려주세요 ex 1) 일반적으로 객체 생성에 필요한 모든 클래스의 구현부가 나오기 전까지 테스트 하지 않는다. 따라서 mockito 사용에 대해 고민할 필요가 없다.ex 2) @Component , @service 어노테이션떼고 하고 싶은 테스트만 먼저 진행 하라3) 선생님 강의 중에 스프링 어플리케이션에 대한 전반적인 작업 과정을 관찰하고 싶으면 "백기선 - 스프링 기반 rest api 개발" 을 보면 될까요 ? 제가 아직 테스트 강의를 끝까지 안봐서 놓치고 있는 설명이 있을수도 있습니다. 유튜브 잘 보고 있어요. 구독잡니다수고하세요 :)
-
미해결
서울시뉴딜일자리_IT인턴 3개월 [급여월260만]지원사업안내_빅데이터 기반 서비스플랫폼 과정 [스터디,프로젝트,프론트엔드,백엔드,자바,코딩]
서울시에서 뉴딜일자리사업 일환으로 2차 서비스플랫폼개발자 양성과정으로 3개월 인턴십 (급여 월 260) 보내주는 프로그램 진행중인데 신청해보세요! 자세한 내용은 https://blog.naver.com/kjc_sh/222775806456 참고해주세요~
-
미해결
서울시뉴딜일자리_IT인턴 3개월 [급여월260만]지원사업안내_빅데이터 기반 서비스플랫폼 과정 [스터디,프로젝트,프론트엔드,백엔드,자바,코딩]
서울시에서 뉴딜일자리사업 일환으로 2차 서비스플랫폼개발자 양성과정으로 사전 교육 후 3개월 인턴십 (급여 월 260) 보내주는 프로그램 진행중인데 신청해보세요! 자세한 내용은 https://blog.naver.com/kjc_sh/222775806456 참고해주세요
-
미해결자바 스프링부트 활용 웹개발 실무용
부트 로그인 화면
스프링 부트를 사용하여 로그인 로직 구현중에 있는데요 최초로그인을 할경우 비밀번호를 변경하고 싶어요 ㅠㅠㅠ 근데 최초로그인을 어떻게 만들어야 되고 어떻게 구현할지 잘모르겠어요 ㅠㅠㅠ 구글링 찾아봐도안나와서 문의 드립니다.
-
미해결Do it! 자바 프로그래밍 입문 with 은종쌤
이클립스 콘솔 창에 한글이 깨져요...
구글에 검색해서 utf-8로 다 변경하라는거 따라서 다 했는데도 콘솔창에 저렇게 오류가 나는데 혹시 해결방법 있을까요?ㅠㅠ