inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

이야기를 나눠요

173만명의 커뮤니티!! 함께 토론해봐요.

하이버네이트 완벽 가이드 책 질문입니다.

자바 ORM 표준 JPA 프로그래밍 - 기본편

영한님 강의, 책들을 보면서 더 깊게 공부해보고 싶다는 열정, 관심이 불타오르게 되었습니다! 갑자기 개빈 킹이 쓴 책인 "하이버네이트 완벽 가이드에는 무슨 내용이 있을까?"라는 생각과 함께 도전해보려고 고민하고 있는데 강사님의 의견이 궁금합니다 ㅎㅎ (자바 ORM 표준 JPA 프로그래밍 책의 저자이시고 자료가 없었던 시절에 밑바닥부터 공부하셨던 분이셔서 의견이 궁금합니다.) 2010년에 나온 책이라서 현재와 맞지 않는 내용도 있겠지만, 하이버네이트 개발자가 쓴 책이면 JPA, 하이버네이트를 깊게 이해할 수 있지 않을까?라는 호기심이 생겼습니다. 더 나아가서 로드 존슨이 쓴 책들 중에서 유일한 번역본인 "expert one-on-one J2EE 설계와 개발"도 파헤치고 싶네요.

  • java
  • jpa
  • book
haha ha 댓글 1 좋아요 0 조회수 731

User 테이블 바로 생성 안 되시는 분들 테이블명 바꿔서 하시면 됩니당.

호돌맨의 요절복통 개발쇼 (SpringBoot, Vue.JS, AWS)

H2 데이터베이스 2버전부터 User가 예약어가 된 것 같습니다. User로 바로 테이블 생성이 안 되시는 분들은 클래스 이름을 User가 아닌 다른 것으로 하시거나 @Table(name = "Users") 이런 식으로 테이블명을 바꾸시면 잘 됩니다.

  • jpa
  • h2
비가싫어요 댓글 0 좋아요 1 조회수 720

파이썬 장고를 활용한 쇼핑몰 코스 개설 부탁드리겠습니다.

파이썬/장고 웹서비스 개발 완벽 가이드 with 리액트

선생님 안녕하세요. 강의 듣고있는 수강생 입니다. 다름이 아니라 파이썬 프로젝트하면 포트폴리오로 활용하기에도 실용적으로 쓰기에도 불필요한 너무 작은 단위의 게임, 메모앱을 만든다든지 기껏해야 블로그만들기만 잔뜩 있는것 같습니다. 어쩌다가 인스타그램 만들기가 있구요. 혹시 파이썬 장고를 활용한 쇼핑몰 만들기 강의 개설에 대해서 계획이 있으신가요?

  • 파이썬
  • 장고
  • 쇼핑몰
  • 개설
  • shoppingmall
  • python
  • django
최다니엘 댓글 1 좋아요 0 조회수 1450

Spring Security 관련된 내용도 다뤄 주셨으면 해요~!

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

기술 면접이나 면접 과제 중 인증, 인가 또는 사용자 정보 암호화(jwt) 관련된 과제들도 많이 출제가 되더라구요 프로젝트 진행하면서 회원가입, 로그인 구현 시 코드를 끌어다 사용해 구현은 했었지만 사실 너무 복잡하고 어려워서 사실 그 부분에 대한 질문이 들어오면 입도 못 뗄 것 같아요... 보안 관련 시리즈도 기대 해봅니다!! 영한 튜터님 강의 보면서 정말 즐겁게 공부하고 있어요:)

  • 김영한
  • 강의
  • spring
  • jpa
Wonhyuk Shin 댓글 1 좋아요 0 조회수 512

QueryDsl SpringBoot 2.7의 gradle 설정을 공유합니다.

실전! Querydsl

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 -> clean Gradle -> 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 으로 빼버리는 거 만들어주지 않을까 하는 기대가 있긴 합니다.

  • java
  • spring
  • jpa
  • querydsl
박민호 댓글 5 좋아요 20 조회수 11524

