728x90

개발 287

공공데이터 API 사용해보기

공공데이터 API를 이용해보자 이 많은 데이터로 간단한 프로젝트를 만들 수 있을 것 같다. 그래서 그 과정에서 공공 데이터 API를 어떻게 사용하는지 알아보았다. 1. 회원가입을 한다. 회원가입을 해야 사용할 수 있다. 회원가입 후 로그인하여 공공데이터 찾기에서 아무 데이터나 찾아본다. 예시로 코로나를 검색해봤더니 2. 데이터를 선택한다. 우리는 파일데이터보단 오픈API가 사용하기 편하니, 선택하여 아무거나 클릭해본다. 나는 제일 첫번째 데이터를 선택했다. 안심식당 정보를 사용해보자 3. 사용신청을 하자 url을 클릭하여 들어가서 오른쪽에 있는 '오픈 API 신청'을 클릭한다. 하필 고른게 농림축산 식품이라 이쪽에도 회원가입을 해야한다. 난 로컬에서 사용할 것이므로 로컬IP를 기입했다. 오픈API 신청을..

개발/ETC 2022.08.25

[JPA] LIKE 정리

SpringData JPA를 사용하여 개발한 기능에서 에러가 발생 - 이유는 select되어야 하는 데이터가 2개 이상이라.. - 쿼리문이 where data like '%조건'을 원했는데 contains를 사용했더니 앞 뒤로 %가 붙었다. - 이참에 정리해놓으려 한다. Contains - 파라미터로 사용되는 data변수에 자동으로 앞 뒤로 '%'가 붙어서 DB조회를 한다. List dataList = findByDataContains(data); List dataList = findByDataContaining(data); List dataList = findByDataIsContaining(data); Like - 직접 파라미터에 '%'를 넣어주어야 한다. List dataList = findByDa..

[Java] 예외처리

자바의 정석 챕터 8을 읽고 정리 개발하다가 '내가 예외처리를 제대로 하고 있는게 맞을까?' 생각이 들어서 책을 보게 됐다.(기초부터 다시 공부하기 위해) 1. 프로그램 오류 - 컴파일 에러: 컴파일 시 발생하는 에러 - 런타임 에러: 실행 시 발생하는 에러 - 논리적 에러: 실행은 되지만, 의도와 다르게 동작하는 것 - 에러: 코드에 의해서 수습될 수 없는 심각한 오류 - 예외: 코드에 의해서 수습될 수 있는 다소 미약한 오류 2. 예외 클래스의 계층구조 - 모든 예외의 최고 조상인 Exception 클래스 3. 예외처리하기 - try-catch - 예외처리의 정의: 프로그램 실행 시 발생할 수 있는 예외에 대비한 코드를 작성하는 것 - 예외처리의 목적: 프로그램의 비정상 종료를 막고, 정상적인 실행상..

[Spring] Message 적용해보기

개발하다보면 한 화면을 여러 언어로 보여줘야 하는 경우가 있다. 언어마다 같은 HTML을 작성하지 않고, 스프링을 이용하여 편리하게 구현해봤다. - 먼저 Bean 등록을 해준다. LocaleConfig라는 파일을 생성하여 작성했다. - @Value값 안에 들어가는 내용은 application.properties에 작성했다. - basename에는 앞으로 여러 언어를 같은 코드로 관리하기 위한 파일인 messages.properties파일의 경로를 넣어주었다. - 나같은 경우 messages/messages를 넣었다. - encoding은 UTF-8을 넣어주었다. - 스프링 부트의 경우 Bean등록을 안해도 된다는 글들이 많았는데, 안해주니 나는 에러가 발생했다.(해주면 이상 없음) @Bean public..

[Spring] Validation 적용해보기

