스터디

스터디

[SpringBoot] @RestController 로 Rest API 구축하기!

오늘은 Servlet 컨트롤러를 RestController로 변경하면서 RestController를 사용하는 이유와 Rest API를 구축하는 과정에 대해 기록해보고자 한다. 아래 이미지는 Servlet 컨트롤러를 사용해 API를 구현해놓은 것이다. Servlet을 사용하면 request와 response 값을 다루기 정말 쉬워지지만 하나의 기능당 하나의 클래스가 필요해 쓸데없이 많은 클래스를 생성해야한다. 기능당 하나의 서블렛이 생성된 모습이다. 이렇게 되면 프로그램의 용량이 쓸데없이 커지게 되며, 대규모 프로젝트라면 어떤 클래스가 어떤 기능인지 알 수도 없다. 나는 이러한 문제점을 해결하기 위해 @RestController를 채택했다. Spring MVC Controller인 @Controller 가..

스터디

[SpringBoot] 스프링 스케쥴러로 Auto CSV Parser 만들기 - @EnableScheduling

이번 시간엔 스프링의 @Scheduled 어노테이션을 사용해 매일 00시마다 공공 데이터 포털에서 최신 주차장 데이터 CSV 파일을 받아와 파싱하고 데이터를 DB에 저장하는 데이터 자동 최신화 로직을 개발해보려한다. 바로 시작해보자. 기본 세팅 우선 스케쥴러를 사용하려면 main 메서드의 클래스에 @EnableScheduling 어노테이션을 추가해주어야한다. @EnableScheduling @ServletComponentScan @SpringBootApplication class ParkingServiceApplication { public static void main(String[] args) { SpringApplication.run(ParkingServiceApplication.class, arg..

스터디

[SpringBoot] [Java] OpenCSV 사용해서 CSV 파일 파싱하기!

오늘은 CSV 파일 파싱을 손쉽게 할 수 있도록 도와주는 자바의 OpenCSV 라는 라이브러리를 사용해서, 이전에 길고 복잡하게 수행했던 save() 함수를 바꿔보려한다. 우선 저번에 만들었던 JpaParkRepository.java 의 save() 함수를 기억해야한다. save() 함수는 CSV 파일에 있는 데이터를 BufferedReader 로 한 라인씩 가져온 뒤 ,(콤마) 를 기준으로 컬럼들은 구분해서 DB의 각 컬럼에 저장시켜주는 동작을 수행했다. 하지만 ,(콤마) 를 기준으로 했을 때 컬럼의 데이터 안에 ',' 라는 문자가 포함되어 있을 때 파싱이 제대로 수행되지 않는 오류가 발생하여 windows 제어판에서 구분자를 다른 걸로 바꿔주는 귀찮은 작업을 수행하기도 했다. [어따세워] CSV 파일..

스터디

[SpringBoot] [Intellij] 스프링부트 / 인텔리제이 서버 포트 변경하기!

백엔드 공부를 하다보면 인텔리제이 윈도우를 2개 켜서 사용하는 경우가 종종 있다. 난 보통 하나는 공부용 프로젝트, 하나는 앱개발 프로젝트 이렇게 두 개를 켠다. 하지만 프로젝트의 서버 포트는 디폴트 값인 8080으로 설정되어있어 전부 켜서 둘다 사용할 수가 없다. 서버를 둘 다 켜면 이런 식으로 8080 포트가 중복되었다고 오류 메세지가 출력되면서 애플리케이션이 종료된다. 이 문제는 포트번호가 중복되어 서버가 열리지 못했기 때문에 발생한 것이다. 답은 간단하다. 포트 번호 중복을 해결하면 된다. 그렇다면 포트번호 바꾸는 두 가지 방법에 대해 알아보자. '인텔리제이 설정' 에서 Port 번호 변경 먼저 인텔리제이의 'Run - Edit Configuration' 에 들어간다. 그럼 이런 화면이 나오는데 ..

스터디

[SpringBoot] JPA 카멜케이스 컬럼명 적용법

JPA 와 MySQL 을 연동하여 사용하는 경우, 카멜표기법으로 컬럼 이름을 지정할 시에 컬럼명이 helloData -> hello_data 와 같은 형태로 자동 변경되어 버리는 문제가 발생한다. (카멜 표기법이란 각 단어의 첫문자를 대문자로 표기하고 붙여쓰되, 맨처음 문자는 소문자로 표기하는 표기법이다.) 나도 이 문제 때문에 DB와 맵핑이 되지 않아서 애를 먹었다.. 내가 설정한 컬럼명은 prkplceNo 인데 prkplce_no 으로 자동 변경되어 에러가 발생했다. 에러가 발생하는 과정을 먼저 보여주겠다. DTO 에 내가 지정한 이름으로 컬럼명을 작성한다. 테이블에도 @Column 어노테이션의 name 이랑 같게 컬럼명을 입력했다. 겉보기엔 아무 문제가 없을 것 같다. 하지만 문제는 이 프로그이 실..

스터디

[SpringBoot] 프로젝트 간편 생성 방법 (start.spring.io)

프로젝트를 시작하기 앞서 스프링 부트 프로젝트를 생성하려한다. 조금이라도 해본 사람은 알겠지만 https://start.spring.io/ 여기 접속하면 Spring Initializr 웹 도구를 사용해서 프로젝트를 클릭 몇 번으로 쉽게 생성할 수 있다. Maven이나 Gradle 중 원하는 프로젝트로 선택할 수 있으며, Kotlin과 Java 그리고 Groovy 중 언어를 선택할 수 있다. Spring Boot 버전은 SNAPSHOT이 붙은 것은 현재 개발중인 버전 M(Minor)은 정식 릴리즈되지 않은 버전 이기 때문에 아무것도 붙어있지 않은 정식으로 릴리지된 버전을 사용하는게 안정적이다. Group과 Artifact는 말그대로 그룹 이름과 빌드 결과물의 이름이기 때문에 자유롭게 지어주자. 다음으로 ..

PgmJUN
'스터디' 카테고리의 글 목록 (3 Page)