inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

이야기를 나눠요

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

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 조회수 11523

소프트웨어 진로 결정 관련 질문

저는 일단 정보통신공학 2학년인데 소프트 커리를 타려고 생각중이에요 2학기에 C++ 자료구조론을 배우는데 여론으로는 C++은 게임 개발이나 인공지능? 쪽에서 많이 쓰인다고 하고 제가 생각하는 프론트/백엔드의 웹 개발자는 java나 python이 주 프로그래밍 언어이고 IT기업 쪽에서도 java를 활용한 툴(Spring 등)을 선호하고 있다고 들어서 C++은 학점 챙기는 용으로 공부하고 진로를 위해서는 java를 중점적으로 공부하려고 하는데 1. 지금 java와 C++ 자료구조를 병행해서 공부를 하는 것이 나은지(공부 비중은 C++을 더 높게) 2. 일단은 C++ 자료구조를 중점적으로 공부할지 고민되어 질문글 올립니다 ㅠㅠ - 서로 예의를 지키며 존중하는 문화를 만들어가요. - 잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.

  • java
  • c++
초롱초롱한 랫서팬더 댓글 0 좋아요 0 조회수 320

서울시뉴딜일자리_IT인턴 3개월 [급여월260만]지원사업안내_빅데이터 기반 서비스플랫폼 과정 [스터디,프로젝트,프론트엔드,백엔드,자바,코딩]

서울시에서 뉴딜일자리사업 일환으로 2차 서비스플랫폼개발자 양성과정으로 3개월 인턴십 (급여 월 260) 보내주는 프로그램 진행중인데 신청해보세요! 자세한 내용은 https://blog.naver.com/kjc_sh/222775806456 참고해주세요

  • 깃허브
  • 프로젝트
  • 인턴
  • 백엔드
  • 프론트엔드
  • java
  • spring
  • 자바
  • 스프링
한국취업센터 댓글 0 좋아요 0 조회수 487

서울시 뉴딜일자리사업으로 블록체인분야 월260만 3개월 인턴시켜주는 프로그램 추천합니다.

블록체인 분야 기술을 배우고싶은 분들 or 블록체인 분야 취업을 원하시는 분들 주목! 서울시에서 뉴딜일자리사업 일환으로 IT 블록체인과정으로 3개월 인턴십 (급여 월 260) 보내주는 프로그램 진행중인데 신청해보세요! https://blog.naver.com/kjc_sh/222745988610 자세한 내용은참고해주세요 오픈카카오톡 문의 [ https://open.kakao.com/o/stkiOIhe ]

  • java
  • spring
  • c##
  • 자바
  • 프론트엔드
  • 백엔드
  • 웹개발
  • api
한국취업센터 댓글 0 좋아요 0 조회수 450

정말 꿀팁 강의입니다...

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

본 강의에서 알려주신 판다스 및 이미지 활용 예제를 알려주셔서 감사합니다. 강의 후반에 알려주신 것 처럼 활용 할 수 있는 부분이 굉장히 많아 보입니다. 판다스 예제를 views.py에 녹여 봤는데, 잘 출력됩니다 ㅎㅎ 이후 템플릿 폴더 내부 html 파일을 생성해서 디자인 좀 추가해 출력하면 분석 툴 제작도 충분히 가능할 듯 싶네요. 강의 중반까지 듣고 시도해 보겠습니다 :)

  • pandas
  • images
이재화 댓글 1 좋아요 3 조회수 325

연관관계가 있는 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

자바 강의 난이도

더 자바, Java 8

안녕하세요. 강의를 막 수강하게 된 수강생입니다. 이제 막 자바를 배우고 있는데 듣다보니 어느정도 지식을 요하는 것 같아 질문드립니다. 혹 이 강의를 수강하기 전에 선수로 수강해야 하는 강의가 있나요?

  • java
이왕로 댓글 1 좋아요 0 조회수 608

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

실전! 스프링 부트와 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

반려동물 시장 진출 웹&앱 스프링 개발자 모집

안녕하세요 현재 서로 믿을 수 있는 스타트업 멤버 구축 되었고 추가로 능력있고 참하신 스프링 개발자 팀원 찾습니다. 현재 모두 메인 잡은 있는 상황이고 사이드 프로젝트로 운영중입니다. 관심있으신분 연락 부탁드립니다 1. 주제소개: 반려동물 서비스 중 현재 시장에 없는 서비스 2. 현재 진행 단계: 시장분석 및 명확한 주제와 컨텐츠 방향성까지 잡은 상태 3. 모집분야 및 주요업무: 앱 개발자-하이브리드 앱 (웹앱을 네이티브 형태로 감싼 형태) 유사사이트: https://www.pet-friends.co.kr/main/tab/2 4. 모집경력 및 필요스킬: 앱개발 관련하여 경력이 있거나, 최소 스프링을 자유롭게 다룰 수 있는 스킬 필요 vue.js 옵션,java 등 5. 참고기타사항: 기획/디자인/개발/마케팅 포지션 다 구성되어 있으나, 추가 개발자 필요한 상황 6. 문의/연락: 010-4590-4917 카카오: antoniobae1 7. 모임명: IT 웹 앱 마케팅 개발 창업모임 파랑새(Since 2021.10.02 : 네이버 카페 https://cafe.naver.com/lastpick1004 https://lastpick.modoo.at/ https://www.youtube.com/channel/UCpLCToWUvdjsPqkLRZ-wpZA 이 외 기획, 개발, 퍼블, 마케터 등 같이 큰 돈 벌고 싶으신 분 연락주세요:)

  • spring
  • vue
  • java
  • js