프론트에서만 유효성 검사를 했었는데, 언제든지 우회할 수 있다고 듣고, 서버쪽에서도 유효성 검사하는 로직을 추가하려했다. 근데 스프링에서는 validation이라는 프레임워크로 편하게 할 수 있었다. 그 과정을 남기려고 한다. - 라이브러리 설치(build.gradle) implementation group: 'org.springframework.boot', name: 'spring-boot-starter-validation', version: '2.5.2' - 먼저 회원가입을 한다고 하면 User 엔티티가 필요하다. @Entity @Getter @NoArgsConstructor public class User { @Id @GeneratedValue(strategy = GenerationType.IDEN..

[Spring] 스웨거(Swagger) 라이브러리

기존에는 api 테스트를 위해서 포스트맨을 사용했는데, 스웨거는 서버로 요청되는 api 리스트를 html 화면으로 문서화해서 테스트할 수 있는 라이브러리이다. @RestController를 읽어서 api를 분석해서html문서로 정리해준다. 아주 편리해보인다. - dependency에 아래 두 가지를 넣어준다. implementation group: 'io.springfox', name: 'springfox-swagger2', version: '2.9.2' implementation group: 'io.springfox', name: 'springfox-swagger-ui', version: '2.9.2' - 나는 gradle을 사용 중이기 때문에 buid.gradle 파일 안에 넣어줬다. - config..

[Java] Generics

자바의 정석 챕터 13을 읽고 정리 1. 지네릭스란? - 지네릭스는 다양한 타입의 객체들을 다루는 메소드나 컬렉션 클래스에 컴파일 시 타입 체크를 해주는 기능 - 타입 안정성 제공 - 타입체크와 형변환을 생략할 수 있어서 코드가 간결해짐 2. 지네릭 클래스 선언 - 클래스에 지네릭 타입을 넣을 수 있다. class Box { Object item; void setItem(Object item) { this.item = item; } Object getItem() { return item; } } // 지네릭 타입 T를 선언 class Box { T item; void setItem(T item) { this.item = item; } T getItem() { return item; } } - T는 타입변..

[Javascript] Chart.js bar chart 만들기

- 지난번에 radar 차트를 만들었었다. - 차트 종류가 매우 많은데, 하나씩 만들어보려 한다. - 그 중에 이번엔 bar 차트를 만들어본다. - 나는 thymeleaf를 사용 중이기 때문에 th:src="@{~~}" 이런 문법이 들어가 있지만, 보통은 src="~~" 이렇게 코드를 넣어주면 된다. - th:block도 필요 없다. - 라벨은 x축 눈금에 표시될 문자를 말한다. - 데이터는 10년 동안 이탈리아 프로 축구 리그 Seria A의 우승팀과 횟수이다. const ctx = document.getElementById('chart').getContext('2d'); const chart = new Chart(ctx, { type: 'bar', data: { labels: ['AC Milan','..

[Java] 컬렉션 프레임워크 (2)

자바의 정석 챕터 11을 읽고 정리 1.4 Hashset - Hashset은 Set 인터페이스를 구현한 가장 대표적인 컬렉션 - 중복된 요소를 저장하지 않음 - 저장순서를 유지하지 않음 Object[] objArr = {"1", new Integer(1), "2", "2", "3", "3"}; Set set = new Hashset(); for (int i = 0; i < objArr.length; i++) { set.add(objArr[i]); } System.out.println(set); // [1, 1, 2, 3] - "1", "1"은 눈으로 볼 때는 같지만 첫 번째는 String 인스턴스이고, 하나는 Integer 인스턴스라서 중복으로 보지 않음 - 순서 보장을 원하면 LinkedHashSet ..

[Fiber] Go로 DB Connect하기(MariaDB)

전 회사에서 쓰던 Golang framework Fiber를 공부하려고 한다. - 내가 전 회사에서 개발했던 부분은 여러 DB에 접속하고, 접속이 잘 되었는지 확인하는 부분이었다.- 이번에 다시 해보니 정말 금방 개발할 수 있는 양이었는데, 왜 이렇게 헤맸던 건지 모르겠다. - 예전에 DB에 접속하기 위해서https://github.com/go-sql-driver/mysq GitHub - go-sql-driver/mysql: Go MySQL Driver is a MySQL driver for Go's (golang) database/sql packageGo MySQL Driver is a MySQL driver for Go's (golang) database/sql package - GitHub - go..

개발/Go 2022.08.13
728x90