연관관계가 있는 Entity 저장

실전! 스프링 데이터 JPA

안녕하세요. 강의를 듣고 공부하는 중, 연관관계가 있는 Entity를 저장할 때 궁금한 부분이 있어 질문드립니다. 아래의 예제의 User에는 컬럼에 연관관계가 있는 UserType 엔티티가 있고, 화면에서는 typeCode값(UserType의 키값)과 userName값을 Dto로 전달받아서 저장을 하고있습니다. User를 save할 때에 UserType을 조회 후 생성자로 객체를 만들고 save를 했었는데, 이렇게 하다보니 select insert 2개의 쿼리가 실행되더라구요. (userTypeRepository.findById 후 save) 그래서 방법을 찾다보니 findById 대신에 getById로 UserType을 조회후 save하면, UserType select가 Lazy로 동작하여 insert 쿼리만 실행이 되는걸 확인했습니다. (CASE1.) 또 다른방법으로 User 엔티티에 UserType의 키값인 typeCode를 추가하고, dto에서 받은 typeCode로 User객체를 만들어 저장하는 방법도 있더라구요. (CASE2.) JPA를 사용하면서 save시 getById로 호출후 save하는 방식이 맞는건지, 실무에서는 어떠한 방식으로 사용되는지 궁금하여 질문드립니다. -------------------------- CASE 1. @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class User { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; @OneToOne @JoinColumn(name = "TYPE_CODE") private UserType userType; @Column(name = "USER_NAME") private String userName; public User(UserType userType, String userName) { this.userType = userType; this.userName = userName; } } @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class UserType { @Id @Column(name = "TYPE_CODE") private String typeCode; @Column(name = "TYPE_NAME") private String typeName; } @Getter @Setter public class UserFormDto { private String typeCode; private String userName; public User toEntity(UserType userType) { return new User(userType, userName); } } @Service ... @Transactional public void createUser(UserFormDto userFormdto) { UserType userType = userTypeRepository.getById(userFormdto.getTypeCode()); User user = userFormdto.toEntity(userType); userRepository.save(user); } --------------------- CASE 2. @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class User { @Id @GeneratedValue(strategy=GenerationType.IDENTITY) private Long id; @OneToOne @JoinColumn(name = "TYPE_CODE") private UserType userType; @Column(name = "TYPE_CODE") private String typeCode; @Column(name = "USER_NAME") private String userName; public User(String typeCode, String userName) { this.typeCode = typeCode; this.userName = userName; } } @Entity @Getter @NoArgsConstructor(access = AccessLevel.PROTECTED) public class UserType { @Id @Column(name = "TYPE_CODE") private String typeCode; @Column(name = "TYPE_NAME") private String typeName; } @Getter @Setter public class UserFormDto { private String typeCode; private String userName; public User toEntity() { return new User(typeCode, userName); } } @Service ... @Transactional public void createUser(UserFormDto userFormdto) { User user = userFormdto.toEntity(); userRepository.save(user); }

  • jpa
Ato 댓글 1 좋아요 0 조회수 1482

나름의 페이징 처리를 만들어봤습니다

실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화

안녕하세요 초보개발자 명아주입니다. 배치를 사용하지 않고, 직접 IN 쿼리를 만들어주게 한번 해봤습니다. 이렇게 하면 실제 쿼리가 2번 나가게 됩니다. 조금더 복잡하긴 하지만, jpa 를 잘 모르는 사람이 보기엔 이해하기 더 좋지 않을까 싶습니다. 단점은 2번째 쿼리가 좀 크게 나가는 점과 distinct 문제, 배치 사이즈의 한계같은 부분이 없다는 것이라고 생각합니다. public List<Order> findAllWithPaging(int offset, int limit) { List<Long> ids = em.createQuery("select o.id from Order o", Long.class) .setFirstResult(offset) .setMaxResults(limit) .getResultList(); return em.createQuery(""" select distinct o from Order o join fetch o.member join fetch o.delivery join fetch o.orderItems oi join fetch oi.item where o.id in :ids """, Order.class) .setParameter("ids", ids) .getResultList(); }

  • jpa
  • paging
