🗂️ 이 레포지토리는 백엔드 전용 저장소입니다.
"작가의 산책"은 누구나 작가가 되어 자유롭게 글을 집필하고 공개할 수 있는 창작 플랫폼입니다.
이 서비스는 작가의 감성과 이야기가 그대로 표지에 닿도록 설계된 표지 제작 기능을 중심으로,
기획자에게 가장 가까운 창작자의 시선을 제공합니다.
- Java
- Spring Boot
- Spring MVC (REST API)
- Spring Data JPA
- Lombok
- JavaScript (ES6+)
- React
- Axios
- React Router
- Material-UI (MUI)
- MySQL
- H2 (테스트용)
- RESTful API
- OpenAI API (DALL·E 3)
📦 src
└── 📦 main
└── 📦 java
└── 📦 com.example.bookplatform
├── 📁 config # 설정 파일 (CORS)
├── 📁 controller # REST API 요청을 처리하는 컨트롤러
├── 📁 dto # 요청/응답 시 사용하는 데이터 전송 객체
├── 📁 entity # JPA 엔티티 클래스 (DB 매핑)
├── 📁 repository # 데이터베이스 접근을 담당하는 JPA 리포지토리
├── 📁 service # 비즈니스 로직 담당
└── 📄 BookPlatformApplication.java # 메인 실행 파일## 📚 책 관리 API@GetMapping(value = "/books") //전체 목록 조회
public ResponseEntity<?> getBookList() {
return new ResponseEntity<>(bookService.getBookList(), HttpStatus.OK);
}
@GetMapping(value = "/books-detail") //상세 정보 조회
public ResponseEntity<?> getBookDetailInfo( @RequestParam("id") Long id) {
return new ResponseEntity<>(bookService.getBookDetailInfo(id), HttpStatus.OK);
}
@DeleteMapping(value = "/books") //책 정보 삭제
public ResponseEntity<?> deleteBook(@RequestBody BookIdDto bookIdDto){
bookService.deleteBook(bookIdDto);
return new ResponseEntity<>("delete success",HttpStatus.OK);
}
@PostMapping(value = "/books") //책 정보 등록
public ResponseEntity<?> registBook(@RequestBody SaveBookInfoDto saveBookInfoDto){
bookService.registBook(saveBookInfoDto);
return new ResponseEntity<>("regist success",HttpStatus.OK);
}
@PutMapping(value = "/books") //책 정보 수정
public ResponseEntity<?> updateBook(@RequestBody UpdateBookDto updateBookDto){
bookService.updateBook(updateBookDto);
return new ResponseEntity<>("hello",HttpStatus.OK);
}## 📚 이미지 생성 (DALL·E 3 사용)RestTemplate restTemplate = new RestTemplate();
HttpHeaders headers = new HttpHeaders();
headers.setBearerAuth(openAiApiKey);
headers.setContentType(MediaType.APPLICATION_JSON);
Map<String, Object> body = new HashMap<>();
body.put("prompt", prompt);
body.put("n", 1);
body.put("size", "1024x1024");
body.put("model", "dall-e-3");
HttpEntity<Map<String, Object>> request = new HttpEntity<>(body, headers);
ResponseEntity<Map> response = restTemplate.postForEntity(
"https://api.openai.com/v1/images/generations",
request,
Map.class
);
List<Map<String, String>> data = (List<Map<String, String>>) response.getBody().get("data");
return data.get(0).get("url");| 이름 | 역할 |
|---|---|
| 박동근 | PM (Project Manager) |
| 김태현 | Frontend Developer |
| 김해연 | Frontend Developer |
| 배소연 | Frontend Developer |
| 이상엽 | Frontend Developer |
| 김민수 | Backend Developer |
| 조승빈 | Backend Developer |
