inflearn logo
강의

강의

N
챌린지

챌린지

멘토링

멘토링

N
클립

클립

로드맵

로드맵

지식공유

묻고 답해요

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

config파일이 생성이 되면.. item-service 프로젝트에서..

미해결

Java 마이크로서비스(MSA) 프로젝트 실습

config파일이 생성이 되면.. item-service 프로젝트에서.. 만드는 과정중에 에러가 발생하였습니다. 아래와 같은 이슈가 발생되는데.. 해결 방법이 있을까요? 2024-08-13T23:22:04.431+09:00 DEBUG 50092 --- [mstudy] [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter : Application failed to start due to an exception org.springframework.boot.autoconfigure.jdbc.DataSourceProperties$DataSourceBeanCreationException: Failed to determine a suitable driver class at org.springframework.boot.autoconfigure.jdbc.DataSourceProperties.determineDriverClassName(DataSourceProperties.java:186) ~[spring-boot-autoconfigure-3.3.2.jar:3.3.2] at org.springframework.boot.autoconfigure.jdbc.PropertiesJdbcConnectionDetails.getDriverClassName(PropertiesJdbcConnectionDetails.java:49) ~[spring-boot-autoconfigure-3.3.2.jar:3.3.2] at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration.createDataSource(DataSourceConfiguration.java:55) ~[spring-boot-autoconfigure-3.3.2.jar:3.3.2] at org.springframework.boot.autoconfigure.jdbc.DataSourceConfiguration$Hikari.dataSource(DataSourceConfiguration.java:117) ~[spring-boot-autoconfigure-3.3.2.jar:3.3.2] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:578) ~[na:na] at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:146) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.ConstructorResolver.instantiate(ConstructorResolver.java:644) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:636) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.config.DependencyDescriptor.resolveCandidate(DependencyDescriptor.java:254) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1443) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1353) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.ConstructorResolver.resolveAutowiredArgument(ConstructorResolver.java:904) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.ConstructorResolver.createArgumentArray(ConstructorResolver.java:782) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:542) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1355) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1185) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:562) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:522) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:337) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:335) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:200) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:313) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:205) ~[spring-beans-6.1.11.jar:6.1.11] at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:954) ~[spring-context-6.1.11.jar:6.1.11] at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:625) ~[spring-context-6.1.11.jar:6.1.11] at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.3.2.jar:3.3.2] at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:754) ~[spring-boot-3.3.2.jar:3.3.2] at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:456) ~[spring-boot-3.3.2.jar:3.3.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:335) ~[spring-boot-3.3.2.jar:3.3.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1363) ~[spring-boot-3.3.2.jar:3.3.2] at org.springframework.boot.SpringApplication.run(SpringApplication.java:1352) ~[spring-boot-3.3.2.jar:3.3.2] at com.study.mstudy.MstudyApplication.main(MstudyApplication.java:10) ~[classes/:na] at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[na:na] at java.base/java.lang.reflect.Method.invoke(Method.java:578) ~[na:na] at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:50) ~[spring-boot-devtools-3.3.2.jar:3.3.2] 2024-08-13T23:22:04.437+09:00 ERROR 50092 --- [mstudy] [ restartedMain] o.s.b.d.LoggingFailureAnalysisReporter : *************************** APPLICATION FAILED TO START *************************** Description: Failed to configure a DataSource: 'url' attribute is not specified and no embedded datasource could be configured. Reason: Failed to determine a suitable driver class Action: Consider the following: If you want an embedded database (H2, HSQL or Derby), please put it on the classpath. If you have database settings to be loaded from a particular profile you may need to activate it (the profiles local are currently active). Process finished with exit code 0

  • java
  • spring
  • rest-api
  • spring-boot
  • msa
댓글 1 좋아요 0 조회수 175

2장 클론 코딩시 화면 하단에 회색 영역이 생김니다.

미해결

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

강좌와 git을 보면서 했는데, 왜 아래에 회색영역이 생기는 건지 잘 모르겠습니다.ㅜㅜ 세로로 생기는 스크롤도 흰색영역에만 생깁니다. 그런데 로그아웃버튼은 회색영역에 생기네요 이리저리 해봐도 잘 모르겠어서 도움을 요청합니다

  • react
  • next.js
  • react-query
  • next-auth
  • msw
