inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

https://github.com/joneconsulting/eshop 소스

미해결

마이크로서비스 디자인 패턴 완벽 가이드

강의에 나온 https://github.com/joneconsulting/eshop 강의 공개 후에도 비공개 레포지토리로 보이는데요 어디서 확인가능할까요

  • java
  • spring-cloud
  • 디자인-패턴
  • msa
  • patterns
검은흑사 댓글 2 좋아요 0 조회수 176

h2 인메모리 테스트중 예약어 충돌날 경우 대처방법

해결됨

스프링 DB 2편 - 데이터 접근 활용 기술

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? 아니오 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? 예 [질문 내용] 개인프로젝트에서 운영 및 로컬DB는 mysql을 사용하고 유저 테이블 이름을 user 라고 하였고, User.java 엔티티 클래스를 만들었습니다. 테스트DB는 h2 인메모리db를 사용하여 진행했는데, h2에서 user 는 예약어이기 때문에 테스트 도중 sql구문이 맞지 않아 실패했다고 합니다. Caused by: org.h2.jdbc.JdbcSQLSyntaxErrorException: Syntax error in SQL statement "insert into [*]user (login_id,password,user_id) values (?,?,default)"; expected "identifier"; SQL statement: 위 문제를 해결하기 위해 구글링해보았는데 mysql에서 테이블 명을 바꾸고 자바 코드의 User 이름들도 바꾼다. User.java 엔티티클래스에 @Table(name = "\"user\"") 를 추가하여 sql 구문이 생성될때 "user" 로 생성되게 하여 H2의 예약어 user를 피한다. 테스트 db를 mysql로 설정한다. 이런 방법들을 찾았습니다. 일단 추가적인 사이드 이펙트가 발생하지 않는 1번으로 했는데, 만약 김영한 선생님이라면 이 방법들중 어떤 방법을 사용할지, 아니면 또 다른 방법이 있는지 궁금합니다.

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
만달라 댓글 1 좋아요 0 조회수 116

bookId데이터를 input으로 서버액션에 보냈을 때 단점

미해결

한 입 크기로 잘라먹는 Next.js

bookId데이터를 hidden input으로 서버액션에 보내는 방식은 유저가 클라이언트 단에서 개발자 도구로 input의 value를 수정하여 데이터를 조작할 수 있는 가능성이 있어보이는데, 이런 경우까지 고려하면 어떤 방법이 더 안정적인 방법일까요?

  • typescript
  • next.js
정호성 댓글 3 좋아요 0 조회수 150

메인 브랜치로 이동

미해결

제로베이스부터 배우는 웹개발의 개념과 바이브 코딩

깃 실습처럼... 몇몇 작업이 에러가 심해서 돌아가려고 '깃 그래프'에서 돌아갈 커밋 위치한 곳에 reset current branch to this commit... 을 눌러 hard를 선택해 주었는데도... 돌아가지를 안네요 콘솔창에서 명령어 git reset --hard 810380ae 도 안먹고... ㅠㅠ(커서에서 에이전시에 시켰는데 810380ae로 돌아가로...여러 터미널 명령어를 실행했는데도 변하질 않네요) 어찌해야 하나요? 다른 방법이 있는지 좀 알려주세요

  • react
  • 웹앱
  • next.js
  • cursor
  • 인공지능(ai)
kelo 댓글 2 좋아요 0 조회수 87

40강 로그인

미해결

Next + React Query로 SNS 서비스 만들기

안녕하세요! 40강 관련 질문입니다. 강의에서 로그인 하는 방식을 두 가지 알려주셨습니다. 서버액션 사용 서버액션 미사용 서버액션 미사용해서 구현할 때 tanstack query 의 mutation 을 사용하는 방식도 좋지 않을까 생각을 하는데요, 로그인 버튼에 loading 처리를 하거나 등 의 이유로요! 근데 제로초님은 useState 만 쓰셨는데, 간단하게 보여주기 위해서 그렇게 하신걸까요? 로그인/회원가입에 tanstack query 를 사용하는 것이 추천하는 방식은 아닌걸까요?? 제가 강의 들으면서 개인프로젝트에 적용하고 있어서, 어떤 방식이 좋은지 고민이 돼서 여쭙니다!

  • react
  • next.js
  • react-query
  • next-auth
  • msw
