본문 바로가기
반응형

OpenSource172

2. About Apache Fuseki Fuseki는 Apache Jena에서 개발한 RDF(Resource Description Framework) 데이터를 제공하기 위한 HTTP 기반의 SPARQL 1.1/1.0 Transaction Protocol Server 입니다. 즉, SPARQL SERVER 입니다. Fuseki는 2가지 형태가 있습니다. 첫째, a single system인 "webapp" 둘째, 대규모 배포를 위한 Docker기반 또는 embeded를 돌리기 위한 "main" Fuseki는 쿼리 및 업데이트를 위한 SPARQL 1.1 프로토콜과 SPARQL Graph Store 프로토콜을 제공 합니다. 또한 TDB와 긴밀하게 통합되어 transactional persistent storage layer이며 Jena text q.. 2024. 1. 18.
1. About Apache Jena 안녕하세요 오늘은 아파치 제나에 대해서 알아보겠습니다 ㅎㅎ A free and open source Java framework for building Semantic Web and Linked Data applications. 아파치 제나는 시멘틱웹과 링크드데이터 어플리케이션을 만들수 있는 자바프레임워크 오픈소스 입니다. 앞으로 학습이 되어야 이해가 될 용어들이 많이 보이는군요! RDF, SPARQL, TDB, Fuseki, OWL etc. 우선 아래의 아키텍처를 살펴보겠습니다. 우선 Fuseki라는것이 보이고 SPARQL API를 찌르는게 보이네요 그리고나서 Inference API, Store API parsers and writers 등등 느낌이 올랑말랑하네요 ㅎㅎ 아키텍처에 나온 전체적인 내용을 .. 2024. 1. 18.
springboot3.2 + jdk21 인텔리J에서 error : Cause: error: invalid source release:21 error : Cause: error: invalid source release:21 요 에러..저번에도 본거 같은 기억이..!! gradle 베이스라 빌드시켜보니 역시나 오류! 그래서 gradle쪽을 살펴보니..jdk 18로 설정되어있었다. 21로 변경해주니 잘된다!! :) 2023. 12. 12.
스텝6) 오픈api 신청 및 key 발급! 제주도 관련 open api가 있네요! http://www.jejuits.go.kr/open_api/open_apiView.do 그래서 사용하기 위해 신청접수를 했습니다. 신청 시에 법인만 신청하도록 되어있어서 난감했는데요.. 오픈 api이기에 그냥 개발중인 스크린샷을 넣고 신청했어요 ㅋㅋ 계속 연락이 없다가...드디어..오픈소스를 사용할 수 있는 키가 나왔습니다!! 감사합니다! 잘쓰겠습니다~~~~:) 개발은..살짝 딜레이~~ㅋㅋ.. 2023. 8. 31.
스텝5) vue.js 개념 정리 후 진행해보자~ 아직 머릿속에 vuejs의 개념이 잘 잡히지 않은것 같다. 그런 상태에서 nuxt3를 하자니 복잡하게만 느껴진다. 더욱이 naver map예제는 jquery를 사용하고 있다. 차라리 이게 더 친숙하군..ㅋㅋ 우선 여태 vuejs를 작성한 포스팅을 보자!! 문제를 파악해보고 조금 더 나아가보자구~:) 2018.09.10 - [Front/Vue.js] - Vue.js 맛보기 2019.05.31 - [Front/Vue.js] - [acet-#1] Vue.js 무작정 해보기(기본-Vue.js? 좋은거? 먹는거?) 2019.06.04 - [Front/Vue.js] - [acet-#2] Vue.js 무작정 해보기(용어 등 훝어보기!) 2019.06.12 - [Front/Vue.js] - const definitio.. 2023. 8. 17.
스텝4) naver map api 학습 참고 : https://navermaps.github.io/maps.js.ncp/docs/tutorial-Map.html 지도생성 및 기본동작 Map객체 : 특정 DOM요서에 지도를 표현! var map = new naver.maps.Map('map', { mapTypeId: naver.maps.MapTypeId.HYBRID }); 지도 초기화 지도를 초기화하려면 지도가 표현 될 DOM 요소 또는 DOM요소의 id를 명시해야 함. var map = new naver.maps.Map('map', { 지도 유형 설정 Map 객체는 지도유형을 저장하고 있음. - MapOptions를 이용하거나 setMapTypeId메서드를 이용 해야 함. 지도 유형은 참고 : https://navermaps.github.i.. 2023. 8. 10.
스텝3) naver map api 호출 해보기! 안녕하세요~오늘은 드디어 naver maps를 붙여보는 날:) 뭔가 이쁘게 해보려고 https://headlessui.com/react/tabs 를 하다가 https://nuxt.com/docs/examples/routing/pages 를 참고해서 만들어보려고 합니다. 그리고 navermap api는 튜토리얼이 엄청 잘되어있네요! 굿~ 하나씩 따라서 학습하면 만들수 있을것 같아요 ㅎㅎ https://navermaps.github.io/maps.js.ncp/docs/tutorial-MapTypes.html HelloWorld는 아래처럼 바로 나옵니다. 그리고 typescript사용에서는 npm에서 이미 제공을 해주네요 npm i -D @types/navermaps 지도생성 및 기본동작 등을 학습하면 아래.. 2023. 8. 2.
스텝2) setup web application for naver maps web application은 여러가지가 있는데 현재 셀에서 최근에 작업했던 nuxt3으로 진행하려고 합니다. 참고 : https://nuxt.com/docs/getting-started/installation 1) 설치 npx nuxi@latest init cd jejuMap npm install npm run dev result) InteliJ를 사용한다면 아래와 같이 run 스크립트로 실행하게끔 해놓는다. nuxt 파일 중에 nuxt.config.ts 라는게 있는데 이 파일은 스크립트 추가, 모듈 등록 또는 렌더링 모드 변경등에 사용 됩니다. import없이 globally하고 사용할 수 있다! runtimeConfig export default defineNuxtConfig({ runtimeCon.. 2023. 8. 1.
스텝1) 네이버 지도 api를 사용해보자:) 안녕하세요 무더운 여름이네요.. 주말에 지도 api가 궁금해서 사용해보려고 합니다. 여러 지도 api가 있지만 "너로 정했다! 네이버!" 출처 : https://navermaps.github.io/maps.js.ncp/docs/tutorial-1-Getting-Client-ID.html 우선은 클라이언트 아이디를 발급! 회원가입을 해줍니다. 결제 수단을 등록 후 콘솔로 이동 합니다. AI,NAVER API를 클릭 후 Application을 등록해 줍니다. 등록하기 전 Service를 선택! Maps을 사용해야하니 Web에 띄워주고 geo관련된 친구들 2개 선택해 줍니다. 그리고 Web서비스 url을 설정해줍니다. 일단은 로컬호스트에서 동작해야하니 http://localhost를 입력해줍니다. 등록 후에 .. 2023. 7. 31.
What is istio? Istio란? 플랫폼과 관계없는 오픈소스 서비스 매쉬로 마이크로서비스를 보호, 연결, 모니터링할 수 있습니다. Istio는 Kubernets, Nomad 및 Console에서 실행합니다. Service Mesh란? 간단히 말해 마이크로서비스의 네트워크 입니다. 예를 들어 서비스 A, 서비스 B간의 서로 통신하는 방법이자 각 서비스를 제어하는 지점 입니다. 또한 아래와 같이 각 서비스들이 직접 호출하는 것이 아닌 각 서비스마다 Proxy를 넣습니다.(Sidecar 구성 방식) 이렇게 하면 서비스로 들고나가는 트래픽을 네트워크 단에서 모두 통제가 가능하며, 트래픽에 대한 통제를 통해서 마이크로서비스의 여러가지 문제를 해결할 수 있습니다. ex) 써킷 브레이커(호출되는 서비스가 응답이 없을 경우 프록시단에서 .. 2022. 9. 1.
keycloak Springboot에 연동하기 2022.08.10 - [OpenSource/keycloak] - keycloak quick start keycloak quick start springsecurity진영에서 더이상 oauth2.0에 대한 지원을 중단하고 오픈소스를 통해 구현하라는 권고가 있었다. OKTA(유료)와 Keycloak(무료)중에 keycloak을 찍먹 해보려고 한다. https://www.keycloak.org/gettin.. acet.pe.kr springboot 연동은 gradle을 사용했다. build.gradle에 아래와 같이 디펜던시 설정을 넣어주면 된다. 주석 2개 되어있는 부분 참고! dependencies { implementation 'org.springframework.boot:spring-boot-star.. 2022. 8. 16.
keycloak quick start springsecurity진영에서 더이상 oauth2.0에 대한 지원을 중단하고 오픈소스를 통해 구현하라는 권고가 있었다. OKTA(유료)와 Keycloak(무료)중에 keycloak을 찍먹 해보려고 한다. https://www.keycloak.org/getting-started/getting-started-docker 우선 k8s베이스나 docker 베이스등 어떤 베이스로 셋팅을 할지 고를수 있다. 여기에서는 로컬에 docker가 셋팅 되어있으니 docker based로 해보겠다. docker run -p 8080:8080 -e KEYCLOAK_ADMIN=admin -e KEYCLOAK_ADMIN_PASSWORD=admin quay.io/keycloak/keycloak:19.0.1 start-dev 위.. 2022. 8. 10.
Spring Cloud Contract https://spring.io/projects/spring-cloud-contract Spring Cloud Contract is an umbrella project holding solutions that help users in successfully implementing the Consumer Driven Contracts approach 위의 내용은 spring.io에 spring cloud contract 설명을 한 내용인데 내용중에 Consumer Driven Contracts라는 내용이 나온다. 한글로 번역하면 "소비자 주도 계약" 이것은 무엇을 말하는걸까? 제공자(Producer) 가 소비자(Consumer)에 대한 연동을 확인하면서 모듈화된 시스템 구성 요소를 TEST하는데 사용되는 .. 2022. 8. 3.
@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.
local에 Docker 기반 Redis 셋팅(feat. mac) ■ 우선 docker가 셋팅되어져있어야 한다. ■ docker명령어로 redis 이미지를 가져온다. docker pull or docker image pull docker pull redis:6.2.6 // 해당 버전을 가져오려면 redis:버전 docker image pull redis // 최신을 그냥 가져오려면 redis ■ 네트워크 리스트 확인 docker network ls NETWORK ID NAME DRIVER SCOPE 614b4249a627 bridge bridge local 3b3695c608b6 host host local a9a8dbbfa136 none null local ■ 네트워크 설정 docker network create redis-net redis-cli도 같이 구동해서 통.. 2022. 4. 12.
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.
log4j2 보안 취약성 발생! Apache Log4j 2*에서 발생하는 원격코드 실행 취약점(CVE-2021-44228)[2] https://www.boho.or.kr/data/secNoticeView.do?bulletin_writing_sequence=36389 log4j2가 사용하는 곳이 많다. 특히나 오픈소스등에 많다. apache storm , es , logstash등등.. 아래는 es 버전별 log4j 디펜던시 버전 정보이다. 정리해주신분 감사! (출처) - 조치방법 ※ (2.0-beta9 ~ 2.10.0) JndiLookup 클래스를 경로에서 제거 : zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/JndiLookup.class ※ (2.10 ~ 2.14... 2021. 12. 14.
리눅스에서 주기적으로 es 데이터 지우기 2021.08.22 - [OS/Linux&Unix] - Disk Full 처리 , 서버에서 로그만 찾겠다는 마인드는 버려라!! 에 이어서 이제 주기적으로 es 데이터를 지워주는 것을 리눅스 기반에서 처리 해보도록 하겠습니다. 아래의 2가지 요구사항! 1. 리눅스에서 주기적 crontab 이라는것을 사용하자. 2. es 데이터를 삭제 curl -XDELETE 'es-url:9200/index명-2021.10.*' 주기적인 처리는 crontab을 이용. crontab -e (수정)을 하여 아래와 같이 매달 1일 1시에 del_elastic.sh가 동작 하도록 한다. 00 01 1 * * /acet/script/del_elastic.sh >> /acet/script/remove.log 2>&1 del_elas.. 2021. 12. 12.
Zookeeper 상태 확인 mode에는 leader / follower가 있으며 상태체크는 status이며 죽어있으면 ./zkServer.sh start로 실행 시킨다. [acet-server bin]$ ./zkServer.sh status ZooKeeper JMX enabled by default Using config: /daum/program/zookeeper/bin/../conf/zoo.cfg Mode: follower 2021. 11. 22.
반응형