이야기를 나눠요
161만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
자바(Java) 알고리즘 문제풀이 입문: 코딩테스트 대비
라이브러리 사용에 대한 고민
강의를 보던 중 궁금한게 생겨 질문을 남깁니다...!처음으로 코테 공부를 시작하였는데 현업에서 사용하던 버릇이 있어서 자꾸 자동완성과 라이브러리를 최대한 활용하여 문제를 풀려고 하더라구요혹시 이러한 습관이 코테 공부에 방해가 될지 궁금합니다.
-
나도코딩의 자바 기본편 - 풀코스 (20시간)
안녕하세요 선생님 :)
삭제된 글입니다
-
자바 ORM 표준 JPA 프로그래밍 - 기본편
주인 선정 방법의 고민
주인을 선정할때 "외래키가 있는 곳을 주인으로 정해라" 라고 설명이 되어있는데 RDB 를 많이 다뤄봤다면 당연한 개념입니다.이런 개념으로 ERD 설계를 많이 하기는 합니다.(정규식, 비정규식 등의 개념은 있지만, 이 부분은 논외로 하구요~)쿼리 작성시 이 부분이 헷갈리면 join 할때마다 고민이 많아지기는 합니다. 양방향이다 보니 아무렇게나 join 하면 되기 때문입니다. 하지만 쿼리 조인은 반드시 주인을 정해놓고 하다보면 틀이 잡히기 시작하고 inner/left/outer join 등의 개념도 아주 명확해지기는 합니다.저는 이 강의를 보고 이 부분이 어렵다, 이해하기 힘들다고 하셨는데, 전혀 헷갈리거나 힘들지 않았습니다.왜냐하면 이미 10년이상 RDB 쿼리 작성시 이런 개념으로 하다보니 그냥 당연하게 받아들여졌습니다.단지, 객체지향(OOP)에서 이 부분을 어떻게 설계하고 문법을 정했는지가 궁금했습니다.저도 EF(Entity Framework) 하다가 JPA를 공부중인데... 거의 같은 개념이고 받아들이기 쉽네요.이 개념이 계속 어렵다면 RDB join 에 대해서 조금 깊이있게 연습해보시면 이해하는데 많은 도움이 될 것 같습니다.
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
해당 강의 수강 후 spring mvc 프로젝트
안녕하세요 강사님 !spring boot를 사용해서 프로젝트를 만든 경험은 있지만 주변 실무자들이 제가 구현한 방식이 올드한 편이라는 피드백을 받고 강사님 spring 기본편과 jpa 해당 강의를 수강하고 있는 학생입니다 !저는 보통 냅다(?) 코드를 치면서 전체적인 흐름을 공부한 뒤 이해가 안 가는 부분을 찾아보는 편이라 스프링 강의를 순차적으로 다 듣는 대신 jpa 강의를 먼저 수강 중인데요.해당 강의를 다 수강한 뒤에 jpa를 활용한 spring 프로젝트 강의를 듣고 난 후 해당 강의를 다시 보고 이 다음 jpa활용 2편을 들으려 합니다.spring 로드맵에서 어떤 강의를 듣는게 좋을지 추천해주실 수 있을까요 ?
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
강의 순서에 대하여
안녕하세요.김영한쌤 로드맵 따라가려고 하는데강의순서를 보아하니 "스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술" 보다현재 이 강의가 더 먼저 듣는걸로 되어있던데 맞나요? 아니면 "스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술" 이게 좀더 이 입문 강의보다 기초적인 강의인가요?서블릿 개념부터 제대로 알고싶으면 "스프링 MVC 1편 - 백엔드 웹 개발 핵심 기술" 이걸 듣는게 맞는걸까요? 조언 부탁드릴게요 ㅠㅠ
-
실전! Querydsl
Spring boot 2.7 영한님 강의 Q클래스 경로와 똑같이 할 수 있는 설정 공유합니다.
// 1. queryDsl version 정보 추가 buildscript { ext { queryDslVersion = "5.0.0" } } plugins { id 'org.springframework.boot' version '2.6.3' id 'io.spring.dependency-management' version '1.0.11.RELEASE' // 2. querydsl plugins 추가 id "com.ewerk.gradle.plugins.querydsl" version "1.0.10" id 'java' } //... dependencies { // 3. querydsl dependencies 추가 implementation "com.querydsl:querydsl-jpa:${queryDslVersion}" implementation "com.querydsl:querydsl-apt:${queryDslVersion}" //... } test { useJUnitPlatform() } /* * queryDSL 설정 추가 */ // querydsl에서 사용할 경로 설정 def querydslDir = "$buildDir/generated/querydsl" // JPA 사용 여부와 사용할 경로를 설정 querydsl { jpa = true querydslSourcesDir = querydslDir } // build 시 사용할 sourceSet 추가 sourceSets { main.java.srcDir querydslDir } // querydsl 컴파일시 사용할 옵션 설정 compileQuerydsl{ options.annotationProcessorPath = configurations.querydsl } // querydsl 이 compileClassPath 를 상속하도록 설정 configurations { compileOnly { extendsFrom annotationProcessor } querydsl.extendsFrom compileClasspath }다른 분께서도 내용 공유를 해주셨습니다만, 저같은 경우에는 영한님 강의와 똑같은 경로로 Q클래스 생성하면서 진행하고 싶어 방법을 찾아보다가 다음 설정을 찾았습니다.출처 : https://data-make.tistory.com/728 저같은 경우 문제는 다음과 같았습니다.compileQuerydsl 로 Q클래스 생성 후, 테스트 코드를 돌리면 java: Attempt to recreate a file for type study.querydsl.entity.QHello 에러 발생generated 폴더를 삭제 후, 테스트 코드를 돌리면 성공.위 상황에서 테스트 코드를 Run 하기 전에 항상 Q 클래스를 만들려고 시도한다는걸 알게되서 build.gradle 마지막에 기존에 Q 클래스가 있다면 삭제하고 진행하라고 코드를 넣어도 똑같은 현상이 반복됐었습니다. 이 후 검색을 하다가 위의 설정을 알게됐습니다. compileQuerydsl 로 Q 클래스 생성 후, 테스트 코드를 돌려도 잘작동합니다. 만약 영한님하고 같은 화면, 흐름으로 강의를 진행하시고 싶은 분들 있으시면 참고하시면 좋을것 같아요. 다들 화이팅입니다.
-
나도코딩의 자바 기본편 - 풀코스 (20시간)
말그대로 고민있어요
안녕하세요 cs 전공공부를 이번 가을부터 해서 노베이스라 미리 공부중인 유학생인데요. 친구추천으로 알게 되었어요. 그래서 아예 뭔지도 모르고 그냥 강의 구매해서 강의 듣고 강의대로 나름대로 적용시키면서 하고 있는데요... ! 혹시 이 강의에는 책이 없나요? 책 없이 영상들으면서 하고 있긴 한데 몰라서 여쭈어보아요! 그리고 제가 나름대로 하고 있긴 한데 사실 아예 말그대로 입문과정이라 그냥 현재로선 강의를 듣고 이해하고 계속 다음강의 다음강의 쭉.. 그냥 듣고 있긴 한데 사실 어떻게 가닥을 잡고 딱 공부를 해야할지 모르겠어요.. 말그대로 학습법에 대한 고민이 있는 것 같아요.. 하하..전공이 cs인 유학생이긴 한데 정말 도전정신으로 선택한거라 기왕 결정한 거 제대로 잘 하고싶은데요.... 혹시 학습법이나 이 강의를 통해서 좋은 결과를 만들어낼 수 있는 그런 팁 같은 것들을 알려주실 수 있으실까요 ..? 예를 들어서 강의 하나하나씩 끝낼 때마다 연습을 어떻게 해야할지 아니면 뭐.. 네 .. 잘 떠오르지가 않네요 .. 저의 긴 글 읽어 주셔서 감사합니다...답변 기다릴게요 !
-
실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
snapshot이 안 뜹니다...
20분 30초 쯤에 gradle clean build까지 잘 되고 libs까지 이동했는데 그 후에 snapshot은 없고 snapshot-plain만 생성돼있네요...snapshot이 생성되지 않는 이유가 뭔지 알 수 있을까요..?
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
무슨 말인지 거의 모르겠네요
일시정지하며 열심히 따라치고는 있는데 말씀하시는 내용이 무슨 말인지 잘 모르겠어요 ㅠ 원리 같은거 하나도 이해가 안되고 모르는 개념이 너무 많네요 이대로 계속해도 되는걸까요..? 다 수강하고 기본편 들어도 되나요? 자바 언어를 제대로 배우고 와야하는걸까요
-
나도코딩의 자바 기본편 - 풀코스 (20시간)
자바 기본편 완강했습니다.
혹시 이제 자바로 저만의 프로젝트 같은 것을 만들어 보고 싶기도 한데 어떤 강의를 더 들으면 새로운 프로젝트를 만들 수 있을까요? 안드로이드 어플 등이요. 다음 방향에 대해서 고민입니다.
-
자바 코딩테스트 - it 대기업 유제
전혀 생각해내지 못한 문제풀이에 대해서..
안녕하세요! 강사님!알고리즘을 계속 연습하는 학생입니다. 질문에 앞서 간단히 공부과정을 말씀드리면 작년 12월 쯤 부터 해서 현재까지 꾸준히 알고리즘 문제를 풀어보면서 공부하고 있습니다.지금까지는 절대적인 알고리즘 문제 경험이 적어서, 절대적인 시간 투자와 많은 문제에 도전하는 방식으로 공부했고, 정말 아예 이해가 안가거나 특정 알고리즘 대회 혹은 코테 문제들은 직접 참여해서 개인적으로 정리해서 기록해놓고, 다시 복기해보는 과정을 하고 있습니다.(그럼에도 다시 풀면 여전히 못풀긴 하더라구요..) 간혹, 알고리즘 문제를 풀어낼 때 제가 전혀 생각하지 못한 방법으로 풀이가 되는 문제들이 있는데(ex, 시뮬레이션-비밀번호), 저는 도저히 그 풀이에 대한 접근이나 생각까지는 도달하지 못하는 것 같습니다. (저는 20만번 * 8번 방향 탐색으로 풀었습니다.) 어떻게하면 그런 풀이나 접근을 생각해 낼 수 있는지... 그 사고과정을 연습하는 방법이 따로 존재하는 것인지 궁금해서 글 남겨봅니다.질문을 요약하면 다음과 같습니다.생각지 못한 풀이과정을 도출할 수 있는 사고연습(생각하는 연습)이나 방법이 존재하는것인지? 1-1. 있다면 댓글을 통해 알려주실 수 있는지?해당 알고리즘 강의를 저같은 사람이 어떻게 활용해 보는것이 좋을지? 긴 글 읽어주셔서 감사합니다.
-
스프링 시큐리티
안녕하세요. 급하게 문의를 드리고 싶은데요.
안녕하세요. 급하게 문의를 드리고 싶은데요.해당 강의를 보고 시큐리티로 사용자, 어드민을 개발했습니다. 그런데 고객사에서 서버 1대에서 2대로 운영하고 싶다고 갑자기 요청이 왔는데...제가 알기로든 시큐리티는 세션으로 관리되기 때문에서 서버 2대에서는 세션관리가 어려운 것으로 알고 있습니다.그래서 강사님께 문의를 드려보고 싶은데요..혹시 시큐리티로 서버 2대에서 운영되게 할 수 있는 방법이 있을까요?답변 주시면 감사하겠습니다.
-
[자바/Java] 문과생도 이해하는 DFS 알고리즘! - 입문편
문제 풀이
삭제된 글입니다
-
스프링 입문 - 코드로 배우는 스프링 부트, 웹 MVC, DB 접근 기술
spring 3 버전 이상 이용시 주의사항
spring 3 버전 이용시에는 java 17 이상 버전을 이용해야합니다. java 11을 이용하실 때에는 오류가 따라오는거 주의 바랍니다.
-
스프링 시큐리티 OAuth2
네이버 로그인 시 authorityMapper 오류
강의 그대로 따라했는데 계속 오류 발생하여로그 찍어보니OAUTH2_USER라고 받아오네요.CustomAuthorityMapper 안에 mapAuthority 클래스에서 private GrantedAuthority mapAuthority(String name) { if(name.lastIndexOf(".") > 0){ int index = name.lastIndexOf("."); name = "SCOPE_" + name.substring(index+1); } if (this.prefix.length() > 0 && !name.startsWith(this.prefix)) { // 여기서 SCOPE_OAUTH2_USER // 로 되어 ROLE 검사를 통과하지 못 합니다. name = this.prefix + name; } return new SimpleGrantedAuthority(name); }일단 한번 다 확인 후에 이후 강의를 들어야겠기에 일단은 OAUTH2 로 시작하는 네이버 경우를 따로 빼서 ROLE_SCOPE_PROFILE, ROLE_SCOPE_EMAIL이렇게 그냥 부여했습니다.keycloak 인 경우는 받아오는 인자 자체가SCOPE_emailSCOPE_openidSCOPE_profileOIDC_USER이렇게 받아와서 문제가 발생하지 않았습니다. 제 naver 어플 설정이 잘못된건지도 모르겠네요..
-
실전! 스프링 데이터 JPA
테이블 설계 질문드립니다!
안녕하세요 김영한 선생님!선생님 강의 덕분에 스프링 공부 재밌게 하고 있습니다! 다름이아니라 코드 예제에서 테이블을 설계할 때 @GeneratedValue 어노테이션을 사용해서 모든 테이블의 PK를 idx로 잡고 비식별 관계로 연결하는 구조를 짜시던데 이 부분에 질문이 있습니다! 예를 들어 유저 테이블의 아이디 컬럼이 Not Null이고, Unique한 값이라고 할 때 이 컬럼이 유저 테이블의 PK역할을 할 수 있다고 생각하는데, idx 컬럼을 단순히 auto increment 타입으로 설정하게 되면 불필요한 컬럼이 늘어나는게 아닌지 궁금합니다! 테이블에서 Not Null이고, Unique한 컬럼이 있음에도 불구하고 auto increment를 활용한 id를 pk로 잡는것의 장점이 있을까요??
-
실전! Querydsl
만료된 메서드 fetchResult(), Blaze-persistence 세팅 관련 글 공유드립니다.
QueryDSL 내부 메소드 중fetchResult() 나 fetchCount()는 만료된 메소드에 대해서는 QueryDSL에서 Blaze-persistence Integration 라이브러리 사용을 권장하는데요,Blaze-persistence도 QueryDSL 처럼 쿼리 빌더 API 로서 개발자에게 유지보수하기 좋은 객체를 제공해주고 있습니다.게다가 최신 업데이트 날짜가 글 작성일 기준(2023.06.21) 일주일 이전이라 여전히 유지보수되고 있어서 최신 스프링버전과 호환성도 어느정도 보장되었다고 볼 수 있습니다.개인적으로 SpringBoot 3.1.0 기준으로 다음과 같이 세팅하니 정상적으로 동작하는 걸 확인했는데요, 혹시 저처럼 deprecated 메소드를 쓰는 것이 신경쓰이시는 분들을 위해 공유드립니다.build.gradledependencies { //Blaze-Persistence implementation 'com.blazebit:blaze-persistence-integration-querydsl-expressions-jakarta:1.6.9' implementation 'com.blazebit:blaze-persistence-integration-hibernate-6.2:1.6.9' implementation 'com.blazebit:blaze-persistence-core-impl-jakarta:1.6.9' } BlazePersistenceConfiguration.java@Configuration public class BlazePersistenceConfiguration { @PersistenceUnit private EntityManagerFactory entityManagerFactory; @Bean @Scope(ConfigurableBeanFactory.SCOPE_SINGLETON) @Lazy(false) public CriteriaBuilderFactory createCriteriaBuilderFactory() { CriteriaBuilderConfiguration config = Criteria.getDefault(); // do some configuration return config.createCriteriaBuilderFactory(entityManagerFactory); } }QuerydslBasicTest.java..... JPAQueryFactory queryFactory; @Autowired CriteriaBuilderFactory cbf; BlazeJPAQueryFactory blazeQueryFactory; @BeforeEach public void testEntity(){ queryFactory = new JPAQueryFactory(em); // 이건 동시성 문제를 고민하지 않아도 됨, 해결됨 blazeQueryFactory = new BlazeJPAQueryFactory(em, cbf); ..... 적용 결과기존 QueryDSL 세팅한 것에 추가로 세팅하시면, 만료된 메소드에 대해 Blaze-persistence 객체로 대체되는데요, 기존 querydsl 클래스를 상속 받는 형태여서 QueryDSL이 제공하는 메소드를 그대로 쓸 수도 있습니다.fetchResults는 fetchPage로 바꿔서 사용할 것을 권장하고 있다는 점 참고하시면 될 것 같습니다.추가로 내부로직이라든지 설명이 더 필요하시다면 Blaze-persistence 릴리즈 노트와 Blaze Persistence Document를 참고하시면 좋을 것 같습니다.이 글에 대해 지적 및 피드백 해주시면 정말 감사하겠습니다.감사합니다. 여담 및 고민 :개인적으로 이 라이브러리의 내부로직을 뜯어보면서 분석하고 검증할 수 있는 역량은 부족한지라 분석 및 검증하는 방법에 대해서 팁이라든지, 아니면 blaze-persistence 사용할 시 주의해야할 점이라든지 조언해주실 수 있으시면 정말 감사드립니다. 강의를 듣던 중에 서브쿼리가 발생하는 부분에서는 정상동작하지 않는 것을 발견했습니다.@Test public void findUserDto(){ QMember memberSub = new QMember("memberSub"); List<UserDto> memberDtoList = queryFactory //이건 blazeQueryFactory가 정상 동작하지 않음 .select(Projections.fields(UserDto.class, //생성자 필드 순서에 맞게 변수를 만들어야 한다. member.username.as("name"), // member.age 대신 서브쿼리로 다 최대 나이로 찍고 싶어 ExpressionUtils.as( JPAExpressions .select(memberSub.age.max()) .from(memberSub), "age") )) .from(member) .fetch(); for (UserDto userDto : memberDtoList) { System.out.println("userDto = " + userDto); } } QueryDSL 쿼리 /* select member1.username as name, (select max(memberSub.age) from Member memberSub) as age from Member member1 */ select m1_0.username, (select max(m2_0.age) from member m2_0) from member m1_0 blaze-persistence 쿼리 /* SELECT member1.username AS name, member1.age AS generatedSubquery_1 FROM Member member1 */ select m1_0.username, m1_0.age from member m1_0 blaze-persistence generatedSubquery라 하여, 서브쿼리를 하나의 alias로 처리를 해버렸는데, 후행으로 이 generatedSubquery 에 대한 정의가 따라오질 않습니다...왜 이런 차이가 나오는지는 모르겠지만 blaze-persistence 활용할 때는 유의해야할 것 같습니다.
-
자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]
4강에서 처음 프로젝트 열 때, Gradle 2.7.1로 다운그레이드 하였습니다.
안녕하세요. 4강에서 처음 프로젝트 열 때, Gradle 2.7.1로 다운그레이드 하였습니다.원래는 Gradle 3 이상의 버전으로 설정되어 있어서 에러가 났었는데,자바 17이상일 때, Gradle 3 이 사용가능한 모양이더군요.해서 Gradle 2.7.1로 다운그레이드해서 급한 문제는 해결했는데..이대로 진행해도 문제가 되지 않을까요??
-
자바 개발자를 위한 코틀린 입문(Java to Kotlin Starter Guide)
안녕하세요 코틀린 파일만 실행하면 오류가 납니다
코틀린 파일만 실행하면 이렇게 오류가 납니다자바 버전도 맞구요어떻게 해결하나요?
-
나도코딩의 자바 기본편 - 풀코스 (20시간)
혹시 Jframe 과 관련된 강의가 있을까요??
제가 지금 강의의 초중반부를 학습중인데 과제로 Jframe을 사용해야 해서 그런데 혹시 Jframe 과 관련된 내용의 강의가 있을까요???