찹찹이 댓글 1 좋아요 0 조회수 66

47강 팔로잉 게시글

미해결

Next + React Query로 SNS 서비스 만들기

안녕하세요 제로초님! 47강의 팔로잉 게시글은 SSR 안필요하다고 하셨는데 그 이유가 뭔가요?! 제 생각은.. 팔로우 한 것은 유저마다 달라서? ssr 자체가 말이 안돼서(?) 그런거라고 추측해봅니다.

  • react
  • next.js
  • react-query
  • next-auth
  • msw
찹찹이 댓글 2 좋아요 0 조회수 57

npx prisma db push 오류

미해결

한 입 크기로 잘라먹는 Next.js

다른 분들도 위와 같은 에러가 많이 뜨시는 것 같은데 아직 해결 방법이 없는 걸까요? supabase 프로젝트 생성 딜레이로 예측하신다면 시간 두고 기다려봐야 하는 것일지 궁금하네요 ㅜ

  • react
  • typescript
  • next.js
댓글 2 좋아요 0 조회수 224

커스텀aop와 트랜잭션을 같이 사용할때 우선순위에 관한 질문

해결됨

스프링 DB 2편 - 데이터 접근 활용 기술

트랜잭션도 @Transactional을 사용하면 일종의 aop로 작동하지 않습니까? @Transactional은 그러면 우선순위가 어느정도인지 궁금합니다. 그리고 커스텀aop를 적용할때 트랜잭션보다 먼저 적용해야하는 건지도 궁금합니다. 그리고 @Repository를 사용하면 sql 체크 예외를 DataAccess 언체크 예외로 바꿔주는 aop가 있다는데, 그러면 @Repository가 @Transactional보다 우선순위가 낮아야지 언체크 예외로 변한 예외를 보고 트랜잭션이 롤백을 할텐데, 그러면 Repository는 무조건 Transactional 보다 우선순위가 낮게 만들어진건지도 궁금합니다.

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
한현진 댓글 2 좋아요 0 조회수 108

group_concat 사용자 정의 함수 등록하는 방법

미해결

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

