묻고 답해요
164만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
미해결스프링 핵심 원리 - 기본편
혹시 PDF 에 수정자 주입 방식 오타가 난건가요?
학습하는 분들께 도움이 되고, 더 좋은 답변을 드릴 수 있도록 질문전에 다음을 꼭 확인해주세요.1. 강의 내용과 관련된 질문을 남겨주세요.2. 인프런의 질문 게시판과 자주 하는 질문(링크)을 먼저 확인해주세요.(자주 하는 질문 링크: https://bit.ly/3fX6ygx)3. 질문 잘하기 메뉴얼(링크)을 먼저 읽어주세요.(질문 잘하기 메뉴얼 링크: https://bit.ly/2UfeqCG)질문 시에는 위 내용은 삭제하고 다음 내용을 남겨주세요.=========================================[질문 템플릿]1. 강의 내용과 관련된 질문인가요? (예/아니오)2. 인프런의 질문 게시판과 자주 하는 질문에 없는 내용인가요? (예/아니오)3. 질문 잘하기 메뉴얼을 읽어보셨나요? (예/아니오)[질문 내용]여기에 질문 내용을 남겨주세요. PDF 에 112 페이지 수정자 자동 주입 예시 @Autowired public DiscountPolicy setDiscountPolicy(@Qualifier("mainDiscountPolicy") DiscountPolicy discountPolicy) { return discountPolicy; } 113 페이지 //수정자 @Autowired public DiscountPolicy setDiscountPolicy(DiscountPolicy discountPolicy) { return discountPolicy; } 이렇게 올라왔는데 이게 맞나요? 이건 getter 아닌가요? setter 은 public void DiscountPolicy setDiscountPolicy(DiscountPolicy discountPolicy) { this.discountPolicy = discountPolicy; } 와 같이 되어야 하는거 아닌가요? 오타인거 같긴 합니다만 혹시 몰라 물어봅니다.
-
해결됨따라하며 배우는 노드, 리액트 시리즈 - 기본 강의
'Fail to sign up'이 뜹니다 ㅠㅠ
postman으로 post를 해봤을때도 그렇고 회원가입 버튼을 눌러도 작동이 되지 않고 'Fail to sign up'만 뜹니다. mongodb에서 collections 확인해봤는데 도착한 게 없는거로 봐서는 post 자체가 안 되는 것 같은데 어떻게 해야할 까요?? 코드는 변수명이나 디렉토리 이름정도 빼고는 강의랑 똑같이 한 거 같습니다. 엣지 검사기능에서 콘솔열어보면 아래처럼 오류가 떠요. Uncaught (in promise) Error: Request failed with status code 500 at createError (createError.js:16) at settle (settle.js:17) at XMLHttpRequest.onloadend (xhr.js:66) createError @ createError.js:16 settle @ settle.js:17 onloadend @ xhr.js:66 Promise.then(비동기) (익명) @ auth.js:10 invokePassiveEffectCreate @ react-dom.development.js:23487 callCallback @ react-dom.development.js:3945 invokeGuardedCallbackDev @ react-dom.development.js:3994 invokeGuardedCallback @ react-dom.development.js:4056 flushPassiveEffectsImpl @ react-dom.development.js:23574 unstable_runWithPriority @ scheduler.development.js:468 runWithPriority$1 @ react-dom.development.js:11276 flushPassiveEffects @ react-dom.development.js:23447 (익명) @ react-dom.development.js:23324 workLoop @ scheduler.development.js:417 flushWork @ scheduler.development.js:390 performWorkUntilDeadline @ scheduler.development.js:157 GET http://localhost:3000/api/user/auth 500 (Internal Server Error) dispatchXhrRequest @ xhr.js:210 xhrAdapter @ xhr.js:15 dispatchRequest @ dispatchRequest.js:58 request @ Axios.js:108 Axios.<computed> @ Axios.js:129 wrap @ bind.js:9 auth @ user_action.js:23 (익명) @ auth.js:10 invokePassiveEffectCreate @ react-dom.development.js:23487 callCallback @ react-dom.development.js:3945 invokeGuardedCallbackDev @ react-dom.development.js:3994 invokeGuardedCallback @ react-dom.development.js:4056 flushPassiveEffectsImpl @ react-dom.development.js:23574 unstable_runWithPriority @ scheduler.development.js:468 runWithPriority$1 @ react-dom.development.js:11276 flushPassiveEffects @ react-dom.development.js:23447 (익명) @ react-dom.development.js:23324 workLoop @ scheduler.development.js:417 flushWork @ scheduler.development.js:390 performWorkUntilDeadline @ scheduler.development.js:157 그리고 콘솔에는 아래처럼 오류가 뜹니다. TypeError: Cannot read property 'findByToken' of undefined [0] at auth (C:\Users\이상호\Downloads\Code\Web\Nodejs_Project\backend\auth.js:5:10) [0] at Layer.handle [as handle_request] (C:\Users\이상호\Downloads\Code\Web\Nodejs_Project\node_modules\express\lib\router\layer.js:95:5) [0] at next (C:\Users\이상호\Downloads\Code\Web\Nodejs_Project\node_modules\express\lib\router\route.js:137:13) [0] at Route.dispatch (C:\Users\이상호\Downloads\Code\Web\Nodejs_Project\node_modules\express\lib\router\route.js:112:3) [0] at Layer.handle [as handle_request] (C:\Users\이상호\Downloads\Code\Web\Nodejs_Project\node_modules\express\lib\router\layer.js:95:5) [0] at C:\Users\이상호\Downloads\Code\Web\Nodejs_Project\node_modules\express\lib\router\index.js:281:22 [0] at Function.process_params (C:\Users\이상호\Downloads\Code\Web\Nodejs_Project\node_modules\express\lib\router\index.js:341:12) [0] at next (C:\Users\이상호\Downloads\Code\Web\Nodejs_Project\node_modules\express\lib\router\index.js:275:10) [0] at cookieParser (C:\Users\이상호\Downloads\Code\Web\Nodejs_Project\node_modules\cookie-parser\index.js:57:14) [0] at Layer.handle [as handle_request] (C:\Users\이상호\Downloads\Code\Web\Nodejs_Project\node_modules\express\lib\router\layer.js:95:5) 아래는 깃허브입니다. InhaULSH/Web (github.com)
-
미해결스프링 핵심 원리 - 기본편
강의 듣고 따로 공부하고 있는데 DIP와 리팩터링 관련 제가 학습한 지식이 맞는 걸까요?
스프링 부트 : DIP(의존 관계 역전 원칙) public class MemberServiceImpl implements MemberService { private final MemberRepository memberRepository = new MemoryMemberRepository(); public MemberServiceImpl(MemberRepository memberRepository) { this.memberRepository = memberRepository; } MemberServiceImpl을 보면 private final MemberRepository memberRepository = new MemoryMemberRepository(); 를 통해 추상화와 구현체를 관리하고 있다. 만약 요구사항 변경으로 새로운 구현체로 변경해 줘야 한다면 = new MemoryMemberRepository(); 이 부분에 대한 수정이 필요해진다. MemberServiceImpl에서 추상화를 통해 구현체를 관리하고 구현체에 대한 변경이 있을 때 인터페이스를 통해서만 구현체를 변경할 수 있어야 하는데 지금 보면 인터페이스가 아닌 MemberServiceImpl에서 코드 수정이 일어난다. 결국 지금 이 코드는 객체 지향 5가지 원칙 중 DIP*(Dependency Inversion Principle | 의존 관계 역전 원칙)*에 위반된다. public class AppConfig { public MemberService memberService() { return new MemberServiceImpl(new MemoryMemberRepository()); } } 해결을 위해 AppConfig 클래스를 만들어 이런 구현체들을 관리해 준다. 생성과 연결을 담당한다. return new MemberServiceImpl(new MemoryMemberRepository()); 코드로 구현 객체를 생성한다. 간단히 해석하자면 “MemberServiceImpl을 만들고 내가 만든 MemberServiceImpl은 MemoryMemberRepository를 사용할거야.!” 와 같이 해석할 수 있다. public class MemberServiceImpl implements MemberService {ㅗ private final MemberRepository memberRepository; public MemberServiceImpl(MemberRepository memberRepository) { this.memberRepository = memberRepository; } public MemberServiceImpl(MemberRepository memberRepository) { this.memberRepository = memberRepository; } 생성자를 통해 받아준다. 이렇게 따로 설정 클래스에서 구현체를 받아 생성자를 통해 추상화와 구체화를 분리해 주는 것을 생성자 주입이라고 한다. AppConfig 클래스에서는 결국 실제 동작에 필요한 구현 객체를 생성하게 된다. AppConfig 클래스는 생성한 객체 인스턴스의 참조(레퍼런스)를 생성자를 통해 주입(연결)해준다. 결국 AppConfig 객체는 객체를 생성하고 생성한 객체를 생성자로 전달하는 행위를 하게 되고 이런 행위를 DI(Dependency Injection)라고 한다.( 의존관계 주입) 결과적으로는 MemberServiceImpl 클래스는 인터페이스에만 의존하게 되고 구체적인 구현 클래스에 대해 전혀 의존하지 않게 되므로 DIP를 잘 지키는 코드가 된다. MemberService memberService; @BeforeEach public void beforEach() { AppConfig appConfig = new AppConfig(); memberService = appConfig.memberService(); } //MemberService memberService = new MemberServiceImpl(memberRepository); @BeforeEach 는 각 테스트를 실행하기 전에 무조건 실행시켜준다. 마지막으로 테스트 코드 또한 바꿔주고 테스트 전체 실행을 해주면 성공적으로 DIP 보안을 마치게 된다. 코드 리팩터링 public class AppConfig { public MemberService memberService() { return new MemberServiceImpl(new MemoryMemberRepository()); } } 이 코드는 객체 안에서 new를 통해 특정 객체를 직접 생성하고 있다. 이러면 문제가 중복이 생긴다. 예를 들면 MemberServiceImpl과 OrderServiceImpl에서 MemoryMemberRepository를 사용하기 위해 각각 위 코드처럼 (new MemoryMemberRepository()); 이렇게 따로 생성해 줘야 하기 때문에 이 자체를 중복이라고 본다. public class AppConfig { public MemberService memberService() { return new MemberServiceImpl(memberRepository()); } private MemoryMemberRepository memberRepository() { return new MemoryMemberRepository(); } } 리팩터링 후에는 memberRepository()에 new MemoryMemberRepository()를 생성하고 MemberServiceImpl과 코드엔 없지만 OrderServiceImpl에서 따로 new를 통해 생성하지 않고 memberRepository()를 통해 객체를 생성한 것을 불러와 사용하게 되어 전체적으로 객체 생성 행위는 줄어든 것이므로 중복을 피했다보고 이러면 DIP에 이어 OCP도 만족하게 된다. DIP / OCP 참고 DIP 의존 관계 역전 원칙 구체적인 것이 추상화에 의존해야 한다. 고차원 모듈은 저차원 모듈에 의존하면 안 되고 추상화된 것에 의존해야 한다. OCP 개방 - 폐쇄 원칙 기존의 코드를 변경하지 않으면서 기능을 추가할 수 있도록 설계가 되어야 한다. 확장에 대해 열려 있어야 하고 수정에 대해 닫혀 있어야 한다. 제어의 역전 예를 들면 JUnit이 있다. 테스트 코드를 작성하면 JUnit에서 로직은 코딩했지만 실행과 제어에 대한 권한은 JUnit이라는 Test Framework이가져가 이것을 대신 실행해 준다. 자신만의 Life Cycle 속에서 규칙을 통해(@BeforeEach를 먼저 실행하고 @Test를 실행한다. 등) 내가 작성한 코드를 Call back식으로 불러지게 된다. 내가 코드만 개발하면 프레임워크에서 딱 필요에 따라 적절하게 호출하는 것, 호출하는 제어권을 넘기는 것을 제어의 역전이라고 한다. 라이브러리 내가 작성한 코드가 직접 제어의 흐름을 담당하면 라이브러리이다. 자바 객체를 직접 xml이나 json으로 바꾼다면 이것은 라이브러리이다.
-
미해결스프링 부트 개념과 활용
안녕하세요 기선님 서블릿 어플리케이션 구조에 대해 질문드립니다
이전에 기선님 강의인 스프링 웹 MVC를 수강하고 스프링 부트를 수강중입니다. MVC 강의에서는 스프링 부트 없이 진행했던 터라 궁금증이 생겨 질문 드립니다. (사진 첨부가 되지 않아 사진 URL을 등록했습니다.) 기존 MVC방식에서 서블릿 프로그램에서 스프링의 기능을 붙여가며 학습을 했을때 제가 생각한 이미지는 이러한 이미지 였는데요 스프링 부트를 적용해도 이와 동일한 이미지로 이해하면 될까요? 제가 선생님 강의를 듣고 이해하기로는 스프링 컨테이너와 서블릿 컨테이너는 별개이고, 컨텍스트 로드 리스너에 의해 Controller, ViewResolver, HandlerMapping과 같은 '빈'들은 root ApplicationContext에 접근 가능한 ServletContext에 등록이 되고 Service, Repository와 같은 빈들은 root ApplicationContext에 등록이 된다고 생각했는데요 맞는지 궁금합니다. 또 하나 질문을 드리자면 서블릿 컨텍스트는 톰캣에 의해 생성이 되어지는데 ApplicationContext는 DispatcherServlet을 통해 인스턴스화 된다 라는 내용을 봐서 그럼 스프링 IoC컨테이너를 서블릿 컨텍스트가 로드하는건가..? 라는 생각을 했는데 혹시 맞을까요? 질문이 길어서 죄송합니다. 좋은 강의 내주셔서 학습에 큰 도움이 되고있습니다 🙏
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
app.use와 req.url
안녕하세요 조현영님 이번에는 req.url과 app.use의 관계에 대해서 질문해봅니다. app.use("/test", (req, res, next) => { if (req.method === "GET") { console.log(`${req.url} 디렉터리에 ${req.method}요청이 들어왔습니다!`); next(); } else if (req.method === "POST") { console.log(`${req.url} 디렉터리에 ${req.method}요청이 들어왔습니다!`); next(); } else if (req.method === "PUT") { console.log(`${req.url} 디렉터리에 ${req.method}요청이 들어왔습니다!`); next(); } }); app.route("/test") .get((req, res) => { res.send("Hello get request!"); console.log(req.url); }) .post((req, res) => { res.send("Hello post request!"); console.log(req.url); }) .put((req, res) => { res.send("Hello put request!"); console.log(req.url); }); app.use("/test", ...) 미들웨어로 "/test" 요청이 발생할 때마다 req.url , req.method 객체를 사용해서 요청받은 주소 그리고 요청 메서드 형태를 출력하는 분기문을 만들었습니다. 그리고 밑에는 app.route("/test", ...) 미들웨어로 "/test"에 대한 get,post,put 메서드를 나누었습니다. 그런데 app.use()에서 req.url을 출력할때 /test가 아닌 /가 출력됩니다. /test로 출력하게 하려면 어떻게 해야 하나요?
-
미해결시스템엔지니어가 알려주는 리눅스 기초편 Bash Shell Script
분명 파일이 있는데 계속 -bash: cd: /root/SHELL: No such file or directory 라고 뜹니다
ls를 해보니 work 랑 shell 파일이 없는데 여기서 어떻게 해야될까요? 사용자 파일에는 있는데 cent1에서는 왜 파일이 없다고 뜰까요..
-
미해결비전공자를 위한 개발자 취업 올인원 가이드 [취업편]
팀프로젝트링크는 어떻게 걸어야 할까요?
선생님 질문 하나 더 드립니다ㅜㅜ 팀프로젝트를 했을 때 저장소를 제 깃헙에 생성하고, 팀원을 초대하여 코드를 올렸었습니다. 이 때는 팀원들과 함께한 그 리포지토리에 링크를 걸어야하나요? 그렇다면 코드링크 거는 건 팀원들의 깃헙에도 적용이 되나요? 그것이 아니라면 따로 리포지토리를 하나 더 생성해서 프로젝트를 복사한 후에 제 포트폴리오에 맞게 코드링크도 걸고 해야하나요????
-
미해결자바 ORM 표준 JPA 프로그래밍 - 기본편
현재 오류 질문드립니다 , connect error?.
=========에러 내용입니다================= 1월 03, 2022 4:40:34 오후 org.hibernate.engine.jdbc.spi.SqlExceptionHelper logExceptions ERROR: Connection is broken: "java.net.SocketTimeoutException: connect timed out: localhost" [90067-199] Exception in thread "main" org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:275) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:237) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) at org.hibernate.id.factory.internal.DefaultIdentifierGeneratorFactory.injectServices(DefaultIdentifierGeneratorFactory.java:152) at org.hibernate.service.internal.AbstractServiceRegistryImpl.injectDependencies(AbstractServiceRegistryImpl.java:286) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:243) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) at org.hibernate.boot.internal.InFlightMetadataCollectorImpl.<init>(InFlightMetadataCollectorImpl.java:179) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:119) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:904) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:935) at org.hibernate.jpa.HibernatePersistenceProvider.createEntityManagerFactory(HibernatePersistenceProvider.java:56) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:79) at javax.persistence.Persistence.createEntityManagerFactory(Persistence.java:54) at hellojpa.JpaMain.main(JpaMain.java:11) Caused by: org.hibernate.exception.JDBCConnectionException: Error calling Driver#connect at org.hibernate.exception.internal.SQLExceptionTypeDelegate.convert(SQLExceptionTypeDelegate.java:48) at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:42) at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:113) at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.convertSqlException(BasicConnectionCreator.java:118) at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:41) at org.hibernate.engine.jdbc.connections.internal.BasicConnectionCreator.createConnection(BasicConnectionCreator.java:58) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.addConnections(DriverManagerConnectionProviderImpl.java:363) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:282) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections.<init>(DriverManagerConnectionProviderImpl.java:260) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl$PooledConnections$Builder.build(DriverManagerConnectionProviderImpl.java:401) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.buildPool(DriverManagerConnectionProviderImpl.java:112) at org.hibernate.engine.jdbc.connections.internal.DriverManagerConnectionProviderImpl.configure(DriverManagerConnectionProviderImpl.java:75) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.configureService(StandardServiceRegistryImpl.java:100) at org.hibernate.service.internal.AbstractServiceRegistryImpl.initializeService(AbstractServiceRegistryImpl.java:246) at org.hibernate.service.internal.AbstractServiceRegistryImpl.getService(AbstractServiceRegistryImpl.java:214) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.buildJdbcConnectionAccess(JdbcEnvironmentInitiator.java:145) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:66) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:94) at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ... 14 more Caused by: org.h2.jdbc.JdbcSQLNonTransientConnectionException: Connection is broken: "java.net.SocketTimeoutException: connect timed out: localhost" [90067-199] at org.h2.message.DbException.getJdbcSQLException(DbException.java:617) at org.h2.message.DbException.getJdbcSQLException(DbException.java:427) at org.h2.message.DbException.get(DbException.java:194) at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:435) at org.h2.engine.SessionRemote.connectEmbeddedOrServer(SessionRemote.java:317) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:169) at org.h2.jdbc.JdbcConnection.<init>(JdbcConnection.java:148) at org.h2.Driver.connect(Driver.java:69) at org.hibernate.engine.jdbc.connections.internal.DriverConnectionCreator.makeConnection(DriverConnectionCreator.java:38) ... 29 more Caused by: java.net.SocketTimeoutException: connect timed out at java.base/java.net.PlainSocketImpl.waitForConnect(Native Method) at java.base/java.net.PlainSocketImpl.socketConnect(PlainSocketImpl.java:107) at java.base/java.net.AbstractPlainSocketImpl.doConnect(AbstractPlainSocketImpl.java:399) at java.base/java.net.AbstractPlainSocketImpl.connectToAddress(AbstractPlainSocketImpl.java:242) at java.base/java.net.AbstractPlainSocketImpl.connect(AbstractPlainSocketImpl.java:224) at java.base/java.net.SocksSocketImpl.connect(SocksSocketImpl.java:392) at java.base/java.net.Socket.connect(Socket.java:608) at org.h2.util.NetUtils.createSocket(NetUtils.java:103) at org.h2.util.NetUtils.createSocket(NetUtils.java:83) at org.h2.engine.SessionRemote.initTransfer(SessionRemote.java:115) at org.h2.engine.SessionRemote.connectServer(SessionRemote.java:431) ... 34 more Process finished with exit code 1 =============================== ===========현재소스입니다=============== package hellojpa;import javax.persistence.EntityManager;import javax.persistence.EntityManagerFactory;import javax.persistence.EntityTransaction;import javax.persistence.Persistence;import java.util.List;public class JpaMain { public static void main(String[] args) { EntityManagerFactory emf = Persistence.createEntityManagerFactory("hello"); EntityManager em = emf.createEntityManager(); EntityTransaction tx = em.getTransaction(); tx.begin(); try { //비영속 Member member = new Member(); member.setName("HelloJpa"); member.setId(101L); //영속 em.persist하면 db에 바로 날아가는 것이 아니라 영속성 컨텍스트안에 영속성으로 된다 //현재 1차 캐쉬에 저장되어있다 System.out.println("=========BEFORE ======"); em.persist(member); System.out.println("========AFTER========"); //영속성 컨택스트는 한 트랙젝션 단위로 이루어지기에 순간의 찰나에 따라서 변화한다 Member findMember = em.find(Member.class, 101L); tx.commit(); }catch (Exception e) { tx.rollback(); }finally { em.close(); } emf.close(); }} ============================ ===========메이븐 파일입니다============= <?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>jpa-basic</groupId> <artifactId>ex1-hello-jpa</artifactId> <version>1.0.0</version> <build> <plugins> <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>11</source> <target>11</target> </configuration> </plugin> </plugins> </build> <dependencies> <dependency> <groupId>javax.xml.bind</groupId> <artifactId>jaxb-api</artifactId> <version>2.3.0</version> </dependency> <!-- JPA 하이버네이트 --> <dependency> <groupId>org.hibernate</groupId> <artifactId>hibernate-entitymanager</artifactId> <version>5.3.10.Final</version> </dependency> <!-- H2 데이터베이스 --> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> <version>1.4.199</version> </dependency> </dependencies> <properties> <maven.compiler.source>11</maven.compiler.source> <maven.compiler.target>11</maven.compiler.target> </properties></project> 현재 connect 에러라고 발생하는데 왜 이런지 모르겠습니다. 소스는 동일 한 것같습니다.
-
미해결Vue.js 중급 강좌 - 웹앱 제작으로 배워보는 Vue.js, ES6, Vuex
권한 요청합니다
인프런 아이디 : rladlsvy2448@naver.com 인프런 이메일 : rladlsvy2448@naver.com 깃헙 아이디 : rladlsvy2448@naver.com 깃헙 Username : kiminpyo
-
미해결비전공자를 위한 개발자 취업 올인원 가이드 [취업편]
프로젝트 목록 작성할 때 질문드립니다.
선생님! 얼마전 국비 학원 수료한 비전공자 입니다! 프로젝트 목록 작성할 때 학원에서 배웠던 MVC1모델로 만든 프로젝트도 추가해도 될지 고민 되어 질문 드립니다ㅜㅜ 파이널 프로젝트는 스프링부트를 사용하여 MVC2모델로 진행했는데, 세미프로젝트는 JSP 스트립틀릿 문법을 사용해서 만들었었습니다. 나중에 되어서야 이 코드는 요즘 쓰여지지 않는 코드라는 것을 알게되었습니다. 이런 코드로 만든 프로젝트라도 추가하는 것이 좋을까요??
-
미해결[개정판] 딥러닝 컴퓨터 비전 완벽 가이드
lambda의 역할
강의 영상 8분에서 apply(lambda x...) 가 나오는데 lambda는 그냥 기준일 뿐인가요? lambda의 역할이 궁금합니다.
-
미해결mongoDB 기초부터 실무까지(feat. Node.js)
결제관련 질문드립니다.
강의 잘듣고 있습니다.결제관련 질문 드립니다.무료로 사용을 하다가 일정사용량이 넘으면 사용을 못하게 되면서 유료로 전환하라고 메세지가 날라오는건가요그렇다면 사용량은 어느정도에서 유료로 전환하라고 하는가요답변 부탁 드릴께요
-
미해결React 기반 Gatsby로 기술 블로그 개발하기
안녕하세요 도커 상에서 기술블로그 작성을 도전하고 있는데 문제가 ㅠㅠ...
현재 1파트 개발 환경 구축을 거의 마무리 짓는 과정에 있었습니다. typescript 설치 및 다 마친 뒤 `yarn develop`으로 로컬 상에서 최종 점검을 하는데, 위와 같은 에러가 발생했습니다. 뭐가 문제인지는 몰라 확인차 path 인자를 사용하는 수정한 파일들을 확인하였는데, 오탈자나 문제는 없어 보였습니다. 그래서 조언을 듣고 싶어서 일단 이렇게 오류 상황을 찍어서 올려봅니다 ㅠㅠ.. 현재 개발 환경은 m1 mac OS 12 docker ubuntu:latest gatsby-cli 4.4.0 node 최신 버전 에서 진행중입니다.
-
미해결Python 부트캠프
얕은물_인쇄용p169중첩함수 질문
아래는 제가 작성한 코드이고 # 캣은 매달 월과 같은 요일에 적립금 이벤트를 진행하기로 했습니다. # 예를 들어, 2월 2일에는 적립금의 2배를, 3월 3일에는 적립금의 3배를 적립해줍니다. # 만약 손님이 2월 2일에 5000원의 생선을 구매하고, 3월 3일에 15000원을 구매했다면 각각 얼마의 적립금을 받을 수 있을까요? # 중첩 함수를 사용하여 풀어보세요! 구매금액_Feb = int(input('2월 2일에 얼마를 구매하셨나요?')) 구매금액_Mar = int(input('3월 3일에 얼마를 구매하셨나요?')) def 배수(n): def 적립(value): 적립_Feb = 구매금액_Feb * 0.1 * n 적립_Mar = 구매금액_Mar * 0.1 * n return 적립 Feb = 배수(2) Mar = 배수(3) print(Feb) print(f'2월 적립금 이벤트: {Feb} 노드가 적립되었습니다.') print(f'3월 적립금 이벤트: {Mar} 노드가 적립되었습니다.') 여기서부터 결과입니다 2월 2일에 얼마를 구매하셨나요?5000 3월 3일에 얼마를 구매하셨나요?15000 <function 배수.<locals>.적립 at 0x7f64fed7ec20> 2월 적립금 이벤트: {<function 배수.<locals>.적립 at 0x7f64fed7ec20>} 노드가 적립되었습니다. 3월 적립금 이벤트: {<function 배수.<locals>.적립 at 0x7f64fed7e0e0>} 노드가 적립되었습니다. 각 달 적립금이 왜 이렇게 뜨는 건가요? def 배수(n): def 적립(value): 적립_Feb = 구매금액_Feb * 0.1 * n 적립_Mar = 구매금액_Mar * 0.1 * n return 적립 여기서 뭔가 잘못된 거 같은데 뭐가 잘못된 건지 잘 모르겠어요
-
미해결따라하며 배우는 도커와 CI환경 [2023.11 업데이트]
https://www.travis-ci.com/
https://travis-ci.org/ 에서 https://www.travis-ci.com/ 로 변경 되었네요
-
해결됨[리뉴얼] Node.js 교과서 - 기본부터 프로젝트 실습까지
404 처리 미들웨어 next 질문
안녕하세요. 궁금한 게 하나 있습니다. 미들웨어에서 next를 해 주지 않으면 다음 라우터로 넘어가지 않는다고 알아들었는데, 강사님의 404 처리 미들웨어를 보면 next();를 하지 않으셨더라고요. 혹시 404 아래로 더 이상 실행될 라우터가 없기 때문에 생략하신 건가요?
-
미해결Slack 클론 코딩[실시간 채팅 with React]
에디터 질문입니다.
VSCODE, Sublime, Atom 등이 아닌 웹스톰을 사용하시는 듯 한데 특별히 웹스톰을 사용하면 좋거나꼭 웹스톰을 사용해야 할 필요가 있을까요?
-
미해결Klaytn 클레이튼 블록체인 어플리케이션 만들기 - 이론과 실습
유니티에서도 사용이 가능한가요?
유니티에서도 사용가능한 SDK가 있나요?
-
미해결리눅스 입문 - 개념으로 탄탄히!!
리디렉션
안녕하세요 리디렉션에 대한 테크닉은 이해가 잘 되긴 합니다만 혹시 어느 상황에서 리디렉션이 활용될까요? 올바르게 출력된 내용은 파일에 저장할 필요가 있다고 볼 수 있겠으나 에러메세지를 굳이 저장할 필요가 있는 상황이 있나요? 그리고 외부 서버를 사용하려면 기본적인 리눅스에 대한 이해가 있어야 하긴 하는데 입문강의로 해결이 안되는 것 같아서요 혹시 강사님 커리큘럼에서 도움될만한 과정이 있거나 또는 추천해주시는 방법이 있을까요? 교재추천이라던지... 감사합니다
-
미해결퍼블리셔 취업 진짜 실전 가이드(PDF)
기능정의서
안녕하세요, 강사님. 좋은 자료를 제공해 주셔서 감사합니다. 강의 소개 글 중, 학생 리뷰에 "기능정의서"가 눈에 띄어서 연락을 주셨다고 합니다. 라는 부분이 인상 깊어서 강의를 구매했는데요. PDF 내에는 관련 내용이 없어서 무척 아쉬웠습니다. 혹시 '기능정의서'에 대한 내용을 학습할 수 있는 다른 방법이 있을지, 아니면 해당 내용을 추가하실 의향은 없는지 조심스럽게 여쭤봅니다. 간단하게라도 관련 예제나 내용을 보면 포폴 작성에 도움이 되지 않을까 하여 글을 올리게 되었습니다. 날씨가 추운데 건강 유의하세요 :)