이야기를 나눠요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
자바 ORM 표준 JPA 프로그래밍 - 기본편
Reactive 환경에서 JPA활용 문의
안녕하세요. 영한님 강의 꾸준히 잘 듣고 있습니다.사실 JPA는 실무에서 사용중이지 않아서 미루다가 거의 1년만에 완강을 눈앞에 두고 있습니다. ^^; 완강을 앞두고 문의드릴 점이 있습니다.팀 내부적으로 webflux reactor(요즘은 kotlin coroutine)+ nosql을사용하고 있는데요 근래에 rdb를 사용할 일이 있어서 JPA vs R2DBC 중 어떤 것을 사용할 지 고민이 됩니다. 지금까지 blocking 처리할 일이 있으면 아래처럼 blocking 콜을 감싸서 처리를 하고 있었는데 https://projectreactor.io/docs/core/release/reference/#faq.wrap-blocking만약 JPA blocking콜을 감싸서 사용한다고해도, JPA는 영속성 컨텍스트 때문에 비슷하게 처리하는게 안될 것 같기도하고, Spring 에서도 Reactive 한 환경에서는 JPA 쓰지말라고 권고 하고 있는 상태여서 공부한걸 못써먹겠다는 느낌이 드는데 R2DBC는 또 ORM이 아니기도하고.. 1.0.0 이 이제 막 도입되어서 버그도 아직 많아보이고 실전에서 써먹으려면 고생할 것이 보이는 상황입니다. 배민에서는 JPA를 많이 쓰시는 것 같은데Reactive 한 환경에서는 어떻게 활용하고 계신가요?주저리 질문이 좀 길긴 한데 요약하자면 다음과 같습니다.현상황1. 동시처리량이 많아서 webflux를 쓰고 싶은 상황 2. RDB를 써야함 질문1. JPA를 Webflux 환경에서 쓰는것이 가능할까요?2. R2DBC에 문제가 많이보이는데, Non-Blocking을 포기하고 JPA를 그냥쓸까요? 감사합니다.
-
실전! Querydsl
QueryDsl SpringBoot 2.7의 gradle 설정을 공유합니다.
plugins { id 'org.springframework.boot' version '2.7.4' id 'io.spring.dependency-management' version '1.0.14.RELEASE' id 'java' } group = 'study' version = '0.0.1-SNAPSHOT' sourceCompatibility = '11' configurations { compileOnly { extendsFrom annotationProcessor } } repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-data-jpa' implementation 'org.springframework.boot:spring-boot-starter-web' compileOnly 'org.projectlombok:lombok' runtimeOnly 'com.h2database:h2' annotationProcessor 'org.projectlombok:lombok' testImplementation 'org.springframework.boot:spring-boot-starter-test' // queryDSL 설정 implementation "com.querydsl:querydsl-jpa" implementation "com.querydsl:querydsl-core" implementation "com.querydsl:querydsl-collections" annotationProcessor "com.querydsl:querydsl-apt:${dependencyManagement.importedProperties['querydsl.version']}:jpa" // querydsl JPAAnnotationProcessor 사용 지정 annotationProcessor "jakarta.annotation:jakarta.annotation-api" // java.lang.NoClassDefFoundError (javax.annotation.Generated) 대응 코드 annotationProcessor "jakarta.persistence:jakarta.persistence-api" // java.lang.NoClassDefFoundError (javax.annotation.Entity) 대응 코드 } tasks.named('test') { useJUnitPlatform() } // Querydsl 설정부 def generated = 'src/main/generated' // querydsl QClass 파일 생성 위치를 지정 tasks.withType(JavaCompile) { options.getGeneratedSourceOutputDirectory().set(file(generated)) } // java source set 에 querydsl QClass 위치 추가 sourceSets { main.java.srcDirs += [ generated ] } // gradle clean 시에 QClass 디렉토리 삭제 clean { delete file(generated) } 해당 소스는 타사 강의 보다가 본 설정에서 가져왔습니다.기존 영한님 강의와 다른 점이 3가지 있으니 주의하시기 바랍니다.Querydsl Q파일 생성 위치가 다릅니다. 기존 영한님 강의대로 $build 로 시작하는 설정을 사용하면 테스트 실행 시 Q파일의 위치를 찾지 못해서 테스트가 실패합니다.Gradle -> Tasks -> build -> cleanGradle -> Tasks -> build -> build 혹은 classes기존 영한님 교안에는 빌드 시 Gradle -> Tasks -> other -> compileQuerydsl 로 Q파일을 생성하지만, 이 방법의 경우 other에 해당 메뉴가 없습니다. 그래서 빌드 시에는 그냥 build 메뉴의 build 혹은 classes 로 빌드하시면 Q파일이 생깁니다.영한님 강의에서는 gradle build 폴더가 대부분 git 버전관리에 포함되지 않으므로 따로 설정할 필요가 없지만, 이 경우 Q파일이 소스폴더에 들어가므로 .gitignore 에 아래와 같이 별도로 경로를 설정해 주어야 합니다.### Querydsl /src/main/generated 혹시 저같이 청개구리마냥 강의에 나온 버전 사용 안 하고 최신 버전 사용하시는 분들께 도움이 되었으면 좋겠습니다. 저도 타사 강의에서 가져온 것이고 기초 테스트만 통과한 것이라서 혹시 강의에 맞지 않는 경우 영한님이나 다른 분들이 추가 정보를 주시면 좋을 것 같습니다.여담인데 QueryDSL은 쿼리 짜긴 확실히 편한데 설정이 버전마다 중구난방이라 불편합니다. 똑똑한 개발자분들이 이런 설정도 그냥 @Configuration 으로 빼버리는 거 만들어주지 않을까 하는 기대가 있긴 합니다.
-
[개발자를 위한 참여형 스터디 서비스 설문조사🙊]
안녕하세요🥰 귀중한 시간을 내주셔서 정말 감사합니다🙈본 설문지는 ‘디프만 오개안말 팀’에서 개발자 전용 사용자 참여형 스터디를 기획하기 위한 목적으로 작성되었습니다. 본 설문의 응답은 옳고 그름의 정답을 요구하는 것이 아니며, 조사는 익명으로 실시됩니다. 귀하께서 응답해주신 내용은 통계처리를 위한 목적으로만 사용됩니다. 부담없이 솔직하게 답변해주시면 정말 감사하겠습니다🍀Have a nice day💕📅 설문 기간 : 2022.10.8 - 10.10(월)🤖설문 대상 : 개발직군 재직 및 희망자👻 소요 시간: 3~5분가량🥳 설문 상품 : 스타벅스 1만원 쿠폰 2명!!🙈 (당신의 열정을 보여주세요✨)*수집된 전화번호는 리서치 이후 모두 폐기됩니다.https://forms.gle/tHcasZCZvd2dV1qn7
-
HTML+CSS+JS 포트폴리오 실전 퍼블리싱(시즌2)
email & password : box-sizing
완성본 보면 이메일이랑 비밀번호 적는 칸이 오른쪽으로 튀어나와 있는데 이거 수정하고 싶으시면 input[type=email], input[type=password]에 box-sizing: border-box 하시면 됩니다!
-
[초급편] 안드로이드 커뮤니티 앱 만들기(Android Kotlin)
선생님~ 즐겁게 듣고 있어요~
항상 응원해주시고 기분좋은 말투라 즐겁게 듣고 있어요. 같이 완성해가는 재미가 쏠쏠해요~! 한달만에 왕초보편이랑 초보편 들으니 성취감 생겨요...계속해서 강의 만들어주세요~!!
-
스프링 시큐리티
코드 공유합니다.
강의 처음부터 부록까지(2022.10.08) spring 2.7.3 기준으로 작성한 코드입니다. 섹션 4 이후 부터는 코드가 별로 차이가 나지 않지만, 그래도 혹시 필요하신 분들 있으실지 몰라 올려놓았습니다.아직 해결 안된 문제는 CH4.7 분기점이 오류로 실행이 되지 않습니다. 그 부분만 빼면 다른 부분은 다 구동 확인 완료하였습니다.혹시 문제 될 시 댓글 남겨주시면 바로 삭제하겠습니다.Othkkartho/SpringSecurityLearn: 스프링 시큐리티 인프런 강의에 실전 프로젝트를 직접 해보는 프로젝트입니다. (github.com)
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
우와 되게 알찬 강의네요
다음 수업도 궁금하지만 쩐의 관계로 Pass하겟습니다 T-T
-
[프로젝트] 웹 게임 디자이너, 기획자 구합니다.
현재 멤버5년차 개발자2년차 개발자1년차 개발자1년차 디자이너맨날 같은 포트폴리오와 프로젝트로 차별 점이 없던 분들에게 아주 좋은 기회라고 생각합니다.웹 게임 만들 생각이고 중간에 터질 일 없습니다.카톡으로 자세히 설명 드리겠습니다.@gureuso 카톡 친구 부탁드립니다.https://www.rocketpunch.com/@gureuso
-
비트코인 알고리즘 트레이딩 봇 개발
비트코인 선물 알고리즘 트레이딩
안녕하세요비트코인 선물 알고리즘 트레이딩 강의와차이는 무엇이 있는지 알 수 있을까요?
-
외워서 끝내는 네트워크 핵심이론 - 기초
선생님 프록시랑 cdn 도 알려주세요
네트워크 이렇게 잘알려주는사람 첨밧는데여기 강의 내용에 proxy, cdn 관련해서도 넣어주심 안대나여
-
호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)
천하제일 포트폴리오 자랑대회 개최
안녕하세요. 호돌맨입니다.천하제일 포트폴리오 자랑대회를 개최합니다.여러분이 만들고계신 포트폴리오를 소개하고 Github 링크를 올려 서로 자랑해보세요.세 분을 뽑아 약소한 선물을 드립니다.이벤트 목적다른 사람이 진행한 프로젝트 코드를 많이 구경하여 세상을 널리 이롭게 하기 위함이벤트 대상자인프런 호돌맨의 요절복통 수강생2022년 1월 1일 이후 첫 커밋이 발생한 프로젝트백엔드, 프론트엔드 내용의 코드를 올리시는 분 (언어, 프레임워크 상관없음)Github 프로젝트 README에 프로젝트 설명을 잘 적어주신 분이벤트 기간: 2022년 10월 6일 ~ 10월 10일 23시 59분 59초까지결과 발표10월 11일 (월) 오전11시 인프런 자유게시판에 공지당첨자에게 별도로 이메일을 보내드립니다.이벤트 참여방법본 게시물 댓글에 아래 내용을 남기면 됩니다.인프런 회원의 이메일주소 (수강생 검증용)Github 프로젝트 주소어떤 프로젝트인지 자랑 글선정기준: 호돌맨 컨디션 마음대로선물금상 1명: 문화상품권 5만원은상 1명: 문화상품권 3만원똥상 2명: 문화상품권 1만원주의사항선물은 사정에 따라 같은 가격 상당의 다른 상품권, 기프티콘 등으로 대체 될 수 있습니다. 이벤트 잘 즐기는 방법다른 사람이 올리신 Github 프로젝트도 구경하시고참여 댓글에 하트를 많이 눌러주세요.
-
CAN 통신 - 자동차 신입이 알아야 할 모든 것
강의자료 제공 문의
안녕하세요강의에 사용되는 PPT 자료는 따로 제공되지 않나요?화면캡쳐나 받아 쓰기엔 너무 시간이 많이 소요되어서요
-
[이벤트홍보] 야놀자 with FECONF2022
안녕하세요 !국내 최대 개발자 컨퍼런스인 FECONF 2022 가 10/08 롯데타워에서 개최됩니다 ✨저희 야놀자도 후원사로서 현장에서 훌륭한 개발자 여러분들께 인사 드릴 예정인데요 😉FECONF 참가 기념, 더 많은 분들과 소통하고자 다양한 이벤트를 준비하였습니다 ! 무엇이든 물어보세요 !설문에 응답해주신 분들 중 추첨을 통해,10명에게는 현금처럼 사용할 수 있는 5000원 상당의 야놀자 상품권을 보내드리고🎁3명에게는 야놀자 글로벌 리더 장정식 님과 직접 이야기를 나눌 수 있는 커피챗 자리를 선물해드릴 예정입니다✨ 지금 바로 참여하기 - https://bit.ly/3fzj0pv접수기간 : ~ 10/07(금) 23:59 PM※ 잠깐, 장정식 님은요 !구글,넥슨,몰로코 등 국내외 유수 기업에서 소프트웨어 엔지니어로 20년 넘게 커리어를 쌓아오신 야놀자의 리더이십니다! 누구보다 IT업계, 엔지니어의 커리어 이해도가 높으신 분이기에, 성장과 직무에 고민을 갖고 계신 분들께 의미 있는 시간이 되리라 말씀 드릴 수 있습니다 👍Yanolja Fast Check-in ✈간편지원 과 One_Day 인터뷰 전형을 통해 보다 빠르게 야놀자에 합류할 수 있습니다. ✅이력서 및 포트폴리오는 있지만 자기소개서 작성이 부담스러운 분!✅이력서 업데이트를 해야 하는 부담감에 지원을 망설이고 계신 분!✅이직 의사는 있지만 바쁜 프로젝트 진행으로 시간 내기가 어려운 분!✅빠른 인터뷰 전형 결과를 확인하고 싶은 분!위 사항 중 1가지라도 해당 된다면, 지금 바로 야놀자와 멤버사에 Fast check-in 해주세요! ➡ https://lnkd.in/gcXgZTJr접수 기간 : ~ 10/10(월) 10:00 AM💬문의사항 : recruit@yanolja.com
-
2-11 반복문 영상 - "2-10.배열"로 잘못 편집 된거 같아요^^
자바스크립트 기본편 2-11 반복문에 대한 강의영상 처음 0:09부분에 "2-10.배열"로 잘못 편집 된거 같아요^^강의 내용이 좋아서 아주 잘 듣고 있습니다.
-
[C#과 유니티로 만드는 MMORPG 게임 개발 시리즈] Part3: 유니티 엔진
유니티 엔진강의를 듣다가 궁금증이 생겨서 질문드립니다.
안녕하세요 올려주신 강의의 유니티 엔진과 C# 스크립트를 보면서 공부하고있는 컴공 대학생 4학년입니다.다름이 아니라 바쁘신 시간에 질문을 드리는 이유는 최근 주변 지인 한분이 유니티와 C#을 하시다가 언리얼과 C++로 넘어가시는 준비를 하고계시는 모습을 보았습니다.저는 현재 C++와 언리얼에 관해서는 문외한인 상황입니다. 물론 학원같은것은 다녀본적이 없습니다.문득 궁금증이 생기어 구글에 유니티 vs 언리얼에 대하여 검색하여 찾아보다 더욱 고민에 빠지게 되어 질문을 드리게되었습니다. 찾아보니 유니티는 모바일, STEAM의 인디게임에서 강세를 보이고 있으며 언리얼은 PC, 콘솔의 게임에서 강세를 보이고 있다고 알게되었습니다.이런 상황에서 추후 중견이상의 회사에서 게임 프로그래머가 되기 위해서라면 지금 계속 배우고 있는 유니티와 C#을 지속적으로 갈고 닦아 어느정도 능숙해지어 유니티와 C#을 활용하는 방향으로 가는 것이 유리한지아니면 위의 지인분처럼 저 또한 언리얼과 C++로 넘어가서 새롭게 공부를 시작하는게 유리한것인지 바쁘신 시간에 질문 남깁니다.항상 좋은 강의 감사드립니다!..
-
스프링 핵심 원리 - 고급편
자료 오타 발견(3. 템플릿 메서드 패턴과 콜백 패턴)
아래 자료에서 message 인자값 오타 확인했습니다.복붙 좋아하시는 영한님 응원합니다! 3. 템플릿 메서드 패턴과 콜백 패턴템플릿 콜백 패턴 - 적용OrderServiceV5[오타 코드] request() ... template.execute("OrderService.request()"), () -> { ...[수정 코드] orderItem() ... template.execute("OrderService.orderItem()"), () -> { ...
-
동영상이 자꾸 끊기는데 왜 이럴까요?
이제까지 이런 일이 없었는데, 자꾸 동영상이 끊깁니다.집에 인터넷 문제는 아니고요,,조금 있다가 실행을 하면 다시 되고, 또 끊기고,,무슨 문제가 있나요?
-
외워서 끝내는 SSL과 최소한의 암호기술
강의명 오타 제보!
제목 중 공개키가 공객키 로 오타났습니다!
-
외워서 끝내는 SSL과 최소한의 암호기술
강의 제목에 오타가 났습니다
디지털 서명이 아니라 디지털 설명 이라고 오타가 났습니다!
-
[개정판] 파이썬 머신러닝 완벽 가이드
DataFrame의 데이터 삭제하기에서 inplace 기능
pandas in action 66page(원서기준) 에 보면 inplace 파라미터는 성능상의 아무런 이점이 없다고 나옵니다. 마치 원본을 그대로 수정하는 것처럼 보이지만battles.sort_values(inplace = True)battles = battles.sort_values()새로운 dataframe을 만든 후 원래 오리지널에 할당하는 것으로 위 코드가 동일한 코드라고 합니다.The pandas development team has discussed removing the inplace parameter from the library in future versions책 내용에는 inplace 파라미터는 어느 순간 없앨 계획이라고 하네요.