[개정판 2023-11-27] Spring Boot 3.x 를 이용한 RESTful Web Services 개발
messages.properties -> greeting.message=안녕하세요. 기본 프로퍼티스 파일 위와 같이 1개만 두고 실행하면 당연히 한글이 나옵니다. 이후 프랑스, 영어 추가해서 포스트맨에서 액셉트 설정하면 각각의 언어로 잘 나옵니다. 다만, 3개의 파일을 같이 두고 실행하면 기본 실행이 영어로 나옵니다. 이유를 모르겠습니다.
AppConfig가 DIP와 OCP를 해결하기 위하여 MemberServiceImpl 과 OrderServiceImpl에 'new MemoryMemberRepository' 를 주입하는 역할을 하잖아요? 근데 리팩토링 하기전에는 orderService() 와 memberService() 에서 'new MemoryMemberRepository' 를 각각 따로 생성하는걸 중복 이라고 보고 이를 해결하기 위해서 리팩토링하여 memberRpository() 를 만들어 한번만 생성하도록 하여 중복을 막으신거라고 이해해도 괜찮은가요??
강의 정말 잘 보고 있습니다 선생님 ! dy 2차원배열이 행 배열은 Array.from 으로 하시고 열은 Array.fill로 채운거같은데 아래두개가 똑같은거같은데 둘다 이렇게 fill 로 안하는 이유가 있나요?? 아무거나 써도 상관없는건가요?? let dy = Array . from ( Array ( n + 1 ) , () => Array ( n + 1 ) . fill ( 0 )) ; let dy1 = Array ( n + 1 ) . fill ( Array ( n + 1 ) . fill ( 0 )) ;
안녕하세요 선생님 실습 실행도중에 오류가 발생해서 원인과 해결방법을 알고자 질문올립니다. ----- java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132) at org.springframework.test.context.support.DefaultTestContext.getApplicationContext(DefaultTestContext.java:124) at org.springframework.test.context.web.ServletTestExecutionListener.setUpRequestContextIfNecessary(ServletTestExecutionListener.java:190) at org.springframework.test.context.web.ServletTestExecutionListener.prepareTestInstance(ServletTestExecutionListener.java:132) at org.springframework.test.context.TestContextManager.prepareTestInstance(TestContextManager.java:244) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.createTest(SpringJUnit4ClassRunner.java:227) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner$1.runReflectiveCall(SpringJUnit4ClassRunner.java:289) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.methodBlock(SpringJUnit4ClassRunner.java:291) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:246) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.runChild(SpringJUnit4ClassRunner.java:97) at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329) at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293) at org.springframework.test.context.junit4.statements.RunBeforeTestClassCallbacks.evaluate(RunBeforeTestClassCallbacks.java:61) at org.springframework.test.context.junit4.statements.RunAfterTestClassCallbacks.evaluate(RunAfterTestClassCallbacks.java:70) at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306) at org.junit.runners.ParentRunner.run(ParentRunner.java:413) at org.springframework.test.context.junit4.SpringJUnit4ClassRunner.run(SpringJUnit4ClassRunner.java:190) at org.junit.runner.JUnitCore.run(JUnitCore.java:137) at com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:69) at com.intellij.rt.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:33) at com.intellij.rt.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:221) at com.intellij.rt.junit.JUnitStarter.main(JUnitStarter.java:54) Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'entityManagerFactory' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/HibernateJpaConfiguration.class]: Invocation of init method failed; nested exception is org.hibernate.service.spi.ServiceException: Unable to create requested service [org.hibernate.engine.jdbc.env.spi.JdbcEnvironment] at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1786) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:602) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:524) at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:335) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:333) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:208) at org.springframework.context.support.AbstractApplicationContext.getBean(AbstractApplicationContext.java:1154) at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:908) at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:583) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:771) at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:763) at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:438) at org.springframework.boot.SpringApplication.run(SpringApplication.java:339) at org.springframework.boot.test.context.SpringBootContextLoader.loadContext(SpringBootContextLoader.java:123) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContextInternal(DefaultCacheAwareContextLoaderDelegate.java:99) at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:124) ... 25 more Caused by: 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:176) at org.hibernate.boot.model.process.spi.MetadataBuildingProcess.complete(MetadataBuildingProcess.java:127) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.metadata(EntityManagerFactoryBuilderImpl.java:1224) at org.hibernate.jpa.boot.internal.EntityManagerFactoryBuilderImpl.build(EntityManagerFactoryBuilderImpl.java:1255) at org.springframework.orm.jpa.vendor.SpringHibernateJpaPersistenceProvider.createContainerEntityManagerFactory(SpringHibernateJpaPersistenceProvider.java:58) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.createNativeEntityManagerFactory(LocalContainerEntityManagerFactoryBean.java:365) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.buildNativeEntityManagerFactory(AbstractEntityManagerFactoryBean.java:409) at org.springframework.orm.jpa.AbstractEntityManagerFactoryBean.afterPropertiesSet(AbstractEntityManagerFactoryBean.java:396) at org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean.afterPropertiesSet(LocalContainerEntityManagerFactoryBean.java:341) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1845) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1782) ... 41 more Caused by: org.hibernate.HibernateException: Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.determineDialect(DialectFactoryImpl.java:100) at org.hibernate.engine.jdbc.dialect.internal.DialectFactoryImpl.buildDialect(DialectFactoryImpl.java:54) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:137) at org.hibernate.engine.jdbc.env.internal.JdbcEnvironmentInitiator.initiateService(JdbcEnvironmentInitiator.java:35) at org.hibernate.boot.registry.internal.StandardServiceRegistryImpl.initiateService(StandardServiceRegistryImpl.java:101) at org.hibernate.service.internal.AbstractServiceRegistryImpl.createService(AbstractServiceRegistryImpl.java:263) ... 58 more --------------
안녕하세요 데이터 전처리할 때 문자열 컬럼에 대해서는 get_dummies를 적용해서 one-hot을 하면 NaN 값까지 처리되는 것 같은데, 그러면 fillna을 따로 안해도 되는 것인가요? 아니면 get_dummies 전에 fillna를 하는 것이 좋나요 (크게 상관은 없을 것 같은데)? 감사합니다
강의때 ES6 의 import _ from 'lodash'; 와 ES5 의 var path = require('path'); 가 같은 문법이라고 하셨는데, 그렇다면 webpack.config.js 파일에서 import path from 'path'; 라고 사용하지 않은 이유가 있는지 궁금해요~
어제 오전에 gist에 요청하였는데 인프런 아이디를 @yannishin 로 신청해서인지 아직 권한이 없어서 확인 바랍니다. 인프런 아이디 : yannishin 인프런 이메일 : yannishin@gmail.com 깃헙 아이디 : yannishin@gmail.com 깃헙 Username : yannishin
안녕하세요 질문이 있습니다. 주제와 다소 번외인 부분인데 Contents-type 이 궁금합니다. 증상 스프링 @RestController를 사용했을 경우 핸들러 리턴 타입을 HashMap으로도 하고 Vo(직접 만들 vo클래스) 로도 했습니다. 그러면 화면에 응답본문이 뿌려지는데 JSON 타입으로 뿌려지길래 확인해보니 응답 헤더에 Contents-type이 application-json으로 되어 있습니다. 여기서 질문이 있습니다. 응답 Contents-type : application-json 이건 @RestController 로 했을 경우 기본값으로 세팅이 되는지 아니면 어디 설정부분이 있는지 궁금합니다. 일단 @RestController를 파봤는데 안에 별 내용은 없더라구요 감사합니다.
ERROR in ./client.jsx Module build failed (from ./node_modules/babel-loader/lib/index.js): Error: Unknown option: .plugin. Check out https://babeljs.io/docs/en/babel-core/#options for more information about options. at throwUnknownError (C:\Users\LSH\Desktop\react\gugudan\node_modules\@babel\core\lib\config\validation\options.js:133:27) at C:\Users\LSH\Desktop\react\gugudan\node_modules\@babel\core\lib\config\validation\options.js:118:5 1) at validate (C:\Users\LSH\Desktop\react\gugudan\node_modules\@babel\core\lib\config\validation\options.js:85:10) 1) at loadPrivatePartialConfig (C:\Users\LSH\Desktop\react\gugudan\node_modules\@babel\core\lib\config\partial.js:78:50) ) at loadPrivatePartialConfig.next (<anonymous>) at C:\Users\LSH\Desktop\react\gugudan\node_modules\@babel\core\lib\config\partial.js:147:25 at Generator.next (<anonymous>) at step (C:\Users\LSH\Desktop\react\gugudan\node_modules\gensync\index.js:261:32) client.jsx가 문제인거같아 코드도 다시쳐보고 했는데도 안되네요 왜 저기서 에러가 뜰까요 ㅠㅠ
풀스택을 위한 도커와 최신 서버 기술(리눅스, nginx, AWS, HTTPS, 배포까지) [풀스택 Part3]
먼저 좋은 강의 만들어 주셔서 감사합니다. 덕분에 코딩이란 것에 조금씩 눈을 떠가고 있습니다. 앞으로도 좋은 강의 만들어 주시길 기대하고 있겠습니다. 본론을 말씀 드리자면 CORS 허용하는 문제에 대하여 조언을 얻고자 합니다. 강사님의 이번 강의를 바탕으로 docker-compose 를 이용하여 웹서버 및 플라스크 서버를 돌릴 수 있게 되었습니다. 다만 웹서버에서 플라스크 서버에 API 요청을 보냈을 때 CORS 이슈가 발생하더군요. 이전 CORS 강의에서 다뤄 주셨던 방법을 적용하여 보았지만 해결이 되지 않았습니다. 구글에서 검색한 방법도 잘 적용이 되지 않았습니다. 한동안 헤메다가 혼자서 해결하기 어려워 부득불 질문을 남기게 되었습니다. 강사님의 고견을 알려 주시면 큰 도움이 될 것 같습니다. 감사합니다.
19분40초 overflow: hidden; 을 적용 하였으나, 여전히 이미지가 맞춰지지 않습니다. ㅠㅠ 그래서 .content > img { position : absolute; width : 100% ; top : 50% ; left : 50% ; transform : translate (- 50% , - 50% ); } 을 적용 시켜서 이미지를 맞췄습니다. 하지만 다음 강의 모바일편에서 @media 를 적용시키니 이미지가 나오지가 않습니다.
안녕하세요 list관련 질문이 있습니다. 저는 아래 코드와 같이 작성해서 잘 작동하였습니다. 그런데 list.append를 사용하면 실행시간에서 많이 차이가 날지 궁금해서 글 남깁니다. import sys sys.stdin=open("in1.txt","rt") a = [list(map(int, input().split())) for _ in range(7)] def check(a): a[0], a[1] = a[1], a[0] if a[:2] == a[3:5]: return True else: return False cnt = 0 for i in range(7): for j in range(3): li = list() li2 = list() for k in range(j, j+5): li.append(a[i][k]) li2.append(a[k][i]) if(check(li)): cnt += 1 if(check(li2)): cnt += 1 print(cnt)
hadleSubmit ( e ) { e . preventDefault (); console . log ( tag , " handleSubmit " ); const { value } = this . inputElement ; this . emit ( " @submit " ,{ value }) } 이렇게 해당 컴포넌트에 emit에 @submit 인자를 넣어서 실행시킨 것 까지는 이해했는데요. // 어떻게 구독한거죠??? subscirbeViewEvents () { this . searchFormView . on ( ' @submit ' , event => this . search ( event . detail . value )) . on ( " @reset " , () => { this . reset ()}); } 어떻게 구독하고있는건지 모르겠습니다. @submit은 어디에 저장되어있던건가요?;; 여러가지 검색해보고 고민한 결과로는.. 1.handleSubmit 내부의 emit은 단지 이벤트 네임을 전달받아 커스텀이벤트를 만들고, 만드는 즉시 이벤트를 실행. 2. 컨트롤러에서 생성자가 subscirbeViewEvents 를 실행시키는데, 그 때에 이벤트리스너를 등록하는 개념이므로, 사실상 어떤 x라는 이벤트가 터지면 이렇게 해라. 라는 이벤트 등록을 위한 함수. 3.다시말해, 2번 시점에 이미 해당 이벤트는 등록되어있는것 4.handleSubmit내부에서 emit함수는 커스텀이벤트를 만들고 만든 즉시 실행했음 5.기존에 등록된 이벤트이므로 등록된 함수내용 실행. 이게 적절한 이해인지 궁금합니다. (사실 질문내용을 작성 하면서 대략적인 이해가 된거 같기도합니다;;;)
좋은 강의 감사드립니다. 실습 중 오류가 발생하여 질문드립니다. 티스토리 스킨 개발 파트에서 사이드바를 만든 후, 개발 서버를 실행 시키니 아래와 같은 오류가 발생하였습니다.. 사이드바 모양은 잘 나오고 있으나(글과 페이징 나오지 않음), GET 요청이 [ 로 가더라구요..? 강의를 따라 치다보니 오타가 난걸까요 ㅠㅠ 뭐가 어느 부분에서 요청을 보내는 건지 알 수가 없어서 질문 올립니다... 오류가 난 코드 부분은 이 부분입니다. <body id="[##_body_id_##]"> <aside id="aside" role="sidebar"> <div class="shadow"> <s_sidebar> <s_sidebar_element> <a id="user" href="[##_blog_link_##]"> <img src="[##_image_##]" /> </a> </s_sidebar_element> <s_sidebar> element [##_category_list_##] </s_sidebar> </s_sidebar> </div> </aside> </body> 감사합니다. p.s. 앗 그리고 stylus가 작동하지 않아 전부 css로 바꿔서 작성하였는데 이게 문제가 될까요?
안녕하세요. 영한님. size 함수의 결과값을 확인하고 싶어서 똑같이 입력했는데 for(Integer s : result) 부분에서 s = 0 이 출력되지 않습니다. 아래 코드에서 어느 부분이 잘못됐는지 알려주시면 감사하겠습니다. try { Member member1 = new Member() ; member1.setUsername( " 관리자 1" ) ; em.persist(member1) ; Member member2 = new Member() ; member2.setUsername( " 관리자 2" ) ; em.persist(member2) ; em.flush() ; em.clear() ; String query= "select size(t. members ) from Team t" ; List<Integer> result = em.createQuery(query , Integer. class ) .getResultList() ; for (Integer s : result){ System. out .println( "s = " + s) ; } ; tx.commit() ; }