슈퍼아스라다 댓글 1 좋아요 0 조회수 146

질문드립니다.

미해결

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

Error performing load command org.hibernate.InstantiationException: No default constructor for entity 'hellojpa.Member' 이렇게 에러가 나왔는데 어딜 봐야할까요????? 이전까지 잘 됐는데, 변경부분터 저렇게 에러가 뜨네요

  • java
  • jpa
JASON AHN 댓글 1 좋아요 0 조회수 121

커리큘럼 목록체크

미해결

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

영상 볼때 옆에 툴바에 커리큘럼 누르면 동영상 목록뜨고 수업 들으면 자동으로 체크 되자나요. 이거 체크 해제 어떻게 하나요. 만약 체크해제 기능이 없으면 유저들을 위해서 만들어 주시면 좋을거 같아요

  • java
  • 객체지향
  • 코딩-테스트
  • 알고리즘
최연승 댓글 1 좋아요 0 조회수 134

서로 다른 컴포넌트간 query 일치하게 하기 강의중

미해결

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

안녕하세여 제로초님 UserInfo에서 팔로우버튼을 누르면 팔로잉으로 변해야되고 다시 한번 누르면 팔로우로 변해야되는데 버튼을 누르고 새로고침을 해야지만 반영이됩니다... 팔로우 추천에서는 바로 반영이 되는데.... 깃허브 ch3-2 UserInfo에 있는 코드로 가져다 써도 안되네여 ㅠㅠ "use client"; import style from "@/app/(afterLogin)/[username]/profile.module.css"; import BackButton from "@/app/(afterLogin)/_component/BackButton"; import { useQuery, useQueryClient, useMutation } from "@tanstack/react-query"; import { User } from "@/model/User"; import { getUser } from "@/app/(afterLogin)/[username]/_lib/getUser"; import cx from "classnames"; import { MouseEventHandler } from "react"; import { Session } from "@auth/core/types"; type Props = { username: string; session: Session | null; }; export default function UserInfo({ username, session }: Props) { const { data: user, error } = useQuery< User, Object, User, [_1: string, _2: string] >({ queryKey: ["users", username], queryFn: getUser, staleTime: 60 * 1000, // fresh -> stale, 5분이라는 기준 gcTime: 300 * 1000, }); const queryClient = useQueryClient(); const follow = useMutation({ mutationFn: (userId: string) => { console.log("follow", userId); return fetch( `${process.env.NEXT_PUBLIC_BASE_URL}/api/users/${userId}/follow`, { credentials: "include", method: "post", } ); }, onMutate(userId: string) { const value: User[] | undefined = queryClient.getQueryData([ "users", "followRecommends", ]); if (value) { const index = value.findIndex((v) => v.id === userId); if (index > -1) { console.log(value, userId, index); const shallow = [...value]; shallow[index] = { ...shallow[index], Followers: [{ id: session?.user?.email as string }], _count: { ...shallow[index]._count, Followers: shallow[index]._count?.Followers + 1, }, }; queryClient.setQueryData(["users", "followRecommends"], shallow); } } const value2: User | undefined = queryClient.getQueryData([ "users", userId, ]); if (value2) { const shallow: User = { ...value2, Followers: [{ id: session?.user?.email as string }], _count: { ...value2._count, Followers: value2._count?.Followers + 1, }, }; queryClient.setQueryData(["users", userId], shallow); } }, onError(error, userId: string) { console.error(error); const value: User[] | undefined = queryClient.getQueryData([ "users", "followRecommends", ]); if (value) { const index = value.findIndex((v) => v.id === userId); console.log(value, userId, index); if (index > -1) { const shallow = [...value]; shallow[index] = { ...shallow[index], Followers: shallow[index].Followers.filter( (v) => v.id !== session?.user?.email ), _count: { ...shallow[index]._count, Followers: shallow[index]._count?.Followers - 1, }, }; queryClient.setQueryData(["users", "followRecommends"], shallow); } const value2: User | undefined = queryClient.getQueryData([ "users", userId, ]); if (value2) { const shallow = { ...value2, Followers: value2.Followers.filter( (v) => v.id !== session?.user?.email ), _count: { ...value2._count, Followers: value2._count?.Followers - 1, }, }; queryClient.setQueryData(["users", userId], shallow); } } }, }); const unfollow = useMutation({ mutationFn: (userId: string) => { console.log("unfollow", userId); return fetch( `${process.env.NEXT_PUBLIC_BASE_URL}/api/users/${userId}/follow`, { credentials: "include", method: "delete", } ); }, onMutate(userId: string) { const value: User[] | undefined = queryClient.getQueryData([ "users", "followRecommends", ]); if (value) { const index = value.findIndex((v) => v.id === userId); console.log(value, userId, index); if (index > -1) { const shallow = [...value]; shallow[index] = { ...shallow[index], Followers: shallow[index].Followers.filter( (v) => v.id !== session?.user?.email ), _count: { ...shallow[index]._count, Followers: shallow[index]._count?.Followers - 1, }, }; queryClient.setQueryData(["users", "followRecommends"], shallow); } const value2: User | undefined = queryClient.getQueryData([ "users", userId, ]); if (value2) { const shallow = { ...value2, Followers: value2.Followers.filter( (v) => v.id !== session?.user?.email ), _count: { ...value2._count, Followers: value2._count?.Followers - 1, }, }; queryClient.setQueryData(["users", userId], shallow); } } }, onError(error, userId: string) { console.error(error); const value: User[] | undefined = queryClient.getQueryData([ "users", "followRecommends", ]); if (value) { const index = value.findIndex((v) => v.id === userId); console.log(value, userId, index); if (index > -1) { const shallow = [...value]; shallow[index] = { ...shallow[index], Followers: [{ id: session?.user?.email as string }], _count: { ...shallow[index]._count, Followers: shallow[index]._count?.Followers + 1, }, }; queryClient.setQueryData(["users", "followRecommends"], shallow); } } const value2: User | undefined = queryClient.getQueryData([ "users", userId, ]); if (value2) { const shallow = { ...value2, Followers: [{ userId: session?.user?.email as string }], _count: { ...value2._count, Followers: value2._count?.Followers + 1, }, }; queryClient.setQueryData(["users", userId], shallow); } }, }); console.log("error"); console.dir(error); if (error) { return ( <> <div className={style.header}> <BackButton /> <h3 className={style.headerTitle}>프로필</h3> </div> <div className={style.userZone}> <div className={style.userImage}></div> <div className={style.userName}> <div>@{username}</div> </div> </div> <div style={{ height: 100, alignItems: "center", fontSize: 31, fontWeight: "bold", justifyContent: "center", display: "flex", }} > 계정이 존재하지 않음 </div> </> ); } if (!user) { return null; } const followed = user.Followers?.find((v) => v.id === session?.user?.email); console.log(session?.user?.email, followed); const onFollow: MouseEventHandler<HTMLButtonElement> = (e) => { e.stopPropagation(); e.preventDefault(); console.log("follow", followed, user.id); if (followed) { unfollow.mutate(user.id); } else { follow.mutate(user.id); } }; return ( <> <div className={style.header}> <BackButton /> <h3 className={style.headerTitle}>{user.nickname}</h3> </div> <div className={style.userZone}> <div className={style.userRow}> <div className={style.userImage}> <img src={user.image} alt={user.id} /> </div> <div className={style.userName}> <div>{user.nickname}</div> <div>@{user.id}</div> </div> {user.id !== session?.user?.email && ( <button onClick={onFollow} className={cx(style.followButton, followed && style.followed)} > {followed ? "팔로잉" : "팔로우"} </button> )} </div> <div className={style.userFollower}> <div>{user._count.Followers} 팔로워</div> &nbsp; <div>{user._count.Followings} 팔로우 중</div> </div> </div> </> ); } 제가 보기에는 useQuery가 제대로 작동안하는거같은데...제로초님 의견이 궁금합니다 팔로우버튼 안눌렀을때 팔로우버튼 눌렀을때

  • react
  • next.js
  • react-query
  • next-auth
  • msw
장산 댓글 2 좋아요 0 조회수 235

main 함수 실행 에러

미해결

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

첫번째 스크린샷 build ~ using을 인텔리제이로 썼을 땐 에러가 안 나는데 이번 강의에서 gradle(default)로 설정한 후 main함수 실행 시 에러가 뜨며 실행이 되지 않습니다. 다른 질문들 참고해봤는데 다른 건 없고 계속 똑같은 오류가 뜨더라구요.. 해결 방법이 있을까요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
나벨 댓글 4 좋아요 0 조회수 266

제목을 입력하지않았는데 포스트맨에서 제목이 나오지 않습니다.

미해결

Java 마이크로서비스(MSA) 프로젝트 실습

package com.study.mstudy.item.controller; import com.study.mstudy.item.dto.ItemDTO; import com.study.mstudy.item.dto.ResponseDTO; import com.study.mstudy.item.service.ItemService; import jakarta.validation.Valid; import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.http.ResponseEntity; import org.springframework.web.bind.annotation.*; @RestController @RequestMapping(value="v1/item") @Slf4j @RequiredArgsConstructor public class ItemController { private final ItemService itemService; @RequestMapping(value="/add",method= RequestMethod.POST) public ResponseEntity<ResponseDTO> add(@Valid @RequestBody ItemDTO itemDTO){ ResponseDTO.ResponseDTOBuilder responseDTOBuilder = ResponseDTO.builder(); itemService.insertItem(itemDTO); log.debug("request add item id= {}",itemDTO.getId()); responseDTOBuilder.code("200").message("success"); return ResponseEntity.ok(responseDTOBuilder.build()); } } package com.study.mstudy.item.dto;import jakarta.validation.constraints.NotBlank;import jakarta.validation.constraints.Positive;import jakarta.validation.constraints.Size;import lombok.Data;@Datapublic class ItemDTO {@NotBlank(message = "ID는 필수 입력 값입니다.")@Size(max=10, message = "ID는 크기 10이하까지 작성가능합니다.")private String id; @Size(max=20, message = "이름은 20자까지 작성가능합니다.")private String name; @Size(max=200, message = "설명은 최대 200자까지 작성가능합니다.")private String description; @Positive private long count; private String regDts; private String updDts;} 예제 보고 따라했으나.. 결과는 이미지 처럼 나오는데 저도 포스트맨으로 설정하면 선생님처럼 나오게하고 싶은데 방법이 있을까요?

  • java
  • spring
  • rest-api
  • spring-boot
  • msa
댓글 0 좋아요 0 조회수 134

섹션1. 빌드에러가 발생합니다.

해결됨

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

. . . java.lang.NoClassDefFoundError: org/slf4j/LoggerFactory 예외가 발생하여 빌드가 되지 않습니다. 자주 묻는 질문에도 해당 내용이 없는 것 같습니다.

  • java
  • spring
  • mvc
  • spring-boot
닉네임 댓글 2 좋아요 1 조회수 173

도메인 오브젝트 테스트 강의 개선 과제

해결됨

토비의 스프링 6 - 이해와 원리

안녕하세요. 섹션3 마지막 도메인 오브젝트 테스트에서 한 줄로 줄이기 해보라고 하셨는데, 제 생각이 맞는건지 코멘트 부탁드리겠습니다. @Component public class PaymentService { private final ExRateProvider provider; //private final Clock clock; public PaymentService(ExRateProvider provider/*, Clock clock*/) { this.provider = provider; //this.clock = clock; } public Payment prepare(Long orderId, String currency , BigDecimal foreignCurrencyAmount) throws IOException { return Payment.createPrepared(orderId, currency, foreignCurrencyAmount, this.provider); } } static Payment createPrepared(Long orderId, String currency, BigDecimal foreignCurrencyAmount, ExRateProvider exRateProvider) throws IOException { BigDecimal exchangeRate = exRateProvider.getExRate(currency); BigDecimal convertedAmount = foreignCurrencyAmount.multiply(exchangeRate); LocalDateTime validUntil = LocalDateTime.now(Clock.fixed(Instant.now(), ZoneId.systemDefault())).plusMinutes(30); return new Payment(orderId, currency, foreignCurrencyAmount, exchangeRate, convertedAmount, validUntil); } 웹환경 기준으로는 사용자 각각의 요청마다 payment가 달라야하고 따라서 유효시간도 다를것이기 때문에, Payment 자체나 Clock.systemDefaltZone()을 바로 싱글톤한 Bean으로 등록하면 안될 것 같더라고요. (테스트돌려보니 다른 객체라도 무조건 시간 같게 나오는 것 확인) 이렇게 작성해도 또 다른 문제는 없는지 확인부탁드립니다.

  • java
  • spring
hooni 댓글 2 좋아요 0 조회수 229

업캐스팅 강의 마지막 예제 관련 질문입니다.

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

내가 나를 낳은 형태에서 예제와 같이 special draw를 호출하면 오류가 나지 않을까요??

  • python
  • java
  • c
  • 정보처리기사
유호영 댓글 2 좋아요 0 조회수 142

@NotEmpty 어노테이션

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] @NotEmpty어노테이션이 임포트가 안됩니다 혹시 버전차이때문에 그런건가요?

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
봉준 댓글 2 좋아요 4 조회수 920

slf4j 보안에 대해 질문

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 혹시 slf4j가 보안에 취약하다고 Logback를 사용하라는 블로그글을 본 적이 있는데 혹시 사실인가요?? 보안이 뚫렸다고 표현을 해서 궁금합니다

  • java
  • spring
  • 웹앱
  • spring-boot
  • jpa
봉준 댓글 1 좋아요 0 조회수 274

JPQL에 대해 질문 있습니다.

해결됨

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

List<Team> result1 = em.createQuery("select t from Member m join m.team t", Team.class) .getResultList(); List<Team> result2 = em.createQuery("select t from Member m join Team t on m.id = t.id", Team.class) .getResultList(); 강의에서는 result1과 같이 jpql을 작성했는데 result2처럼 jpql을 작성해도 되는지 궁금합니다.

  • java
  • jpa
감바스 댓글 1 좋아요 -1 조회수 180

25강 findAll듣던중에

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

다음 첨부파일처럼 공유자께(첨부1)서는 public UserResponse(long id, User user) { } 가 있습니다. 그런데 저는 지금까지 쓴 코드에서 첨부파일(첨부2)처럼 저 코드부분이 없습니다. 몇강에서 놓친건가요

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
우잉 댓글 1 좋아요 0 조회수 96

순수 jdbc 질문 있어요

미해결

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

[질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 순수 jdbc 강의 9분 2초에 string sql을 상수로 빼는 것이 더 나은 이유가 무엇인지 궁금합니다

  • java
  • spring
  • mvc
  • spring-boot
뒤끝없는벡엔드 댓글 2 좋아요 0 조회수 296

25강 질문있습니다.

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

저장기능 변경에서 save를 하게 되면 저장된 User객체가 반환되는데 이때 id를 사용할 수도 있다.라고 했는데반환되는것이 User객체의 ID인건가요? 그리고 꼭 반환 안하고 처음에 작성했던 public void saveUser(UserCreateRequest request) { userRepository.save (new User(request.getName(), request.getAge())); } 이렇게 써도 되는건가요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
우잉 댓글 1 좋아요 0 조회수 86

강의문의드려요

해결됨

(2026 최신!) 일주일만에 합격하는 정보처리기사 실기

질문은 동영상 강의에 들어가서 오른쪽에 커뮤니티 버튼을 통해 해주세요. 그래야 어떤 강좌에서 질문하셨는지 알 수 있습니다. 영상에서 몇 분 몇 초 대를 알려주셔야 제가 한 번에 질문 내용 확인이 가능합니다. 이미 다른 누군가가 질문을 한 이력 이 있을 수 있습니다. 질문 게시판을 한 번 확인 부탁드립니다. 학교의 과제나 타 강사의 코드 등 외부 수업 자료에 대해서는 답변하지 않습니다. 제가 다루는 커리큘럼 외의 이론이나, 너무 디테일한 컴퓨터 이론에 대해서는 답변 드리지 않습니다. 시험에 안 나오는 경우가 많고, 나와 봤자 1문제 나오는데 외워야 할 부분이 많은 것 등 (예시: 서브넷 마스크 계산) 질문을 올릴 때 이 글은 모두 지우고 내용을 입력해주세요. 정처기 비전공자인데요 섹션1 설명듣고 섹션2듣는데 계속 문제만 풀던데요 아무 개념이없이 복합문제 푸는 느낌이 들어서요 섹션3에 있는 c언어, 자바, 파이썬 강의듣고 섹션2를 들어야 하는거죠?

  • python
  • java
  • c
  • 정보처리기사
박창현 댓글 1 좋아요 0 조회수 242

25강 질문있습니다

미해결

자바와 스프링 부트로 생애 최초 서버 만들기, 누구나 쉽게 개발부터 배포까지! [서버 개발 올인원 패키지]

JpaRepository를 UserRepository가 상속받게 해줄때, 만든 테이블의 매핑 객체인 User 와 유저 테이블의 id인 Long 타입을 각각 적어주어야 한다고 하셨는데 user객체는 이해가 가는데 갑자기 id인 Long타입은 왜 적나요?

  • java
  • spring
  • aws
  • mysql
  • spring-boot
  • jpa
우잉 댓글 2 좋아요 0 조회수 99

다형성 - 역활과 구현예제1 질문

해결됨

김영한의 실전 자바 - 기본편

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 코드를 package poly.car0; public class Driver { //private K3Car k3Car; K3Car k3Car = new K3Car(); // public void setK3Car(K3Car k3Car) { // this.k3Car = k3Car; // } public void drive() { System.out.println("자동차를 운전합니다."); k3Car.startEngine(); k3Car.pressAccelerator(); k3Car.offEngine(); } } 이렇게 작성해도 정상 작동 되는데 왜 아래처럼 코딩한 거에요? 이유를 알려 주세요. package poly.car0; public class Driver { private K3Car k3Car; //K3Car k3Car = new K3Car(); public void setK3Car(K3Car k3Car) { this.k3Car = k3Car; } public void drive() { System.out.println("자동차를 운전합니다."); k3Car.startEngine(); k3Car.pressAccelerator(); k3Car.offEngine(); } }

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

static class 와 new 키워드

미해결

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

학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요. 1. 강의 내용과 관련된 질문을 남겨주세요. 2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요. (자주 하는 질문 링크: https://bit.ly/3fX6ygx) 3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요. (질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG) 질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요. ========================================= [질문 템플릿] 1. 강의 내용과 관련된 질문인가요? (예/아니오) 2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오) 3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오) [질문 내용] 1. 정적 중첩 클래스를 사용하기 위해 다음과 같은 코드를 강의에서 사용했는데요. NestedOuter.Nested nested = new NestedOuter.Nested(); static 클래스라면 인스턴스화가 되지 않은 클래스라고 생각하는데, new 생성자를 통해 생성하는 이유가 궁금합니다. NestedOuter.Nested.print(); 다음과 같이 사용해야하지 않을까? 생각도 했습니다만 직접해보았을 때, print() 메서드는 static 메서드가 아니기 때문에 다음과 같이 사용할 수 없었습니다. 2. 그래서 다음과 같은 실험도 해보았습니다. public static void main(String[] args) { NestedOuter outer = new NestedOuter(); NestedOuter.Nested nested1 = new NestedOuter.Nested(); NestedOuter.Nested nested2 = new NestedOuter.Nested(); nested1.print(); nested2.nestedInstanceValue = 2; nested1.print(); nested2.print(); } print() 메서드는 정적 중첩 클래스의 필드인 nestedInstanceValue 를 출력하고, 초기값으로 1을 넣어두었습니다. 결과는 1 1 2 가 나왔습니다. nested2 에서 필드를 2로 수정을 한 후 nested1 과 nested2 에서 print() 를 호출했는데, 1 2 2 를 예상했지만 1 / 1 / 2 가 나왔습니다. 그렇다면 클래스에 static이 들어간다는 것이 의미하는 것이 무엇인지 궁금합니다.

  • java
  • 객체지향
노동준 댓글 2 좋아요 0 조회수 350

인기 태그

인프런 TOP Writers

주간 인기글