섹션 11-9 JPQL 함수에서, 사용자 정의 함수(group_concat) 구현 시 Hibernate(6.4.2.Final)버전을 사용할 때 가능한 방법 공유드립니다. 강의에서 MyH2Dialect 클래스 구현하는 대신, FunctionContributor를 구현 public class MyH2FunctionContributor implements FunctionContributor { @Override public void contributeFunctions(FunctionContributions fc) { TypeConfiguration typeConfig = fc.getTypeConfiguration(); SqmFunctionRegistry registry = fc.getFunctionRegistry(); // ✅ 문자열 반환 타입을 직접 조회 BasicType<?> stringType = typeConfig.getBasicTypeRegistry().getRegisteredType("string"); // ✅ 사용자 정의 함수 등록 registry.registerPattern( "group_concat", "group_concat(?1)", stringType ); } } 서비스 등록 (META-INF/services/org.hibernate.boot.model.FunctionContributor) jpql.MyH2FunctionContributor 예시 쿼리 Team team = new Team(); team.setName("teamA"); em.persist(team); Member member = new Member(); member.setUsername("관리자"); member.setAge(10); member.setType(MemberType.ADMIN); Member member2 = new Member(); member2.setUsername("사용자2"); member2.setAge(10); member2.setType(MemberType.USER); member.changeTeam(team); em.persist(member); em.persist(member2); em.flush(); em.clear(); String query = "select group_concat(m.username) from Member m"; List<String> result = em.createQuery(query, String.class).getResultList(); for (String s : result) { System.out.println("s = " + s); } 결과 쿼리 Hibernate: /* select group_concat(m.username) from Member m */ select group_concat(m1_0.username) from Member m1_0 s = 관리자,사용자2

  • java
  • jpa
  • hibernate6.4.2.final
  • group_concat
uncia 댓글 1 좋아요 1 조회수 141

수강질문

해결됨

[코드캠프] 부트캠프에서 만든 '완벽한' 프론트엔드 코스

안녕하세요 ~ 강사님 수업 실무적으로 잘 가르쳐주셔서 너무 잘 듣고 만족합니다. 현재 완벽한 프론트엔드코스를 거의 다 소화하고, 풀스택을 배우고자 합니다. 부트캠프에서 만든 고농축 백엔드 코스는 현재 수강한 프론트엔드 코스 내용과 겹치는 강의가 많고 강의량도 많다보니 구매가 고민스로운데요.. 강사님 강의중 관리자 모드와 유저모드간에 통신을 다루는 실무 프로젝트 중심의 백엔드까지 배울수 있는 강의가 있는지 추천받고 싶습니다.

  • react
  • react-native
  • 하이브리드-앱
  • graphql
  • next.js
Lia 댓글 2 좋아요 0 조회수 81

cache eviction 관련 질문입니다.

해결됨

6주 완성! 백엔드 이력서 차별화 전략 4가지 - 똑같은 이력서 속에서 돋보이는 법

위의 내용과 같이 언제, 어떻게 만료 시킬 지에 대한 만료 방식을 cache eviction이라고 해주셨는데 검색해보니까 내용 상의 차이가 있다는 것을 알게 됐습니다. TTL, TTI와 같은 특정 시간, 점유 시간에 대해 발동되어 cache expiration으로 정의가 됐습니다. 반면 cache eviction은 메모리 공간이 부족한 경우 발동되어 LRU, LFU, FIFO 등으로 구분됐습니다. 결국 둘 다 캐시 삭제 기법이긴 하나, 트리거 조건에 차이가 있었습니다. 면접에서 eviction 관련 질문을 받는다면 둘을 혼용해도 무방할까요?

  • java
  • spring
  • mysql
  • redis
  • 이력서
gogoDevelop 댓글 2 좋아요 0 조회수 103

실제 실무에서 RestController 하나로만 개발이 가능한가요?

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] RestController 는 JSON 으로 응답을 돌려주는 역할을 하며 redirect 와 같은 것을 사용하지 않는 이상 view페이지로 리턴해주는 건 따로 없고, 권장하지 않는다고 배웠습니다. view 페이지 이동 및 view 에서 표출할 단순한 데이터는 @Controller , "기능"에 관련된 것은 @RestController 을 사용해야할 거 같습니다. 예를 들어, 1. 회원목록 페이지 이동은 Controller 및 회원목록조회(DB조회) -> member_list.html 리턴 2. 회원상세보기 페이지 이동은 Controller 및 회원상세조회(DB조회) -> member_detail.html 리턴 3.회원 상세보기페이지에서의 수정 기능은 RestController 및 JSON 응답 리턴 이렇게 구현이 되어야할 거 같더라구요 ! RestAPI 및 @RestController 형식을 사용한다하더라도 전체를 RestController 를 사용하는 건 구현에 무리도 있고 권장되지 않는 거 같기도 하더라구요. 패키지 구조로 치면 domain(package) -member(package) -controller(package) > MemberApiController.java, MemberController 이렇게요! RestController 하나만 사용하게 된다면 메인페이지에서 [회원목록] 을 클릭한다. 클릭과 동시에 axios/fetch 등의 비동기 통신이 이루어진다. 비동기통신의 url 은 회원목록데이터를 return 하는 @RestController 메서드에 도착한다. 응답이 성공하면 axios/fetch 비동기 메서드에 200코드와 회원목록데이터를 전달한다. 응답이 성공하면 그 데이터를 회원목록페이지를 보여주는 @RestController 에 다시 전달한다. 해당 RestController 메서드가 전달받은 데이터를 view페이지에 표출한다. 순서가 이렇게 될 거 같은데 5번의 회원목록 페이지를 보여주는 RestController 또한 view 페이지를 열수없으니, redirect 와 같은 걸 사용해야할 거 같더라구요. 상당히 복잡하고 비효율적인거 같아 RestController(기능) 와 Controller(view 페이지 이동) 을 분리해서 사용하기로 결정했는데 실제 현업/실무에서도 @RestController(ResponseEntity) 와 @Controller(ModelAndView) 를 위처럼 기능 / view 페이지 이동 이렇게 구분해서 사용하나요? 아니면 RestController(ResponseEntity) 하나만 사용하나요? 만약 구분해서 사용해야한다면 MemberApiController 는 ResponseEntity 메서드 MemberController 는 ModelAndView 메서드 를 작성하는 것을 염두에 두고 있습니다 !

  • java
  • spring
  • spring-boot
  • jpa
6udguin 댓글 1 좋아요 0 조회수 121

공통 예외 처리 부분의 Exception

미해결

김영한의 실전 자바 - 중급 1편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 여기에 질문 내용을 남겨주세요. 체크 예외를 사용하면서 수많은 예외를 Excption으로 처리하는 것을 최악의 수라고 하셨는데 공통 예외 처리를 하면서 공통 예외 처리 메서드를 catch 부분에서 호출하면서 catch(Exception e)와 같이 사용하는데 이 부분의 Exception과 체크 예외의 Exception은 다르게 봐야할까요? 햇갈려서 질문해봅니다.

  • java
  • 객체지향
jjlee021899 댓글 1 좋아요 0 조회수 85

강의 pdf교재는 별도로 없나요?

미해결

마이크로서비스 디자인 패턴 완벽 가이드

강의 pdf교재는 별도로 없나요?

  • java
  • spring-cloud
  • 디자인-패턴
  • msa
  • patterns
김동운 댓글 1 좋아요 0 조회수 168

컬렉션 조회 최적화 질문

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 예 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 예 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) 예 안녕하세요. 강의를 듣다가 제가 컬렉션 조회 최적화에 대해 이해했던 내용을 정리해봤는데 맞는지 확인해주실 수 있을까요??

  • java
  • spring
  • spring-boot
  • jpa
