2023/09 4

[AI] roboflow 사용법

인공지능 과제를 수행하다 데이터셋 부족으로 인터넷의 바다를 여기저기 떠돌아 다녔다. 그러던 중 roboflow라는 좋은 툴을 봤는데 이게 사용방법이 조금 헷갈려서 이것 저것 만져보다가 알아낸 방법을 기록으로 남겨보려고 한다. 먼저 roboflow에 가입을 한다. https://roboflow.com/ Roboflow: Give your software the power to see objects in images and video With just a few dozen example images, you can train a working, state-of-the-art computer vision model in less than 24 hours. roboflow.com 가입을 하고난 후 get sta..

인공지능 2023.09.26

[Thymeleaf] 타임리프 header와 footer 관리하기

처음엔 가장 사용하기 쉬운 mustache를 이용하여 header와 footer를 중복해서 쓰지 않는 방법을 배웠다. 그러나 스프링 진영에 공식적으로 밀고있는 타임리프는 아직 사용방법이 미숙하여 관리하는 법을 모르고있었는데 책을 읽다 알게 되어 정리하려고 한다. 먼저 Thymeleaf layout dialect를 의존성에 추가한다. nz.net.ultraq.thymeleaf thymeleaf-layout-dialect 그리고 header, footer, layout, index 파일을 만들어준다. 스프링에서는 resources 밑에 자원을 넣는다. 폴더 구조를 잘 보고 주의해서 넣자! 각 파일의 코드는 다음과 같다. header 파일 header 영역입니다. footer 파일 footer 영역입니다. l..

Java/Spring 2023.09.12

[자바 디자인 패턴] 이터레이터 패턴

문제 프로그래밍을 하다보면 반복문을 많이 사용한다. 그러나 반복문이 사용되는 목적은 다양한다. 일정 횟수를 반복하는 경우도 있고 탐색을 위해 반복하는 경우도 있다. 또는 모든 요소를 수정하는 것이 목적일 수 있다. 이때 반복의 대상이 어떠냐에 따라 다양한 방식으로 반복문을 만들어야 한다. 그러면 우리는 이런 생각을 할 수 있다. 어떻게 하면 반복문을 쉽게 만들 수 있을까? 이터레이터 패턴이란? 위와 같은 문제를 해결할 수 있는 디자인 패턴이 바로 이터레이터(iterator) 패턴이다. 이터레이터 패턴은 반복에 사용되는 요소를 추상화한 후 이를 일반화한 패턴이다. 예를 들어 다음과 같은 코드가 주어진다고 해보자. for(int i = 0; i < 10; i++) { ... } 여기서 반복을 제어하는 변수는..

o.s.b.d.LoggingFailureAnalysisReporter 에러 해결

스프링 프로젝트 환경설정을 위해 spring initializer를 이용했다. 이떄 의존성으로 lombok, web-starter, mustache, spring JPA를 동시에 의존성으로 받아줬다. 그리고 바로 실행했는데 다음과 같은 에러가 나왔다. 찾아본 결과 해당 에러는 데이터베이스 설정과 관련된 에러였다. 그런데 기본 설정만 한 상태로 바로 스프링을 실행했기에 크게 에러가 나올 상황이 없었는데 에러가 나서 당황했다. 일단 데이터베이스 문제가 있을 때 생기는 에러라는 것을 알았기 때문에 spring JPA를 삭제하고 다시 돌려보니 문제가 없어졌다. 위 나온 오류와 경험을 토대로 판단한 결과 보통 JPA를 사용할 때 사용할 데이터베이스를 같이 설정해주는데 여기서는 데이터베이스 설정을 하지 않아 JPA..

Java/Spring 2023.09.01