← back to dong1512124123__YumiClass

Function bodies 261 total

All specs Real LLM only Function bodies
create method · java · L38-L43 (6 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherAssignmentController.java
    public String create(@ModelAttribute Assignment assignment,
                         @AuthenticationPrincipal UserDetails user, RedirectAttributes ra) {
        assignmentService.create(assignment, user.getUsername());
        ra.addFlashAttribute("message", "과제가 등록되었습니다.");
        return "redirect:/teacher/assignments";
    }
detail method · java · L49-L52 (4 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherAssignmentController.java
    public String detail(@PathVariable Long id, Model model) {
        model.addAttribute("detail", assignmentService.getDetailWithSubmissions(id));
        return "teacher/assignments/detail";
    }
editForm method · java · L55-L58 (4 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherAssignmentController.java
    public String editForm(@PathVariable Long id, Model model) {
        model.addAttribute("assignment", assignmentService.findById(id));
        return "teacher/assignments/form";
    }
edit method · java · L61-L66 (6 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherAssignmentController.java
    public String edit(@PathVariable Long id, @ModelAttribute Assignment assignment,
                       RedirectAttributes ra) {
        assignmentService.update(id, assignment);
        ra.addFlashAttribute("message", "수정되었습니다.");
        return "redirect:/teacher/assignments";
    }
delete method · java · L69-L73 (5 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherAssignmentController.java
    public String delete(@PathVariable Long id, RedirectAttributes ra) {
        assignmentService.delete(id);
        ra.addFlashAttribute("message", "삭제되었습니다.");
        return "redirect:/teacher/assignments";
    }
TeacherAttendanceController class · java · L24-L108 (85 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherAttendanceController.java
public class TeacherAttendanceController {

    private final AttendanceService attendanceService;
    private final StudentRepository studentRepository;

    public TeacherAttendanceController(AttendanceService attendanceService,
                                       StudentRepository studentRepository) {
        this.attendanceService = attendanceService;
        this.studentRepository = studentRepository;
    }

    /**
     * 출결 조회/입력 페이지
     * 학년/반/학생/날짜 선택 가능 (모두 선택사항, 학생 선택 시 개별 조회)
     */
    @GetMapping
    public String record(@RequestParam(required = false) Integer grade,
                         @RequestParam(required = false) Integer classNum,
                         @RequestParam(required = false) Long studentId,
                         @RequestParam(required = false)
                         @DateTimeFormat(iso = DateTimeFormat.ISO.DATE) LocalDate date,
                         Model model) {
        // 날짜 기본값: 오늘
        if (date == null) date = LocalDate.now();
  
TeacherAttendanceController method · java · L29-L33 (5 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherAttendanceController.java
    public TeacherAttendanceController(AttendanceService attendanceService,
                                       StudentRepository studentRepository) {
        this.attendanceService = attendanceService;
        this.studentRepository = studentRepository;
    }
Open data scored by Repobility · https://repobility.com
TeacherController class · java · L15-L47 (33 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherController.java
public class TeacherController {

    private final StatsService statsService;

    public TeacherController(StatsService statsService) {
        this.statsService = statsService;
    }

    /**
     * 선생님 대시보드 (로그인 후 진입)
     * 통계 카드 + 차트 데이터 전달
     */
    @GetMapping("/dashboard")
    public String dashboard(Model model) {
        // 기본 카운트
        model.addAttribute("totalStudents", statsService.getTotalStudents());
        model.addAttribute("todayAttendance", statsService.getTodayAttendanceCount());
        model.addAttribute("totalLeagues", statsService.getTotalLeagues());
        model.addAttribute("totalAssignments", statsService.getTotalAssignments());

        // KPI 게이지 (%)
        model.addAttribute("attendanceRate", statsService.getTodayAttendanceRate());
        model.addAttribute("attendanceInputRate", statsService.getTodayAttendanceInputRate());
        model.addAttribute("assignmentSubmitRate", statsService.getAssignmentSubmitRate());

        // 차트 데이터
        model.
TeacherController method · java · L19-L21 (3 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherController.java
    public TeacherController(StatsService statsService) {
        this.statsService = statsService;
    }
dashboard method · java · L28-L46 (19 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherController.java
    public String dashboard(Model model) {
        // 기본 카운트
        model.addAttribute("totalStudents", statsService.getTotalStudents());
        model.addAttribute("todayAttendance", statsService.getTodayAttendanceCount());
        model.addAttribute("totalLeagues", statsService.getTotalLeagues());
        model.addAttribute("totalAssignments", statsService.getTotalAssignments());

        // KPI 게이지 (%)
        model.addAttribute("attendanceRate", statsService.getTodayAttendanceRate());
        model.addAttribute("attendanceInputRate", statsService.getTodayAttendanceInputRate());
        model.addAttribute("assignmentSubmitRate", statsService.getAssignmentSubmitRate());

        // 차트 데이터
        model.addAttribute("attendanceDist", statsService.getTodayAttendanceDistribution());
        model.addAttribute("attendanceTrend", statsService.getRecent7DaysAttendanceTrend());
        model.addAttribute("gradeDist", statsService.getStudentCountByGrade());

        return "teacher/dashboar
TeacherExcelController class · java · L21-L54 (34 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherExcelController.java
public class TeacherExcelController {

    private final ExcelService excelService;

    public TeacherExcelController(ExcelService excelService) {
        this.excelService = excelService;
    }

    /** 학생 명단 엑셀 다운로드 */
    @GetMapping("/students")
    public ResponseEntity<byte[]> downloadStudents(@RequestParam Integer grade,
                                                    @RequestParam Integer classNum) throws IOException {
        byte[] data = excelService.generateStudentListExcel(grade, classNum);
        String filename = URLEncoder.encode(
            grade + "학년_" + classNum + "반_학생명단.xlsx", StandardCharsets.UTF_8);
        return ResponseEntity.ok()
            .contentType(MediaType.parseMediaType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"))
            .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename*=UTF-8''" + filename)
            .body(data);
    }

    /** 점수 엑셀 다운로드 */
    @GetMapping("/scores")
    public ResponseEntity<byt
TeacherExcelController method · java · L25-L27 (3 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherExcelController.java
    public TeacherExcelController(ExcelService excelService) {
        this.excelService = excelService;
    }
downloadStudents method · java · L31-L40 (10 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherExcelController.java
    public ResponseEntity<byte[]> downloadStudents(@RequestParam Integer grade,
                                                    @RequestParam Integer classNum) throws IOException {
        byte[] data = excelService.generateStudentListExcel(grade, classNum);
        String filename = URLEncoder.encode(
            grade + "학년_" + classNum + "반_학생명단.xlsx", StandardCharsets.UTF_8);
        return ResponseEntity.ok()
            .contentType(MediaType.parseMediaType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"))
            .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename*=UTF-8''" + filename)
            .body(data);
    }
downloadScores method · java · L44-L53 (10 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherExcelController.java
    public ResponseEntity<byte[]> downloadScores(@RequestParam Integer grade,
                                                  @RequestParam Integer classNum) throws IOException {
        byte[] data = excelService.generateScoreExcel(grade, classNum);
        String filename = URLEncoder.encode(
            grade + "학년_" + classNum + "반_점수.xlsx", StandardCharsets.UTF_8);
        return ResponseEntity.ok()
            .contentType(MediaType.parseMediaType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"))
            .header(HttpHeaders.CONTENT_DISPOSITION, "attachment; filename*=UTF-8''" + filename)
            .body(data);
    }
TeacherLeagueController class · java · L22-L193 (172 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherLeagueController.java
public class TeacherLeagueController {

    private final LeagueService leagueService;

    public TeacherLeagueController(LeagueService leagueService) {
        this.leagueService = leagueService;
    }

    /** 대회 목록 */
    @GetMapping
    public String list(@AuthenticationPrincipal UserDetails user, Model model) {
        model.addAttribute("leagues", leagueService.findByTeacher(user.getUsername()));
        return "teacher/leagues/list";
    }

    /** 대회 생성 폼 */
    @GetMapping("/new")
    public String createForm(Model model) {
        model.addAttribute("league", new League());
        model.addAttribute("leagueTypes", LeagueType.values());
        return "teacher/leagues/form";
    }

    /** 대회 생성 처리 */
    @PostMapping
    public String create(@ModelAttribute League league,
                         @RequestParam(value = "participants", required = false) List<String> participants,
                         @AuthenticationPrincipal UserDetails user, RedirectAttributes ra) {
    
Citation: Repobility (2026). State of AI-Generated Code. https://repobility.com/research/
TeacherLeagueController method · java · L26-L28 (3 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherLeagueController.java
    public TeacherLeagueController(LeagueService leagueService) {
        this.leagueService = leagueService;
    }
list method · java · L32-L35 (4 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherLeagueController.java
    public String list(@AuthenticationPrincipal UserDetails user, Model model) {
        model.addAttribute("leagues", leagueService.findByTeacher(user.getUsername()));
        return "teacher/leagues/list";
    }
createForm method · java · L39-L43 (5 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherLeagueController.java
    public String createForm(Model model) {
        model.addAttribute("league", new League());
        model.addAttribute("leagueTypes", LeagueType.values());
        return "teacher/leagues/form";
    }
detail method · java · L76-L108 (33 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherLeagueController.java
    public String detail(@PathVariable Long id, Model model) {
        League league = leagueService.findById(id);
        java.util.List<com.yumi.yumiclass.entity.LeagueMatch> matches = leagueService.getMatches(league);
        model.addAttribute("league", league);
        model.addAttribute("standings", leagueService.getStandings(league));
        model.addAttribute("matches", matches);

        // 토너먼트 브라켓 시각화용: 라운드별 경기 그룹핑 (TreeMap → 오름차순 유지)
        java.util.Map<Integer, java.util.List<com.yumi.yumiclass.entity.LeagueMatch>> byRound =
            new java.util.TreeMap<>();
        int maxRound = 0;
        for (com.yumi.yumiclass.entity.LeagueMatch m : matches) {
            Integer r = m.getRoundNumber();
            if (r == null) continue;
            byRound.computeIfAbsent(r, k -> new java.util.ArrayList<>()).add(m);
            if (r > maxRound) maxRound = r;
        }
        model.addAttribute("matchesByRound", byRound);
        model.addAttribute("totalRounds", maxRound)
addTeam method · java · L112-L117 (6 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherLeagueController.java
    public String addTeam(@PathVariable Long id, @RequestParam String teamName,
                          RedirectAttributes ra) {
        leagueService.addTeam(id, teamName);
        ra.addFlashAttribute("message", "팀이 추가되었습니다.");
        return "redirect:/teacher/leagues/" + id;
    }
removeTeam method · java · L121-L126 (6 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherLeagueController.java
    public String removeTeam(@PathVariable Long id, @PathVariable Long teamId,
                             RedirectAttributes ra) {
        leagueService.removeTeam(teamId);
        ra.addFlashAttribute("message", "팀이 삭제되었습니다.");
        return "redirect:/teacher/leagues/" + id;
    }
recordResult method · java · L150-L156 (7 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherLeagueController.java
    public String recordResult(@PathVariable Long id, @PathVariable Long matchId,
                               @RequestParam Integer homeScore, @RequestParam Integer awayScore,
                               RedirectAttributes ra) {
        leagueService.recordMatchResult(matchId, homeScore, awayScore);
        ra.addFlashAttribute("message", "경기 결과가 저장되었습니다.");
        return "redirect:/teacher/leagues/" + id;
    }
recordResultAjax method · java · L164-L184 (21 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherLeagueController.java
    public java.util.Map<String, Object> recordResultAjax(
            @PathVariable Long id, @PathVariable Long matchId,
            @RequestParam Integer homeScore, @RequestParam Integer awayScore) {
        leagueService.recordMatchResult(matchId, homeScore, awayScore);
        com.yumi.yumiclass.entity.League league = leagueService.findById(id);
        java.util.List<com.yumi.yumiclass.entity.LeagueMatch> matches = leagueService.getMatches(league);
        java.util.List<java.util.Map<String, Object>> dtos = new java.util.ArrayList<>();
        for (com.yumi.yumiclass.entity.LeagueMatch m : matches) {
            java.util.Map<String, Object> dto = new java.util.HashMap<>();
            dto.put("id", m.getId());
            dto.put("homeTeamName", m.getHomeTeam() != null ? m.getHomeTeam().getTeamName() : null);
            dto.put("awayTeamName", m.getAwayTeam() != null ? m.getAwayTeam().getTeamName() : null);
            dto.put("homeScore", m.getHomeScore());
            dto.put
All rows above produced by Repobility · https://repobility.com
delete method · java · L188-L192 (5 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherLeagueController.java
    public String delete(@PathVariable Long id, RedirectAttributes ra) {
        leagueService.deleteLeague(id);
        ra.addFlashAttribute("message", "대회가 삭제되었습니다.");
        return "redirect:/teacher/leagues";
    }
TeacherLessonController class · java · L17-L66 (50 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherLessonController.java
public class TeacherLessonController {

    private final LessonProgressService lessonService;

    public TeacherLessonController(LessonProgressService lessonService) {
        this.lessonService = lessonService;
    }

    @GetMapping
    public String list(@AuthenticationPrincipal UserDetails user, Model model) {
        model.addAttribute("lessons", lessonService.findByTeacher(user.getUsername()));
        return "teacher/lessons/list";
    }

    @GetMapping("/new")
    public String createForm(Model model) {
        model.addAttribute("lesson", new LessonProgress());
        return "teacher/lessons/form";
    }

    @PostMapping
    public String create(@ModelAttribute LessonProgress lesson,
                         @AuthenticationPrincipal UserDetails user,
                         RedirectAttributes ra) {
        lessonService.create(lesson, user.getUsername());
        ra.addFlashAttribute("message", "수업 진도가 등록되었습니다.");
        return "redirect:/teacher/lessons";
    }

    @G
TeacherLessonController method · java · L21-L23 (3 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherLessonController.java
    public TeacherLessonController(LessonProgressService lessonService) {
        this.lessonService = lessonService;
    }
list method · java · L26-L29 (4 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherLessonController.java
    public String list(@AuthenticationPrincipal UserDetails user, Model model) {
        model.addAttribute("lessons", lessonService.findByTeacher(user.getUsername()));
        return "teacher/lessons/list";
    }
createForm method · java · L32-L35 (4 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherLessonController.java
    public String createForm(Model model) {
        model.addAttribute("lesson", new LessonProgress());
        return "teacher/lessons/form";
    }
create method · java · L38-L44 (7 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherLessonController.java
    public String create(@ModelAttribute LessonProgress lesson,
                         @AuthenticationPrincipal UserDetails user,
                         RedirectAttributes ra) {
        lessonService.create(lesson, user.getUsername());
        ra.addFlashAttribute("message", "수업 진도가 등록되었습니다.");
        return "redirect:/teacher/lessons";
    }
editForm method · java · L47-L50 (4 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherLessonController.java
    public String editForm(@PathVariable Long id, Model model) {
        model.addAttribute("lesson", lessonService.findById(id));
        return "teacher/lessons/form";
    }
edit method · java · L53-L58 (6 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherLessonController.java
    public String edit(@PathVariable Long id, @ModelAttribute LessonProgress lesson,
                       RedirectAttributes ra) {
        lessonService.update(id, lesson);
        ra.addFlashAttribute("message", "수업 진도가 수정되었습니다.");
        return "redirect:/teacher/lessons";
    }
Methodology: Repobility · https://repobility.com/research/state-of-ai-code-2026/
delete method · java · L61-L65 (5 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherLessonController.java
    public String delete(@PathVariable Long id, RedirectAttributes ra) {
        lessonService.delete(id);
        ra.addFlashAttribute("message", "삭제되었습니다.");
        return "redirect:/teacher/lessons";
    }
TeacherPapsController class · java · L17-L98 (82 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherPapsController.java
public class TeacherPapsController {

    private final PapsService papsService;
    private final StudentService studentService;

    public TeacherPapsController(PapsService papsService, StudentService studentService) {
        this.papsService = papsService;
        this.studentService = studentService;
    }

    /** 학생 선택 + PAPS 기록 목록
     *  - grade / classNum 필터에 따라 이름 드롭다운 목록을 좁힘
     *    - 학년 "전체" + 반 "전체": 모든 학생
     *    - 학년만 선택: 해당 학년 전체
     *    - 학년+반 둘 다 선택: 해당 반 학생만
     */
    @GetMapping
    public String list(@RequestParam(required = false) Integer grade,
                       @RequestParam(required = false) Integer classNum,
                       @RequestParam(required = false) Long studentId, Model model) {
        java.util.List<com.yumi.yumiclass.entity.Student> students;
        if (grade != null && classNum != null) {
            students = studentService.findByGradeAndClass(grade, classNum);
        } else if (grade != null) {
            students = stude
TeacherPapsController method · java · L22-L25 (4 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherPapsController.java
    public TeacherPapsController(PapsService papsService, StudentService studentService) {
        this.papsService = papsService;
        this.studentService = studentService;
    }
createForm method · java · L57-L63 (7 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherPapsController.java
    public String createForm(@RequestParam Long studentId, Model model) {
        model.addAttribute("paps", new Paps());
        model.addAttribute("student", studentService.findById(studentId));
        model.addAttribute("studentId", studentId);
        model.addAttribute("papsGrades", PapsGrade.values());
        return "teacher/paps/form";
    }
create method · java · L66-L71 (6 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherPapsController.java
    public String create(@RequestParam Long studentId, @ModelAttribute Paps paps,
                         RedirectAttributes ra) {
        papsService.create(paps, studentId);
        ra.addFlashAttribute("message", "PAPS 기록이 등록되었습니다.");
        return "redirect:/teacher/paps?studentId=" + studentId;
    }
editForm method · java · L74-L81 (8 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherPapsController.java
    public String editForm(@PathVariable Long id, Model model) {
        Paps paps = papsService.findById(id);
        model.addAttribute("paps", paps);
        model.addAttribute("student", paps.getStudent());
        model.addAttribute("studentId", paps.getStudent().getId());
        model.addAttribute("papsGrades", PapsGrade.values());
        return "teacher/paps/form";
    }
edit method · java · L84-L89 (6 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherPapsController.java
    public String edit(@PathVariable Long id, @ModelAttribute Paps paps,
                       @RequestParam Long studentId, RedirectAttributes ra) {
        papsService.update(id, paps);
        ra.addFlashAttribute("message", "수정되었습니다.");
        return "redirect:/teacher/paps?studentId=" + studentId;
    }
delete method · java · L92-L97 (6 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherPapsController.java
    public String delete(@PathVariable Long id, @RequestParam Long studentId,
                         RedirectAttributes ra) {
        papsService.delete(id);
        ra.addFlashAttribute("message", "삭제되었습니다.");
        return "redirect:/teacher/paps?studentId=" + studentId;
    }
Open data scored by Repobility · https://repobility.com
TeacherScoreController class · java · L21-L152 (132 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherScoreController.java
public class TeacherScoreController {

    private final ScoreService scoreService;
    private final SportItemRepository sportItemRepository;

    public TeacherScoreController(ScoreService scoreService, SportItemRepository sportItemRepository) {
        this.scoreService = scoreService;
        this.sportItemRepository = sportItemRepository;
    }

    /** 점수 입력/조회 페이지 */
    @GetMapping
    // 학년/반/종목 모두 선택 사항. 종목이 비어있으면 학생 목록만 표시
    public String input(@RequestParam(required = false) Integer grade,
                        @RequestParam(required = false) Integer classNum,
                        @RequestParam(required = false) Long sportItemId,
                        @RequestParam(required = false) Integer year,
                        @RequestParam(required = false) Semester semester,
                        Model model) {
        if (year == null) year = LocalDate.now().getYear();
        if (semester == null) semester = Semester.FIRST;

        model.addAttribute("sportItems", 
TeacherScoreController method · java · L26-L29 (4 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherScoreController.java
    public TeacherScoreController(ScoreService scoreService, SportItemRepository sportItemRepository) {
        this.scoreService = scoreService;
        this.sportItemRepository = sportItemRepository;
    }
buildRedirect method · java · L143-L151 (9 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherScoreController.java
    private String buildRedirect(Integer grade, Integer classNum, Long sportItemId,
                                  Integer year, Semester semester) {
        StringBuilder url = new StringBuilder("redirect:/teacher/scores?year=")
            .append(year).append("&semester=").append(semester);
        if (grade != null) url.append("&grade=").append(grade);
        if (classNum != null) url.append("&classNum=").append(classNum);
        if (sportItemId != null) url.append("&sportItemId=").append(sportItemId);
        return url.toString();
    }
TeacherStudentController class · java · L17-L102 (86 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherStudentController.java
public class TeacherStudentController {

    private final StudentService studentService;

    public TeacherStudentController(StudentService studentService) {
        this.studentService = studentService;
    }

    /** 학생 명단 목록 */
    @GetMapping
    public String list(@RequestParam(required = false) Integer grade,
                       @RequestParam(required = false) Integer classNum,
                       Model model) {
        // 선택 값을 화면에 유지하기 위해 항상 모델에 담음
        model.addAttribute("selectedGrade", grade);
        model.addAttribute("selectedClass", classNum);

        // 필터 조건별 조회
        // - 학년+반: 해당 반만
        // - 학년만: 해당 학년 전체
        // - 아무것도 없음: 전체
        if (grade != null && classNum != null) {
            model.addAttribute("students", studentService.findByGradeAndClass(grade, classNum));
        } else if (grade != null) {
            model.addAttribute("students", studentService.findByGrade(grade));
        } else {
            model.addAttribute("students", stud
TeacherStudentController method · java · L21-L23 (3 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherStudentController.java
    public TeacherStudentController(StudentService studentService) {
        this.studentService = studentService;
    }
createForm method · java · L50-L54 (5 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherStudentController.java
    public String createForm(Model model) {
        model.addAttribute("student", new Student());
        model.addAttribute("genders", Gender.values());
        return "teacher/students/form";
    }
create method · java · L58-L69 (12 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherStudentController.java
    public String create(@ModelAttribute Student student,
                         @RequestParam String rawPassword,
                         RedirectAttributes ra) {
        try {
            studentService.create(student, rawPassword);
            ra.addFlashAttribute("message", "학생이 등록되었습니다.");
            return "redirect:/teacher/students";
        } catch (IllegalArgumentException e) {
            ra.addFlashAttribute("error", e.getMessage());
            return "redirect:/teacher/students/new";
        }
    }
editForm method · java · L73-L77 (5 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherStudentController.java
    public String editForm(@PathVariable Long id, Model model) {
        model.addAttribute("student", studentService.findById(id));
        model.addAttribute("genders", Gender.values());
        return "teacher/students/form";
    }
Citation: Repobility (2026). State of AI-Generated Code. https://repobility.com/research/
delete method · java · L97-L101 (5 LOC)
src/main/java/com/yumi/yumiclass/controller/TeacherStudentController.java
    public String delete(@PathVariable Long id, RedirectAttributes ra) {
        studentService.delete(id);
        ra.addFlashAttribute("message", "학생이 삭제(비활성화) 되었습니다.");
        return "redirect:/teacher/students";
    }
Assignment class · java · L18-L56 (39 LOC)
src/main/java/com/yumi/yumiclass/entity/Assignment.java
public class Assignment {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    // 선생님 FK
    @ManyToOne(fetch = FetchType.LAZY)
    @JoinColumn(name = "teacher_id", nullable = false)
    private Teacher teacher;

    // 과제 제목
    @Column(nullable = false, length = 200)
    private String title;

    // 과제 내용
    @Column(columnDefinition = "TEXT")
    private String content;

    // 제출 마감일
    @Column(name = "due_date", nullable = false)
    private LocalDate dueDate;

    // 대상 학년
    @Column(name = "target_grade", nullable = false)
    private Integer targetGrade;

    // 대상 반 (null이면 학년 전체)
    @Column(name = "target_class")
    private Integer targetClass;

    @Column(name = "created_at", nullable = false, updatable = false)
    private LocalDateTime createdAt;

    @PrePersist
    protected void onCreate() {
        this.createdAt = LocalDateTime.now();
    }
}
onCreate method · java · L53-L55 (3 LOC)
src/main/java/com/yumi/yumiclass/entity/Assignment.java
    protected void onCreate() {
        this.createdAt = LocalDateTime.now();
    }
‹ prevpage 2 / 6next ›