안녕하세요. 현재 저는 김영한 강사님이 올려놓으신 스프링 완전 정복 시리즈 로드맵(고급편, 핵심 원리와 활용 제외)과 JPA 실무 정복 로드맵(스프링 데이터 JPA, QueryDSL 제외)을 수강(1회 수강)했습니다. 저는 지금까지 배운 기술들로 간단한 개인 프로젝트를 진행하려고 하는데 프로젝트 진행 방법에 대해 궁금한 점이 있습니다. 첫 번째 질문 저는 일단 지금까지 들었던 강의들을 빠른 배속으로 다시 들으면서 프로젝트를 진행하려고 하는데 이게 맞는지 아니면 프로젝트 도중에 헷갈리는 개념들을 찾아서 복습하는 식으로 진행하는게 맞는지 궁금합니다. 아니면 더 좋은 방법이 있으시다면 추천 부탁드립니다. 두 번째 질문 그리고 강사님 강의들을 처음 들을 때는 라이브 코딩을 진행하면서 강의를 들었었는데 복습할 때는 라이브 코딩 말고 그냥 빠른 배속으로 들으면서 복습하는 것도 괜찮은 건지 궁금합니다.
안녕하세요 현재 개발자를 준비하고 22살 남성입니다, 저에게는 한 가지 고질적인 고민이 있습니다, 바로 제대로 된 네트워킹이 이루어지고 있지 않다는 점 인데요, 고졸이라는 학력과 주위에 아무런 인맥도 없는 상황에서 20살부터 혼자서 2년간 공부를 했기에 불안함이라는 감정이 아무리 공부를 하더라도 지워지지 않는 거 같습니다, 아마 객관적으로 현재 저가 어느정도 수준인지 파악이 안되는 상황이라서 생기는 감정이라고 생각하고 있습니다. 사실 개발자를 준비하면서 여러 차례 네트워킹을 노력 했지만 뜻대로는 안 된 거 같습니다, 하지만 지속적인 불안함 때문에 2년간 계속해서 공부방식에 대한 의심이 많았고, 누가봐도 좋은 방식이라는 생각이 들 수 있도록 방향에 대한 교정을 이어나가고 있습니다. 본론은 지금부터 입니다, 현재까지 몇 번의 서비스를 만들어 왔으며, 매번 서비스를 만들면서 백엔드 개발 관점에서 더 좋은 코드를 만들고자 노력하고 있습니다. 그리고 지금은 새로운 서비스를 만들면서 이전에는 구현하기 바빴다면, 이번에는 개발서적을 읽고 여러 레퍼런스를 보면서 개발을 하고있는 상황입니다. 예를 들어, JPA의 경우 현재 내 코드가 선택적 비식별관계인지 필수적 비식별관계인지 점검하고 만약 필수적 비식별 관계일 경우 N + 1 문제를 해결하기 위해, 연산이 상대적으로 더 빨라서 성능 면에서 외부조인보다 더 좋은 내부조인을 사용할 수 있고 이러한 내부조인을 사용하여 N + 1 문제를 해결하는 등 서적을 읽으면서 문제점을 계속해서 찾다보니 점검 해야하는 체크 리스트가 약 150개 정도 되는 상태입니다. (근데 말이 저렇다는거지 실제로는 요구사항에 따라서 @EntityGraph나 Fetch Join이 더 좋을 수도 있을거라고 생각하고 있습니다) 또한 책을 읽다보니 간단한 CRUD을 구현하는 것도 사실 간단한게 아니라 저가 놓치고 있는게 정말 많이 있다는 사실을 알 수 있었고, 지금은 한 가지 기능을 구현할 때 많은 고민을 가지면서 개발하는 습관이 생겼습니다, 이외에도 빨리 데이터베이스와 아키텍처 그리고 네트워크에 대한 내용도 서적을 읽으면서 제 기준으로 최대한 깊게 공부하고 싶은 생각이 들고 있습니다. 그리고 저는 이러한 부분에서 "다른 개발자들은 기본적으로 알고 있는거면 어떡하지?" "지금 고치고 있는게 의미 없는거면 어떡하지?" "열심히 서적을 읽고 정리하고 코드에 적용하고 그걸 기록하고 남들이 읽기 쉽도록 PR하는데 이게 아무 가치가 없는거면 어떡하지?" 같은 불안함을 느끼고 있습니다, 그래서 지금 방식이 괜찮은지 김영한님의 조언을 듣고 싶습니다, 되도록이면 쓴소리를 듣고 더 좋은 방향으로 발전하고 싶습니다, 긴글 읽어주셔서 감사합니다. + 그리고 마지막으로 지금 만드는 서비스가 저가 이전에 일했던 시장에서 불편한 점을 개선하는 서비스입니다, 랜딩 페이지를 만들어서 약 이틀간 수요 조사를 했는데 200분이 방문하시고 80분 정도가 이 정보를 원하고 계신 상태이기에, 최소한 한달에 1,000명 정도는 사용하지 않을까..? 하는 생각이 있습니다, (과거 수익형 블로그 운영 경험이 있어서 사이트 노출에 대한 이해도가 좀 있음) 그래서 신입이 최선을 다해서 만든 서비스가 사용자 피드백을 받고 개선한것도 있다면 좀 좋게 봐주실까요....?
출발지점이 상관없는지 도저히 이해가 가지 않습니다. ㅜㅜ 한 지점에서 다른 지점까지 나가는 값하고 들어오는 값이 같다면 이해가 되는데 이문제는 들어오는 값과 나가는 값이 다르고 심지어 들어오는 선의 수와 나가는 선의 수 개수도 다른데 어떻게 출발지점이 어디든 상관이 없고 똑같다고 설명해 주시는 건지 이해가 가지 않습니다.
안녕하세요!.. 강의와 무관한 내용이지만 마땅히 스프링 관련된 질문을 아는 곳이 없어 평소 스프링 강의를 들은 선생님께 질문을 하게 되었습니다. 질문에 대한 전체 코드는 아래 링크에 작성했습니다. https://www.notion.so/7iwook/userVolunteerService-1d911afe2d6545bfa1e8247cc6006748?pvs=4 @Lock(LockModeType.PESSIMISTIC_READ) @Override public Optional<UserVolunteerWork> findByVolunteerWorkIdAndUserId(Long volunteerWorkId, Long userId) { return Optional.ofNullable(queryFactory .selectFrom(userVolunteerWork) .join(userVolunteerWork.volunteerWork, volunteerWork) .join(userVolunteerWork.user, user).fetchJoin() .where( userVolunteerWork.volunteerWork.id.eq(volunteerWorkId) .and(userVolunteerWork.user.id.eq(userId)) ).setLockMode(LockModeType.PESSIMISTIC_READ) .fetchOne()); } 위 코드를 순차적 시행하면 문제없이 원하는 결과값을 반환하지만 (테스트 코드가 길어 똑같은 부분을 제외하고 차이점만 올립니다.) for (int i = 0; i < tryCnt; i++) { User user = users.get(i); try { volunteerService.approve(adminEmail, volunteerWorkId, user.getId()); successCount++; // 성공한 신청 수 증가 } catch (Exception e) { failedCount++; } } 동시성 테스트를 위해 아래와 같이 구성을 하면 쿼리 결과 값이 null로 나와 EntityNotFoundException을 던지게 됩니다.. int numThreads = 50; // 50명의 유저가 동시에 신청 CountDownLatch doneSignal = new CountDownLatch(numThreads); ExecutorService executorService = Executors.newFixedThreadPool(numThreads); AtomicInteger successCount = new AtomicInteger(); AtomicInteger failCount = new AtomicInteger(); for (int i = 0; i < numThreads; i++) { User user = users.get(i % users.size()); // 유저 목록에서 순차적으로 유저를 가져옴 executorService.execute(() -> { try { log.info("approved userId = {}", user.getId()); volunteerService.approve(adminEmail, volunteerWorkId, user.getId()); successCount.getAndIncrement(); // 성공한 신청 수 증가 } catch (Exception e) { e.printStackTrace(); failCount.getAndIncrement(); // 예외 처리 } finally { doneSignal.countDown(); // 쓰레드 작업 완료를 알림 } }); } 인터넷에 나와있는 비관적, 낙관적 락을 모두 시도해보았으나 null로만 반환되는 현상이 나오는 데 이 현상이 동시성에 있는건지도 아직 모르겠습니다... 원인에 대해 찾아주신다면 정말 감사합니다!! 좋은 강의 항상 잘 듣고 있습니다!!
3주차를 풀고있는 코린입니다. 처음 개념을 공부하고 1~2주차는 열심히 생각하면 1~2시간이면 여러 개 풀었던 것 같은데 3주차 문제들은 제가 스스로 푼 게 초반 3개 정도이고 나머지는 아무리 고민해도 잘 안 풀립니다. 점점 의욕도 떨어지네요.. 어쩔 수 없는 걸까요? 그냥 계속 고민하다가 한 문제도 못 푼 날도 있습니다ㅜㅜ 그냥 열심히 하다 보면 점점 실력이 늘까요..?
안녕하세요 선생님 🙂 선생님께서 강의로 알려주신 것들과는 별개의 문제인데요, 로직이 떠오르지가 않아서 도움 요청 드립니다! 제가 판단했을 때, nums 배열 안에 있는 숫자들을 백트래킹으로 더하고 max함수로 그중에서 가장 큰 숫자를 고르는 문제인거까지 파악했는데요, 백트래킹 조건을 어떻게 줘야할지 도무지 모르겠습니다 ㅠㅠ 풀이까지 바라는건 너무 염치가 없을 것 같습니다. 어떤 아이디어로 풀어야 하는지만 알려주신다면 정말 감사하겠습니다..!! 축구 구단에서 신입 선수의 등번호를 정할 때 특이한 방식으로 등번호를 정합니다. 선배 선수들이 -100에서 +100까지의 숫자를 적어서 선착순으로 번호를 제출합니다. 그렇게 해서 만들어진 번호 목록 nums = {-1, -3, -2}가 만들어집니다. 점수는 합할 점수와 버릴 점수로 구분할 수 있습니다. 점수를 계속 더하다가 버리고 싶은 점수가 있으면 버리면 되는데, 연속해서 버리지 못하는 조건만 충족시키면 됩니다. 그렇게 해서 최대값에 해당하는 등번호를 만들어야 합니다. 조건 숫자의 총 합은 점수 목록에서 더할 수 있는 모든 숫자를 더한 경우의 수 중에서 가장 큰 값 숫자를 순서대로 더하는데, 더하지 않을(버릴) 숫자는 2회 이상 연속될 수 없다. 위의 -1, -3, -2에서 아무 것도 버리지 않고 더하면 등번호는 -6이지만, 중간에 -3을 버리면 등번호는 -3으로 정해진다. nums = {-3, 2, 4, -1, -2, -5}라면, 위의 조건을 이용해서 구할 수 있는 최대 등번호는 4. -3을 버리고, 2와 4를 더하고, -1을 버리고, -2를 합하고, -5를 버리면 [2 + 4 + (-2)] 등번호를 4로 만들 수 있다. 제약 조건 1<= n <= 1e+5 -100 <= nums[i] <= 100, 0 <= i < n
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
이번에 배포까지 완료 하였고, 많이 부족하지만 이 강의를 통하여 배운 것을 기반으로 응용 프로젝트를 하려고 합니다. 목표는 웹 앱 하이브리드 형식으로 웹에서는 관리자 관리 기반 기능 (책 등록, 회원 승인, 기록 관리) 앱에서는 로그인이나 ai 가 책을 추천하고, 책에 대한 소통하는 게시판, 웹에서 등록된 책을 앱에서 대출 및 반납 을 목표로 하고 있습니다. 예전에 js, css 를 다뤄서 html 을 만들어본 경험과 안드로이드 스튜디오를 통해 heidiSQL 을 사용하여 알람 앱을 만들어 본 적도 있는데, 다 까먹었지만, 다시 한번 기억을 되살려 써먹어보고 싶습니다. 문제는 일단 프론트 쪽 부터 뜯어보고 싶은데, 제가 배웠던 것은 js와 css 파일을 나누어서 그것을 이용해 body에 때려박는 무식한 방식으로 했는데 idex.html 에 있는 body 에 id="root" 만 있고 이 root 에 대한 값을 못찼겠네요... 일단 제가 알고 싶은 것은 버튼이나 여러 ui를 추가 하고 싶은데 혹시 강의에서 주신 html 을 건들려면 어떻게 해야 할지 알 수 있을까요? 서버 실행 후 index.html 에 있는 저장 버튼이 어떻게 저희가 작성한 코드와 상호작용 되는지 알 수 있을까요?
[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 입문 강의 듣고 스프링 완전 정복 로드맵을 구매하려고 했는데, 입문강의에서 JPA까지 다루는 법을 알려주시는데, 이해하고 넘어가려고 하니 갑자기 개발자를 해도 될지 의문을 가질정도로 어렵게 느껴집니다. 로드맵 강의를 구매해도 괜찮을까요...
안녕하세요 영한님 영한님 강의들을 통해서 스프링이 무엇인지도 몰랐던 저는 이제 팀을 만들어 프로젝트를 하고 개발이라는 것에 즐거음을 느끼고 있는 개발 취준생입니다. 최근 프로젝트를 진행하면서 JPA 사용하는 중에 테스트 코드에서 어려운 부분이 있어 너무 궁금하여 질문을 남깁니다. 저는 물류 관리 시스템의 주제로 프로젝트를 진행하고 있습니다. 이 과정에서 엔티티과 연관관계를 복잡하게 가지고 있고 이로 인해서 서비스 테스트 코드 하나를 테스트하기 위해 많은 사전 데이터가 필요한 상태입니다. 테스트 코드를 작성하기 위해서 많은 Mock 데이터가 필요한 문제점을 해결하기 위해서 실무에서는 어떤 식으로 이런 문제를 해결하는지 궁금합니다. 혹시나 이 글을 보신다면 답변 해주시면 정말 감사하겠습니다. ㅠㅠ 👏 👏
이 버전으로 하였고 자바 버전 다 맞춰보고 invalidate Cashes, 새로운 프로젝트 생성 후 만들어도 안 됩니다. 답변 글 중에 jdbc api를 의존성에 추가하면 된다고 해서 해봤는데 그렇게 하면 DatasourceUtils는 import가 되나 부트 실행이 안 됩니다 .
안녕하세요! 회사에서 Jetbrains 를 사용하고 있어서 VSCode 말고 Webstrom , IntelliJ를 사용하고 있는데요! CLion에서는 재생 버튼 누르면 실행이 됩니다! 교안의 초반의 세팅 및 실행 방법 등과 CLion 다르다는 점이 혹여나 추후 코딩테스트에서 C++ 실행방법 등과 같이 VSCode에서 하는 방법이 더 필요한 내용인지 염치 불구하고 여쭤봅니다
API 뭐 톰캣서버내장 이런 단어조차 모르니 너무 어렵네요 ㅠㅠ 비전공자 출신인 저로서는 CSS HTML 자바스크립트 이런 용어도 생소한데 혹시 웹기본에 대한 지식을 먼저 쌓고 강의를 따라가야하는걸까요 ..? 아니면 우선 계속 따라하면서 익숙해질 수 있을까요 ㅠㅠ 혹시 먼저 선수지식이 필요하면 어떤걸 공부하면 좋을까요
안녕하세요. 스프링 입문, 핵심원리, HTTP, MVC 1, MVC 2까지 본 학생입니다. (너무 좋은 강의 감사합니다!) 진도를 나가는 것에만 치중해서 듣다 보니 진짜 강의만 보고 끝난 느낌이라 수업에서 진행한 프로젝트도 혼자 할 수 없을 것 같습니다.. 하나의 섹션이 끝난 뒤 라이브 코딩한 코드를 읽으면 조금은 이해가 된 것 같지만 막상 혼자 코드를 작성하면 시작부터 막막한 상태니 복습도 어떻게 해야 할지 잘 모르겠습니다. 이렇게 본 강의가 쌓이다 보니 이 상태로는 다음 강의를 보면 안 될 거 같아 글을 올려봅니다. 이런 경우에는 강의를 다시 보고 다음으로 넘어가는 것이 좋을까요? 아니면 강의에서 진행한 프로젝트를 혼자 도전해 보면서 안 되는 부분을 강의 보고 공부한 뒤 다음 단계로 넘어가는 게 좋을까요? 제가 공부는 못하고 코딩은 더더욱 못하는지라 강의를 보고 이렇게 공부하고 복습하면 안 된다는 건 알겠지만 방식을 바꿔서 어떤 방향으로 진행해야 할지는 잘 모르겠습니다.. 이런 바보 같은 질문 죄송합니다..!!
일단 제가 이해한 것은 myArrayMain에서 MyArray에 배열의 참조값을 넘겨주고 그 참조값을 MyArrayIterator에 넘겨 새로운 인스턴스를 생성합니다 최종적으로 MyArrayIterator에서 참조값을 반환받아서 iteorator 함수를 사용합니다. 그러나 아래의 코드처럼 곧바로 MyArrayIterator로 배열의 참조값을 넘겨도 바로 사용이 가능한데 이렇게 하면 어떤 문제점이 생길지 궁금합니다. 유지보수 관점에서 문제가 생기는 걸까요?
안녕하세요 큰돌님 저는 1년 전쯤에 이 강의를 들었던 수강생입니다. 취업 후 문제풀이를 많이 하지 않다가 최근 이직을 생각하게 되면서 다시 이 강의를 켜게 되었는데요.. 처음 들었을 때와 달리 지금 문제를 보니 문제를 보자마자 거의 외운 것처럼 답이 떠오르는 문제와 1년 전쯤에 이해를 완전히 하지 못했어서 지금 새롭게 느껴지는 문제(특히 8장)가 섞여 있어서 좀 뒤죽박죽인 상태입니다. 문제를 오랜만에 풀어서 손이 굳은 것도 이슈이고요.. 이런 상황에서 풀이를 알더라도 처음부터 모든 문제를 풀면서 감을 되살리는 게 좋을지 딱 봤을 때 풀이가 생각나면 넘어가고 풀이가 생각이 안 나는 문제 위주로 빠르게 푸는 게 나을지 모르겠습니다. 공부 방법에 대한 조언을 해주시면 감사하겠습니다.
안녕하세요 큰돌님! 저는 큰돌님 강의를 수강하는 학생입니다. 제가 지금 강의를 들은 부분이 섹션 0이고 알고리즘 교안은 공부중에 있습니다. 지금 빨리 하고 싶은 부분이 섹션 2,3 부분인데 혹시 알고리즘 교안 공부 후에 섹션 1을 스킵하고 섹션 2,3을 진행해도 괜찮을까요? (섹션 2,3을 한 후에 섹션 1을 진행해도 괜찮을까요?)