- 기본 환경
- IDE: IntelliJ IDEA Ultimate
- OS: Mac
- GIT
- Server
- Java 17
- Spring Boot 3.4.2
- Spring Data JPA
- H2 Database
- Gradle 8.13
- JUnit 5
- 라이브러리 및 도구
- Lombok
- Swagger/OpenAPI (springdoc-openapi-starter-webmvc-ui 2.3.0)
- Apache POI 5.2.3 (Excel 파일 처리)
- OpenCSV 5.9 (CSV 파일 처리)
- Selenium 4.1.2 (웹 자동화)
- Git, Java 는 설치되어 있다고 가정한다.
$ git clone https://github.com/juhwano/backend-challenge-api-1.git
$ cd backend-challenge-api-1
./gradlew clean build
java -jar build/libs/backend-0.0.1-SNAPSHOT.jar
- POST 요청을 처리하는 REST API 개발
- 공공데이터포털 사이트에서 CSV,XLS 파일 다운로드 및 데이터 필터링
- 공공데이터포털 API/공공주소 API를 통한 추가 데이터 조회
- 데이터 정제 후 DB에 저장
- 테스트코드 작성
- API 출처 변경에 대응 가능한 유연한 설계
- 저장소 변경에 대응 가능한 추상화된 저장소 계층
- 멀티쓰레드를 활용한 병렬 처리로 성능 최적화
- 동시성 문제를 해결하는 안전한 구현
- 유지보수가 용이한 로깅 처리
- Access URL: http://localhost:8080/h2-console
- Driver Class:
org.h2.Driver - JDBC URL:
jdbc:h2:mem:antockdb - User Name:
sa
[Request]
- URL:
http://localhost:8080/v1/business - Method:
POST - Body:
{ "city": "경상남도", "district": "의령군" } - 설명: 위 요청은 공정거래위원회 사업자등록현황 사이트에서 시/도 선택 (예:
경상남도)과 전체 (예:의령군)에 해당하는 값을 넣어서 요청합니다.
[Response]
{
"processedCount": 81,
"message": "데이터가 성공적으로 처리되었습니다."
}-
processedCount: 처리된 데이터 항목 수
-
message: 처리 결과 메시지
-
서버는 해당 시/도와 군/구에 해당하는 사업자 정보를 처리한 후, 처리된 데이터 수와 메시지를 반환합니다.
