반응형 역량 UP!43 15) ENS Project - 상품 데이터를 체크하자! 발주 처리를 위해서 업체별 상품 데이터를 최신으로 가지고 있어야 합니다.주문으로 들어오는 데이터는 최신으로 반영된 데이터를 가지고 있어야 비교하여 발주를 해주기 때문 입니다.물론 상품 변경 전 데이터도 가지고 있어야 합니다. 혹시 모를 상품 변경 전에 주문이 들어왔을수도 있기 때문 입니다.그래서 테이블을 업체 테이블 하나와 상품 테이블 하나를 만들었습니다.발주처리 전 체크를 해야 합니다.혹은 상품 데이터를 주기적으로 변경사항을 체크하여 업데이트 해주는 배치가 돌아야 합니다.변경사항이 많다면 발주처리가 무척 느려질수 있습니다. 하지만 배치를 돌리기에는 서버도 마땅치 않고 우선 실시간적으로 느리지만 괜찮아~버전으로 개발해보겠습니다ㅋㅋJson to DataBase네이버스토어 상품에는 여러가지가 있다..본상품과.. 2025. 1. 15. 14) ENS Project - 송장 시스템 2024.12.27 - [OpenSource/Spring Boot] - 13) ENS Project - 발주 시스템발주 시스템에 이어서 이제 송장을 받아서 네이버스토어에 일괄처리를 해줘야 합니다.그러기 위해서는 네이버스토어 일괄처리 양식에 맞게 저장된 엑셀이 필요 합니다.송장 시스템에는 2가지 엑셀 파일이 필요 합니다.발주 시스템에서 나온 주문내역인 엑셀 파일 하나그리고 택배사를 통해서 송장이 나온 엑셀 파일 하나2개의 파일을 넣고 송장처리 버튼을 눌러주면 아래와 같이 네이버스토어 일괄처리를 위한 엑셀 파일 하나가 만들어 집니다.내용은 아래와 같이 네이버스토어에서 원하는 양식 입니다.그리고 송장시스템을 확인하고 수정작업이 필요하면 파일을 선택 후 택배사 변경이나 추가&삭제를 한 뒤에 저장을 하시면 됩니다.. 2024. 12. 27. 13) ENS Project - 발주 시스템 개인 프로젝트로 만들고 있는 서비스 입니다.발주 시스템요 시스템은 네이버스토어에 신규 주문건들이 들어오면 엑셀을 다운 받아서 신규 엑셀을 만들어줍니다.(네이버스토어에서 다운받은 엑셀은 암호화가 되어있습니다.)파일을 선택 후 발주처리를 진행!..처리가 완료되면 zip파일이 다운로드 됩니다.아래와 같이 상품(업체)별로 엑셀이 나옵니다. 이제 발주시스템은 네이버스토어에서 나온 발주이며, 문자고객이 있을수 있습니다.문자고객은 기존 상품에서 추가를 합니다.발주처리를 위해 a.i를 통해서 아래처럼 네이버스토어에 있는 타이틀을 가지고 이름과 업체명을 만들어줍니다.{ "id": "2994144279", "name": "손질과메기 20미리 단품", "company": "포항구룡포 과메기 농장", "title":.. 2024. 12. 27. 12) ENS Project - accessToken 발급 및 로그아웃 100만년만에 다시 개인프로젝트 시작!! ㅋㅋㅋ이전글 : 2024.11.08 - [Front/React.js] - 11) ENS Project - Naver 로그인을 구현해보자!참고 하세요~추억의 jsp로 개발된 소스!참고 : https://developers.naver.com/docs/login/web/web.md네이버 로그인 접근토큰 획득 예제는 2개의 프로그램으로 구성되어 있습니다. (naverlogin.jsp, callback.jsp)2. callback.jsp 예전에 스터디로 책선정을해서 OAuth2로 네이버 로그인을 추가했던적이 있습니다.2022.01.06 - [Study/Study group] - OAuth2 구글, 네이버 로그인 추가 아래처럼 application.yml에 스프.. 2024. 12. 22. 11) ENS Project - Naver 로그인을 구현해보자! 사이트에서 로그인이 필요하다!네이버 관련 프로젝트이니 네이버 로그인을 구현해보자:)https://developers.naver.com/docs/login/devguide/devguide.md이전에 Oauth2.0을 스프링시큐리티로 인증서버와 리소스서버를 만들었던적이 있었는데네이버 로그인 역시 Oauth2.0을 따르고 있다.대충 아래처럼 만들면 될것 같다! ㅋㅋ1. 네이버로그인 버튼을 클릭!// authProvider.tsconst authProvider = { generateRandomString :() => { const randomBigInt = bigInt.randBetween("1e130", "1e131"); // 130자리 난수를 생성 return randomBigInt.toStri.. 2024. 11. 8. 10) ENS Project - CSS Framework 사용해보기 OverviewReact로 개발 시 디자인을 무에서 유를 창조하기에는 힘들다.이런 힘듬을 보완하기 위해 CSS Framework인 MUI를 사용하여 Ui 구성요소를 살펴보고 사용해보기로 한다.Example아래의 예제를 셋팅해서 띄워보고 컴포넌트들을 살펴보자.https://github.com/marmelab/material-ui-react-admin?tab=readme-ov-filehttps://marmelab.com/react-admin/Features.htmlhttps://marmelab.com/react-admin/CreateReactAdmin.htmlCreateReactAdminCSS Framework를 통해 우선적으로 개발 진행여러가지 Framework가 있지만 우선 아래의 Framework를 사.. 2024. 11. 4. 9) ENS Project - 프론트엔드 후딱 학습하기(React Deep Dive!!) 2024.10.15 - [Front/React.js] - 8) ENS Project - 프론트엔드 후딱 학습하기(리액트 컴포넌트, JSX, 속성, 상태)저번시간에 이어서 오늘은 더욱 더 깊은 심화과정 입니다! 저장을 잘하면서 포스팅 해보도록 하겠습니다:)Point!!- JSX를 꼭 사용하지 않아도 되는 이유- 컴포넌트 트리를 설계하는 방법 + 프로젝트를 더 효율적으로 구성하는 방법- State 사용의 상급 개념과 특정 상급 개념을 살펴봅니다. ㄴ 저번시간엔 useState()를 사용했습니다.- 자주 사용되는 중요 패턴과 Best Practices를 살펴봅니다.JSX를 꼭 사용하지 않아도 되는 이유?React Code는 Build Process를 통해서 변경 됩니다. 결과적으로 배포가능한 파일로 말.. 2024. 10. 31. 8) ENS Project - 프론트엔드 후딱 학습하기(리액트 컴포넌트, JSX, 속성, 상태) 해당 포스팅은2024.10.11 - [OpenSource/Spring Boot] - 7) ENS Project - DB로 전환02에서 이어지는 포스팅 입니다.frontend는 vue.js도 분명히..학습을 했는데 시간이 지나면 지날수록 새로운것이 나오고머릿속에 있던 지식들이 다 날아가버린다..말 그대로 내머릿속에 지우개ㅋㅋ이번에는 개인 프로젝트를 수행하면서 명확한 그림을 그려가면서 프론트엔드를 학습하려고 한다.학습은 옛날에는 항상 책을 사다가 학습을 했는데 요즘은 강의가 많아서 좋은거 같다ㅎㅎ그러므로 강의를 통해 학습하고자 한다.학습 후에는 아래와 같은 플랜을 가진다!1. 프로젝트 설정2. 프로젝트 구조 이해3. 컴포넌트 설계 ex) header(페이지 최상단 - 네비게이션 메뉴 부분) con.. 2024. 10. 15. 7) ENS Project - DB로 전환02 저번시간에는 DB설계와 MySQL 셋팅을 해보았습니다.오늘은 JPA연동 작업 입니다.제일 먼저 Dependency를 걸어줍니다.JPA 관련, MySQL 관련, h2는 테스트 코드에서 MySQL이 아닌 h2를 바라봐야해서 필요 합니다 // jpa setting implementation 'org.springframework.boot:spring-boot-starter-data-jpa' // MySQL - https://mvnrepository.com/artifact/mysql/mysql-connector-java runtimeOnly 'mysql:mysql-connector-java:8.0.33' // h2 for in-Memory test testRuntimeOnly 'c.. 2024. 10. 11. 6) ENS Project - DB로 전환01 오늘의 개발 목표!LLM 호출을 최소화하여 비용을 절감하는 로직을 구현!!!네이버 API를 통해 데이터를 조회한 후, 데이터가 변경되었을 때만 LLM을 호출하여 결과를 저장하고, 그렇지 않으면 기존 데이터를 그대로 사용하는 방식이다.로직은 대충 아래와 같다.naver api를 호출 -> modify date(naver)를 구해서 -> 기존 저장된 modify date(naver)랑 비교! -> 변경이 되었다면 -> open ai 호출 -> 결과 Json을 얻고 그 Json을 db에 저장! -> modify date(naver) 어려운것은 없다. 단지 없는 기능을 구현해야할 뿐!기능 구현에 필요한 것은?바로 JPA~!! 아래를 참고하면 될것 같다.2016.11.28 - [OpenSource/JPA] - S.. 2024. 10. 9. 5) ENS Project - 상품코드 가져오기 저번 시간에 하드코딩이였다!!2024.09.27 - [OpenSource/Spring Boot] - 4) ENS Project - open ai와 놀기(발주 개발)1건에 대해서만 일단은 처리를 한 것이다.이제는 현재 판매중이며 전시중인 상품들에 대한 데이터들이 필요하다.이 상품번호들은 파는 것들만 하드코딩하여 할 수도 있지만 귀찮다!!!naver api를 통해서 해당 정보들을 가져와서 자연스레 데이터를 만들도록하는것이 목표이다!결과아래와 같이 데이터들을 뽑아냈다!!Controller에서는 내가 원하는 서비스들을 호출만 하였다.String responseBody = naverStoreApiService.getChannelProductNumbers(accessToken);naverStoreApiService.. 2024. 9. 28. 4) ENS Project - open ai와 놀기(발주 개발) Json에서 오류 발생!오잉? 내용이 짤려서 응답을 받는다..그래서 max_tokens을 3000으로 requestBody.put("max_tokens", 3000);prompt_tokens는 4790인데 응답으로 3000 했더니..짤려서 나왔다.그래서 이번엔 5000으로 지정!requestBody.put("max_tokens", 5000);아래처럼 4096이 최대라고 한다.requestBody.put("max_tokens", 4096);4096으로 했지만 이름과 회사명을 null에서 채워넣기 때문에 토큰이 더 필요하다!!토큰 소비가 8886이나..역시나 부족하다!!!한번 돌릴때마다..돈이 나간다고 생각하니..방법을 생각해내야한다!해결방법으로는..토큰을 늘리는것보다 input쪽을 줄여야할것 같다!즉, .. 2024. 9. 27. 3) ENS Project 시작을 위한 결제 :) Project 진행을 위해 결제 완료! A.I를 연동해서 만들어야 기능은?- 발주 시스템!! - 조건 : 하나의 네이버스토어에서 여러가지 업체 물건을 팔아야할 때 유용하다!Spring진영에서 제공하는 AI를 가지고 개발하려고 했는데 생각이 바뀌었다.기존 LangChain으로 만들었던 걸로 우선적으로 테스트를 하려고 하니..AI 이녀석...정말 빠르게 발전하고 있었다.이미 이전에 개발했던 소스는 Deprecated 되었다!!! 럴수럴수 이럴수가..차라리 Open AI에서 제공하는 api를 사용하는게 더 좋다고 판단하였다.아래처럼 여러가지 기능들을 제공하고 있었다.음성관련 STT/TTS도 보이고 파인튜닝이며 여러가지를 제공하는 것을 보고 우선은 간단한 기능을 구현해보겠지만 추후에 좀 더 유용하다고 판단했다... 2024. 9. 26. 2) ENS Project - 노가다 하지마! ㅋㅋ(홀딩!) 지인이 NaverStore 발주와 송장입력 때문에 고통받는것을 보고!효율적으로 노가다 없이 일을 할 수 있게 도와주기 위해 IT전문인력으로써 무일푼으로 간단하게 만들어주기로 하였다 ㅋㅋ 잘 만들면 팔아먹어야쥐~일단 아래처럼 NaverStore api를 먼저 연동하였다.아래 api는 간단히 소개하면..신규주문건이 들어오면 발주를 해줘야한다.즉, 판매자가 확인했어요~고갱님~이라는 표식을 해주는 것이다.표식이 된 상품들은 중간업체라면 실질적으로 제품을 picking&packging을 하는 업체에게 어떤 상품이 몇개 팔렸는지 알려줘야한다.그때 필요한 api들이 Support와 Option 상품들 관련 api들이다.그 이후에는 송장처리를 해줘야하는데 요건 일단 Pass :)LLM의 경우는 하나의 업체라면 상관이 .. 2024. 9. 11. 1) ENS Project - Spring Boot + LLM(Open ai 적용 해보기) 2024.05.20 - [A.I/RAG] - ai? 맨땅에 헤딩 -6(langChain) : 간단 daum news로 RAG 실습 2024.05.13 - [A.I/RAG] - ai? 맨땅에 헤딩 -5(langChain) : langsmith 셋팅 및 tracing해보기!!2024.04.29 - [A.I/RAG] - ai? 맨땅에 헤딩 -4(langChain): vector DB 간단 사용!2024.04.26 - [A.I/RAG] - ai? 맨땅에 헤딩 -3(langChain) : 주요 컴포넌트 체크!2024.04.24 - [A.I/RAG] - ai? 맨땅에 헤딩 -2(langChain) : 튜토리얼 따라해보기!2024.04.19 - [A.I/RAG] - ai? 맨땅에 헤딩 -1(langChain) : a.. 2024. 8. 17. 4. SPARQL이란? 스파클- SPARQL : Simple Protocol and RDF Query Language 2008년 웹 표준화 기구인 W3C(월드와이드 웹 컨소시엄)에서 제정하였습니다. 관계형 데이터베이스(RDB)에서 데이터 검색과 질의를 위해 구조화 질의 언어(SQL)가 사용되는 것과 같이 웹 환경의 RDF 데이터베이스에서는 SPARQL이 사용 됩니다. 다시 말해 RDF(Resource Description Framework)로 표현된 지식 그래프에 대한 쿼리 언어입니다. SPARQL은 SQL과 유사한 구조를 가지고 있으며, RDF 트리에서 데이터를 검색하고 조작할 수 있습니다. SPARQL의 기본구조 아래와 같은 기본구조로 되어있습니다. PREFIX (SELECT, CONSTRUCT, DESCRIBE, ASK).. 2024. 2. 29. 3. 지식그래프에서 스키마란?(feat. Fuseki test) 지식그래프에서 스키마는 지식그래프의 구조와 의미를 정의하는 역할을 합니다. 스키마에는 다음과 같은 정보가 포함됩니다. 엔티티: 지식그래프에서 표현하는 개체를 나타냅니다. 속성: 엔티티가 가지고 있는 특성을 나타냅니다. 관계: 엔티티 간의 관계를 나타냅니다. 스키마는 지식그래프의 데이터를 이해하고 처리하는 데 필수적입니다. 스키마가 없으면 지식그래프에 저장된 데이터의 의미를 파악하기 어렵습니다. 또한, 스키마를 통해 지식그래프의 구조를 정리하고 효율적으로 관리할 수 있습니다. 스키마의 주요 역할 지식그래프의 구조와 의미를 정의: 스키마는 지식그래프에 포함된 엔티티, 속성, 관계의 종류와 의미를 정의합니다. 이를 통해 지식그래프의 데이터를 이해하고 처리할 수 있습니다. 지식그래프의 데이터를 정리: 스키마를 .. 2024. 2. 1. 지식그래프(Knowledge Graph) 관련 정보 시맨틱 웹의 목표 웹에 있는 모든 자원에 대한 의미(meaning)를 기계가 읽고 처리하게 만드는 것. W3C 컨소시엄을 중심으로 RDF, OWL과 같은 웹 표준이 만들어지고 링크드 데이터 기술을 통해 시맨틱 데이터를 연계하는 시도가 활발하게 진행. 구글은 2010년 프리베이스(freebase)를 개발한 메타웹(metaweb)을 인수하며, 3년 후 자사의 검색방식을 문자열이 아닌 의미를 이해하는 방식(things, not strings)으로 전환해 지식그래프(Knowledge graph) 서비스를 시작 했습니다. 구글의 지식그래프는 검색 서비스뿐만 아니라 음성 비서를 포함한 자사의 지능형 서비스의 핵심 데이터로 자리매김하고 있습니다. 비슷한 시기에 구글, 마이크로소프트, 야후, 얀덱스는 웹 자원을 기술하.. 2022. 11. 2. 타 회사 지식그래프에 대해 알아보자 https://www.stardog.com/ 어떤 데이터든 액세스가 가능 원격으로 데이터를 액세스 좋은 추론 엔진 보유 통찰력을 위한 데이터 통합 안정적으로 확장 가능(kubernetes와 호환 및 ACID를 준수) 당사의 온톨로지 기능은 검색, 패턴 인식 및 권장 사항에 대한 공통 분류 체계를 만드는 데 도움이 됩니다. Stardog은 SNOMED, PubMed, NCIt 등을 지원합니다. Stardog은 많은 고객사를 현재 보유하고 있음 https://www.stardog.com/company/customers/ Designer 데이터 엔지니어와 분석가가 데이터를 연결, 매핑, 모델링 및 게시할 수 있는 코드 없는 시각적 환경을 제공 Explorer 코드나 쿼리 없이 데이터의 연결을 탐색할 수 있.. 2022. 8. 2. 마이크로서비스 아키텍처(Microservice Architecture) 마이크로 서비스 아키텍처 큰 문제를 상대적으로 작게 분해해 해결 이렇게 작게 나눈 각 서비스가 독립적으로 역할을 수행 한가지만, 아주 잘 처리하자. 라는 것이 마이크로 서비스 아키텍처의 기본 철학이다. 단일 책임 원칙(SRP)를 중시(Single Responsibility Principle) 비즈니스 태스크를 작은 태스크로 나누며, 각 태스크마다 마이크로 서비스를 정의 한다. 비즈니스 요구사항과 태스크를 얼마나 잘 나눴는지에 따라 시스템에 두개 혹은 100개의 마이크로 서비스가 존재 마이크로 서비스 아키텍처 특징 시스템을 둘 이상의 실행 단위 또는 컴포넌트로 구성한다. 각 컴포넌트는 기능을 서비스 형태로 표출, 결합도가 낮으며 비즈니스 목적에 맞게 동작한다. 각 컴포넌트는 메시징 큐, HTTP 요청/응답.. 2021. 2. 3. 메시지큐에 대해 알아보자. 모델 종류 발행/구독(publish - and - subscribe) 모델 1: 다 - 모든 클라이언트에게 모든 메시지의 사본을 전달. publisher -> topic -> subscriber -> subscriber -> subscriber 지점간 연결(point - to - point) 모델 1:1 - 하나의 메시지는 하나의 클라이언트에만 전송(큐는 공유 가능) sender -> queue -> receiver 위의 모델 중에 publish - and - subscribe(pub - sub) 모델에 대해서 알아보자! pub/sub 구조 보통의 message queue들은 publisher - message broker(topic) - subscriber 구조를 사용한다. publisher(messa.. 2017. 6. 27. 이전 1 2 3 다음 반응형