묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! Querydsl
RequestDto에서 요청값으로 받는 Enum에 조건식 또는 정렬 기준을 포함하는거에 대해서 어떻게 생각하시나요?
안녕하세요! 저는 7월부터 스타트업에서 JAVA기반으로 Spring과 Jpa를 활용하여 백엔드 개발자를 하고 있습니다! 다름이 아니라, 조회 로직에서 다양한 필터링 조건을 걸어야 하는 요구사항을 맡게 되었습니다. 이때 결론적으로 Enum의 필드로 조건식(BooleanExpression) 또는 정렬 조건(OrderSpecifier)를 가지고 있는걸 어떻게 생각하시는지 의견을 여쭙고 싶습니다!(제가 GPT에게 물어보았을 때는, 좋은 방법이나, Enum이 데이터 접근 계층에 의존적이게 된다는 단점을 지적받았습니다.)@Getter @RequiredArgsConstructor public enum ItemSortCriteria { ITEM_PRICE_ASC("상품 가격기준 오름차순 정렬", QItem.item.price.asc()), ITEM_PRICE_DESC("상품 가격기준 내림차순 정렬", QItem.item.price.desc()); private final String description; private final Orderspecifier orderSpecifier; } 제가 예전에 접했던 코드 중 하나라 문득 생각이 들었는데요,올바른 판단인지 / 아닌지 판단하기가 어려워서 질문 드립니다! 나아가 영한님 혹은 답변해주신 분들 께서는, 이렇게 든 생각이 올바른 판단인지 아닌지를 어떤 기준을 가지고 판단하시는지 그 사고의 흐름도 궁금합니다!
-
해결됨김영한의 자바 입문 - 코드로 시작하는 자바 첫걸음
no frameworks detected
no frameworks detected 의 문구가 뜹니다 . 아래와 같이 선택할 수 있는 창이 뜨지않습니다. 위를 무시하고 create를 누르면 아래와 같이 나옵니다 ㅜㅜ
-
미해결정보처리기사 필기 - 제1과목 소프트웨어 설계 (2020 개정)
강의 내용
혹시 전체적인 강의 내용이 계속 업데이트 되는 건가요??? 2020년도에 멈춰있는 것 같은데 24년도 시험내용이랑 동일할까요???수제비 문제집 2023년도랑 같이 보는데 빠진 부분이랑 다루지 않는 내용도 강의에 나오는 것 같아서요그리고 혹시 코스별 강의에 관한 자료를 받아 볼 수 있을까요?>
-
해결됨김영한의 실전 자바 - 기본편
인스턴스 타입을 부모로해도 자식의 오버라이드 메서드가 호출되나요?
안녕하세요! ElectricCar electricCar = new ElectricCar(); electricCar.move();이렇게 하면 호출한 electricCar의 타입은 ElectiricCar라서 인스턴스 내부의 ElectricCar 타입에서 시작한다고 하셨습니다.그래서 electricCar.move();를 실행하면 ElectricCar 의 move() 메서드가 실행돼서전기차를 빠르게 이동합니다.이렇게 전기차로 출력이 됩니다.Car electricCar = new ElectricCar(); electricCar.move();그럼 이렇게 타입이 Car타입이면 인스턴스 내부의 Car타입에서 move()메서드를 실행시켜 "차를 이동합니다."가 출력될 것이라고 생각했는데 전기차를 빠르게 이동합니다.여기서도 전기차를 빠르게 이동합니다.가 출력됩니다.어째서 Car타입에서 move()메서드를 실행하지 않고 ElectricCar의 move()메서드를 실행하게 되는건가요?감사합니다!!😊
-
해결됨스프링 부트 - 핵심 원리와 활용
@Value 검증 적용 관련 질문드립니다.
@Value를 적용한 필드에 @Min(1) 과 같은 검증을 적용할 수는 없을까요?아래 소스코드처럼 작성해 MyDataSourceValueConfig를 빈으로 등록하면 @Validated가 동작해 검증될 줄 알았는데 적용되지 않습니다. 원인이 무엇인지 궁금합니다...(코드 내 $가 포함되면 이상하게 동작해,$를 #로 변경하였습니다.)package hello.datasource; import hello.datasource.MyDataSource; import jakarta.validation.constraints.Min; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.validation.annotation.Validated; import java.time.Duration; import java.util.List; @Slf4j @Configuration @Validated public class MyDataSourceValueConfig { @Value(“#{my.datasource.url}") private String url; @Value(“#{my.datasource.username}") private String username; @Value(“#{my.datasource.password}") private String password; @Value(“#{my.datasource.etc.max-connection}") @Min(1) private int maxConnection; @Value(“#{my.datasource.etc.timeout}") private Duration timeout; @Value(“#{my.datasource.etc.options}") private List<String> options; @Bean @Validated public MyDataSource myDataSource1() { return new MyDataSource(url, username, password, maxConnection, timeout, options); } @Bean public MyDataSource myDataSource2( @Value(“#{my.datasource.url}") String url, @Value(“#{my.datasource.username}") String username, @Value(“#{my.datasource.password}") String password, @Value(“#{my.datasource.etc.max-connection}") int maxConnection, @Value(“#{my.datasource.etc.timeout}") Duration timeout, @Value(“#{my.datasource.etc.options}") List<String> options ) { return new MyDataSource(url, username, password, maxConnection, timeout, options); } }
-
미해결
QueryDsl에서 프로젝트 설정할 때 Gradle에 compileQuerydsl 자체가 안 생겨요(3버전)
compileQuerydsl이 생겨야 뭘 하는데스프링부트 3버전에 해당하는 build.gradle 설정으로 하면 없고부트 2버전에 해당하는 build.gradle로 짬뽕해서 쓰면 compileQuerydsl이 생겨요강의 교안에 나온대로 3버전대로 하는데 compileQuerydsl 이 나오게 하려면 어떻게 해야 하나요?
-
해결됨실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
MemberServiceTest 오류
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)=======================================이하 MemberServiceTest 코드입니다.이하 오류 메시지입니다.h2 실행 여부와 관계 없이 같은 오류가 뜨네요.어떻게 해결하면 좋을까요?감사합니다.
-
미해결스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
throw 에러
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예)[질문 내용]Member Service - validataDuplicateMember() 함수에서 throw 부분이 오류납니다.
-
해결됨[React 2부] 고급 주제와 훅
ProductPage import 할 때, from index.jsx가 아닌 이유
안녕하세요. 강의 재밌게 듣고 있습니다! App.jsx에서 import ProductPage from "./pages/ProductPage" 부분에서 실제 코드는 index.jsx에 작성되어 있는데 디렉터리명인 ProductPage로 경로를 지정해도 동작하는 이유가 궁금합니다.
-
해결됨QGIS 파이썬 자동화 (벡터편) Ver.2
스크립트 불러오기
다음 이미지의 우측처럼 작성된각 기능의 스크립트를 확인하려면 어떠한 경로에서 파일을 찾아 불어오면 될까요??예를 들어 '래스터자르기'의 스크립트를 확인하고 싶으면processing.algorithmHelp('ID')에서는 기능의 설명은 제시되어 있으나 해당 작업이 실행되는 스크립트는 확인할 수 없는데...답변을 받을 수 있을까요?제가 수업 중 놓친 부분이라면 죄송하지만 어느 커리큘럼에서 다루어 주시는지 한번 더 알려주시면 감사하겠습니다.
-
미해결모든 개발자를 위한 HTTP 웹 기본 지식
PUT, PATCH 리소스에 대해서
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오) 예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예[질문 내용]안녕하세요.수업을 듣다가 PUT과 PATCH에서 리소스 판단 기준이 헷갈려서 질문드립니다.만약 user 테이블이 있고 테이블에 컬럼이 user_id, user_name, user_pw, user_nickname 이 있습니다.그리고 form 태그를 통해서 회원정보 수정을 하려고 할 때, user_pw와 user_nickname만 수정할 수 있게 두 컬럼에 대해서만 input 태그가 있습니다. input 태그에는 초기값으로 원래의 값이 들어가 있습니다.이 때, 사용자가 둘 중에 어느 것을 바꾸든 form 태그에 있는 전체 데이터를 보낸다고 할 때(바꾸지 않은 값은 초기값으로 보내집니다), 리소스를 user_pw, user_nickname으로만 보고 두 정보를 다 교체하니 PUT으로 봐야할까요? 아니면 리소스를 user 테이블 전체로 보고 user 테이블 중에 두 컬럼만 바꾸니 PATCH로 하는 게 맞을까요??
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
Simulation waveform 활성화 안됌
Simulation waveform 활성화가 되지않습니다.=================현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
미해결
제발 도와주세요ㅜㅠ
import numpy as np from keras.models import Sequential from keras.layers import Dense, Dropout, Flatten, LSTM from keras.layers import BatchNormalization from keras.initializers import he_normal !pip install np_utils import np_utils from tensorflow.keras.utils import to_categorical from google.colab import drive drive.mount('/content/drive') [train_x, train_y, test_x, test_y] = np.load('/content/drive/MyDrive/LSTM_disaster_prediction_data.npy', allow_pickle = True) X_train = train_x.astype('float32') X_test = test_x.astype('float32') X_train = np.transpose(X_train,(0,2,1)) X_test = np.transpose(X_test,(0,2,1)) y_train = to_categorical(train_y, num_classes=num_classes) y_test = to_categorical(test_y, num_classes=num_classes) num_classes = y_train.shape[1] model = Sequential() model.add(LSTM(units = 4, return_sequences = True, input_shape = (168, 12))) model.add(LSTM(units = 1, return_sequences= True)) model.add(BatchNormalization()) model.add(Dense(64,activation = 'relu', kernel_initializer = 'he_normal')) model.add(Dropout(0.25)) model.add(Dense(num_classes, activation = 'softmax')) model.summary() model.compile(loss = 'categorical_crossentropy', optimizer = 'adam', metrics = ['accuracy']) model.fit(X_train, y_train, epochs = 5, batch_size = 16, verbose = 1, validation_data=(X_test, y_test)) test_loss, test_accuracy = model.evaluate(X_test, y_test) print('검증결과') print('test loss = ', test_loss) print('test accuracy = ', test_accuracy) ValueError: Shapes (None, 3) and (None, 168, 3) are incompatible이렇게 뜨는데 어떻게 고쳐야할지 모르겠어요 ㅠㅠㅠㅠㅠㅠㅠㅠㅠㅠ
-
미해결파이썬 무료 강의 (활용편6) - 이미지 처리 (OpenCV)
Trackbar 값 변화가 안되는분들
갱신이 안되어서 empty 함수에서 변경하는걸로 바꾸니 되네요 버전은 cv2 4.8.1 입니다.import cv2 def change_trackbar(pos): thresh = cv2.getTrackbarPos('threshold', name) # Bar 이름, 창의 이름 ret, binary = cv2.threshold(img, thresh, 255, cv2.THRESH_BINARY) cv2.imshow(name, binary) img = cv2.imread('book.jpg', cv2.IMREAD_GRAYSCALE) name = 'Trackbar' cv2.namedWindow(name) cv2.createTrackbar('threshold', name, 127, 255, change_trackbar) # Bar 이름, 창의 이름, 초기값, 최대값, 이벤트 처리 cv2.waitKey(0) cv2.destroyAllWindows()참고하세용
-
미해결스프링 부트 - 핵심 원리와 활용
프로메테우스 configuration, target에 springboot-actuator가 인식되지 않습니다.
강의를 따라하는 중 localhost:9090/config를 들어가면global: scrape_interval: 15s scrape_timeout: 10s evaluation_interval: 15s alerting: alertmanagers: - follow_redirects: true enable_http2: true scheme: http timeout: 10s api_version: v2 static_configs: - targets: [] scrape_configs: - job_name: prometheus honor_timestamps: true track_timestamps_staleness: false scrape_interval: 15s scrape_timeout: 10s metrics_path: /metrics scheme: http follow_redirects: true enable_http2: true static_configs: - targets: - localhost:9090로 나옵니다.추가적으로 강의를 따라하고 있는 yml파일과 prometheus.yml 파일도 첨부하겠습니다. # actuator 설정 management: server: port: 8080 info: java: enabled: true os: enabled: true env: enabled: true endpoint: shutdown: enabled: true # shutdown 기능 킴 health: show-details: always endpoints: web: exposure: include: "*" info: app: name: hello-actuator company: house server: tomcat: mbeanregistry: enabled: true servlet: encoding: charset: UTF-8 enabled: true force: true logging: level: h.actuator.controller: debug 프로메테우스.ymlglobal: scrape_interval: 15s evaluation_interval: 15s alerting: alertmanagers: - static_configs: - targets: # - alertmanager:9093 rule_files: scrape_configs: - job_name: "prometheus" static_configs: - targets: [ "localhost:9090" ] #추가 - job_name: "spring-actuator" metrics_path: '/actuator/prometheus' scrape_interval: 1s static_configs: - targets: [ 'localhost:8080']입니다. 혹시 제가 잘못 따라간 부분이 있을까요?마지막으로 mac os m1 사용 중이고, spring boot 3.2 jdk 17 버전입니다!
-
미해결설계독학맛비's 실전 Verilog HDL Season 1 (Clock부터 Internal Memory까지)
Begin end 사용
안녕하십니까 수업을 듣던 중 궁금한 점이 생겨서 질문 남깁니다. Always ~~~ begin End Always~~~begin End 는 always 문이 두개라 사용의 이유가 납득이 되는데Always 문안에서 if문이 한번 사용되는데 begin을 쓰신 이유가 궁금합니다.예를들어) Case2.에서 (확실히 나와있는게 case2)Always ~~~ beginIf ~~ beginEnd else beginEndEnd 가 이해가 가지 않습니다. “Always ~~~~beginIf ~~~~~Else ~~~~End“ 하면 똑같지 않나요 ?=================현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.==================
-
해결됨Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
modal 컨포넌츠 등록 문의
앞서 App.vue에선,import TodoHeader from './components/TodoHeader.vue'하여components: { 'TodoHeader': TodoHeader, },이렇게 컴포넌츠를 등록했습니다. 그런데 왜 모달은 TodoInput.vue 파일에서components: { popModal: popModal, },이렇게 작은따옴표('') or 큰따옴표("")를 사용하지 않고 등록하는건가요? (정상작동은 합니다~!)
-
미해결자바 코딩테스트 - it 대기업 유제
문제풀이 확인 부탁드립니다.
package com.company.대기업유제.그래프; import java.util.*; class 교육과정 { public String[] solution(String[] subjects, String[] course){ String[] answer = {}; /** * n개의 교육과정 수료해야함 * 교육과목에는 선수과목이 있다. * 선수과목 관련해서는 위상정렬을 사용한다. * n개의 과목을 모두 이수할수있는 순서를 배열에 담아 반환 * (답이 여러개면 그 중 아무거나 반환) 위상정렬의 특징 * subjects : n개의 과목 목록 * course : 선수과목 정보 * */ //먼저 선수과목을 구분하기 위해 노드들을 생성 Map<String, Node> nodes = createNodes(subjects, course); //후위순회로 탐색 LinkedList<String> result = new LinkedList(); Set<Node> discovered = new HashSet<>(); for (var entry : nodes.entrySet()) { if(!discovered.contains(entry.getValue())){ DFS(entry.getValue(), result, discovered); } } return result.toArray(String[]::new); } private void DFS(Node node, LinkedList<String> result, Set<Node> discovered) { discovered.add(node); for (Node next : node.nexts) { if(!discovered.contains(next)){ DFS(next, result, discovered); } } result.addFirst(node.name); } private Map<String, Node> createNodes(String[] subjects, String[] course) { Map<String, Node> nodeMap = new HashMap<>(); for (String subject : subjects) { nodeMap.put(subject, new Node(subject)); } for (String s : course) { String[] split = s.split(" "); //선수과목 String parent = split[1]; // parent -> child String child = split[0]; Node parentNode = nodeMap.get(parent); Node childNode = nodeMap.get(child); parentNode.nexts.add(childNode); } return nodeMap; } class Node{ public Node(String name) { this.name = name; } final String name; Set<Node> nexts = new HashSet<>(); //하위 과목 } public static void main(String[] args){ 교육과정 T = new 교육과정(); System.out.println(Arrays.toString(T.solution(new String[]{"english", "math", "physics", "art", "music"}, new String[]{"art math", "physics art", "art music", "physics math", "english physics"}))); System.out.println(Arrays.toString(T.solution(new String[]{"art", "economics", "history", "chemistry"}, new String[]{"chemistry history", "economics history", "art economics"}))); System.out.println(Arrays.toString(T.solution(new String[]{"math", "science", "music", "biology"}, new String[]{"science music", "math music", "math science", "biology math"}))); } }
-
미해결비전공자를 위한 풀스택 맛집지도 만들기 프로젝트!: Front, Back-end 그리고 배포까지
이미지 부분에 cctv 영상을 넣고 싶은데요.
이미지 부분에 cctv 영상을 구현하고 싶은데, 혹시 .... api를 연동해서 어떻게 연결하면 되는지 알 수 있을까요?
-
해결됨냉동코더의 알기 쉬운 Modern Android Development 입문
RecyclerView.Adapter vs ListAdpater
안녕하세요.ListAdapter로 리사이클러뷰를 생성할 때의 장점으로는 notify관련 함수를 개발자가 일일이 설정해줄 필요가 없고, DiffUtil을 통해 데이터 셋의 차이를 빠르게 계산해준다는 점이 있다라고 말씀해주셨는데 ... 그럼 기존의 Recyclerview.Adapter는 사용하지 않는 편이 더 좋은걸까요? 아니면 ListAdapter에 이러한 장점들이 있음에도 불구하고 Recyclerview.Adapter가 꼭 쓰여야하는 특별한 상황이 남아있을까요?