포트폴리오 서비스(관리 페이지 만들기)

·2023년 12월 15일
0

Portfolio Backtest

목록 보기
7/31

생각한것

  • DB에 데이터를 추가하는 부분을 관리자 페이지를 만들어서 이용한다.
  • 추후 확장을 생각해서 관리자 페이지를 구성한다.
  • 날짜를 입력받아 DB를 최신화하는 것과 확인하는 부분을 구현한다.
  • 타임리프와 부트스트랩을 사용한다. UI 구성은 GPT를 최대한 활용해서 구현한다.

Admin Page

adminlayout페이지를 만든 후 기능에 따라 해당화면에 추가해서 사용하도록 만들었다.


StockInfo

먼저 주식 정보를 저장하고 확인하는 부분을 구현해보자

데이터 저장 페이지

  • (Get)/admin/update/stockinfo: updatestockinfo.html를 반환한다.
  • (Post)/admin/update/stockinfo: parameter로 baseDate를 받아 성공적으로 수행시 stockinfo.html을 반환하며, 입력에 오류가 있을 때, 다시 리다이렉트 한다.
    @GetMapping("/update/stockinfo")
    public String updateStockInfoPage() {
        return "update_stockinfo";
    }

    @PostMapping("/update/stockinfo")
    public String updateStockInfo(@RequestParam(name = "baseDate") String baseDate, Model model) {
        if(baseDate == null || baseDate.equals("")) {
            model.addAttribute("error", "날짜를 입력하세요.");
            return "update_stockinfo";
        }

        LocalDate baseDates = LocalDate.parse(baseDate, java.time.format.DateTimeFormatter.ofPattern("yyyy-MM-dd"));
        LocalDate today = LocalDate.now();
        if (baseDates.isAfter(today)) {
            model.addAttribute("error", baseDate + "는 미래의 날짜입니다.");
            return "update_stockinfo";
        }

        stockDataLoader.loadStockInfoByBaseDate(baseDate.replaceAll("-", ""));
        return "redirect:/admin/stockinfo";
    }
    

baseDate는 달력을 이용해서 값을 받아온다. 빈칸으로 버튼을 클릭하면 오류가 발생하기 때문에 해당 부분을 처리하였고, 추가적으로 미래날짜에 대하여 오류메세지를 추가하였다. 이 후, 성공했을 경우 주식 정보 페이지로 이동한다.

데이터 출력 페이지

  • (Get)/admin/stockinfo: stockinfo.html를 반환한다.
    @GetMapping("/stockinfo")
    public String showStockInfo(Model model) {
        List<StockInfo> stocks = stockDataLoader.getStockInfo();

        model.addAttribute("stocks", stocks);
        model.addAttribute("totalStocks", stocks.size());

        return "stockinfo";
    }



다음에 할일

  • 데이터 출력페이지 개선
  • 페이징 활용
  • 간단한 검색 기능 구현
profile
백엔드 개발자가 꿈인 컴공과

0개의 댓글

관련 채용 정보