명아주 댓글 1 좋아요 0 조회수 540

MVC강의랑 JPA기본편이랑 병행하는건 어떨까요?

실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발

안녕하세요 현재 영한님 스프링 강의를 듣고 있습니다. 우선 좋은강의만들어주셔서 감사합니다. 제가 지금 야생형으로 해서 JPA 활용1편을 거의 다들었고 JPA기본편을 들을 차례인데요, 개발바닥 이벤트로 영한님의 모든 강의를 구매해놓은 상태입니다. 그래서 문득 JPA강의를들으면서 MVC강의도 같이 들으면 좀더 이해가 잘 될까? 아니면 기존 야생형코스를 다듣고 MVC를 추가로 듣는게 나을까? 고민이 되더라구요 JPA활용1편을 무작정 들어보면서 흥미가 더 올랐고 모르는부분은 제가 찾아가면서 해보니 가면갈수록 내공이쌓여서?? 이해가 잘 되고 있습니다.ㅎㅎ 1월중순부터 지인들이랑 프로젝트를 하나 해보기로한 상황이기도하고.. 궁금해서 여쭤봅니다!

  • jpa
  • mvc
신윤수 댓글 1 좋아요 1 조회수 323

마지막 분석 단계에서 R을 이용하는 대신에 Python을 이용하고 싶은 경우

15일간의 빅데이터 파일럿 프로젝트

Hive Warehouse와 Python을 연결하는 방법 (저사양 파일럿 환경 기준입니다.) 위의 과정 이후 싸이킷런이나 텐서플로우 같은 것들 통해서 분석 및 평가하시면 됩니다! ps) 혹시 안되는 경우 댓글 달아주세요!

  • python
K MJ 댓글 1 좋아요 0 조회수 296

마이바티스랑 이별 준비중....

스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술

강의 정말 잘 봤습니다. 쉽게 잘 설명해 주셔서 감사합니다. JPA 강의도 김영환님꺼 예전에 들었는데 다시금 들어보고 추천 로드맵을 밞아보려 합니다. 저도 육아대디라 시간이 잘 안나지만 틈틈히 열심히 듣겠습니다. 좋은 강의 정말 감사합니다.

  • 로드맵
  • jpa
태리바이트 댓글 1 좋아요 1 조회수 403

다음강의 조금 궁금합니당!!

스프링 핵심 원리 - 기본편

지금 혹시 JPA를 CRUD정도는 알고 있는 정도인데 미니프로젝트를 하다가 보니까 http와 mvc에서 많이 지식이 필요 할거 같아서 JPA말고 http와 mvc를 먼저 수강할라고 하는데 혹시 수강하는 데 문제가 있을지 궁금합니다 갓영한님:)

  • 갓영한
  • 뭐부터해야할까요?
  • http/mvc
  • jpa
bhb0407 댓글 2 좋아요 0 조회수 309

파이썬 초보자도 쉽게 따라 할 수 있는 데이콘의 파이썬 교육 콘텐츠!

https://dacon.io/forum/404171 파이썬 초보자도 쉽게 따라 할 수 있는 데이콘의 파이썬 교육 콘텐츠! 파이썬 데이터 분석과 머신러닝을 기초부터 차근차근 학습하실 수 있습니다 이제 배우기 시작하시는 분들도 따라 하면서 실력을 키워 데이콘 교육대회뿐만 아니라 일반 대회에 참여하실 수 있도록 데이콘캠프가 응원합니다! #데이터사이언스 #인공지능 #파이썬 #AI #tensorflow #pytorch #r #데이터분석가 #데이터 #머신러닝 #딥러닝 #데이콘 #경진대회 #데이터분석 #ML #DL #Python #Dacon #Kaggle #해커톤 #Hackathon #코딩 #코딩교육 #코딩기초교육 #기초코딩교육 #코딩기초 #머신러닝교육 #머신러닝기초 #데이터분석기초 ​ 이용해주세요.

  • 데이콘
  • dacon
  • python
  • 머신러닝기초
  • 파이썬기초
  • 코딩
  • 코딩기초
  • 코딩교육