JMJ 댓글 1 좋아요 0 조회수 62

아이솔레이션 레벨에 관한 내용도

미해결

스프링 DB 2편 - 데이터 접근 활용 기술

관련 내용도 이 강의에 들어가있을까요?아니면 다른 강의에있을까요?

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
임다정 댓글 1 좋아요 0 조회수 77

16강 api서버구현 질문있습니다.

해결됨

서버개발자 과제전형 완벽가이드 - 1편

16강 api서버구현 질문있습니다. 18분 46초에서 인자를 넣는데 mock이라서 의미가 없다는게 어떤 말씀인지 알 수 있을까요? 목킹은 객체를 만드는데 넣을 인자값이 없어서 의미가 없다는 건가요?

  • java
  • spring
  • spring-boot
  • database
zzzzz 댓글 2 좋아요 0 조회수 97

jpa와 기타 db 기술을 혼합해서 사용할 때 질문드립니다.

미해결

스프링 DB 2편 - 데이터 접근 활용 기술

여러가지 repository를 만들어야하나요? 예를들어서 mybatis, jdbctemplate, 스프링jpa, 순수jpa, querydsl을 사용한다고 할때 mybatisRepo, JdbcRepo, 스프링JpaRepo, 순수Jpa + querydslRepo, 이런식으로 다 나눠서 하는게 맞는걸까요?? 그러면 강의에서 말씀해주신 것처럼 DIP 원칙은 위배될텐데 그래도 되는걸까요? DIP원칙 위배되지 않게 하기위해서 각 repo별로 인터페이스 만드는것도 뭔가 이상해보이기도 하고... 헷갈리네요 Jpa를 사용한 후에, mybatis나 jdbctemplate같이 수정과 조회를 디비에서 체크하는 db기술을 사용한다고 할때, 이전 jpa 사용에서 어떤 수정이 이루어졌었다면 그건 영속성 컨텍스트에 저장되어있기만하고 아직 flush를 하지 않아서 디비엔 반영이 안되어 있는 상태라서 mybatis나 jdbctemplate를 이용할 때 뭔가 데이터 정합성이 안맞는다거나 하는 문제가 발생할 수 있기에(뇌피셜) 아무튼 jpa 사용 후 mybatis, jdbctemplate 사용하려면 사용하기 전엔 flush를 꼭해줘야 한다고 하셨는데, 그러면 service 레이어에서 entitymanager를 의존받아야 하는데 이게 맞는건지 궁금합니다. jpa 기술을 서비스레이어까지 끌고오는게 어찌보면 좀 안맞는거같고 그걸 피하기 위해서 트랜잭션 aop를 사용한것 같은데... 그래도 db기술 혼합사용시에는 그냥 service 레이어에 entitymanager를 의존받는게 맞는걸까요? jpa를 이용한 db 처리방식은 효율적인 건가요?? 항상 효율적인 것 같지는 않지만, 영속성 컨텍스트를 체크해서 결국 마지막에 최종 변환 된 것만 쿼리를 날려서 수정을 한다던가 하는 부분은 뭔가 효율적인것처럼 보이지만서도, 단순히 update하나만 한다고 가정하면, find로 select 쿼리를 한번 날리고 setXXX으로 객체에 뭔가 변화를 줘서 커밋직전 flush에서 update쿼리를 한번 더 날린다고 생각하면 또 비효율적인거 같기도하고 잘 모르겠습니다.

  • spring
  • mvc
  • jpa
  • querydsl
  • spring-data-mybatis
  • spring-jpa
