이야기를 나눠요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
프로젝트를 진행할려면 어느정도로 학습을 해야할까요?
k-해커톤 같은 곳에서 나오는 프로젝트 수준으로 개발을 할려면 자바 스프링을 어느정도까지 학습해야할까요?김영한 선생님의 스프링 강의 중 어디까지 들어야할까요? 대기업 기술면접 수준까지는 어느정도로 배워야할까요?
-
실무 환경 그대로 주문게시판 만들기 웹개발 기초 마스터
강의 수강 관련
강의를 새로 구매하기에는 비용이 부담되어 현재 수강중인 것 기간만료 후 연장하고 싶은데, 방법이 있을까요?비용을 조금 추가하는 방법이라도 좋으니, 2주정도 연장하고 싶습니다. 양해 부탁드립니다.
-
서버개발자 과제전형 완벽가이드 - 1편
개발을 업으로 삼기 위한 진지한 고민과 포트폴리오 방향에 대한 질문
안녕하세요, 강사님. 강의 잘 듣고 있습니다. 강사님의 목소리가 어디선가 들었던 것 같아 더 반가웠습니다.저는 SW 학부를 졸업했지만, 공부를 할수록 점점 어려워지고 흥미가 떨어져 결국 포기하려 했습니다. 그러던 중 교수님 추천으로 지금의 회사에 입사하게 되어 IT 부서에서 비개발 업무를 맡아 일하고 있습니다. 그동안 회사를 다니면서 개발자가 되기로 결심하게 되었고, 그런 면에서 제게 좋은 기회였다고 생각합니다. 그래서 본격적으로 개발 공부를 시작했습니다만, 직장을 다니며 평일, 주말에 공부하는 게 쉽지는 않더군요. 백엔드 공부를 처음 시작할 때는 Java와 Spring MVC부터 시작했습니다. 그런데 점차 공부하다 보니 배워야 할 기술들이 가지처럼 뻗어나가더군요. 그만큼 기술 하나하나를 따라가며 공부하다 보니 어느덧 1년이 넘었습니다. 그래도 꾸준히 이어올 수 있었던 이유는 저 나름의 목표가 있었고, 새로운 것을 배우는 재미도 있었기 때문인 것 같습니다. 아마 취업 후에도 평생 공부가 필요하겠지만, 그래서 지금 미리 습관을 들이는 게 오히려 좋은 일이라 생각합니다.여기까지는 그냥 TMI네요. 😊 결론적으로 저는 완벽주의적인 성향 때문에 여러 기술을 충분히 알아야 한다는 생각이 강박으로 작용해 시간 소요가 커지고 있습니다. 이번 강의를 들으면서 새로운 기술을 익히는 것도 좋지만, 어디서 멈춰야 할지 타이밍을 놓칠 것 같아 고민입니다. 현재 진행 중인 프로젝트를 바탕으로 도메인 모델링을 잘 활용해 포트폴리오로 정리하고 싶습니다.신입 백엔드 포트폴리오는 어느 정도 수준이 적합한지, 기준에 대한 조언을 듣고 싶습니다. 단순히 이직이 아니라 개발을 제 업으로 삼는 것이 목표입니다. 현재 직장에서의 연봉은 약 4천만 원 정도지만, 연봉보다도 개발자가 되는 것이 저에겐 더 큰 행복일 것 같습니다. 내향적인 성격이라 이런 글을 적는 것도 처음이지만, 강의에서 많은 영감을 받아 제 고민을 나누게 되었습니다. 감사합니다.
-
Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
H2 대신 mysql 등 다른 DB를 사용하시는 분들 중 Error creating bean with name 'entityManagerFactory' 에러가 나는 경우
https://velog.io/@dlsrjsdl6505/MySQLDataJpaTest-%EC%97%90%EB%9F%AC-%ED%95%B4%EA%B2%B0 @AutoConfigureTestDatabase(replace = AutoConfigureTestDatabase.Replace.NONE)위 블로그 글 같이 @DataJpaTest(showSql = true) 하단에 위 어노테이션을 붙여 주시면 됩니다. 블로그 글을 요약하면, 기본 설정이 인메모리 DB로 잡혀 있어 dataSource가 연결되지 않는 것입니다.
-
스프링 핵심 원리 - 기본편
스프링 핵심 원리를 듣기 전에
혹시 자바를 전부 다 듣고 듣는 게 나을까요?자바는 중급 전까지 다 들어놓은 상태입니다.
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
jpql 무차별 사용에 대해
jpa(spring data jpa)를 이용해 프로젝트를 구현중입니다.테이블 연관관계 때문에 다수의 테이블에 join을 해야하는데, n+1문제가 있고 성능상 jpaRepository를 상속받은 순수 jpa를 이용하기 어렵다고 판단되어 거의 대부분을 jpql을 사용해 구현하고 있습니다. 실제 실무에서도 jpa를 사용하는 프로젝트는 거의 대부분을 jpql을 사용하는지,만일 아니라면 어떤식으로 해결하는지 궁금해서 문의드립니다!
-
김영한의 실전 자바 - 기본편
'스프링 완전 정복' 로드맵을 함께 위한 Java 지식의 정도
안녕하세요.최근 학습 목표를 잡아가던 중 고민이 있어 질문글을 남깁니다. 올리신 로드맵 중에서 '실전 자바'를 먼저 하고 있습니다만 백엔드 개발자가 되기 위하여 '스프링 완전 정복'도 같이 해보려고 합니다. '실전 자바' 로드맵을 어느정도까지 마치고 '스프링 완전 정복'을 시작하는게 좋을지, 같이하면 더 좋은 강의, 책이 있을지 궁금하여 질문 드립니다.
-
스프링 핵심 원리 - 기본편
대학교 1학년의 고민
안녕하세요!현재 군복무를 마치고 25년에 2학년 복학 예정중인 컴공과 학생입니다. 군대에 있는동안 1학년 때 배운 대부분의 내용을 잊어먹어서 뭐라도 해야지 하던 중에 영한님 자바부터 스프링까지 커리를 타고 있는 학생입니다. 다름이 아니라, 이렇게 영한님 백엔드 커리를 타면서 추가적으로 혼자 해볼 수 있는 프로젝트가 어떤 것이 있을까요? 현재 '스프링 핵심 원리'를 듣고 있어 별로 아는 것이 없어서 프로젝트를 하기엔 무리인 것 같긴 한데 선배님이라면 이 시점에 어떤 것을 했을지 조언 부탁립니다!
-
[인프런 X VMware Tanzu] Spring Boot 밋업 with Josh Long
더빙은 넣어두세요...
자막을 달아주세요.....
-
[인프런 X VMware Tanzu] Spring Boot 밋업 with Josh Long
듣기 힘드네요ㅕ....
듣기 힘드네요ㅕ....
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
질문
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요.
-
Java/Spring 테스트를 추가하고 싶은 개발자들의 오답노트
섹션 4 어떻게 변경할 것인가? 관련해서 질문드립니다
현재 토이프로젝트의 service단이 너무 큼+테스트 코드가 필요하다고 생각해서 두 가지 방법을 생각했는데요1. 서비스 클래스 나누기2. 도메인 레이어 추가2번을 위해 도메인을 나누고자 했는데, 어떻게 나눠야할 지 감이 잡히질 않아서 해당 강의를 수강했습니다 그런데 해당 강의를 보면서, 사실 제 프로젝트가 CRUD 정보밖에 없는 것 같더라구요ㅎㅎㅎ,, 물론 소스코드를 봐야 제대로 파악이 되시겠지만, 이 경우에는 차라리 직관적인 레이어드 아키텍처로 가져가고, 서비스 클래스를 나누는게 더 나을까요?? 물론 적용해보면 좋은 내용이겠지만(그리고 다른 프로젝트에 적용해봐서 실습할 생각이지만) 프로젝트 규모가 너무 작은거 아닐까 싶어서요서비스가 최대 7개의 레포를 갖고있는데, 이 경우에는 각 서비스 클래스의 책임을 재정의하는게 맞을지 궁금합니다
-
실전! 스프링 데이터 JPA
프로젝션 사용 이유
엔티티 전체를 조회 하는 것이 아닌 이름만 조회하기 위해, 프로젝션을 사용하는것 으로 알고 있습니다.하지만, 단순 jpa + jqpl로도 이름만 조회가 가능한데, 다음과 같이 구현하면, 내부적 동작방식이 다른지? 여부가 궁금합니다. MemberRepository.java@Query("select m.name from Member m where m.name = :name") String findOnlyOneName(@Param("name") String name); MemberRepositoryTest.java@Test public void 간단하게_이름만조회() throws Exception{ //given Team team = new Team("teamA"); teamRepository.save(team); Member m1 = new Member("kim1",10,team); memberRepository.save(m1); em.flush(); em.clear(); //when String findMemberName = memberRepository.findOnlyOneName("kim1"); //then assertThat(findMemberName).isEqualTo("kim1"); }
-
스프링 MVC 2편 - 백엔드 웹 개발 활용 기술
mvc 2편까지 완강 후 토이프로젝트 진행중에 고민이 있습니다
안녕하세요 mvc 2편까지 강의 듣고 혼자서 프로젝트를 연습해보고 있는 와중에 막히는 부분이 생겨서 글 남겨봅니다.영한님한테 배운 타임리프+스프링 활용하여 진행을 해보고 있는데, 뷰 컨트롤 부분에서 제가 아직 배움이 부족해서 그런거겠지만 뭔가 한계가 있는 느낌이 들어서요. 간단한 매핑 처리는 수월했는데, 예를들면<section> <article> <button>대여</button> <button>예약</button> <button>반납</button> </article> <article><!-- 검색 ui --></article> <article> <ul><li><!-- 체크박스가 들어있는 리스트들 (대여,예약가능) --> ...</li></ul> </article><section> 이런 식의 ui가 있다고 가정하고, 체크박스 처리에 따른 form 처리를 하고싶은데, 스프링 + 타임리프로 post 처리하려면 <form> 태그의 범위를 어떻게 해야될지 모르겠달까 그런 부분이 계속 고민이 됩니다..제가 프론트쪽을 예전부터 많이 다뤘었는데 이런 경우들이 있을땐 가능하다면 자바스크립트 기반으로 제어해서 스프링과 연계하는게 맞을까요??
-
스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술
학습 방법
안녕하세요.현재 저는 김영한 강사님이 올려놓으신 스프링 완전 정복 시리즈 로드맵(고급편, 핵심 원리와 활용 제외)과 JPA 실무 정복 로드맵(스프링 데이터 JPA, QueryDSL 제외)을 수강(1회 수강)했습니다.저는 지금까지 배운 기술들로 간단한 개인 프로젝트를 진행하려고 하는데 프로젝트 진행 방법에 대해 궁금한 점이 있습니다.첫 번째 질문저는 일단 지금까지 들었던 강의들을 빠른 배속으로 다시 들으면서 프로젝트를 진행하려고 하는데 이게 맞는지 아니면 프로젝트 도중에 헷갈리는 개념들을 찾아서 복습하는 식으로 진행하는게 맞는지 궁금합니다. 아니면 더 좋은 방법이 있으시다면 추천 부탁드립니다.두 번째 질문그리고 강사님 강의들을 처음 들을 때는 라이브 코딩을 진행하면서 강의를 들었었는데 복습할 때는 라이브 코딩 말고 그냥 빠른 배속으로 들으면서 복습하는 것도 괜찮은 건지 궁금합니다.
-
실전! 스프링 데이터 JPA
현재 공부방향이 괜찮은지 궁금합니다
안녕하세요 현재 개발자를 준비하고 22살 남성입니다,저에게는 한 가지 고질적인 고민이 있습니다, 바로 제대로 된 네트워킹이 이루어지고 있지 않다는 점 인데요, 고졸이라는 학력과 주위에 아무런 인맥도 없는 상황에서 20살부터 혼자서 2년간 공부를 했기에 불안함이라는 감정이 아무리 공부를 하더라도 지워지지 않는 거 같습니다, 아마 객관적으로 현재 저가 어느정도 수준인지 파악이 안되는 상황이라서 생기는 감정이라고 생각하고 있습니다. 사실 개발자를 준비하면서 여러 차례 네트워킹을 노력 했지만 뜻대로는 안 된 거 같습니다, 하지만 지속적인 불안함 때문에 2년간 계속해서 공부방식에 대한 의심이 많았고, 누가봐도 좋은 방식이라는 생각이 들 수 있도록 방향에 대한 교정을 이어나가고 있습니다. 본론은 지금부터 입니다, 현재까지 몇 번의 서비스를 만들어 왔으며, 매번 서비스를 만들면서 백엔드 개발 관점에서 더 좋은 코드를 만들고자 노력하고 있습니다. 그리고 지금은 새로운 서비스를 만들면서 이전에는 구현하기 바빴다면, 이번에는 개발서적을 읽고 여러 레퍼런스를 보면서 개발을 하고있는 상황입니다. 예를 들어, JPA의 경우 현재 내 코드가 선택적 비식별관계인지 필수적 비식별관계인지 점검하고 만약 필수적 비식별 관계일 경우 N + 1 문제를 해결하기 위해, 연산이 상대적으로 더 빨라서 성능 면에서 외부조인보다 더 좋은 내부조인을 사용할 수 있고 이러한 내부조인을 사용하여 N + 1 문제를 해결하는 등 서적을 읽으면서 문제점을 계속해서 찾다보니 점검 해야하는 체크 리스트가 약 150개 정도 되는 상태입니다.(근데 말이 저렇다는거지 실제로는 요구사항에 따라서 @EntityGraph나 Fetch Join이 더 좋을 수도 있을거라고 생각하고 있습니다) 또한 책을 읽다보니 간단한 CRUD을 구현하는 것도 사실 간단한게 아니라 저가 놓치고 있는게 정말 많이 있다는 사실을 알 수 있었고, 지금은 한 가지 기능을 구현할 때 많은 고민을 가지면서 개발하는 습관이 생겼습니다, 이외에도 빨리 데이터베이스와 아키텍처 그리고 네트워크에 대한 내용도 서적을 읽으면서 제 기준으로 최대한 깊게 공부하고 싶은 생각이 들고 있습니다. 그리고 저는 이러한 부분에서 "다른 개발자들은 기본적으로 알고 있는거면 어떡하지?" "지금 고치고 있는게 의미 없는거면 어떡하지?" "열심히 서적을 읽고 정리하고 코드에 적용하고 그걸 기록하고 남들이 읽기 쉽도록 PR하는데 이게 아무 가치가 없는거면 어떡하지?" 같은 불안함을 느끼고 있습니다, 그래서 지금 방식이 괜찮은지 김영한님의 조언을 듣고 싶습니다, 되도록이면 쓴소리를 듣고 더 좋은 방향으로 발전하고 싶습니다, 긴글 읽어주셔서 감사합니다. + 그리고 마지막으로 지금 만드는 서비스가 저가 이전에 일했던 시장에서 불편한 점을 개선하는 서비스입니다, 랜딩 페이지를 만들어서 약 이틀간 수요 조사를 했는데 200분이 방문하시고 80분 정도가 이 정보를 원하고 계신 상태이기에, 최소한 한달에 1,000명 정도는 사용하지 않을까..? 하는 생각이 있습니다, (과거 수익형 블로그 운영 경험이 있어서 사이트 노출에 대한 이해도가 좀 있음) 그래서 신입이 최선을 다해서 만든 서비스가 사용자 피드백을 받고 개선한것도 있다면 좀 좋게 봐주실까요....?
-
실전! 스프링 데이터 JPA
강의 질문 드립니다.
해당 강의 말고 Query DSL 로 바로 넘어가도 될까요..?2개의 기술 모두 JPQL 작성하는 방법에 대해서 다루는 거라면..Query DSL 을 사용하는게 더 낫고 편하다면 그냥 그것만 듣고 싶어서요...
-
스프링 핵심 원리 - 고급편
동시성 문제에 대해 질문합니다.
안녕하세요!.. 강의와 무관한 내용이지만 마땅히 스프링 관련된 질문을 아는 곳이 없어 평소 스프링 강의를 들은 선생님께 질문을 하게 되었습니다.질문에 대한 전체 코드는 아래 링크에 작성했습니다.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로만 반환되는 현상이 나오는 데 이 현상이 동시성에 있는건지도 아직 모르겠습니다... 원인에 대해 찾아주신다면 정말 감사합니다!!좋은 강의 항상 잘 듣고 있습니다!!
-
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
개인 프로젝트 관련 고민이 있습니다..
이번에 배포까지 완료 하였고, 많이 부족하지만 이 강의를 통하여 배운 것을 기반으로 응용 프로젝트를 하려고 합니다. 목표는 웹 앱 하이브리드 형식으로 웹에서는 관리자 관리 기반 기능 (책 등록, 회원 승인, 기록 관리)앱에서는 로그인이나 ai 가 책을 추천하고, 책에 대한 소통하는 게시판, 웹에서 등록된 책을 앱에서 대출 및 반납 을 목표로 하고 있습니다.예전에 js, css 를 다뤄서 html 을 만들어본 경험과안드로이드 스튜디오를 통해 heidiSQL 을 사용하여 알람 앱을 만들어 본 적도 있는데, 다 까먹었지만, 다시 한번 기억을 되살려 써먹어보고 싶습니다. 문제는 일단 프론트 쪽 부터 뜯어보고 싶은데, 제가 배웠던 것은 js와 css 파일을 나누어서 그것을 이용해 body에 때려박는 무식한 방식으로 했는데 idex.html 에 있는 body 에 id="root" 만 있고이 root 에 대한 값을 못찼겠네요... 일단 제가 알고 싶은 것은 버튼이나 여러 ui를 추가 하고 싶은데 혹시 강의에서 주신 html 을 건들려면 어떻게 해야 할지 알 수 있을까요? 서버 실행 후 index.html 에 있는 저장 버튼이 어떻게 저희가 작성한 코드와 상호작용 되는지 알 수 있을까요?
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
이해관련 질문
[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]입문 강의 듣고 스프링 완전 정복 로드맵을 구매하려고 했는데, 입문강의에서 JPA까지 다루는 법을 알려주시는데, 이해하고 넘어가려고 하니 갑자기 개발자를 해도 될지 의문을 가질정도로 어렵게 느껴집니다. 로드맵 강의를 구매해도 괜찮을까요...