묻고 답해요
158만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
질문있습니다.
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]컨트롤러에서 모델에 addAttribute안해도 이미 모델에 들어가있는 경우가 있던데 이런것들고 명시적으로 model 에 넣어서 보내주는게 좋을까요? 아니면 코드 깔끔하게 그냥 없애는게 좋을까요?
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
엔티티를 반환받을때 어디서 response용 dto로 바꿔주는게 좋나요?
=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]파라미터를 받을 때는 컨트롤러에서 메서드 실행될때 이미 dto로 받는건 알겠는데 dto를 저장하기 전에 엔티티로 바꾸는건 어디서 보통 하는건가요? 컨트롤러인가요 서비스인가요? 그리고 리포지토리에서 받아온 엔티티는 어디서 response용 dto로 바꿔주는 건가요? service에서 처리하고 컨트롤러로 보내는 건가요?
-
미해결
백엔드 취업, 포트폴리오 만드려고하는데요
어디서부터 어떻게 준비해야될지 너무 막막합니다. 김영한님 강의 처음부터 끝까지 다 들었는데, 요구사항 명세서 같은거 모아놓은 사이트없을까요? api 작성하는것부터 하려구요
-
해결됨나도코딩의 자바 기본편 - 풀코스 (20시간)
생성자 대신 Setter 사용 이유
나도 코딩님. FactoryCam이란 클래스에서, 생성자로 Detectable detector;와 Reportable reportor;를 초기화 해주는 대신 Setter를 사용하는 이유가 있나요?
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
세팅부터 안되고있네요.....
9월 01, 2024 7:00:54 오전 org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator getJdbcEnvironmentUsingJdbcMetadataWARN: HHH000342: Could not obtain connection to query metadatajava.lang.IllegalStateException: Cannot get a connection as the driver manager is not properly initialized at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.getConnection(DriverManagerConnectionProviderImpl.java:259) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator$ConnectionProviderJdbcConnectionAccess.obtainConnection(JdbcEnvironmentInitiator.java:428) at org.hibernate.resource.transaction.backend.jdbc.internal.JdbcIsolationDelegate.delegateWork(JdbcIsolationDelegate.java:61) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:276) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:107) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:68) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130) at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) at org.hibernate.engine.jdbc.internal.JdbcServicesImpl.configure(JdbcServicesImpl.java:52) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:136) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:247) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:132) at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:43) at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:61) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.addConnections(DriverManagerConnectionProviderImpl.java:499) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:372) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections$Builder.build(DriverManagerConnectionProviderImpl.java:550) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildPool(DriverManagerConnectionProviderImpl.java:102) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:82) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:136) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:247) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:395) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:262) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:107) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:68) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:130) at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) at org.hibernate.boot.model.relational.Database.<init>(Database.java:45) at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:223) at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:191) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:170) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1432) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1503) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:55) at jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:80) at jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:55) at hellojpa.JpaMain.main(JpaMain.java:9)9월 01, 2024 7:00:54 오전 org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl constructDialectWARN: HHH90000025: H2Dialect does not need to be specified explicitly using 'hibernate.dialect' (remove the property setting and it will be selected by default)9월 01, 2024 7:00:54 오전 org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptionsWARN: SQL Error: 90048, SQLState: 900489월 01, 2024 7:00:54 오전 org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptionsERROR: Unsupported database file version or invalid file header in file "C:/Users/user/test.mv.db" [90048-224]Exception in thread "main" org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] due to: Error calling Driver#connect [Unsupported database file version or invalid file header in file "C:/Users/user/test.mv.db" [90048-224]] [null] at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:276) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:238) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) at org.hibernate.boot.model.relational.Database.<init>(Database.java:45) at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.getDatabase(InFlightMetadataCollectorImpl.java:223) at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:191) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:170) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1432) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1503) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:55) at jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:80) at jakarta.persistence.Persistence.createEntityManagerFactory(Persistence.java:55) at hellojpa.JpaMain.main(JpaMain.java:9)Caused by: org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect [Unsupported database file version or invalid file header in file "C:/Users/user/test.mv.db" [90048-224]] [null] at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:51) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:58) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:108) at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:134) at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:43) at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:61) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.addConnections(DriverManagerConnectionProviderImpl.java:499) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:372) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections$Builder.build(DriverManagerConnectionProviderImpl.java:550) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildPool(DriverManagerConnectionProviderImpl.java:102) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:82) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:136) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:247) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:215) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:395) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.getJdbcEnvironmentUsingJdbcMetadata(JdbcEnvironmentInitiator.java:262)이런식으로 오류가뜨는데 뭐가 문제인지 모르겟네요. 세팅부터 문제가 생겼는데 해결이안돼 공부를 할수가 없어 너무 답답합니다.
-
해결됨홍정모의 따라하며 배우는 C언어
예제 만들기 질문
아래처럼 코드를 작성했는데 문자를 입력받는 곳에서 버퍼는 지워져 quit이 가능하지만 정수를 받는 곳에서는 quit을 두번입력해야 가능해서 버퍼 지우는 것을 for문 밑에 하나 더 삽입했는데 이렇게 해도 문제가 없을까요? 작동상으로는 문제가 없는데 피드백이 궁금하여 남겨요.int main(){ char c; int i; while (1) { printf("Enter the letter of your choice: \n"); printf("a. avengers b. beep\n"); printf("c. count q. quit\n"); scanf("%c", &c); while (getchar() != '\n') continue; if (c == 'a') printf("Avengers assemble!\n"); else if (c == 'b') printf("\a"); else if (c == 'c') { printf("Enter an inter: \n"); scanf("%d", &i); for (int j = 1; j <= i; ++j) printf("%d\n", j); while (getchar() != '\n') continue; } else if (c == 'q') break; } return 0;}
-
해결됨한 입 크기로 잘라먹는 Next.js(v15)
4.1) 빌드 시 오류 질문 드립니다.
안녕하세요. 4.1) 앱 라우터의 데이터 페칭 강의를 수강하고 build를 진행했는데Generating static pages (0/6) [ ] ⨯ useSearchParams() should be wrapped in a suspense boundary at page "/". Read more: https://nextjs.org/docs/messages/missing-suspense-with-csr-bailout이런식으로 오류메시지가 출력돼서 메시지에 있는 공식문서를 참고하여 아래와 같이 searchbar.tsx를 수정하였는데요.// searchbar.tsx "use client"; import { Suspense, useEffect, useState } from "react"; import { useRouter, useSearchParams } from "next/navigation"; import style from "./serachbar.module.css"; function Search() { const router = useRouter(); const searchParams = useSearchParams(); const [search, setSearch] = useState(""); const q = searchParams.get("q"); useEffect(() => { setSearch(q || ""); }, [q]); const onChangeSearch = (e: React.ChangeEvent<HTMLInputElement>) => { setSearch(e.target.value); }; const onSubmit = () => { if (!search || q === search) return; router.push(`/search?q=${search}`); }; const onKeyDown = (e: React.KeyboardEvent<HTMLInputElement>) => { if (e.key === "Enter") { onSubmit(); } }; return ( <div className={style.container}> <input value={search} onChange={onChangeSearch} onKeyDown={onKeyDown} /> <button onClick={onSubmit}>검색</button> </div> ); } export default function Searchbar() { return ( <Suspense> <Search /> </Suspense> ); } 이런식으로 Suspense로 감싸줬는데도 동일한 오류메시지가 출력돼서 해결방법을 검색해보다가// loading.tsx import React from "react"; export default function Loading() { return <div>Loading...</div>; } app 폴더 아래에 loading.tsx 파일을 생성하니 정상적으로 build가 되었습니다.공식문서를 참고하여 Suspense를 감싸줬는데도 해결이 되지 않은 이유가 궁금합니다!강사님께서 따로 Suspense 관련 언급을 안하신 건 next버젼과 관련이 있을까도 싶어 package.json 파일도 함께 첨부합니다.// package.json{ "name": "section04", "version": "0.1.0", "private": true, "scripts": { "dev": "next dev", "build": "next build", "start": "next start", "lint": "next lint" }, "dependencies": { "react": "19.0.0-rc-f994737d14-20240522", "react-dom": "19.0.0-rc-f994737d14-20240522", "next": "15.0.0-rc.0" }, "devDependencies": { "typescript": "^5", "@types/node": "^20", "@types/react": "^18", "@types/react-dom": "^18", "eslint": "^8", "eslint-config-next": "15.0.0-rc.0" } } 답변해주시면 감사하겠습니다!!그리고 혹시 다른 강의도 찍으실 계획이 있는지 궁금합니다! ㅎㅎ 강의 너무 잘 듣고 있습니다 좋은 강의 감사합니다!!^^
-
해결됨김영한의 실전 자바 - 기본편
page 중복도 지울 수 있지 않나요?
실습 코드에 있는 기본 생성자인Book() { this("", "", 0); }에서Book() { this("", ""); } 으로 바꾸면 중복으로 되어있는 0도 지울 수 있나요?물론 함수를 두 번 호출 하겠지만 문제에 있는 중복이 없는 조건을 맞추려면 이게 가능한지 궁금합니다.
-
미해결실전! 스프링 부트와 JPA 활용2 - API 개발과 성능 최적화
컨트롤 안에 DTO
소스코드를 보면 request라 response dto를 따로 격리시키는게 아니라 컨트롤러 소스코드 내에 정의하셨는데 이건 분리하는 게 맞지 않나요...? 혹시 컨트롤러 안에 정의한 이유가 있을까요?
-
미해결설계독학맛비's 실전 FPGA를 이용한 HW 가속기 설계 (LED 제어부터 Fully Connected Layer 가속기 설계까지)
우분투 vitis 오류
안녕하세요 🙂[1. 질문 챕터] : eg) 몇 장, 몇 분 몇 초 쯤. or 수강생 분들이 봤을 때 어디구나?! 할 수 있게 표기 부탁 드려요.[2. 질문 내용] : eg) 질문 내용을 자유롭게 작성해주시면 되겠습니다 🙂[3. 시도했던 내용, 그렇게 생각하는 이유] : eg) 설치영상은 이렇게 시도했는데 안되더라 or 본인의 생각을 적어주세요. (실습 내용 중에 이해가 안되거나 잘못된 내용이 있는데, 이러 이러한 근거로 나는 이렇게 생각합니다.) ================ 다음 내용은 읽어보시고 지우시면 됩니다.=================질문 내용을 작성해주실 때, 위의 3단계로 제가 이해할 수 있게 작성해주시면 정확한 답변을 드릴 수 있을 것 같아요!!현업자인지라 업무때문에 답변이 늦을 수 있습니다. (길어도 만 3일 안에는 꼭 답변드리려고 노력중입니다 ㅠㅠ)강의에서 다룬 내용들의 질문들을 부탁드립니다!! (설치과정, 강의내용을 듣고 이해가 안되었던 부분들, 강의의 오류 등등)이런 질문은 부담스러워요.. (답변거부해도 양해 부탁드려요)개인 과제, 강의에서 다루지 않은 내용들의 궁금증 해소, 영상과 다른 접근방법 후 디버깅 요청, 고민 상담 등..글쓰기 에티튜드를 지켜주세요 (저 포함, 다른 수강생 분들이 함께보는 공간입니다.)서로 예의를 지키며 존중하는 문화를 만들어가요.질문글을 보고 내용을 이해할 수 있도록 남겨주시면 답변에 큰 도움이 될 것 같아요. (상세히 작성하면 더 좋아요! )먼저 유사한 질문이 있었는지 검색해보세요.잠깐! 인프런 서비스 운영 관련 문의는 1:1 문의하기를 이용해주세요.================== 펜타리눅스도 이용하기위해 우분투로 진행중인데 비바도는 켜지나 vitis가 켜지질안네요.. 명확한 오류내용이 없어서 구글링도 힘든데 어떤오류인지 알수있을까요?
-
해결됨스프링 시큐리티 완전 정복 [6.x 개정판]
Map 방식 인가 구현 이후 로그인 에러
시큐리티 6.1.6 사용중입니다지금까지 클론 코딩하면서 진행하고 있는데,성공 처리 핸들러에서 SavedRequest 에 /error 경로로 이동하도록 나오던데.. 어떤 부분을 봐야할지 감이 안잡힙니다 ㅜㅜ Map 인가 정보도 동일하게 사용했습니다
-
해결됨오브젝트 - 기초편
[6-2] 응집도의 변경 관점에서, [속도] 관련
응집도의 높고 낮음이, [동일 시점에 동일한 속도] 여부에 따라 정해진다고 하셨는데,이때,[시점]은 '할인 정책의 종류나 금액 계산 방법이 변경' 과 같이, [특정 요구사항의 변경이 일어날 때] 를 의미하는것으로 이해했는데, [속도] 는 무엇을 의미하는지 잘 이해가 되지 않아서 질문 남겨보아요.
-
미해결AWS Certified Solutions Architect - Associate 자격증 준비하기
수강연장 부탁드립니다
수강연장 부탁드립니다 ..!
-
미해결스프링 DB 2편 - 데이터 접근 활용 기술
Deadlock 발생 관련 질문이 있습니다!!
[질문 내용]안녕하세요. 강의와 조금 다른 주제일 수 있으나 도움을 얻을 수 있지 않을까 하여 질문 남깁니다!!토이 프로젝트 진행중 사용자의 최근 접속시간을 주기적으로 업데이트 시킬 필요가 있어 Spring Security 인가 필터에서 현재 로그인한 유저의 최근 접속시간을 업데이트하는 쿼리를 날리도록 작성했습니다. 이 때 Deadlock이 발생하였습니다. 현재까지 제가 찾아본 바로는 DispatcherServelt 전에는 톰캣 스레드가 락을 점유하고 이후에는 IO 스레드가 락을 점유하여 그렇다는 정보를 찾을 수 있었는데요. 정확히 이해가 안가 여기에 여쭤봅니다 ㅠㅠ. 데드락이 발생하는 원인에 어떤것이 있을까요? 참고로 인가 필터에서는 jpa 리포지토리를 의존성 주입받아 사용해서 쿼리를 날렸습니다. (현재는 이 방법 자체가 데르락을 떠나 비효율적이라 판단하여 AOP로 해결한 상태입니다. 사실 이것도 효율적인 방법인지는 잘 모르겠습니다...)
-
미해결[아파치 카프카 애플리케이션 프로그래밍] 개념부터 컨슈머, 프로듀서, 커넥트, 스트림즈까지!
min.insync.repllicas, acks옵션, 그리고 리더 파티션 승급
안녕하세요. 강의 잘 듣고 있습니다. 아래 상황을 가정하고 질문 드립니다. replication factor : 3acks옵션 : -1min.insync.replicas : 2리더 파티션을 가지고 있던 브로커에서 장애가 발생하였고, 프로듀서는 정상적으로 적재되었다고 응답을 받은 상황이라고 가정하겠습니다.여기서 리더 파티션으로 승급되는 기준은 acks와 min.insync.replicas옵션에 의해 데이터를 복제받은 파티션일 것 같은데요. 제 생각에 가장 simple하게 승급시키는 기준이 팔로워 파티션 중 offset이 가장 큰 팔로워 파티션을 승급시키는 방법인 것 같은데요. 카프카에서는 어떤 기준으로 팔로워 파티션을 리더로 승급시키는지 궁금합니다.
-
미해결Spring Cloud로 개발하는 마이크로서비스 애플리케이션(MSA)
spring cloud gateway 에서 eureka의 용도
강사님 강의 잘듣고 있습니다.한가지 궁금점은 유레카 서버를 별도로 올리지 않아도 api-gate-way에서 first-service, secound-service라우팅 및 필터가 가능한데 이떄 유레카의 용도가 무엇인기 궁금합니다. 유레카 서버로 부터 연결된 유레카 클라이언트 정보를 얻는다고 했는데... 유레카 서버를 off해도 routing은 정상적으로 이루어지더라구요 .. 제가 뭔가 잘못 이해하고 있는 부분이 있을까요?
-
미해결
jpa를 사용해도 mysql 같은걸 알아야되나요?
취업공고같은데보면 mysql을 알아야된다고 대부분 나오는 jpa를 사용하면 mysql 문법같은거 몰라도 상관없는거 아닌가요? 물론 간혹 필요할순 있지만 김영한님 강의에서는 h2 db만 이용했는데 mysql도 똑같은식으로 사용가능한지요
-
미해결김영한의 실전 자바 - 중급 1편
함수 안에 같은 부분을 포함하는데
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)예2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)예3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)예[질문 내용]함수 안에 같은 부분을 포함하는데 중간에bool 값을 true 해주거나 false 해주는건 어떻게 리팩토리할까요? 예를들어public static void main(String[] args) { kim(); -> holy=true 한번은 true가 되 kim(); -> 한번은 holy=true가 안되게static void kim(){ System.out.println("wow"); holy = true; System.out.println("hello"); } } println은 다같이 중첩되는데 한번은 holy 부분이 작동안되게하고 다른 한번은 true값을 변경하고싶어요 함수를 2개만들순없고 저건 예시를 든거고 만약 kim() 함수가 길면 함수2개를 만드는 의미가 없다고생각합니다
-
미해결실전! 스프링 부트와 JPA 활용1 - 웹 애플리케이션 개발
로그
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]쿼리 파라미터를 로그로 남기면 어떤 점이 좋은 건가요??
-
해결됨Practical Testing: 실용적인 테스트 가이드
통합테스트/인수테스트/E2E 테스트의 차이점이 무엇일까요?
안녕하세요! 강사님. 저번에 상세하게 답변해주셔서 너무 감사했습니다! 말씀해주신 인수 테스트에 대해서 알아보고, RestAssured를 사용해서 테스트 적용해보았고, 테스트 무사히 성공 했습니다. 감사합니다! 다만, 적용해보면서 또 여러가지 궁금점이 생겼어요. 질문은 총 5가지 입니다!1. RestAssured를 사용해서 API 테스트를 할 때 DB까지 테스트 하는 테스트를 보통 통합테스트라고 하는건가요? 그렇다면 E2E 테스트는 실무에서 보통 어떻게 수행하는지 궁금합니다. 2.통합 테스트라고 하면 모듈간의 통합을 검증하기 위함이라고 하던데, 개발 환경에서 실행되는 테스트일까요? 아니면 실제 운영환경과 동일한 환경에서 테스트를 수행해야 되는걸까요? 3. 인수테스트도 통합테스트에 속하는 개념인걸까요? 4. 통합테스트(인수테스트)에서 실패 케이스도 작성해야 하는 걸까요? 5. 다들 RestAssured, MockMvc를 사용해서 인수테스트를 하던데, 그럼 통합테스트는 어떤걸 사용하는지 궁금합니다. (찾아보니 @SpringBootTest가 통합 테스트는 아니라고 해서요!)