Market+IT 댓글 0 좋아요 0 조회수 472

반려동물 시장 진출 앱 기획 관련 스프링 개발자분 모집

안녕하세요 현재 서로 믿을 수 있는 스타트업 멤버 구축 되었고 추가로 능력있고 참하신 개발자 팀원 두분 더 찾습니다. 관심있으신분 연락 부탁드립니다 1. 주제소개: 반려동물 서비스 중 현재 시장에 없는 서비스 2. 현재 진행 단계: 시장분석 및 주제와 명확한 방향성까지 잡은 상태 3. 모집분야 및 주요업무: 앱 개발자-하이브리드 앱 (웹앱을 네이티브 형태로 감싼 형태) 유사사이트: https://www.pet-friends.co.kr/main/tab/2 4. 모집경력 및 필요스킬: 앱개발 관련하여 경력이 있거나, 최소 스프링을 자유롭게 다룰 수 있는 스킬 필요 vue.js 옵션,java 등 5. 참고기타사항: 기획/디자인/개발/마케팅 포지션 다 구성되어 있으나, 추가 개발자가 두분 정도 더 필요한 상황 6. 문의/연락: 010-4590-4917 배대근 카카오:antoniobae1 참고url:IT 웹 앱 마케팅 개발 창업모임 파랑새(Since 2021.10.02 : 네이버 카페 - http://naver.me/FIgA4x8x

  • js
  • vue
  • java
  • spring
Market+IT 댓글 0 좋아요 0 조회수 446

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

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

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

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

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

스프링 핵심 원리 - 기본편

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

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

그냥 spring boot쓰는게 나을 듯.

Slack 클론 코딩[백엔드 with NestJS + TypeORM]

nestjs가 java spring을 javascript 진영에 가져올려고 노력한 흔적이 많이 보이긴 한데요, 아직 프레임워크 자체의 안정성도 어떤 부분에서는 아직 부족해 보이고, 이렇게 만들거면 그냥 java랑 spring 쓰지, 뭐하러 javascript이랑 nestjs 쓰나 싶네요. 솔직한 마음으로 꼭 javascript랑 nestjs를 백엔드에서 써야하는 상황이 아니라면 그냥 믿고 쓸 수 있는 java spring boot + jpa 혹은 좀 더 나가면 spring boot + r2dbc 조합으로 쓰는게 실무에서는 좀 더 현실적으로 보입니다.

  • java
  • spring
  • springboot
Luke Lee 댓글 1 좋아요 0 조회수 794

질문있습니다. 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

뭘 해야할지 1도 모르겠는 개린이입니다. 도와주세요 ㅠㅠ

막연히 웹쪽 개발자(프론트든 백엔드든...)가 되고 싶다고 생각하는 개린이입니다. 대체 뭘 어떻게 어떤 순서대로 공부해야할지 진짜 모르겠습니다... ㅠㅠ 마치 수능 공부를 하는데 공부할 과목만 정해져 있고 무슨 문제집, 어떤 인강이 좋은지, 어떤 순서대로 진도를 나가야 할지 모르는 느낌입니다. 그냥 마구잡이로 공부하면 되나요? 현재 C언어 다룰 줄 알고, C#도 배우긴 했는데 디자인 패턴? 그런 건 1도 이해가 안됩니다 ㅠㅠㅠ 구글링도 열심히 해봤는데 전혀 모르겠어요 ㅠㅠㅠㅠ. 일단 이번 방학 때 java공부하려고 하는데 이것도 객체지향이고 디자인 패턴(옵저버 패턴 등...?) 이해가 필요할 것 같은데 도움 받을 수 있는 강의가 있을 까요? -캡슐화, 다양성, 상속은 대충 압니다. 아 그리고 백엔드 개발 하려면 java, spring 두 개를 다 사용해서 만드는 건가요?(프론트에서 HTML, CSS, Javascript 같이 사용하는 것 처럼요.)아님 한 언어 가지고 만드는 건가요? 제가 뭐라고 말하는지 제 말이 이해나 가실련지 모르겠네요. 애초에 뭘 어떻게 검색해야 할지도 모르겠고, 검색해도 뭔 말인지 잘 모르겠네요. 세상 멍청이가 된 기분입니다. 아는 거라곤 1도 없어서 한 발자국도 못 떼고 있는 상황입니다. 한심하고 답답하셔도 불쌍한 중생 구원해 준다는 마음으로 온정의 손길을 내밀어주시길 바랍니다.

  • 개린이
  • 삐약삐약
  • 도와주세요
  • 커리큘럼
  • 공부
  • java
박혜원 댓글 3 좋아요 1 조회수 824

인기 태그

인프런 TOP Writers

주간 인기글