반응형 OpenSource/Spring Boot45 @Scheduled @Scheduled 어노테이션은? 말그대로 스케쥴링 즉, 주기적인 작업이 있을 때 사용한다. 마치 리눅스의 crontab과 같다. 사용법 우선 사용하려고 하면 @EnableScheduling 선언이 필요하다. 그리고 수행할 메소드위에 선언하여 사용하면 된다. @Scheduled(initialDelayString = "6000", fixedDelayString = "6000") protected void scheduledReloadAllGraphs() { log.debug("reloadAllGraph"); reloadAllGraphsMono().subscribe(); } 속성 cron : cron 표현식을 지원한다. ex) @Scheduled(cron="* * * * * *") 초/분/시/일/달/주 201.. 2022. 7. 19. springboot error - Could not write JSON: Can not start an array, expecting field name (context: Object) 에러 발생 .HttpMessageNotWritableException: Could not write JSON: Can not start an array, expecting field name (context: Object); nested exception is com.fasterxml.jackson.databind.JsonMappingException: Can not start an array, expecting field name (context: Object) (through reference chain: org.springframework.hateoas.EntityModel["content"])] 위의 에러는 테스트 코드를 돌리는데 발생. @Test @DisplayName("입력 값이 잘못된 경우에.. 2022. 3. 25. Spring Rest Docs 사용하기 api 개발 시에 문서화를 해서 이해관계자에게 전달을 하거나 개발자들간에 공유를 하거나 한다. 이런 문서는 wiki 나 다른 기업에서는 doc이라던지 심지어 한글이라던지 문서를 만들어서 공유한다. 문서화는 개발자한테 정말 곤욕이였다. 개발하기도 바쁜데 문서까지 신경써야 하니 말이다. 혹은 개발은 해놓고 문서와의 동기화가 매번 늦거나 까먹거나 하는 경우가 빈번하게 일어난다. 그래서 문서화를 좀 더 쉽게 하기 위해 아주 오래전엔 javaDocs라고 메소드 위에다가 설명 넣고 만들어줬던 기억이 어렴풋이 난다. 내가 본 근래에는 swagger를 많이 사용하는것 같다. 그런데 이번에 새롭게 알게된 RestDocs라는것을 소개해보려고 한다. https://techblog.woowahan.com/2597/ 위에서 보.. 2022. 3. 22. HATEOAS(Hypermedia as the engine of application state) HATEOAS(Hypermedia as the engine of application state) You will build a hypermedia-driven REST service with Spring HATEOAS: a library of APIs that you can use to create links that point to Spring MVC controllers, build up resource representations, and control how they are rendered into supported hypermedia formats (such as HAL). HAL이 좀 더 궁금하다면? 클릭 더보기 Hypertext Application Language HAL is a simp.. 2022. 3. 15. springbootStudy06- lombok 을 사용해보자! 이 강좌는 매주 화요일 사외 스터디를 통해 작성! 스프링 부트와 AWS로 혼자 구현하는 웹서비스 책을 선정!(이동욱 저) 내가 생각하는 커리큘럼이랑 같아서 선정! 지난 스터디 2021.10.13 - [OpenSource/Spring Boot] - springbootStudy01 - Jetbrains toolbox 설치 2021.10.14 - [OpenSource/Spring Boot] - springbootStudy02 - 그래들 기반 springboot project만들기! build.gradle 이해하기 2021.10.19 - [OpenSource/Spring Boot] - springbootStudy03-인텔리J(IntelliJ)에서 깃헙(github)연동 해보기 2021.10.26 - [OpenS.. 2021. 11. 9. springbootStudy05- test code를 작성해보자 이 강좌는 매주 화요일 사외 스터디를 통해 작성! 스프링 부트와 AWS로 혼자 구현하는 웹서비스 책을 선정!(이동욱 저) 내가 생각하는 커리큘럼이랑 같아서 선정! 지난 스터디 2021.10.13 - [OpenSource/Spring Boot] - springbootStudy01 - Jetbrains toolbox 설치 2021.10.14 - [OpenSource/Spring Boot] - springbootStudy02 - 그래들 기반 springboot project만들기! build.gradle 이해하기 2021.10.19 - [OpenSource/Spring Boot] - springbootStudy03-인텔리J(IntelliJ)에서 깃헙(github)연동 해보기 2021.10.26 - [OpenS.. 2021. 10. 27. springbootStudy04 - .gitignore 파일을 만들어보자 이 강좌는 매주 화요일 사외 스터디를 통해 작성! 스프링 부트와 AWS로 혼자 구현하는 웹서비스 책을 선정!(이동욱 저) 내가 생각하는 커리큘럼이랑 같아서 선정! 지난 스터디 2021.10.13 - [OpenSource/Spring Boot] - springbootStudy01 - Jetbrains toolbox 설치 2021.10.14 - [OpenSource/Spring Boot] - springbootStudy02 - 그래들 기반 springboot project만들기! build.gradle 이해하기 2021.10.19 - [OpenSource/Spring Boot] - springbootStudy03-인텔리J(IntelliJ)에서 깃헙(github)연동 해보기 .gitignore파일이란? 요녀석.. 2021. 10. 26. springbootStudy03-인텔리J(IntelliJ)에서 깃헙(github)연동 해보기 이 강좌는 매주 화요일 사외 스터디를 통해 작성! 스프링 부트와 AWS로 혼자 구현하는 웹서비스 책을 선정!(이동욱 저) 내가 생각하는 커리큘럼이랑 같아서 선정! 지난 스터디 2021.10.13 - [OpenSource/Spring Boot] - springbootStudy01 - Jetbrains toolbox 설치 2021.10.14 - [OpenSource/Spring Boot] - springbootStudy02 - 그래들 기반 springboot project만들기! build.gradle 이해하기 오늘은! 컨트롤 + 쉬프트+ A 를 눌러서 아래의 Share Project on GihHub를 찾아보자! 혹, No manual entry for share\;type\=a 를 간혹 볼수 있는데 그럴.. 2021. 10. 19. springbootStudy02 - 그래들 기반 springboot project만들기! build.gradle 이해하기 이 강좌는 매주 화요일 사외 스터디를 통해 작성! 스프링 부트와 AWS로 혼자 구현하는 웹서비스 책을 선정!(이동욱 저) 내가 생각하는 커리큘럼이랑 같아서 선정! 2021.10.13 - [OpenSource/Spring Boot] - springbootStudy01 - Jetbrains toolbox 설치 project 생성! 프로젝트는 spring 기본 셋팅을 지원해주는것을 사용하지 않고 쌩짜로 만들어봅니다. 왜냐면 build.gradle를 이해하기 위함이져! 기본 디폴트로 아래와 같이 build.gradle이 셋팅이 됩니다. plugins { id 'java' } group 'kr.pe.acet' version '1.0-SNAPSHOT' repositories { mavenCentral() } dep.. 2021. 10. 14. springbootStudy01 - Jetbrains toolbox 설치 이 강좌는 매주 화요일 사외 스터디를 통해 작성! 스프링 부트와 AWS로 혼자 구현하는 웹서비스 책을 선정!(이동욱 저) 내가 생각하는 커리큘럼이랑 같아서 선정! https://www.jetbrains.com/ko-kr/lp/toolbox/ JetBrains Toolbox A suite of tools for development professionals who use various languages and technologies. www.jetbrains.com 위의 링크를 통해 다운로드 후 셋업! 사용방법은! ㅋㅋ 즐겁게 코딩 ㅋㅋㅋ 저는 아래와 같이 3개가 다운로드 되어있네요. 업데이트를 쉽게 할수 있을것 같네요 그리고 vm옵션 등의 설정을 조절할수 있습니다. IntelliJ에서 설정으로 들어가신 .. 2021. 10. 13. springboot에서 main args를 사용하려면? 내가 하고 싶은 것은 아래와같이 argument에 날짜를 넣고 그것을 메인쪽에 있는 String[] args에서 받아서 처리하는 것이다. 디버깅을 해보면 args에 위에서 설정했던 값이 들어오는것 처럼 보인다. 그러나 현실은 에러!! 아래에 보면 public void run()쪽에서 예외가 나버린다. java.lang.reflect.InvocationTargetException 콘솔창에 찍힌 오류 내용 Exception in thread "restartedMain" java.lang.reflect.InvocationTargetException at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodA.. 2021. 7. 2. SpringBoot 구조 - Monolith / Micro k8s 도입 전 클라우드 네이티브 개발에 대해서 알게 되었다. cloud native development? 왜 클라우드 네이티브 개발인가? 클라우드의 이점을 완전하게 활용하려면 애플리케이션에 대한 새로운 접근 방식이 필요하며, 컨테이너를 사용한 패키징, 현대화된 아키텍처 수용, 애자일 기술 활용이 이에 해당 합니다. 클라우드 네이티브 방식은 개발 가속화, 제공 가속화, 변화하는 요구에 대한 적응을 가속화할 수 있는 최적의 방법입니다. 클라우드 네이티브 개발은 바로 DevOps입니다. 이는 컨테이너, 마이크로서비스, 그리고 하이브리드 클라우드입니다. 애플리케이션 서비스를 더욱 신속하게 구축하기 위해 중요한 사항을 수용하도록 관점을 바꾸는 것이 매우 중요합니다. 우선적으로 마이크로서비스에 대해서 알아보도록.. 2021. 1. 4. org.apache.catalina.LifecycleException: Failed to start component JDK8을 사용 중이였는데 오류가 나서 톰캣 7에서 8로 변경 해주니 잘되었다. servlet-api.jar 버전 문제인것 같다.(참고 : https://okky.kr/article/266796) jar를 교체하지 않고 7에서 그냥 8로 톰캣을 교체했다. ㅋㅋ 끝~ 2019. 5. 10. ace-t의 Spring Boot 따라잡기(기본 - freeMarker 연동) 오랜만에 강좌를 쓰네요^0^ 오늘은 freeMarker라는 템플릿을 이용하여 view를 만들어보겠습니다. ㅎㅎ왜 freemarker냐?! 라고 하시면..회사에서 현재 사용하고 있어서라고..후훗 우선 지난번의 강좌를 통해 새롭게 검토하는 겸 따라서 해보겠습니다. 2016/03/22 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(셋팅편)2016/03/22 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(기본 - 헬로우월드찍어보기!)2016/03/23 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(기본 - SourceTree에 연결 및 Repository에 올리기)20.. 2016. 8. 28. spring boot 환경 나누기(profiles) TEST Code @RunWith(SpringJUnit4ClassRunner.class)@SpringApplicationConfiguration(classes = LineupFantaApplication.class) public class ServerHolderTest { public static final Logger logger = LoggerFactory.getLogger(ServerHolderTest.class); @Autowired ServerHolder serverHolder; // @Before // public void setUp(){} @Test public void testServerProfiles() throws Exception { Map servers = serverHolder.g.. 2016. 7. 18. uses unchecked or unsafe operations. uses unchecked or unsafe operations. 와 같은 워닝이 뜨면 확인해보아야할 것이있다. 아래와 같이 ArrayList 를 하나 선언했다. ArrayList keyArr = new ArrayList(); 위처럼 선언을 하면 uses unchecked or unsafe operations. 라고 warning이 뜬다. ArrayList keyArr = new ArrayList(); 이렇게 해야 경고는 뜨지 않는다. 관련해서 이펙티브 자바책을 한번 보면 좋을것 같다. - 끝 - 2016. 4. 1. ace-t의 Spring Boot 따라잡기(기본 - 예외처리) 예외처리!예외가 발생하면 그냥 찍기만 하는가?!!! 그것이 예외처리를 한것인가? 예외의 종류는 런타임, 체크드 2가지가 있다카던데.. 어떻게 해야 예외처리 잘했다고 소문이 날것인가?? 우리는 런타임예외가 발생하면 그녀석을 잡아다가! 조치를 취할 것 입니다.1) CommonLineupException.java,CommonLineupResponse.java, ExceptionAdvice.java를 만들어 줍니다. 내용은?CommonLineupException에서는 extends RuntimeException를 상속.생성자를 통해 메시지를 부모생성자에 전달. public CommonLineupException(String message){ super(message); } sourcepublic class Co.. 2016. 3. 24. ace-t의 Spring Boot 따라잡기(기본 - logging) 참고 : https://docs.spring.io/spring-boot/docs/current/reference/html/howto-logging.htmlSpring Boot의 로깅은 의무적인게 아니라서 commons-logging이 제외 되어있어서 Logback같은 녀석이 필요하면 spring-boot-starter-logging에 의존되어진 common-logging을 사용. (단, web을 사용한다면 spring-boot-starter-web에 포함되어있다고 한다. 굿!)즉, build.gradle의 compile("org.springframework.boot:spring-boot-starter-web")이 있으면 OK! logging의 레벨은 application.properties에서 조정할 수.. 2016. 3. 24. ace-t의 Spring Boot 따라잡기(기본 - CouchBase 연동하기) 2016/03/23 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(기본 - 외부톰캣 연동하기!) Rest api + CouchBase 연동CouchBase 셋팅은 따로 다루지 않겠습니다.이미 셋팅이 되어있다는 전제하에 진행합니다. 1) build.gradle의 dependency 추가 compile('org.springframework.data:spring-data-couchbase:2.0.0.RELEASE') 를 추가. 2) Controller 작성Controller 작성 후 Service를 호출하는 방식이 보통 MVC 패턴이며, Repository라는 interface를 implements하여 Service에서 구현해 나가는 구조 입니다. 또한 couc.. 2016. 3. 24. ace-t의 Spring Boot 따라잡기(기본 - 외부톰캣 연동하기!) 2016/03/23 - [OpenSource/Spring Boot] - ace-t의 Spring Boot 따라잡기(기본 - SourceTree에 연결 및 Repository에 올리기) 외부 톰캣을 사용하고자 한다면!! jar -> war로 변경을 해주면 됩니다. 방법은? 1) build.gradle에서 주황색 부분을 변경 jar->warapply plugin: 'war' war {baseName = 'lineup-fanta'version = '0.0.1-SNAPSHOT' } 2) main 소스에 추가 작업 extends SpringBootServletInitializeradd overriding source@Overrideprotected SpringApplicationBuilder configure(S.. 2016. 3. 23. ace-t의 Spring Boot 따라잡기(기본 - SourceTree에 연결 및 Repository에 올리기) 1. 로컬에 있는 소스를 소스트리에 연동 시킵니다. 2. 아래와 같이 gitignore.io에 접속하여 커밋하면 안되거나 불필요한 액션을 줄이기 위해 ignore할 파일들에 대해서 Generate 해줍니다. https://www.gitignore.io/ /.git/info의 exclude에 위에서 생성되어진 내용을 붙여넣기를 해준다.붙여넣을 내용. # Created by https://www.gitignore.io/api/gradle,intellij ### Gradle ### .gradle build/ # Ignore Gradle GUI config gradle-app.setting # Avoid ignoring Gradle wrapper jar file (.jar files are usually ign.. 2016. 3. 23. 이전 1 2 3 다음 반응형