안녕하세요 영한님! 질문이있어서 찾아왔습니다. 현재 프로젝트를 진행중인데 한줄로 요약하면 기준 영양 성분에 맞추어 부족,과잉 영양분을 판별해 주는 프로젝트 입니다. 저는 기준 영양성분을 ENUM 타입으로 관리하자 는 입장이였습니다. 그 이유는 1) 저희 서비스는 적정영양성분 부족과잉을 판별 하는데 매번 DB를 조회해서 findProperAmountByName("단백질") 을 매번 같은 적정량을 조회하는 게 부담 스럽다. => Enum 타입으로 탄수화물의 적정량을 넣어두면 훨씬 편하게 조회할 수 있을 것이다. 2) findProperAmountByName("단백질") 은 현 재 코드만으로는 DB에 어떤 영양소가 있는지도 모르고 확인하기 어렵 다. ENUM 타입으로 묶으면 CARBON_HYDRATE,PROTEIN 등등 이렇게 묶어서 편하게 관리할 수 있다. 이렇게 생각하고 또 개발을 진행중에 있었습니다. 그러던 와중에 "영양제" 라는 컨텐츠에 탄수화물, 단백질 이 부족할 때 좋은 영양제라는 의미로 "탄수화물","단백질" 이라는 키워드를 쓰고 싶을 때 <아래는 영양제 칼럼> @ElementCollection(targetClass = StandardNutrient.class) @JoinTable(name = "StandardNutrient",joinColumns = @JoinColumn(name = "drug_id")) @Column(name ="StandardNutrientName", nullable = false) @Enumerated(EnumType.STRING) private Set<StandardNutrient> efficientNutrient = new HashSet<>(); 이렇게 쓰고 싶은 마음이 굴둑 같습니다. 이렇게 했을 때 발생할 수 있는 단점에 대해 알고 싶습니다. ( StandardNutrient는 Enum 타입입 니다. ) 1) 일단 StandareNutrient 의 종류가 바뀔일이 절대 없습니다! 2) 이 서비스의 Manager 만 영양제를 등록할 수 있습니다. 3) List 대신 Set 을 사용함으로써 다 delete 한이후 insert 하지도 않습니다. 어떻게 생각하시나요?
AtomicInteger의 getAndUpdate가 람다를 적용하기 전의 값을 반환하므로, 해당 메소드의 반환 값을 출금 후 잔고가 아니고, 출금 전 잔고로 표현하는 것이 의미가 맞습니다. 추가로 출금 전의 잔고가 출금액 보다 작아야 잔고 부족으로 출금이 실패한다고 표현해야 자연스러운 것 같습니다. 해당 예시를 다음과 같이 수정했습니다. // main function for (int i = 0; i < 5; i++) { new Thread(() -> { int withdrawalAmount = 500; // 출금액 int beforeUpdatedBalance = accountBalance.getAndUpdate(balance -> { if (balance >= withdrawalAmount) { return balance - withdrawalAmount; // 출금 성공 } else { return balance; // 출금 실패 } }); if (beforeUpdatedBalance < withdrawalAmount) { System.out.println(Thread.currentThread().getName() + " : 잔고 부족으로 출금 실패"); } else { System.out.println(Thread.currentThread().getName() + " : 출금 전 잔고: " + beforeUpdatedBalance); } }).start(); } 강의 잘 듣고 있습니다. 감사합니다 🙂
ctrl + alt + V 를 사용하여 자동 완성을 시키면 import가 생성되면서 이렇게 변합니다. 강사님의 화면에선 자동완성 시 NestedOuter.Nested 타입으로 생성되고 import 가 생성되지 않는데 이유를 알 수 있을까요...? ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.스프링 입문 수업을 듣고있는데 처음부터 막혔어요 ㅜㅜ 인텔지제이 설치부터 설정을 처음부터 어떻게 해야하나요 강의에서는 인텔리제이가 이미 깔려있고 설정도 어느정도 마친상태로 하던데 어떻게 해야하냐요
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.
안녕하세요. 강의 잘 듣고있습니다. 제가 요즘 TDD에 대해서 이제 막 공부를 시작했습니다. 테스트방법에 대해서 mocking, stubbing이 있더라구요. 강의 내용 중 말씀해주신 FAKE 객체를 만들어서 테스트하는 방식이 Stubbing 방식이란 같은 것일까요? 실무에서도 Mockking 보다는 Stub객체를 만들어서 테스트하는 경우가 더 많은가요? 아직 mocking과 stub객체를 사용해서 테스트 하는 방식의 차이나 목적이 이해가 잘 되지 않아서 질문드립니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 조회만을 위한 메서드를 작성할때 쿼리 힌트를 사용하는것보다 트랜잭셔널 메소드 레벨 어노테이션에 readOnly=true 속성을 넣어서 읽기 전용으로 사용하면 안되나요?
안녕하세요. 컴퓨터공학과 3학년학생입니다. 백엔드에 관심이 생겨 스프링 강의를 들으려 강의를 찾아보던중 인프런의 김영한님의 스프링 강의를 알게 되었습니다. 김영한님 강의가 어렵다는 말도 있던데, 스프링 완전 초보자가 들어도 잘 이해할 수 있을지 궁금합니다! 저는 로드맵에서 가장 첫 무료 입문 강의(코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 )를 초반만 조금 들었봤는데 조금 난이도가 있더라고요. 이게 전체적인 흐름을 알려주는거라서 어려운것인가요? 로드맵 뒤에 스프링 핵심 원리 - 기본편도 비슷한 난이도인가요? 더 쉬운편인지 궁금합니다
안녕하세요, 피자 배달거리 질문드립니다. 처음에는 제가 강의에서 풀어주신 코드와 유사한 방식으로 작성했었는데 정답은 맞게 나오지만 제출해보면 자꾸 시간 초과가 떠서.. 강의를 보면서 완전히 같은 코드로 고쳐봤는데도 시간 초과가 뜨네요ㅠㅠ 혹시 이 코드에 문제점이 뭔지 답변 주시면 감사하겠습니다! import java.util.ArrayList; import java.util.List; import java.util.Scanner; class Points { int x,y; Points(int x, int y) { this.x= x; this.y = y; } } public class Main { static int n, m, len = 0; static int answer = Integer.MAX_VALUE; static int[] ch; static List<Points> pizzaDis, homes; // 피자 배달거리 public static void main(String[] args) { Scanner in = new Scanner(System.in); n = in.nextInt(); m = in.nextInt(); pizzaDis = new ArrayList<>(); homes = new ArrayList<>(); for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { int num = in.nextInt(); if (num == 2) { pizzaDis.add(new Points(j, i)); } else if (num == 1) { homes.add(new Points(j,i)); } } } len = pizzaDis.size(); ch = new int[m]; dfs(0,0); System.out.println(answer); } static void dfs(int level, int start) { if (level == m) { int sum = 0; for (Points h : homes) { int min = Integer.MAX_VALUE; for (int p : ch) { min = Math.min(min, Math.abs(h.x - pizzaDis.get(p).x) + Math.abs(h.y - pizzaDis.get(p).y)); } sum += min; } answer = Math.min(sum, answer); } else { for (int i = start; i < len; i++) { ch[level] = i; dfs(level + 1 ,start + 1); } } } }
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 일단 h2 다운받기는 했는데 cmd에서 조작하는 법을 모르겠습니다. 아무거나 쳐봐도 내부 또는 외부 명령, 실행할 수 있는 프로그램, 또는 배치 파일이 아닙니다. 라고만 뜹니다.
안녕하세요. 플러그인 관련 개발자 리소스 문서에도 강의하신 Action, Filter, WP API, Ajax 사용법 등과 같은 내용이 보이는데요. 플러그인 개발은 테마 개발과 다른 성격의 기능을 개발한다는 점에서 차이가 나는 것일까요?테마는사이트의 외관 개발에 적합하고 사이트에서 한개의 테마만 활성화할 수 있고, 플러그인은 내부적인 동작과 로직 개발에 적합하고 여러 플러그인을 활성화할 수 있다는 차이가 나는 것으로 이해하면 괜찮을까요?파트1을 듣고 파트2를 수강하고 있는데 플러그인 개발은 다루지 않는다고 하셔서 궁금하여 질문 드립니다.좋은 강의 감사합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예) [질문 내용] 문제 3번에서 마지막 12행 else부분부터 이렇게 해버렸는데 이러면 역시 완전히 틀렸다고 보는게 좋을까요? else if (dollar > 0) { System.out.println("환전 금액은 " + dollar * 1300 + "원 입니다."); }
안녕하세요. Queue 질문이 있어서 글 씁니다. add()와 offer() remove()와 poll() 은 각각 동작도 같고 반환 타입도 같던데 검색해보면 예외를 발생시키느냐 마냐의 차이라고 나와서요. 실제로 offer() 까보면 return add()라고 되어 있기도 하고 ... 무슨 차이인지 그리고 어떨 때 어떤 걸 쓰는 게 좋을지 보충 설명 부탁드립니다.
백엔드 프로젝트로 데이터베이스를 사용하지 않는 게시판을 만들어보고 싶은데 김영한 강사님의 로드맵 스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술 스프링 핵심 원리 - 기본편 현재 강의 모든 개발자를 위한 HTTP 웹 기본 지식 스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술 스프링 MVC 2편 - 백엔드 웹 개발 활용 기술 스프링 DB 1편 - 데이터 접근 핵심 원리 스프링 DB 2편 - 데이터 접근 활용 기술 스프링 핵심 원리 - 고급편 실전! 스프링 부트 중 어디까지는 들어야지 제가 원하는 간단한 프로젝트를 진행할수 있을지 궁금합니다. 감사합니다.
강의 6분쯤에 refValue 내부의 인수 타입을 Grade에서 Object로 바꾸신 이유가 있을까요? Grade 타입으로 지정해도 참조값이 똑같이 잘 나와서요! private static String refValue(Object grade) { return Integer.toHexString(System.identityHashCode(grade)); } ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요.
안녕하세요 . 아직 리액트에 빠져살아서 서버컴포넌트와 클라이언트 컴포넌트 사용 구분이 잘 가지 않아 질문드립니다. 1번 질문. 예를들어 3개의 페이지가 존재한다고 했을때, 각 페이지는 navbar(하위컴포넌트)를 가지려고 하는데요 navbar의 버튼은 각 페이지 마다 다 다른 함수로 동작하게 된다고 가정하면, 3개의 페이지 컴포넌트는 'use-client'를 사용하여 클라이언트 컴포넌트가 되어야 하는게 맞나요? 그렇다면 페이지의 하위컴포넌트를 서버컴포넌트로 만들면 서버컴포넌트로 사용하면 ssr을 사용하는 이유가 충분할까요? 2번질문. after_login 폴더 안에 _lib폴더에서 'getTrends'함수로 패치를 했는데요, 결국에는 클라이언트 컴포넌트에서 usequery로 데이터를 패치해오고 있습니다. 그러면 데이터 패치도 클라이언트컴포넌트에서 진행하는것인데, 1번상황에 패치도 2번과 같이 한다면 서버사이드렌더링의 장점은 어떤것이라고 볼 수 있을까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 아니요 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 양쪽에 LAZY로 설정되어 있는것 같은데 맴버를 조회하면 ORDER와 MEMBER가 무한으로 탑니다. ( 주문까지 진행한 상태 ) 그게 현재 진도에서 맞는 상태인지 궁금합니다. (다음 강의에 설명 나오는지 모름)