intellij could not autowire. no beans of 라고 하면서 common, core 모듈에 정의된 Repository를 찾지 못함. 아래와 같이 ComponentScan으로 패키지를 잡아주니 보기 싫은 빨간 줄이 사라짐. @ComponentScan(basePackages = {"myproject"}) 참고 https://stackoverflow.com/questions/26889970/intellij-incorrectly-saying-no-beans-of-type-found-for-autowired-repository
Spring REST Docs를 이용하면 테스트 후에 작성된 snippet을 이용해서 문서를 만들기 때문에 정확하다. curl이나 http 등의 샘플도 자동으로 생성해준다. Spring 공식 문서들은 이미 Spring REST Docs로 작성되어있다. https://docs.spring.io/spring-restdocs/docs/current/reference/html5/ Spring REST Docs Document RESTful services by combining hand-written documentation with auto-generated snippets produced with Spring MVC Test, WebTestClient, or REST Assured. docs.spring...
소프트웨어에 의미있는 버전을 붙이는 것은 중요하다. 우리가 많이 사용하는 것은 그라바타(Gravatars)의 창시자이자 깃헙(GitHub)의 공동창업자인 톰 프레스턴-베르너(Tom Preston-Werner)가 작성한 semantic version이라는 것을 사용했다. 버전을 주.부.수 숫자로 하고: 기존 버전과 호환되지 않게 API가 바뀌면 “주(主) 버전”을 올리고, 기존 버전과 호환되면서 새로운 기능을 추가할 때는 “부(部) 버전”을 올리고, 기존 버전과 호환되면서 버그를 수정한 것이라면 “수(修) 버전”을 올린다. semantic version 외에 calendar version이라는 것도 있다. Spring Version은 영어가 모국어가 아닌 사람들이 A,B,C....Z 등 알파벳을 정렬하고 ..
Spring Cloud Stream은 메시지 기반 마이크로서비스를 쉽게 개발하기 위한 여러 추상화 방식을 제공한다. Spring Cloud Stream은 rabbitmq, kafka 같은 미들웨어에 종속되지 않고 중립적으로 구성됩니다. rabbitmq나 kafka에 특화된 기능들은 각 미들웨어에 맞는 binder 구현에서 처리를 합니다. Destination Binders : 외부 메시징 시스템과의 통합을 제공하는 구성 요소 Bindings : 외부 메시징 시스템과 애플리케이션 제공 메시지의 메시지 생성자(Producers) 및 소비자(Consumers) 간의 Bridge Binder의 역할은 메시징 시스템과의 연결, 위임 및 생산자와 소비자 간의 메시지 라우팅, 데이터 유형 변환, 사용자 코드 호출 등..
axios를 통해서 response.headers를 읽던 중 content-disposition을 읽을 수 없을 때 const fileName = response.headers['content-disposition'].split("filename=")[1]; CORS인 경우 서버 단에서 아래와 같이 content-disposition을 노출시켜줘야함. response.setHeader(HttpHeaders.ACCESS_CONTROL_EXPOSE_HEADERS, HttpHeaders.CONTENT_DISPOSITION); 참고 https://stackoverflow.com/questions/37897523/axios-get-access-to-response-header-fields Axios get acc..
jaxb parsing 중에 namespace 등의 문제로 pasring unmarshal이 안되는 문제가 발생함. feign decoder 설정 중 아래와 같이 withNamespaceAware를 false로 설정함. return new JAXBDecoder.Builder() .withJAXBContextFactory(jaxbFactory) .withNamespaceAware(false) // true by default .build(); 참고 https://github.com/OpenFeign/feign/pull/471/files/1c5f00121338e657d0013bfe5164b95dcb0dfb99 Add Builder class to JAXBDecoder for disabling namespac..
com.sun.xml.bind.v2.ContextFactory class not found xml bind-api, jaxb-api 등 버전이 맞지 않아서 발생함. implementation 'jakarta.xml.bind:jakarta.xml.bind-api:4.0.0' implementation 'com.sun.xml.bind:jaxb-core:4.0.0' implementation 'com.sun.xml.bind:jaxb-impl:4.0.0'
아래와 같이 Stream을 재사용하는 경우에 발생함. @Test void test() { IntStream intStream = IntStream.rangeClosed(1, 100); intStream.forEach(System.out::println); intStream.forEach(System.out::println); } A Stream should be operated on (invoking an intermediate or terminal stream operation) only once. A Stream implementation may throw IllegalStateException if it detects that the Stream is being reused. 재사용이 필요한 곳에서..
아래와 같은 오류가 나면서 라이브러리 로딩을 못하는 오류가 발생한다. unresolved reference: runApplication unresolved reference: SpringBootApplication 아래와 같은 SNAPSHOT 버전을 사용했는데 릴리즈되면서 해당 SNAPSHOT은 사용할 수 없는지 SNAPSHOT을 제거하니까 해결됨. 2021.0.3-SNAPSHOT 함부로 최신 버전을 사용하면 안되겠다. 릴리즈되고 나서는 해당 버전을 사용해야함.
자바 11버전 이상 그리고 다운 받은 클라이언트에 아래 명령어 실행함. xattr -cr scouter.client.app scouter client for Mac needs Java11+ sdkman으로 자바 설치 시 아래와 같은 오류가 발생함. 자바 버전이 맞지 않아서 그런거 같은데 찾기가 힘듬 Info.plist, scounter.ini를 맞춰줘도 동일함. https://github.com/scouter-project/scouter/issues/764#issuecomment-791872644 Big Sur 11.0.1 클라이언트 실행 불가 · Issue #764 · scouter-project/scouter 동일한 환경에서 Big Sur 업데이트 이전에는 잘 사용하고 있었기에 문의드립니다. macO..
몇달 전에 개발 면접을 받던 후기를 남깁니다. https://zdnet.co.kr/view/?no=20220207085308 1차 면접 => 2차 면접 => 처우 협상 => 입사 이런식으로 진행이 되었던 것 같은데요 여긴 신기하게 2차 면접 전에 희망 처우 확인이 있습니다. 이력서는 보통 1차 면접관들이 보기 때문에 희망 처우를 보통 적지 말라고 적혀있는데 여긴 역시 좀 다르네요 제가 작년 기준 원천징수영수증을 캡쳐해서 그걸 기본으로 금액을 제시했더니 그 뒤로 연락이 없네요 ㅎㅎㅎ 머스트잇 피플팀에게 당부하고 싶네요 본인 한 사람의 행동이 회사 이미지에 영향을 줍니다. 적어도 뭔가 맞지 않는다 생각하면 그에 대한 회신은 꼭 해주세요 ^^ 덕분에 전 다른 곳에서 잘 일하고 있습니다~!! 오랜만에 신입 때 ..
pops 와 emit 이벤트 등을 통해서 자식 element 와 통신 https://kr.vuejs.org/v2/guide/components-props.html Props — Vue.js Vue.js - 프로그레시브 자바스크립트 프레임워크 kr.vuejs.org https://laracasts.com/discuss/channels/vue/how-to-push-a-component-onto-list-of-dynamic-components https://laracasts.com/discuss/channels/vue/how-to-push-a-component-onto-list-of-dynamic-components laracasts.com
프론트엔드 개발 관련 사이트 모음 아래 블로그는 최신 트렌드에 대해서 많은 기사들이 있습니다. 이곳의 기사만 읽어도 요즘 프론트엔드 트렌드에 대해서 익힐 수 있을 것 같네요 https://blog.bitsrc.io/ Bits and Pieces The blog for advanced web and frontend development articles, tutorials, and news. Love JavaScript? Follow to get the best stories. blog.bitsrc.io Front-End 로그 모니터링 https://logrocket.com/ Modern Frontend Monitoring and Product Analytics LogRocket helps you under..
오랜만에 다시 운영자용 사이트를 개발하게 됐습니다. 프론트엔드 개발자용 로드맵도 한번 다시 보세요 ^^ https://roadmap.sh/frontend Developer Roadmaps Community driven roadmaps, articles, guides, quizzes, tips and resources for developers to learn from, identify their career paths, know what they don't know, find out the knowledge gaps, learn and improve. roadmap.sh vue ui module 이 여러 종류가 있는데 저는 개인적으로 element-ui가 이쁘게 보이네요 2022년 6월 11일 현재 El..
아래와 같이 기업 정보를 담은 json 파일이 있습니다. JSON To Kotlin Class plugin을 쓰면 쉽게 DTO를 생성할 수 있습니다. { "response": { "body": { "items": { "item": [ { "basDt": "20220509", "crno": "1311110591014", "corpNm": "네이버제트 주식회사", "corpEnsnNm": "NAVER Z Corporation", "enpPbanCmpyNm": "네이버제트", "enpRprFnm": "김창욱, 김대욱", "corpRegMrktDcd": "E", "corpRegMrktDcdNm": "기타", "corpDcd": "", "corpDcdNm": "", "bzno": "6838801933", "enp..
IO가 오래걸리는 작업(db 또는 타 서비스 호출)에 CompletableFuture를 이용하면 쉽게 병렬 처리를 할 수 있습니다. 물론 db의 connection pool, 타 서비스 호출 시에 해당 서비스에서 감당할 수 있는 정도를 확인하고 상황에 맞게 동시 실행 Thread 개수를 지정합니다. List completableFutures = new ArrayList(); ExecutorService executorService = Executors.newFixedThreadPool(100); IntStream.rangeClosed(1, 100) .forEach(i -> { CompletableFuture completableFuture = CompletableFuture.supplyAsync(() -..
element-ui datepicker에서 오류가 발생한다. vue.esm.js?efeb:628 [Vue warn]: Avoid mutating a prop directly since the value will be overwritten whenever the parent component re-renders. Instead, use a data or computed property based on the prop's value. Prop being mutated: "placement" 아래 버전에 버그가 있어서 수정됐으나 아직 dev에 머지됨.....ㅠㅠ "element-ui": "^2.15.9" https://github.com/ElemeFE/element/issues/21905 [Bug Report..
mybatis 에 parameterType에 따라서 파라미터의 데이터 타입을 제대로 못 가져오는 경우가 발생했음. 아래와 같이 선언하면 map으로 넘긴 모든 파라미터의 데이터 타입을 String으로 인식함. boolean 값에 'false' 문자열을 넣으려고 하니 오류나고 100(int) 도 문자열로 받음. 일부는 또 정상적으로 인식함...ㅡㅡ;; parameterType="map" hashmap으로 변경했다. parameterType="hashmap" 정확한 원인은 Map을 DB 테이블의 json 타입 컬럼에 데이터로 넣기 위해서 typehandler를 만들었는데 글로벌 설정으로 적용되어 파라미터맵에도 영향을 받았습니다. 글로벌 설정 제거 후 개별 typehandler로 설정했습니다.