한현진 댓글 2 좋아요 1 조회수 157

웹서비스를 만들고나서..

미해결

제로베이스부터 배우는 웹개발의 개념과 바이브 코딩

선생님이 가르쳐 주신 웹서비스를 만들고 나서 (컨텐츠,로그인,결제 등 전부 포함), 위의 것들로 커서에서 구글 플레이스토어, 애플 스토어 등에 올릴 수 있나요? 커서와 수파베이스,버셀로 웹페이지 만들어서 사람들하게 공유하는것은 가능한데, 그걸 또 앱 배포용 코드(?)로 변환해서 만들 수 있는지요? 쳇지피티에 물어보면 이미 만들어진 웹서비스를 앱용으로도 가능하다는데... 커서에서도 쉽게(현재까지는 쉽게 배워서 쉽네요 ^^) 변환을 시킬 수 있는지 알고 싶습니다~

  • react
  • 웹앱
  • next.js
  • cursor
  • 인공지능(ai)
kelo 댓글 1 좋아요 0 조회수 80

@StepScope 질문

미해결

죽음의 Spring Batch: 새벽 3시의 처절한 공포는 이제 끝이다.

@Bean public Step systemDestructionStep( SystemInfiltrationTasklet tasklet // Tasklet을 주입받는다 ) { return new StepBuilder("systemDestructionStep", jobRepository) .tasklet(tasklet, transactionManager) .build(); } @Slf4j @Component @StepScope // Tasklet에 StepScope를 달았다 public class SystemInfiltrationTasklet implements Tasklet { private final String targetSystem; public SystemInfiltrationTasklet( @Value("#{jobParameters['targetSystem']}") String targetSystem ) { this.targetSystem = targetSystem; } @Override public RepeatStatus execute(StepContribution contribution, ChunkContext context) { log.info("{} 시스템 침투 시작", targetSystem); return RepeatStatus.FINISHED; } } 여기서 @StepScope를 tasklet에 작성하는 이유가 있나요? 아래 방식처럼 Step에 @StepScope를 작성하면 안되나요? @Bean @StepScope public Step systemDestructionStep( SystemInfiltrationTasklet tasklet // Tasklet을 주입받는다 ) { return new StepBuilder("systemDestructionStep", jobRepository) .tasklet(tasklet, transactionManager) .build(); }

  • java
  • spring
  • spring-boot
  • spring-batch
  • backend
이동연 댓글 2 좋아요 1 조회수 225

인기 태그

인프런 TOP Writers

주간 인기글