데이콘 댓글 0 좋아요 0 조회수 951

[데이콘] 산업제어시스템 보안위협 탐지 AI 경진대회

[대회명] 산업제어시스템 보안위협 탐지 AI 경진대회 [주제] 산업제어시스템 보안위협 탐지 [배경] 최근 국가기반시설 및 산업시설의 제어시스템에 대한 사이버 보안위협이 지속적으로 증가하고 있습니다. 국가 중요시설에 대한 사이버 공격은 국가와 사회에 돌이킬 수 없는 막대한 피해를 일으킬 수 있어, 세계 각국은 이에 대한 보안기술 개발에 전념하고 있습니다. 현장 제어시스템의 특성을 반영하고, 다양한 유형의 제어시스템 사이버 공격을 포함하는 산업제어시스템 보안 데이터셋은 AI기반 보안기술 연구를 위한 필수적인 요소입니다. 국가보안기술연구소는 이러한 연구현장의 요구에 발맞추어 GE, Emerson, Siemens 등의 산업용 제어기기, 센서, 액추에이터를 이용한 발전 모사 제어시스템 테스트베드를 2019년에 구축하였습니다. 이를 기반으로 산업제어시스템 보안데이터셋(HAI)를 지속적으로 개발하고 있으며, HAI 20.07과 HAI 21.03 데이터셋을 공개( https://github.com/icsdataset/hai ) 하여 연구현장의 데이터 부족 해소를 위해 노력하고 있습니다. HAICon 경진대회는 HAI 보안데이터셋을 활용하여 AI 기반 제어시스템 보안위협 탐지연구를 활성화하고 기술 보급하기 위한 목적으로 2020년에 이어 두 번째 대회를 개최하게 되었습니다. 대회용 데이터셋은 대회 종료 후 참가자들의 피드백을 반영하여 공개되며, 대회 입상팀들의 우수 탐지모델을 공개하여 관련 기술 이 한 단계 성숙하는데 도움이 되고자 합니다. [주최/주관/후원] 주최&middot;주관 : 국가정보원, 국가보안기술연구소 후원 : 한국정보보호학회 [참가 대상] 내국인은 누구나 참여 가능 외국인은 내국인과 팀을 이루어야 참여 가능 단체(학교, 기업, 교육업체 등)는 별도 신청 총 상금 2,000만원 1 등 : 1,000만원 2 등 : 500만원 3 등 : 300만원 4 등 : 100만원 5 등 : 100만원 6~10등 : 소정의 부상 특별상 (3팀 이내) : 소정의 부상 모든 수상팀에게는 '한국정보보호학회장상' 수여 [안내사항] 상장, 상금, 부상은 팀 대표 1인에게 지급 단, 팀장이 팀원 전체의 '지급 동의서'를 수령 전 제출

  • 데이콘
  • dacon
  • 파이썬
  • python
데이콘 댓글 0 좋아요 0 조회수 457

[데이콘] 2021 빅데이터 통신 플랫폼 경진대회

📰 2021 빅데이터 통신 플랫폼 경진대회 🎫 코로나 시대와 함께하는 국민의 음식, 배달 문화 변화에 대한 시각화 처리 📅 대회 기간 : 2021년 07월 28일 ~ 2021년 08월 26일 🏆 총 상금 400만원(충북대 총장 또는 사업단장상 등 수상) 🌄 주최: 충북대학교, KT 통신 빅데이터 플랫폼 🔗링크: https://bit.ly/3kZnsyw #데이터사이언스 #인공지능 #tensorflow #pytorch #r #데이터분석가 #데이터 #머신러닝 #딥러닝 #데이콘 #경진대회 #데이터분석 #파이썬 #ML #DL #Python #Dacon #코로나 #해커톤 #Hackathon #충북대학교 #시각화 #KT

  • 데이콘
  • dacon
  • 파이썬
  • python
  • 머신러닝
  • 알고리즘
  • 코딩테스트
데이콘 댓글 0 좋아요 0 조회수 710

[데이콘] 자연어 기반 기후기술분류 AI 경진대회

- 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하 🌏 [데이콘] 자연어 기반 기후기술분류 AI 경진대회 오픈! 🍀 탄소중립 실현을 위한 기후기술 연구는 어떤 기술일까요? ! 📅 대회 기간 : 2021년 6월 21일 ~ 2021년 8월 16일까지 🏆 총 상금 600만원 🌄 주최: 녹색기술센터(GTC) 🔗링크: http://bit.ly/dacon_gtc #데이터사이언스 #인공지능 #GTC #녹색기술센터 #tensorflow #pytorch #r #데이터분석가 #데이터 #머신러닝 #딥러닝 #데이콘 #경진대회 #데이터분석 #파이썬 #ML #DL #Python #Dacon #Kaggle #해커톤 #Hackathon 기를 이용해주세요.

  • 데이콘
  • dacon
  • 파이썬
  • 머신러닝
  • 알고리즘
  • 코딩테스트
  • python
  • ml
  • machinelearning
데이콘 댓글 0 좋아요 0 조회수 616

DACON_101: 머신러닝이 처음이라면

DACON_101: 머신러닝이 처음이라면 [데이터 다운로드] 부터 ️[대회 제출] 까지 ​ 데이콘 머신러닝 교육 콘텐츠 https://dacon.io/competitions/open/235698/overview/description

  • 데이콘
  • dacon
  • python
  • 머신러닝
  • 코딩테스트
  • 파이썬
  • 데이터분석
데이콘 댓글 0 좋아요 0 조회수 508

질문있습니다. Jpa와 Mongo QueryDSL 같이 설정하는 법

실전! Querydsl

현재 프로젝트를 진행하면서 한 프로젝트에 JPA(RDB:mysql), Mongo(Mongo)를 같이 쓰고 있는 중입니다. 다름이 아니라 Mongo도 QueryDSL이 있는 것을 파악하고 pom.xml에 build될 때 @Document가 있는 클래스도 Q클래스가 생성될 수 있도록 하려고 합니다. <dependency> <groupId> com.querydsl </groupId> <artifactId> querydsl-jpa </artifactId> <version> ${querydsl.version} </version> </dependency> <dependency> <groupId> com.querydsl </groupId> <artifactId> querydsl-mongodb </artifactId> <version> ${querydsl.version} </version> </dependency> <dependency> <groupId> com.querydsl </groupId> <artifactId> querydsl-apt </artifactId> <version> ${querydsl.version} </version> <scope> provided </scope> <exclusions> <exclusion> <artifactId> javassist </artifactId> <groupId> org.javassist </groupId> </exclusion> </exclusions> </dependency> <plugin> <groupId> com.mysema.maven </groupId> <artifactId> apt-maven-plugin </artifactId> <version> 1.1.3 </version> <executions> <execution> <goals> <goal> process </goal> </goals> <configuration> <outputDirectory> target/generated-sources/java </outputDirectory> <processors> <processor> com.querydsl.apt.jpa.JPAAnnotationProcessor </processor> <processor> org.springframework.data.mongodb.repository.support.MongoAnnotationProcessor </processor> </processors> </configuration> </execution> </executions> </plugin> 이렇게 하니 maven clean & compile을 수행하니, error: Attempt to recreate a file for type 들이 쭉 뜨고, error: cannot find symbol Q클래스들을 찾을 수 없다고 쭉 뜹니다. 그리고서 Q클래스가 제대로 생성되지 않은채로 빌드가 끝납니다. 혹시 Jpa QueryDSL, Mongo QueryDSL을 함께 쓰시는 법을 아시나요?

  • mongo
  • jpa
  • querydsl
  • pom.xml
래셔널 댓글 2 좋아요 0 조회수 1395

인기 태그

인프런 TOP Writers

주간 인기글