실전! 코틀린과 스프링 부트로 도서관리 애플리케이션 개발하기 (Java 프로젝트 리팩토링)
안녕하세요~ 최태현님 테스트 코드 작성에 있어서 고민이 있어 문의남깁니다. 이전까지 다른 강의 영상에서는 repository를 mocking해서 서비스를 테스트하는 영상을 많이 봤습니다. 그래서 서비스 테스트시에는 repository 를 mocking 하는것이 실무에서 흔한 방식이고 best practice라고 생각했습니다 그런데 실무에서 적용해보니 mocking을 하게되면 테스트 코드가 서비스 메소드의 내부 구현에 대해 너무 잘 알게되더라구요, 그러다보니 실제 코드의 내부 구현이 바뀌면 테스트 코드도 바뀌게 될 여지가 많더라구요.. 반면 스프링부트 테스트로 h2에 연결해서 하는 테스트는 상대적으로 느려 피드백이 늦는것이 단점일것같습니다. 개인적으로는 강의에 나온것처럼 스프링 부트 테스트로 h2에 연결해서 테스트하는 후자가 더 마음에 드는데요. 실제로 현업에서는 서비스 테스트시 둘중 어떤걸로 사용하시나요 ? 실제 강의하신것처럼 후자로 테스트를 많이 하시나요 ? 좋은 강의 감사합니다~
1) arr = list(map(int, input().split())) 2) arr = map(int, input().split())) 안녕하세요 저는 구현하기전에 문제를 읽고 코드설계를 먼저 하는방식으로 공부를 하고 있습니다. 대표값문제를 접하면서 궁금한점이 입력을 받을때 1)과같이 list를 써야하는지 아니면 2)처럼 안써도 되는지 어떻게 판단할 수 있을까요? 1)과 2) 둘 다 띄어쓰기로 구분하는 숫자열을 받는것은 동일하니 list를 써야하는지 안써도 되는지 판단 기준을 못잡겠습니다. 또 현재 대표값문제에서는 2)과 같이 썼을때 어떤 점때문에 의도치않은 결과가 나오는지 궁금합니다. 질문을 정리하자면 1) 여러 값을 입력받을때 list 사용의 판단 기준 2) 대표값문제에서 2)과같이 썼을때 정답이 안나오는 이유
안녕하세요! 장고 학습 관련하여 몇 가지 여쭤볼라고 합니다. 현재 장고를 개념부터 강의를 따라서 학습하고 있습니다. 뭔가 아직 막막하고 진도가 빠르게 진행되지 않아 마음이 성급한 마음이 있습니다. 그래서 불안감이 생겨서 그런지 부트캠프를 알아보았는데, https://learningspoons.com/course/detail/django-backend/ python django aws 기술 셋을 사용하는 부트캠프입니다. 들어가서 상단으로 올리면 커리큘럼을 볼 수 있습니다. 부트캠프로 들은 후, 나중에 이진석님 강의를 듣는 게 나은지 아니면 그냥 묵묵히 계속 강의를 듣는 게 나을지 고민이 됩니다. 만약 이진석님이 보실 때 커리큘럼이 만드신 강의가 더 낫다면 묵묵히 강의를 들으면서 학습해볼려고 합니다. 제 수준이 낮아서 뭐가 좋은지 잘 몰라서 여쭤봅니다.
1. 예를들어 자유게시판, 건의게시판 이렇게 여러개가 있고 기능은 거의 똑같지만 건의에는 사진업로드 기능이 추가로 존재할 때 자유게시판 컨트롤러, 레파지토리, 모델, ... 건의게시판 컨트롤러, 레파지토리, 모델, ... 이렇게 다 각자 만들어줘야 하나요? 아니면 컨트롤러 레파지토리 모델 자유,건의 게시판 통합해서 만드나요? 2. DB에서 테이블도 자유, 건의 게시판 따로 만들어서 개발하나요? ( title, content 이런 것들 )
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. JPA에서 enum을 활용할 때 질문드리겠습니다. 요일을 enum 타입으로 만들어 (0~6, 일~월 이런 형식) 체크 박스로 입력을 받아, 체크를 선택한 요일은 매장의 휴무일로 지정하는 로직을 구현하는 중입니다. @ElementCollection을 활용하여 간단하게 처리하려고 했으나, 추천하시는 방식이 따로 있길래 어떤 식으로 로직을 작성해야 하는지가 너무 궁금해졌습니다. https://www.inflearn.com/questions/21303 1. 위에서 영한님께서 해주신 답변 중, 2번의 경우를 추천하셨기에 2번으로 진행하려고 하였습니다! 혹시 이 경우, 2번 방법을 추천하신 이유가 무엇인지가 궁금합니다!!! 2. 위 링크의 2번 로직으로 코드를 작성하면 다대다 엔티티 매핑이 발생하는데 개인적인 생각에 요일과의 매핑은 단순히 요일과 요일에 엮여있는 매장 ID값만 알면 되는 것 같아 @ManyToMany를 그대로 사용해도 되는 건가?? 라는 생각이 들었습니다. 그대로 사용을 해도 좋은지 아니면 1 : N, N : 1로 풀어주는 것이 좋은지 궁금합니다!!!! 또, 이렇게 요일을 처리하는 구현을 Enum보다 추천하실만한 방법이 있는지, 있다면 어떤 방식인지도 말씀해주시면 감사드리겠습니다!! 날씨가 많이 더운데 더위 조심하시고 폭우 조심하세요! 감사합니다
공공데이터와 Folium(Python Library)으로 만드는 제주 오름 지도 안내 서비스
제주 오름 강의를 모두 수강한 뒤 다른 공공API를 이용해서 응용 연습을 해보고 있습니다. 체크박스로 원하는 주소 마커만 보는 기능을 사용했고 마커에 커스텀 아이콘을 사용했습니다.(아이콘 2가지 사용) 이제 부트스트랩에 적용해보려하는데 iconUrl길이가 너무 길어서 코드가 복잡해보입니다. iconUrl을 다른 코드로 대체해서 아이콘이 보이도록 할 수 있을 까요?
안녕하세요 영한님 스프링 기본편부터 querydsl까지 들으면서 혼자 프로젝트를 진행했었고 이제 사이드 프로젝트를 하면서 다른 프론트엔드 개발자와 협업해보고 싶습니다. 구글링을 해도 원하는 정보를 얻을 수 없어서... 질문을 남겨보려고 합니다. 보통 사이드 프로젝트를 진행하면 백엔드(저)는 제 pc로, 프론트엔드 개발자분은 그 분의 pc로 개발하게 될텐데, 제가 api 개발을 마치고 깃허브에 코드를 올려놓으면 프론트분이 제 코드를 clone해서 프론트분의 로컬 환경에서 api를 테스트하는 메커니즘인가요? 또한 만약 이렇게 테스트하게 된다면, 프론트분은 db이 어떻게 접근하는지, 보통 백엔드는 api만 개발하고 테스트는 하지 않는지도 궁금합니다.
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 위와같은 에러가 발생합니다. 에러 문구에 17버전 이라고 되어있어 구글링을 통하여 java버전이 제대로 설정되어있지 않음을 파악하고 환경변수 설정을 해주었습니다. 그래도 저 에러가 해결되지않아서 질문드립니다.
채점사이트에 dfs 방식으로 풀이후 제출해보았는데 오답처리가 되어 강사님 강의를 확인했는데 Integer[] arr 을 static 처리를 했는지 여부를 제외하고 전부 코드가 같았습니다. 강사님의 코딩을 그대로 클론하여 검사받아도 오류가 나오고 제가 짠 코드로도 오답이 나오는데 혹시 이유를 알 수 있을까요? 코드 첨부하겠습니다. package section8; import java.util.Arrays; import java.util.Collections; import java.util.Scanner; public class p05 { static int n; static int money; static int answer = Integer.MAX_VALUE; public static void DFS(int count, int sum, Integer[] arr){ if(sum > money)return; if(sum >= answer) return; if(sum == money){ answer = Math.min(answer,count); } else{ for(int i = 0; i<n; i++){ DFS( count+1,sum+arr[i], arr); } } } public static void main(String[] args) { Scanner sc = new Scanner(System.in); n = sc.nextInt(); Integer[] arr = new Integer[n]; for(int i = 0; i<n; i++) arr[i] = sc.nextInt(); money = sc.nextInt(); Arrays.sort(arr, Collections.reverseOrder()); DFS(0,0, arr); System.out.println(answer); } }
[질문 내용] 강의 내용 중 "JPA와 DB 설정 동작 확인"의 20분 경부터 나오는 ./gradlew clean build 를 실행하다가 -> 아래 화면 캡처와 같이 java.lang.IllegalStateException at DefaultCacheAwareContextLoaderDelegate.java:132 에러가 발생했습니다. Test 파일 2개 모두 동일한 에러 메시지입니다. 커뮤니티의 답변 및 구글 검색을 통해 문제를 해결하려 했으나, 해결하지 못해 문의드립니다. (커뮤니티 답변에서 저와 동일한 에러를 만난 경우는 진도가 더 나간 상태에서 발생한 에러였으며, 구글링에서는 대부분 AWS배포와 관련되어 이 에러가 발생하고 그것을 해결한 케이스였습니다.) Test 파일 2개는 아래와 같이 작성되었습니다. 커뮤니티 답변을 모두 확인한 것은 아니었기에, 혹시 저와 동일한 상황에서 동일한 에러가 해결된 경우가 있다면 링크를 부탁드립니다. (혹, 답변을 위해 더 공유해야 할 내용이 있다면 알려주세요)
질문을 찾아봤는데 없는것 같아서 질문 드립니다! 혹시 특정 Service만 OSIV를 끄고 커넥션을 유지하는 방법은 없을까요? 이전 강의에서 hibernate.default_batch_fetch_size는 전체 사이즈를 정하고 @BatchSize처럼 개별적으로 사이즈를 정하듯이 OSIV는 개별적으로 on/off는 불가능한지 궁금합니다.
23분쯤에 UpdateItemDTO를 service계층에서 만들고 controller로부터 String name, int price... 이렇게 따로 받지말고 dto로 한번에 받는게 좋은 설계다 라고 말씀 해주셨는데 그러면 Controller에서 service 계층의 UpdateItemDTO를 알고 있어야 DTO를 service계층으로 보내줄텐데 이렇게 되면 UpdateItemDTO를 service계층에 만드는것은 문제가 따로 없는건가요? 서로 다른 계층에 대해서는 서로 몰라야 한다고 생각했는데 헷갈려서 질문 드립니다.
안녕하세요. 연관관계에 대해서 의문이 생겼습니다. 24분 쯤에 foreign key를 update 한다고 하셨는데 foreign key가 업데이트 되는 것이 실무적으로 발생해도 되는 경우인가요? pk를 참조하고 있기 때문에 개념상으로는 update 되어서는 안되는 데이터라고 생각했는데 상황적으로(팀을 바꾸는 상황)는 update 되는 것이 맞다고 여겨져서 제가 잘못 알고 있는 것인지 궁금해졌습니다. 감사합니다.
Unable to start the daemon process. This problem might be caused by incorrect configuration of the daemon. For example, an unrecognized jvm option is used. Please refer to the User Manual chapter on the daemon at https://docs.gradle.org/7.5/userguide/gradle_daemon.html Process command line: C:\Program Files\Java\jdk-11.0.16\bin\java.exe --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.base/java.lang=ALL-UNNAMED --add-opens java.base/java.lang.invoke=ALL-UNNAMED --add-opens java.base/java.util=ALL-UNNAMED --add-opens java.prefs/java.util.prefs=ALL-UNNAMED --add-opens java.prefs/java.util.prefs=ALL-UNNAMED --add-opens java.base/java.nio.charset=ALL-UNNAMED --add-opens java.base/java.net=ALL-UNNAMED --add-opens java.base/java.util.concurrent.atomic=ALL-UNNAMED -XX:MaxMetaspaceSize=256m -XX:+HeapDumpOnOutOfMemoryError -Xms256m -Xmx512m -Dfile.encoding=UTF-8 -Duser.country=KR -Duser.language=ko -Duser.variant -cp C:\Users\***(이름부분)\.gradle\wrapper\dists\gradle-7.5-bin\f1w0cc9nuo0eivz97x2xlu9sv\gradle-7.5\lib\gradle-launcher-7.5.jar org.gradle.launcher.daemon.bootstrap.GradleDaemon 7.5 Please read the following process output to find out more: ----------------------- Error: Could not find or load main class org.gradle.launcher.daemon.bootstrap.GradleDaemon Caused by: java.lang.ClassNotFoundException: org.gradle.launcher.daemon.bootstrap.GradleDaemon 혹시 저처럼 이런 오류 뜨는분 계실 까봐 글남깁니다. 제생각인데 이거 원인이 윈도우 사용자이름 때문인거 같습니다 . 사용자 이름이 한글이면 뭔가 안맞아서 이런 오류가 뜨는거같아요. 똑같은 컴에서 사용자 추가해서 실습하니까 아무문제 없이 잘되네요. 제 경험담인데 비슷한 일로 마인크래프트가 있습니다 마인크래프트도 사용자 이름이 한글로 되어있으면 실행이 안되더라고요(Exit code : 0 라고뜨면서 꺼집니다) 그래서 그때 사용자(윈도우 운영체제 계정?)를 새로 만들어서 하니까 잘되더라고요 바보같이 마이크로소프트 계정이름이 한글로 되어있는바람에 컴터 사용자가 한글로 됐고 그래서 이런일이...있는거같습니다.포멧하지 않는이상 해결안되는거같고 다른방법으로 사용장 계정(?)을 새로 만들어서 해결했습니다 저는요.. 좀더 자세히 추측해보자면 C:\Users\hong 이거랑 C:\Users\홍길동 이차이 인거같습니다 이폴더가 이름으로 되는거같은데 한글이면 문제가 되는거같습니다. 혹시 비슷한 문제 있으신분들은 참고하시면 될듯 합니다.
안녕하세요~! 본 강의에서는 사용되지 않았지만 다중공선성 제거를 위해 VIF 10 이상인 피쳐들은 drop하는 게 성능에 더 좋다고 하여 해당 방법을 적용하였는데 오히려 RMSE값이 0.3~0.5 정도 커지는 결과가 나타났습니다.(선형회귀, 릿지, 라쏘) VIF 제거 외에는 강의해주신 내용도 거의 유사한 방식으로 전처리 적용하였습니다. 1. VIF 10 이상인 피쳐들을 제거하는 게 예측률 향상에 무조건 좋은 것은 아닌건가요? 2. 만약 그렇다면 다중공선성 제거를 위한 추가적인 기법이 있을 것 같은데, 대표적으로 활용되는 방법이 어떤게 있을까요? 3. 마지막으로, VIF 10 이상인 피쳐들은 제거하여 성능이 향상되는 데이터셋의 대표적인 예와, 적용이 잘 안되는 예가 있을까요? 이번에도 애매한 질문을 드리는 점 죄송합니다. 아시는 수준에서 답변 주시면 정말 감사하겠습니다^^