준호씨의 블로그

gradle wrapper를 만들어 두면 gradle을 따로 설치하지 않고도 gradle을 사용할 수 있게 해 줍니다. gradle을 사용하다 보면 종종 gradle wrapper 버전을 올려주어야 하는 경우가 생기는데요. 특히 java 버전이 점점 올라가면서 gradle이 동작하지 않게 되는 경우들이 종종 있어서 버전업이 필요한 시기가 오곤 합니다. IntelliJ 같은 툴에서도 구 gradle을 지원하지 않으면서 옛 프로젝트들이 잘 안 불러와지기도 하더군요. 다만 gradle을 버전업 하다 보면 구 build.gradle에서 실행이 안 되는 명령어들이 생겨서 같이 수정해 주어야 되기도 하지만요. 아무튼 이번 글에서는 gradle wrapper를 버전업 하는 방법에 대해 알아보겠습니다. 간단합니다. $..
문자 리스트 join ["1", "2", "3"] 리스트를 "1,2,3"으로 바꾸려면 String에 있는 join메서드를 사용하면 됩니다. List list = Arrays.asList("1", "2", "3"); final String join = String.join(",", list); System.out.println(join); // "1,2,3" 숫자 리스트 join 숫자 리스트를 join 하려면 우선 문자열 리스트로 바꾼 다음 join 하면 됩니다. java8 이전 버전에서는 for loop로 하나씩 바꿔서 새 list에 넣어 주고 join 하면 됩니다. List strList = new ArrayList(); for (Integer integer : intList) { strList.add..

요즘 스프링으로 프로젝트를 하면서 이런저런 지식들을 습득하고 있습니다. 예전에 스프링으로 프로젝트하시던 분들이 swagger를 이용해서 API문서를 만들던 것을 보고 swagger라는 것에 대해 듣게 되었었는데요. 다만 개념을 제대로 이해하고 있지 못했었습니다. springfox-swagger라고 적힌 걸 보고 그냥 같은 녀석이라고 생각을 했었는데요. 알고 보니 springfox-swagger와 swagger랑은 다른 녀석이었습니다. 물론 관련은 있지만요. Swagger Swagger는 2011년에 처음 릴리즈 되었습니다. Swagger는 RESTful 웹 서비스를 만들 때 API의 문서를 자동으로 만들어 주고, API를 직접 테스트해 볼 수 있는 웹 UI툴을 제공해줍니다. https://swagger...
최소 요구사항 변경 Gradle 6.3 이상 사용합니다. 5.6.x도 지원하고 있지만 deprecated 상태로 지원합니다. - 점점 구 버전의 gradle이 버려지고 있네요. IntelliJ도 언젠가 부터 구 버전 gradle이 제대로 동작 안하고 있어서 오래된 프로젝트 플러오기가 힘들어 지고 있는데요. 정기적으로 gradle버전 관리는 해 주는게 좋겠습니다. Jetty 9.4.22+ Validation Starter가 web starters에서 제외됨 spring-boot-starter-validation을 직접 추가 해 주면 됩니다. # maven org.springframework.boot spring-boot-starter-validation # gradle dependencies { ... i..

환경: 맥북프로, CAM LINK, OBS, USB Type C 허브 메인 컴에서 닌텐도 스위치 영상을 캠 링크 통해서 받아서 OBS에서 녹화 or 스트리밍을 하려고 하면 화면이 자꾸 깨지더군요. 화면이 다 안 나오고 초록색으로 나오기도 합니다. Settings에서 해상도를 1920x1080 (Full HD)로 세팅한 상태였는데요. 화질이 높아서? 화질이 높아서 문제가 되나 싶어서 화질을 1280x720으로 낮춰보았습니다. 그런데 1280x720으로 바꿔도 마찬가지였습니다. USB 허브 성능 문제? USB 허브 성능이 떨어져서 그런 게 아닐까 싶어서 썬더볼트 3 지원 허브를 알아보니... 비싸더군요. 구매 링크: https://coupa.ng/bECHAG (이 링크 통해 구입하시면 저에게 이익이 생깁니다..

