OCR로 영수증 데이터 가져와서 식품 데이터 분류하기(분류 모델 만들기) + Trouble shooting
·
Dev
Tool네이버 OCR General 버전python BeautifulSoup, SeleniumSpring boot 2.7.7AWS Lambda, API GatewayDockerOCR로 영수증에서 텍스트 추출하기Naver에서는 영수증에 특화된 OCR을 제공하지만 너무 비싸서 General 버전의 OCR을 이용해서 텍스트를 추출했습니다.상품 이름 외의 데이터는 정규식을 이용하거나 특정 문자를 필터링해서 List형태로 추출해냈습니다.)분류 모델 만들기분류모델을 만들기 위해서는 dataset이 필요해서 사용자들이 자주 사용할 마트를 선정해서 크롤링을 통해 데이터를 15000개 수집했습니다.전국통합식품영양성분표준데이터에 있는 식품 데이터를 사용했습니다.모델은 scikit-learn의 CountVectorizer ..
ElasticSearch로 검색 성능 높이기
·
Dev
intro검색 기능 구현이 필요한데 elasticsearch를 이용하면 빠르게 검색이 가능하기 때문에 elasticsearch를 도입하기 위해 테스트를 진행해보았습니다.Springboot 의존성 추가spring boot 버전과 맞는 elasticserach 의존성을 추가해 주기spring boot 2.7.7implementation 'org.springframework.boot:spring-boot-starter-data-elasticsearch:4.4.2'elasticsearch docker로 설치하기docker 먼저 설치 docker pull elasticsearch:7.17.3docker run -d -p 9200:9200 -e "discovery.type=single-node" elasticsea..
Swagger 사용하기
·
Dev
SwaggerAPI 문서화 자동화 툴어떤 API가 있고 해당 API를 쓰기 위한 양식을 알려주고 API를 호출해보고 테스트 할 수 있다.프론트에서 API를 쉽고 빠르게 이해하기 위해 활용한다.SpringDocSwagger UI를 만들고 Swagger annotation을 제공하는 라이브러리이다.SpringFox UI와 SpringDoc UI가 있는데 spring의 버전이 올라갈수록 SpringFox는 지원을 못하는 경우가 많다.dependency 설정implementation 'org.springdoc:springdoc-openapi-ui:1.6.15'Swagger Configure 작성import org.springframework.context.annotation.Bean; import org.spr..
Spring Security, JWT로 인증, 인가 구현하기
·
Dev
인증(Authentication)과 인가(Authorization)인증은 사용자가 누구인지 확인하는 절차, 회원가입하고 로그인 하는 것을 말한다.인가는 사용자가 서비스에서 제공하는 기능을 사용할 수 있는 권한이 있는지 확인하는 절차를 말한다.Spring SecuritySpring Security는 filter chain을 기반으로 인증과 인가를 수행해서 보안 기능을 제공한다.filter는 http 요청이 들어오면 filter에 통과 시켜서 보안 작업을 수행합니다.로그인 같은 요청은 예외 처리를 통해 인가 작업이 없어도 사용 가능하도록 설정 가능Spring Security 처리 과정처음에 요청이 들어오면 AuthenticationFilter(UsernamePassAuthenticationFilter)를 거..