소니 MDR-10R 헤드폰 이어패드 셀프수리 지난글: https://junho85.pe.kr/1250 Sony MDR-10R 이어패드 터져서 알리에서 주문 예전에 중고로 사서 아직 쓰고 있는 Sony MDR-10R 헤드폰이다. 오른쪽에 지지대 부러진건 테이프로 땜질해서 어떻게 버티고 � junho85.pe.kr 대략 1년 전에 오른쪽 이어 패드가 터져서 교체를 했었는데요. 이번엔 왼쪽 이어 패드가 터졌습니다. Sony MDR-10R 이어패드 터져서 알리에서 주문2 예전에 소니 헤드폰 이어 패드가 터져서 알리에서 주문을 했던 적이 있습니다. Sony MDR-10R 이어패드 터져서 알리에서 주문 예전에 중고로 사서 아직 쓰고 있는 Sony MDR-10R 헤드폰이다. 오른쪽에 지� ..
새로운 프로젝트를 하면서 기존에 프로젝트 환경 세팅해둔 프로젝트를 이어받았는데요. API 서버 프로젝트이고 Spring Boot WebFlux로 되어 있었습니다. 프로젝트를 이어받으면서 WebFlux 쓰지 말고 MVC로 다시 만드는 게 좋겠다는 의견을 들었는데요. 디버깅도 어렵고 익숙한 방식도 아니고 더욱이 비동기 구현해서 퍼포먼스를 끌어올려야 될 이유도 없다는 이유들이었습니다. 맞는 말들이었긴 하지만 그래도 괜히 WebFlux로 한번 계속 진행해 보고 싶더군요. 그래서 한 동안 WebFlux 공부를 하면서 진행해 보았습니다. MVC와 WebFlux MVC와 WebFlux를 간단한 Controller코드로 구현해 보았습니다. // MVC @GetMapping("/members") public Member..

일일일 블로그 포스팅도 벌써 88일 차가 되었습니다. 100일이 얼마 남지 않았네요. 오랜만에 또 중간점검을 해 봅니다. 방문객 추이 최근 일간 방문객이 슬금슬금 떨어지는 추세였는데 지난 15일에는 웬일로 2,000명을 넘었네요. 요즘 시간이 지날수록 방문수가 1800, 1700, 1600 정도로 줄어들고 있었는데요. 다시 상승할 수 있지 않을까 기대해 봅니다. 인증 100% 실패 일일일 블로그 인증률 100%를 찍고 싶었지만 아쉽게도 76일 77일은 실패하였습니다. 학교폭력 관련 문제로 스트레스가 극에 달했던 시기였는데요. 당장 문제 해결이 어렵다고 판단하여 부모님의 도움을 받으러 지방으로 내려가다 보니 포스팅을 할 시간이 안나더군요. 미리 세이브 원고라도 써 뒀으면 좋았으련만 하루하루가 너무 힘든 시..

최근 부서를 옮기고 나서 새로운 프로젝트를 하게 되었는데요. 스프링 프레임워크를 기반으로 개발을 하고 있습니다. 기존에도 스프링 프레임워크를 사용해서 프로젝트를 몇 번 했었기에 그냥 하면 되지 않을까 했는데 그렇지만은 않았습니다. 예전에 썼던 spring 버전들을 보면 h프로젝트: 이미 구현된 프로젝트였고 저는 2012년부터 수정을 했습니다. Spring Framework 버전은 놀랍게도 1.2.8. xml로 스프링 빈 설정을 합니다. 추후 4 버전대로 올리긴 했지만 RestTemplate 같은 기능들을 쓰기 위함이었지 xml도 그대로 쓰고 스타일이 바뀌지는 않았습니다. SMTP 서버였고 MVC나 REST API랑은 관련이 없었습니다. e프로젝트: 2014년에 했던 프로젝트입니다. Spring Frame..

이전 편 아파요 3편 - 냉방병이 아니고 장염? 아파요 2편 - 냉방병? 일요일에 코로나 검사 받기는 어려웠다. 냉방병에 걸린거 같습니다. 어느덧 실내온도가 30도가 되었습니다. 어느덧 여름이 왔네요. 개인적으로는 30도 면 적당한 온도 같긴 � junho85.pe.kr 아직 체온이 37.0~37.2 정도인 것으로 보아 완전히 회복된 거 같지는 않지만 일상생활에 무리는 없을 정도라 거의 다 나은 거 같습니다. 현재로서는 노로바이러스로 인한 장염이었고 대략 4일 정도가 지나면서 거의 다 나은 게 아닐까 싶습니다. 노로바이러스 진단키트 관련 기사들이 보이던데 어떻게 되었나 모르겠네요. 이런 기술이 대중적이고 저렴해진다면 정확한 진단을 내리기도 쉬워지지 않을까 생각이 듭니다. 아무튼 이번 글로 투병일지를 정리..